2 using System.Collections.Generic;
17 public クリップボード( メインフォーム form )
27 public void 現在選択されているチップをボードにコピーする()
31 foreach( var chip in this.Form.譜面.SSTFormatScore.チップリスト )
36 new Cセル() { チップ = new チップ( chip ) } );
41 public void チップを指定位置から貼り付ける( int 貼り付け先頭の譜面内絶対位置grid )
48 this.Form.UndoRedo管理.トランザクション記録を開始する();
50 // すべてのセルについて、チップ位置を、ボード内でもっとも位置が前にあるセルを 0grid とした相対値に変換する。
51 int 最小値grid = this.セルリスト[ 0 ].チップ.譜面内絶対位置grid;
52 foreach( var cell in this.セルリスト )
54 if( cell.チップ.譜面内絶対位置grid < 最小値grid )
55 最小値grid = cell.チップ.譜面内絶対位置grid;
57 foreach( var cell in this.セルリスト )
58 cell.チップ.譜面内絶対位置grid -= 最小値grid;
60 // すべてのセルについて、チップ位置を、実際に貼り付ける位置に変換する。
61 foreach( var cell in this.セルリスト )
62 cell.チップ.譜面内絶対位置grid += 貼り付け先頭の譜面内絶対位置grid;
65 foreach( var cell in this.セルリスト )
67 this.Form.譜面.チップを配置または置換する(
68 this.Form.譜面.dicチップ編集レーン対応表[ cell.チップ.チップ種別 ],
79 this.Form.UndoRedo管理.トランザクション記録を終了する();
81 this.Form.UndoRedo用GUIのEnabledを設定する();
82 this.Form.選択チップの有無に応じて編集用GUIのEnabledを設定する();
83 this.Form.譜面をリフレッシュする();
84 this.Form.未保存である = true;
91 public bool 貼り付け済み = false;
92 public int グループID = 0;
93 public チップ チップ = null;
96 protected メインフォーム Form;
98 protected readonly List<Cセル> セルリスト = new List<Cセル>();