
AutoHotkeyで作ってるvim_ahkの設定画面をタブ化しました。
vim_ahk
vim_ahkはAutoHotkeyのスクリプトで、Windows上のどこでも H/J/K/L で移動したりY/PでコピペしたりするVimチックな動きを 再現するためのスクリプトです。
exeファイルを直接使えばAutoHotkeyがインストールされてない環境でも動きます。
設定画面のタブ化
こんな感じで設定画面をタブ化しました。
設定が多くなってくると設定画面が長くなってしまい、 あまり長いとそのままだとウィンドウをはみ出るようになるので なんとか整理しないとと思ってましたがタブ化で見た目もより設定画面ぽくなって良いのでは、と。
設定画面に余裕が出来たので、 最後のConfigurationタブにあるように、新たに設定ファイルのImport/Export機能も追加してみました。
タブ化の方法
AutoHotkeyではGUIのコントロール部品が用意されていて比較的簡単にGUIを作ることができます 1
この中に TabというGUIのコントロール部品があるので 思ったより簡単に出来ました。 Tab/Tab2/Tab3と3種類ありますが、基本的にはTab3がTab/Tab2であった問題を解決して進化したバージョンになってるので Tab3を使っておけばOK。
1
|
|
の様な感じで、Tab3
コンポーネントを、位置(この場合はX+0 Y+0
で前のコンポーネントの右下位置からそのまま開始)と幅と高さ(W480 H360)を指定して、
最後に各タブの名前をリストで指定するだけでタブが作れます。
各タブの中身を作るには
1 2 3 4 5 |
|
のようにUseTab(N)
でタブを指定して後は通常通りコンポーネントを追加していきます。
N
は1から始まるのでちょっと注意。(上の場合は1: First
, 2: Second
, 3: Third
のタブになります。)
タブの中だとX10
などで指定した際、ウィンドウの左端からの距離になってタブの枠分位値の調整が難しくなるので、
タブを開始した直後に幅高さゼロのSection
用の疑似テキストをアンカーとして置いて、
XS
やYS
を使うことでタブの左上の位置からの距離を使えるようにしておくと便利です。
この後にTab.UseTab(2)
とすればそこからSecond
タブの中身を追加していくことができます。
X+0
の様な前のコンポーネントとの相対位置の開始位置はUseTab
を使うとタブのそのタブの左上の位置にリセットされます。
また、タブ終了はUseTab()
と数字無しで指定するとタブ外に行きますが、
その後タブの下にさらにコンポーネントを追加するには
1 2 3 4 5 6 |
|
みたいに、GetPos
でタブの位置とサイズを取得して、
タブの下限位置を取得してその下に良しなにコンポーネントを追加していく感じにすると
いい感じにタブの下にコンポーネントを追加できます。
-
表示を作るのは簡単ですが、動作を結びつける方法がちょっと最初はわかりにくいかもしれません。 ↩