別のウィンドウで開く

 真魚の本当に作り始めた根本の理由に立ち返ることになるが、複数のドキュメントを一つの窓で開きたいからタブ式にしたわけだ。当時テラパッドとかSDIばっかりだった中、自分で手間をかけて作ってでも欲しいと思った機能は、タブ切替より「複数ウィンドウ開かない」という事だったわけで、それなのに今さら複数ウィンドウを開くようにするってのは存在意義にも矛盾することなんだよね。でもドキュメントを並べて比較したい事はあるわけで、そのために無理矢理MDI化したのにWin7で作ったものがWin8で動かなかったり無理が通らなかったりしたところもあるので、じゃぁMDIをやめるんだったらマルチウィンドウをやろうかっていう発想に到った。



 最初に誰でも思いつくのは、タブをマウスで掴んで外側に持っていけば親ウインドウから外れた子ウィンドウが出来上がるってやつだろう。でもそれをやるとしたら、メニューやツールバーは子ウィンドウにつけるのかって事で問題になる。子ウィンドウに何か操作しようとして親ウィンドウのメニューをクリックしたら、そりゃ既に親ウィンドウが前面に出ちゃってるから子ウィンドウへの操作にならない。だからってメニューやツールバーをまるごと子ウィンドウにもつけるってのもおかしいし、そういう事やってるやつは見たことない。この方法は良いアイデアが浮かばなかった。

 次に誰でも思い浮かぶのは二重起動を許可することだろう。オプションのどこかに「二重起動を許可する」というチェックボックスを作れば良い。それをやれば、勝手にいくつでも真魚が開いて良い感じにはなるんだろう。その方が好みだって言う人もいるかも知れない。でもあたしがやりたいのは、基本的には常時二重起動不可で、必要なときはそのチェックボックスで切り替えすらせずにすぐ必要な窓を開きたいって事なんだ。

 そこで思いついたのが、コマンドライオプション/w(スラッシュ小文字ダブル)で二重起動チェックを回避するって事。コマンドラインを使うなんて面倒なことをユーザーにさせるつもりはないので、あくまでこれは隠しオプションだ。そしてその隠しオプションで起動するんだって事を一切表に出さないで、「別ウィンドウで開く」っていう項目を作った。「規定プログラムで開く」とか「別のプログラムで開く」とかがある近くに、「別ウィンドウで開く」ってのを作ると全く違和感がない。以前の真魚で並べて比較出来ないから一方を別のテキストエディタで開こうという発想を持ってた人も、その項目の近くにこれがあればすぐ気がつくだろう。やってることは「二重起動を許可するモードでもう一つ真魚を起動する」だが、そんな面倒な説明をせずに「別ウィンドウで開く」にしておそらく混乱はあるまい。

 でもこれをやるとすれば、オプション設定をどうするかって事が問題になるんだよね。複数の窓を出した状態で、片方の真魚だけオプション設定した場合、その整合性をどう取っていくかという問題。それに、ウィンドウの場所を記録して復活させてるから、複数の真魚が同じ場所に重なって起動されちゃう問題。まぁ、場所に関しては、コマンドラインオプションがついたときは大きさしか再現しないって事で解決がついた。でもその他のオプションまわりは一切ノーケア。複数の真魚で別設定になったときはどっちの設定がいつ保存されるか全くの不確定。シャットダウンなどでまとめて真魚を閉じようものなら、設定ファイルへのアクセスを奪い合ってどっちも保存されない事すらあるかも知れない。でもそれで別に問題は起こらないと思うんだ。あくまで、別ウィンドウを表示してる状態ってのは比較のための特殊な状態であって、わざわざ隠しオプションにして普通はやらない状態にしてるので、あえて知ってて意図して隠しオプションを使わない限り、あらゆる動作は想定の範囲内で動くと予想している。ダメだったらチマチマ直す。

 昨日のMDI部分削除という更新と、今日の別ウィンドウで開くという更新はワンセットだ。それがなくなる代わりにこれを使えばいいというセットの更新だ。昨日の更新で過去の真魚に戻り、今日の更新でもう一回新しい真魚にしたって状態。代替だけど。引いて足してゼロってのが昨日と今日の更新で、このあとまたプラスしたいものがある。

たぶん関連のある記事:

コメントは終了しています。