Svitch-0.7.1公開しました


概要、ダウンロード、質問などはこちらへ。
ソフトウェア/Svitch - トモえもんの押し入れ


今回の追加・修正点一覧はこちら↓
[NEW] ウィンドウの移動・リサイズを行うmoveコマンドを追加
[NEW] 入力を受け付けるためのライブラリinput_formを追加
[NEW] 外部ウィンドウの移動などを簡単にするライブラリwin_rectを追加
[CHG] コマンド用ライブラリをcommand/libフォルダに移動
[CHG] コマンドの呼び出し方法を変更(run関数の引数にinfoを加えた)
      ※以前までの仕様のコマンドファイルは起動できない
[CHG] イミディエイトモードの挙動を調整した
[BUG] WinAPI.GetWindowRect()の返す値がずれていた問題を修正
[BUG] 設定を再読み込みするたびにメモリ使用量が増えていく問題を修正
      ※内部でPythonEngineを作り直さないことにした

コマンドの仕様変更

自作のコマンドを作っている方はほとんどいないと思いますが、今回二点変更しましたので合わせて変更をお願いします。

run関数の引数を変更

これまですべてのコマンドクラスは以下の形にしていましたが

def run(self, arg_list):
  ...

次のように変更になります。

def run(self, info, arg_list):
  ...

今まではこっそり「info」という情報をコマンドに渡していたのですが、実行時にコマンドに渡すウィンドウ情報とそのスコープ(使用できる範囲)を明示したかったのでこのようにしました。

コマンド用ライブラリの場所変更

これまでにもコマンド作成を簡単にするために、いくつかのコマンド用ではないファイルをcommandフォルダに入れていました。それらのファイルは先頭に「_」を付けて区別していましたが、ファイルの数が徐々に増えてきたのでcommand/libフォルダに移動しました。
これに伴ってこのような記述は

from _restore_window import RestoreWindow

次の通りになります。

from lib.restore_window import RestoreWindow

ご面倒をおかけしますがよろしくお願いします。

新しいコマンドの使い方

これまでのコマンドは「いったん起動して何か処理してそのまま終了する」という形のものしかありませんでしたが、ユーザの入力を連続して受け付けるコマンドを作成することもできます。
今回は対象のウィンドウを移動したりリサイズするmoveコマンドを追加してみました。入力を受け付けるフォームの作成は少し面倒なので、lib/input_form.pyにまとめてあります。使い方はmove_win.pyのコマンドを参考にしてみてください。