« 塗潰し処理 | メイン | 1.0.0以上にしないといけない »

2005年09月15日

SmartScrollプラグイン開発:: メタセコイア用プラグイン

    

スクリプト機能などは置いといてメタセコイア用プラグインを作ることにした。
SmartScrollのプラグインでは、自分自身を適用するかどうかを対象アプリのHWNDを使って判断しないといけない。
が、Metasequoiaのクラス名はユニークなものではないので、クラス名のみで判断するのはまずそうだ。
そこで、実行ファイル名で判断するようにしようとしたが、HWNDから実行ファイル名を得るAPIが見つからない。
ググってみたら、ウィンドウハンドルから .EXE 名を取得するには?と言うぴったりのページが見つかった。
見てみると面倒なことになってる。
ま、サンプルコードをもらうのでいいけど。

早速、SmartScroll プラグインSDKのサンプルプログラムを改造して作っていく。
ボールを回転させるとマウスの右ボタンか真中ボタン、左右ボタン、左ボタンを押しながらマウスの移動イベントを送る処理を書いたが、動きがおかしい。
DOWN、移動、UPのイベントを瞬時に送っているので、うまくいかないのだろうか?
そこで、移動が開始された時に、DOWNイベントを送り、移動が約200ms間ない場合にUPイベントを送るように変更。
これでうまく動くようになった。
また、どのボタンを押しながら移動させるかは、ホイールで選択できるようにした。
が、現在どのボタンを押しながら移動するようになっているのかわかりづらい。
切り替え時にToolTipで表示しようかとも思ったが、強引にウィンドウのタイトルを書き換えてしまうことにした。
"Metasequoia 開いているファイル名"と表示されているところを、とりあえず"Metasequoia 右ボタン移動"と書き換えるようにしてみた。
だいぶわかりやすくなったが、拡縮か、移動、回転と表示されたほうがわかりやすいと思い、そのようにした。(設定依存だけど、標準設定と決め付けている)
いい感じだ。
ファイル名はわからなくなったけど、そこはほとんど見ないので問題ない。
まあ、おいおいファイル名も残すようにしようとは思うが。

これで大体目的は達成した。
ショートカットキーも登録できるので、登録すればボタン一発。
で、少し触ってみる。
なんか思ったよりも使い勝手は上がっていないような……
どうもマウスカーソルが動いてしまっているのが問題のような気がする。

まだまだ改良の余地はありそうだな。



投稿者 Takenori : 2005年09月15日 20:20




comments powered by Disqus
Total : Today : Yesterday : なかのひと