SwitchWindowのまとめ
もう大した変化も無さそうなのでまとめます。
設定ダイアログの、Settings/hotkey/SwitchWindowです。SwitchMDIWindowもMDI子ウインドウに使うというだけで、操作法等は同じです。
基本的な目的は、Alt+Tabと同じことを文字入力ですることですが、複数のウインドウを選択して、閉じるとか最小化するとか、そういうこともできます。
あれこれ設定できますが、それらはSettings/setup/SwitchWindow*です。Grouping/Mark/Shrink/Sortとありますが、ShrinkとSortは排他(両方Onにしてもどちらかになるだけ)です。
SwitchWindowGroupingで、空白区切りのAND検索になります。(詳細はMigemo Groupingのまとめ)
マーク(Alt+M)で複数ウインドウを指定することができます。SwitchWindowMarkをonにすると、マッチするものをマークするようになります。SwitchWindowShrinkはマッチしないものをリストから消し、SwitchWindowSortはマッチしたものを上位に置きます。
キー設定は、Enterでアクティベイト、 Ctrl+Enterでウインドウメニュー、Shift+Deleteでウインドウを閉じる、です。
mode:on_enterで追加できます。*1
//Alt+Xで最大化 mode:on_enter.SwitchWindow:@ `[ //SwitchWindowを実行済みの場合は定義済みなのでdef_or_set mode:set-var-g(:SwitchWindow:SerializedWindows Giraffe.SerializeWindows) //defaultのon_enter, 終了後元に戻すためのもの。 mode:set-event& 'key/a-x', [ SwitchWindow_GetSelectedHwnds.each(MaximizeWindow$) HideGiraffe ] ]
Giraffe+のメインウインドウがディアクティベイトする(フォーカスを失う)と、SwitchWindowは終了し、その前の状態に戻ります。mode:on_enter, on_returnでシリアライズしてるので、それらを書き換える場合は追加的にします。
//アクティブにしたウインドウのタイトルをデバッグ出力 mode:on_return.SwitchWindow:@ `[ Dout.<< (Window.GetTitle(Window.GetForeground)).endl Giraffe.SerializeWindows($SwitchWindow:SerializedWindows) ]