スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« TiClickEffector for Ubuntu Ver1.0.0を公開 | トップページ | 主要部分の実装は完了 »

キーボードビューアの開発を開始

今は、Ubuntu環境用の自製ソフト環境を拡充しようとしていて、その第一弾となるマウスクリックエフェクターは、昨日リリースしたので、今日は、その第二弾となるキーボードビューアの開発を開始した。当初、楽勝か、と、思ったのだが・・・

マウスクリックエフェクターは透明背景のウインドウに半透明の画像描画が必要で、かつ、そのウインドウはマウスイベントを通過させなければならなかった。
 
つまり、かなり特殊なウインドウを作成する必要があったのだが、そういうウインドウは、Windows / macOSでも作成は可能なのだが、作成方法は異なった訳だ。
 
そして、Ubuntuでも作成は可能だったのだが、結構、特殊な処理を色々と行わなければならなかったので、その調査とテストに数日を要した。
 
なので、マウスクリックエフェクターについては、3月の1日くらいから調査を始めて、リリースは昨日の11日だったので、開発には約10日を要した訳だ。
 
これに対して、キーボードビューアというのは、普通のウインドウに普通に描画し、キーボードの状態を監視しつつ、それに変化があったら描画内容を変更するだけだ。
 
そして、その描画に必要になる処理ルーチンの大枠はWindows版から持ってこれるし、実際の描画処理についても、AGMPlayer等で使っているコードを持ってこれる訳だ。
 
で、上記を見ていると、キーボードビューアにも、キーボード状態の監視ルーチンという新規要素があるじゃないか、と、思う人もいるかもしれないのだが、実際の所、そのルーチンについても、マウスクリックエフェクターの開発時に開発済みで、更に言えば、マウスクリックエフェクターにも実装して利用している。
 
これは何故なのか、というと、マウスクリックエフェクターでは各種機能をキーボードショートカットで実行できるのだが、このキーボードショートカットというのは、キーボード状態を監視して実現しているからだ。
 
と、言う事なので、キーボードビューアについては、新しい処理コードは必要ないし、コード量は少ないので、今日中にも完成する様な気がした訳だ。
 
しかし、イザ、開発を初めてみると、いきなり、ウインドウサイズをどうやって変更するか、という所で時間を取られてしまった。
 
具体的には、キーボードビューアはキーボードの形状を模した画像を表示するので、ウインドウのタテヨコ比は、常に、その画像にフィットさせなければならないのだが、マウスでウインドウをドラッグすれば、ウインドウサイズは自由に変更可能な訳だ。
 
このため、Windows版では、サイズ変更中メッセージの処理ルーチン内で、ウインドウサイズを更に変更して、常時、ウインドウの縦横比を正しく保つ様にしてあるのだが、Ubuntu環境では、似た様な処理が上手く動作しなかった訳だ。
 
まあ、サイズ変更イベントの処理中に再度サイス変更を行う、なんて事をやっていると、いつまでたっても、サイズ変更が終わらない、みたいな事にも成りそうなのだが、Windows版では何とかなっていたし、macOS版の各種ソフトでも、似た様な事はやってきていた。
 
しかし、考えてみると、Ubuntu版では今回が初めてだったので、トラブってしまった訳なのだが、とりあえず、今日のところは、サイズ変更中のサイズ変更は禁止することにして、ウインドウサイズの再調整については、サイズ変更が終了してから行う格好にした。
  
後は、普通に作業を進められそうなので、多分、明日には動作していると思われるので、こちらについても、今週中には、リリースすることになりそうだ。

« TiClickEffector for Ubuntu Ver1.0.0を公開 | トップページ | 主要部分の実装は完了 »

トラックバック


この記事へのトラックバック一覧です: キーボードビューアの開発を開始:

« TiClickEffector for Ubuntu Ver1.0.0を公開 | トップページ | 主要部分の実装は完了 »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google