ワープロやドローイングソフトなどの編集ソフトを作る上での一般的な考え方を考える「一般的な編集ソフトの作り方」です。
ここでは、主に、
・メモリ上に、要素をもつ
・イベント発生時の動き
・画面の構成
ということで、現在、「イベント発生時の動き」をやっています。
その機能には、
・印刷
・保存
・読み込み
・カット(切り取り)
・ペースト(貼り込み)
・プロパティ(属性設定・変更)
・表示
・要素の選択
・(要素の)移動
で、今日はカットとペーストについてやります
■処理手順
この2つと、前回のプロパティ変更で大きさが変わる場合は、似たような動きをします。
まず、カットもペーストも
1.対象を確認します
→対象が選択されてなければエラー
2.カットあるいはペーストができるか確認
3.カットの場合は、対象をコピー領域に入れます
ペーストの場合、コピー領域の対象をとってきます
4.カットの場合は削除処理、
ペーストの場合は、3の領域の追加処理をします
あとは、「プロパティ変更」同様
5.削除・挿入したものの親に対し、
子供(削除・挿入したものとその兄弟)の位置決めをする
6.削除・挿入したものとその兄弟は、値を変更し、親に結果
通知する。
値を変更できない場合は、親に変更できない通知
→変更できない場合、削除・追加処理を取り消し、元に戻す
7.削除・挿入したものの子供に対し、位置決めをする
→変更できない場合、変更処理を取り消し、元に戻る
8.7の位置に子供の属性を変更する。自分の属性も変更する
9.再描画する
→クリックされたとこををバッファをもって調べている場合、
そのバッファにも書き出し
なお、5~9の順番は違う場合がありますが、とにかく、親兄弟、子供に対し、位置や幅の再設定、再描画が必要となります。
このとき、どこまで再設定、再描画したらいいかによって、処理スピードなどが、左右されます。
ということで、「イベント発生時の動き」はここまでです。
あとは、画面の構成についてです。