スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« GUI部品の作成とか | トップページ | 「基本無料」はやめようかと »

イベントの処理とか

昨日書いた様に、ここの所、Mirror-DTCの次バージョンに搭載しようとしているリモートアプリ機能用に自前のGUI部品を作ったりしているのだが、真面目にやるとキリがない。なので、とりあえず、使える部品は制限しつつ、実際に使える様にしてみているのだが。

今の所、用意したGUI部品としては、ラベル、ボタン、チェックボックス、コンボボックス、テキストボックスがある。

で、作者製ソフトの多くでは、上記部品があれば、設定ダイアログなんかは作成可能なので、とりあえず、上記だけを使って、クリップボードビューアアプリを作ってみようとしているのだが、今の所、上記の部品は、表示は出来て、操作も可能なのだが、各種イベントの通知手段はない状況だ。

なので、イベントの通知手段を追加する必要があるのだが、今現在開発中のGUI部品というのは、Windowsの通常のGUIでは個別に持つ事になっているウインドウは持たせていないので、Windowsの通常のイベント処理機構である所のメッセージのやり取りは行えない。

もっとも、GUI部品がウインドウを持っていて、そのウインドウが各種イベントメッセージを受け取る、なんて仕組みはmacOSにもLinuxにも存在していない。

つまり、イベントの通知方法というのは、他にも色々と考えられるのだが、作者的には、まず、コールバック関数を使おうか、と、してみた。

具体的には、例えば、GUI部品のボタンでボタンが押された時に呼び出されるべきコールバック関数をGUI部品を使うアプリ側で登録しておく格好にしようか、と、思ったのだが、実際にアプリを組もうとするとGUI部品は色々と使う事になる筈なので、それぞれに個別のコールバック関数を登録するのも面倒かなあ、と、思った訳だ。

なので、今は、イベントキューを使う格好にしてみている。

具体的には、各種GUI部品でイベントが発生すると、唯一のイベントキューにイベントメッセージを書きこんで置く格好にし、GUI部品を使うアプリ側で、そのイベントキューに書きこまれたメッセージを読みだして、必要に応じた処理を行う格好にしようかとしている訳だ。

こういう格好にしておくと、アプリ側のイベント処理は一か所に纏めて書けるので、書きやすいのだが、Windowsの通常アプリの場合、GUI部品からのイベント処理関数は、通常は、個別に用意されるので、Windowsアプリを書きなれた人には、違和感がある方式にはなるかもしれない。

と、いう事で、自前のGUI部品を作るとなると、色々と大変なのだが、その実体は、OSが提供するウインドウなんかとは無関係になっているので、例えば、Windowsでは、デスクトップの解像度以上の解像度を持ったウインドウは、通常、作成できないのだが、自前のGUIオブジェクトを使ったリモートアプリでは、そんな制限は無くなる訳だ。

つまり、1366x768の液晶画面しかない様なノートPCにMirror-DTC接続すれば、そのクライアント側では、フルHDの解像度を持ったリモートアプリを普通に使える様になる。

更に言えば、Mirror-DTCクライアントというのは、クライアントのウインドウサイズに合わせて表示を拡大/縮小する機能がある訳なので、逆に、1366x768の液晶画面しかないノートPCで、自分自身に接続してリモートアプリを利用する格好にすれば、そのPCの解像度よりも解像度が高いアプリを利用可能にもなる訳だ。

まあ、そんな事は、Mirror-DTCの様なリモートデスクトップソフトでなくても、やろうと思えばやれる事ではあるのだが、Mirror-DTCを使って実現しておけば、ローカル環境でも、リモート環境でも、全く同じリモートアプリを使える様になる利便性は無い事もない筈だ。

 

« GUI部品の作成とか | トップページ | 「基本無料」はやめようかと »

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