今日から新しいシリーズ「一般的な編集ソフトの作り方」というのをはじめます(きのう「一般的なエディタの作り方」と書いたのですが、こっちのほうがいいので、こうします)。
■どんなことをするのか?-方向性
編集ソフトというと、
・テキストエディタ
・ドローイングソフト
・レタッチソフト(=写真の加工をするソフト)
・ワープロ
・DTPソフト
・フローチャート作成ソフト
・CASEツール
:
:
といろいろあります。しかし、どれも編集するという行為は同じで、編集しているものが違うだけです。
このように、「編集する」という行為が同じ以上、これら編集ソフトにおいて、共通した作り方というのがあるのですが、その部分について考えてみたいと思います。
■共通している部分とはなにか。。
共通している部分は、大きく、以下の3点です
1.画面の構成
メインの画面があり、いろんな操作するための画面(ダイアログを含む)がいくつかでています。常時出ているもの(パレットと呼ばれる)場合もあれば、操作するときに一時的に出るダイアログもあります。
そして、操作するためのメニューがあり、
操作するには、操作したいものをクリックして選択します(エディタのカーソルのように、かならずしもそのものずばりを選択するわけではないにしても)
2.メモリ上に、要素(編集しているもの)をもつ
そして、メモリ上に編集しているものをもちます。
このもちかたは、
・配列で持つもの
・(連結)リストの形で持つもの
があります。
3.イベント発生時の動き
追加、削除、移動などのイベントが発生した場合、
1.メモリ上の要素に変更があれば変更する
2.表示位置の変更をする
3.再描画する
という手順で行います。2の表示位置の変更処理をどの範囲で行うのかはものによってちがいますが、たいていは、紙や画面の大きさを考えないで位置をきめ
(ページはたいてい考える)3の再描画で、そのうちどの範囲を描画するか考えます。
■どんなことをするのか?-概要
ということで、ここでは、エディタやドローイングソフトなどにおける
・画面構成
・メモリ上への要素展開
・イベント処理方法
について、一般的なやり方を示しながら、個別の編集ソフトでは、どこをどのように気をつけたらいいかについて説明します。
で、次回なのですが、まず、「メモリ上への要素展開」について説明します。