--- nono/wx/wxuimessage.h 2026/04/29 17:05:00 1.1 +++ nono/wx/wxuimessage.h 2026/04/29 17:05:48 1.1.1.4 @@ -4,11 +4,14 @@ // Licensed under nono-license.txt // +// +// UI スレッドへのメッセージ機構 (GUI 側) +// + #pragma once #include "wxnono.h" #include "uimessage.h" -#include wxDECLARE_EVENT(NONO_EVT_UIMESSAGE, wxCommandEvent); @@ -16,16 +19,17 @@ class WXUIMessage { public: // VM からの UIMessage を wxWidgets のイベントハンドラに接続する - static void Connect(UIMessage::ID id, wxEvtHandler *dest, + static void Connect(UIMessage::ID id, wxEvtHandler *win, wxObjectEventFunction function); // イベントハンドラの接続を解除する - static void Disconnect(UIMessage::ID id, wxObjectEventFunction function); + static void Disconnect(UIMessage::ID id, wxEvtHandler *win, + wxObjectEventFunction function); - // UIMessage を処理する - // (VM スレッドで実行される) - static void Process(UIMessage::Queue& queue); + // UIMessage のコールバック。 + // (呼び出し元スレッドで実行される) + static void Process(uint id, int arg); - private: - static std::array dest_table; + // すべてのハンドラが解除されているかチェックする (開発用) + static void AssertAllDisconnected(); };