Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[8163] 独自ウィジェットを作った場合のイベントの発行の仕方 / sss
対応済み [質問,SDK,widget] 返信
MQWidgetBaseを継承して独自のウィジェットを作った場合に、
左クリック(LeftDownEvent)を押されたときに何かしらの処理をして
チェンジイベント(ChangedEvent)を発行したいとします。
この時独自ウィジェットにAddChangedEventを追加しするとして(中身はMQWidget.hからコピペ)
イベントを発行するには、m_Eventsに登録されたリスナーにinvokeしてやらないと
いけないと思うのですが、イベント発行の仕方が良くわかりません。
m_Eventsはprivateなのでアクセスできませんし…
というわけで独自ウィジェットを作った場合のイベントの発行の仕方を教えてください。
2019-04-01 16:03
[8164] Re: 独自ウィジェットを作った場合のイベントの発行の仕方 / 管理者
登録されたイベント関数はイベント発生時のみEventCallback()関数を通じて呼び出され、プラグイン内から任意のタイミングで呼び出す方法は用意されてておりません。
だいたいのケースでは特定のウィジェットでイベント時に呼び出す関数は決まっているでしょうから、その関数を直接呼び出すだけOKだと思います。それが決まっていない場合でも、既存のイベントの仕組みを利用しなくても自前でコールバック関数を登録できるような仕組みにしておれば大丈夫だと思います。どうしても既存のイベントの仕組み内で行いたい場合なら、SDKを書き換えてEventCallback()以外からもm_Eventsをinvoke()できるような関数を追加してやれば実現できないことはありません。
2019-04-01 18:47
[8165] Re: 独自ウィジェットを作った場合のイベントの発行の仕方 / sss
わかりました。
既存のシステムがあるのなら踏襲したほうが良いと思ったのですが、
独自実装が推奨されるなら、そうしたいと思います。
SDK書き換えは後々面倒なので、こちらは避けたいと思います。
2019-04-01 19:50