前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0

26.3. GUI フレームワーク用マクロ

26.3.1. イベント ハンドラ宣言用マクロ

イベント ハンドラは HANDLER_DECLARE_ で始まる名前のマクロで宣言します。

表 26.7. イベント ハンドラ宣言用マクロ

マクロ 意味
HANDLER_DECLARE_VOIDRENDER 描画ハンドラ
HANDLER_DECLARE_VOIDSTART アプリ開始ハンドラ
HANDLER_DECLARE_BOOLSTART アプリ開始ハンドラ
HANDLER_DECLARE_VOIDSTOP アプリ終了ハンドラ
HANDLER_DECLARE_BOOLSTOP アプリ終了ハンドラ
HANDLER_DECLARE_VOIDRESUME レジューム ハンドラ
HANDLER_DECLARE_BOOLRESUME レジューム ハンドラ
HANDLER_DECLARE_VOIDSUSPEND サスペンド ハンドラ
HANDLER_DECLARE_BOOLSUSPEND サスペンド ハンドラ
HANDLER_DECLARE_VOIDDIALOG ダイアログ ハンドラ
HANDLER_DECLARE_BOOLDIALOG ダイアログ ハンドラ
HANDLER_DECLARE_VOIDMENU メニュー ハンドラ
HANDLER_DECLARE_BOOLMENU メニュー ハンドラ
HANDLER_DECLARE_VOIDCONTROL コントロール ハンドラ
HANDLER_DECLARE_BOOLCONTROL コントロール ハンドラ
HANDLER_DECLARE_VOIDVOID 汎用ハンドラ
HANDLER_DECLARE_BOOLVOID 汎用ハンドラ
HANDLER_DECLARE_VOIDEVENT 汎用ハンドラ
HANDLER_DECLARE_BOOLEVENT 汎用ハンドラ
[Note] 注意
引数はハンドラ名です。

26.3.2. イベント ハンドラ実装用マクロ

イベント ハンドラは HANDLER_IMPLEMENT_ で始まる名前のマクロで実装します。

表 26.8. イベント ハンドラ実装用マクロ

マクロ 意味 第3引数 第4引数 第5引数
HANDLER_IMPLEMENT_VOIDRENDER 描画ハンドラ graphics ( グラフィック オブジェクト ) なし なし
HANDLER_IMPLEMENT_VOIDSTART アプリ開始ハンドラ environment なし なし
HANDLER_IMPLEMENT_BOOLSTART アプリ開始ハンドラ environment なし なし
HANDLER_IMPLEMENT_VOIDSTOP アプリ終了ハンドラ quitable なし なし
HANDLER_IMPLEMENT_BOOLSTOP アプリ終了ハンドラ quitable なし なし
HANDLER_IMPLEMENT_VOIDRESUME レジューム ハンドラ environment なし なし
HANDLER_IMPLEMENT_BOOLRESUME レジューム ハンドラ environment なし なし
HANDLER_IMPLEMENT_VOIDSUSPEND サスペンド ハンドラ reason info なし
HANDLER_IMPLEMENT_BOOLSUSPEND サスペンド ハンドラ reason info なし
HANDLER_IMPLEMENT_VOIDDIALOG ダイアログ ハンドラ result dialog (へのポインター) なし
HANDLER_IMPLEMENT_BOOLDIALOG ダイアログ ハンドラ result dialog (へのポインター) なし
HANDLER_IMPLEMENT_VOIDMENU メニュー ハンドラ result menu (へのポインター) なし
HANDLER_IMPLEMENT_BOOLMENU メニュー ハンドラ result menu (へのポインター) なし
HANDLER_IMPLEMENT_VOIDCONTROL コントロール ハンドラ result control (へのポインター) なし
HANDLER_IMPLEMENT_BOOLCONTROL コントロール ハンドラ result control (へのポインター) なし
HANDLER_IMPLEMENT_VOIDVOID 汎用ハンドラ なし なし なし
HANDLER_IMPLEMENT_BOOLVOID 汎用ハンドラ なし なし なし
HANDLER_IMPLEMENT_VOIDEVENT 汎用ハンドラ event (イベント オブジェクト) なし なし
HANDLER_IMPLEMENT_BOOLEVENT 汎用ハンドラ event (イベント オブジェクト) なし なし
[Note] 注意
第 1 引数は所属クラス名、第 2 引数にはハンドラの名前です。第 3 引数以降はハンドラによって異なります。
[Note] 汎用ハンドラとは

「セレクトキーのみのハンドラを作成する」など、開発者の用途に合わせて任意に作成できるハンドラです。

例 26.1. 汎用ハンドラ使用例

// MyWindow クラスの定義
SFMTYPEDEFCLASS(MyWindow)
class MyWindow : public SFRTitleWindow {
    SFMSEALCOPY(MyWindow)
public:
    MyWindow(Void) static_throws;
    virtual ~MyWindow(Void)
    
   // 汎用ハンドラの宣言
   HANDLER_DECLARE_VOIDVOID(OnSelectKey)
};

// 汎用ハンドラの登録
// セレクトキーのみのハンドラを登録する
RegisterHandler(SFEVT_KEY, AVK_SELECT, HANDLER_AFTER, HANDLER_FUNCTION(OnSelectKey));

// 汎用ハンドラの実装
// セレクトキーのみなので、イベントパラメーターを取得しない
HANDLER_IMPLEMENT_VOIDVOID(MyWindow, OnSelectKey)
{
    // アプリを終了する
    Terminate();
    return;
}

26.3.3. イベント ハンドラ関数登録用マクロ

イベント ハンドラ関数は HANDLER_ で始まる名前のマクロで登録します。

表 26.9. イベント ハンドラ関数登録用マクロ

マクロ 意味
HANDLER_FUNCTION イベント ハンドラ関数へのポインターとリファレンス値を渡します。
HANDLER_NULL 実際のイベント ハンドラ関数は呼び出されませんが、イベントは処理されたこととみなします。
[Note] 注意
引数はイベント ハンドラ関数名を指定します。