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

12.2. 標準トレーサのカスタマイズ

イベント配信規則をトレーサに追加登録することによって、SophiaFramework 標準トレーサをカスタマイズできます。

RegisterTracer 関数でイベント配信規則をトレーサに登録し、 UnregisterTracer 関数でトレーサに登録されているイベント配信規則を破棄します。

例 12.1. SREVT_CONTROL イベントを可視オブジェクトに、子階層への通知は前面から背面で強制通知する規則の登録

SFRResponderPtr responder;
SFCError        error;

error = responder->RegisterTracer(SREVT_CONTROL, 
                                  STATUS_VISIBLE | TRACER_PROVIDE, 
                                  TRACER_FORWARD);

例 12.2. SFEVT_KEY から SFEVT_KEY_HELD までのイベントを、応答可能な可視オブジェクト、子階層への通知なし、強制通知なしで通知する規則の登録

SFRResponderPtr responder;
SFCError        error;

error = responder->RegisterTracer(SFEVT_KEY, 
                                  SFEVT_KEY_HELD, 
                                  STATUS_VISIBLE | STATUS_ENABLE, 
                                  TRACER_NONE);

トレーサに登録された、ひとつのイベントに対する 2 つ以上のイベント配信規則は最後に登録されたものが有効となります。

[Note] 注意
以下の 2 つのイベント配信規則のトレーサへの登録内容は異なります。

例 12.3. イベント配信規則のトレーサへの登録 1

SFRResponderPtr responder;

responder->RegisterTracer(SFEVT_KEY, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_NONE);
responder->RegisterTracer(SFEVT_KEY, 
                          SFEVT_KEY_RELEASE, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_NONE);
responder->RegisterTracer(SFEVT_KEY, 
                          SFEVT_KEY_RELEASE, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_FOCUS);

例 12.4. イベント配信規則のトレーサへの登録 2

SFRResponderPtr responder;

responder->RegisterTracer(SFEVT_KEY, 
                          SFEVT_KEY_RELEASE, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_NONE);
responder->RegisterTracer(SFEVT_KEY, 
                          SFEVT_KEY_RELEASE, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_FOCUS);
responder->RegisterTracer(SFEVT_KEY, 
                          STATUS_VISIBLE | STATUS_ENABLE, 
                          TRACER_NONE);