開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


Win Arrange 新たな問題編

 うまくいったと思ったらまた問題が出てくるのは世のならい。このままでは使いものにはならない... とまでいかなくても、使いにくいのです。
 あなたのデスクトップを見てみましょう。画面の上下左右のどれかを使ってショートカットを並べていますね。 Win3.1の時代は最小化されたアプリがデスクトップにアイコンの形で並んでいました。これらが隠れてはいけないのです。 また人によってはお気に入りの時計を画面の角に置いていることでしょう。

 つまりデスクトップには動かしてはいけないウィンドウや隠れてはいけないウィンドウ、隠してはいけない 領域があるのです。こういうことを考慮して窓整列を行わないと使いものになりません。

 でもどうすれはこの窓を動かしてはいけないとわかるのでしょう。こればっかりは自動認識は無理です。 ユーザーに設定してもらうしかありません。
 ここで窓整列に関して、窓を4種類に区別しました。

1.窓の大きさ、位置を自由に動かしていいもの (秀丸とか)
2.窓の大きさ、位置を変更してはいけないし、隠れてもいけないもの(時計)
3.位置を変更してもいいけど、大きさを変更してはいけないもの(DOS窓)
4.どうでもいいもの
 窓に対し、これらの属性を割り付けてもらうようなカスタマイズ方法を採用しました。 窓を認識する方法としてタイトルバーの文字列を使いました。

 設定方法としてはこれでいいのですが、どうやってこの設定通り窓を移動させればいいのでしょう。 うむーこれは困ったゾ。

 3番の窓は1番の特殊型として、1と2をどうするか?まず画面全体の領域を得ます。それから 順次2の窓の領域を取り除いていきます。当然取り除いた領域は四角形ではないのですが、その領域から 最大の四角形を取り出します。この作業を繰り返して残った四角形に対し1番の窓を整列すればいいのです。

 さらっと書きましたが、へんてこな形をした領域から最大の四角形を取り出す処理は結構めんどうなんですよ。