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

27.1. 標準トレーサ

レスポンダヘのイベント配信規則はそれぞれのレスポンダのトレーサに設定します。

つまり、トレーサは親レスポンダから子レスポンダにどのようにイベントが配信されるかを制御します。

たとえば、SFEVT_KEY イベントは順にフォーカスを持つレスポンダを辿ること、SFEVT_RESUME イベントはすべてのレスポンダに通知されることをトレーサに設定します。

トレーサは親レスポンダから子レスポンダに継承されます。 トレーサに設定されるイベント配信規則の多くは、 標準トレーサとしてデフォルトで SFRApplication クラスに登録されています。 また、メニューやコントロールに関係するイベントの配信規則は、 標準トレーサとしてデフォルトでそれぞれ SFRMenu または SFRControl クラスに登録されています。 デフォルトで設定された標準トレーサの内容は、新しいイベント配信規則を登録するだけで変更可能です。

[Note] 注意
親レスポンダから継承したトレーサは子レスポンダでオーバーライドできます。

SophiaFramework には、「標準トレーサ」としてデフォルトで以下のイベント配信規則がトレーサに設定されています。

[Note] 注意
通常、標準トレーサの設定で問題なくアプリを開発できます。特に、トレーサの設定を変更する必要はありません。

■ トレーサの規則

  1. イベント タイプと第 1 パラメーター : BREW イベントと同じ
  2. トレース順序 : 子階層へイベントを通知する規則
  3. 強制通知 : イベントを処理した後でイベントを子レスポンダへ通知するかどうかのフラグ
  4. 状態フィルタ : イベントを受け取れる状態

表 27.1. SophiaFramework 標準トレーサの設定

トレーサの要素
1 :
イベントの範囲:SFEVT_APPLICATION_CLASS_BEGIN から SFEVT_APPLICATION_CLASS_END
トレース順序:なし
強制通知:なし
状態フィルタ:すべての状態
2 :
イベントの範囲:SFEVT_APP_SUSPEND
トレース順序:前面から背面へ
強制通知:あり
状態フィルタ:すべての状態
3 :
イベントの範囲:SFEVT_APP_RESUME
トレース順序:前面から背面へ
強制通知:あり
状態フィルタ:すべての状態
4 :
イベントの範囲:SFEVT_KEY_CLASS_BEGIN から SFEVT_KEY_CLASS_END
トレース順序:フォーカス
強制通知:なし
状態フィルタ:可視・応答可能・フォーカス・ターゲッティングがすべて設定されている状態
5 :
イベントの範囲:SFEVT_CONTROL_CLASS_BEGIN から SFEVT_CONTROL_CLASS_END
トレース順序:フォーカス
強制通知:なし
状態フィルタ:可視・応答可能・フォーカス・ターゲッティングがすべて設定されている状態
6 :
イベントの範囲:SFEVT_DIALOG_CLASS_BEGIN から SFEVT_DIALOG_CLASS_END
トレース順序:フォーカス
強制通知:なし
状態フィルタ:可視・応答可能・フォーカス・ターゲッティングがすべて設定されている状態
7 :
イベントの範囲:SFEVT_SHELL_CLASS_BEGIN から SFEVT_SHELL_CLASS_END
トレース順序:なし
強制通知:あり
状態フィルタ:すべての状態
8 :
イベントの範囲:SFEVT_DEVICE_CLASS_BEGIN から SFEVT_DEVICE_CLASS_END
トレース順序:なし
強制通知:あり
状態フィルタ:すべての状態
9 :
イベントの範囲:SFEVT_CLIPBOARD_CLASS_BEGIN から SFEVT_CLIPBOARD_CLASS_END
トレース順序:なし
強制通知:あり
状態フィルタ:すべての状態
10 :
イベントの範囲:SREVT_RESPONDER_RENDER
トレース順序:なし
強制通知:あり
状態フィルタ:可視状態
11.1 :
イベントの範囲:SREVT_RESPONDER_TERMINATE
トレース順序:なし
強制通知:なし
状態フィルタ:すべての状態
11.2 :
イベントの範囲:SREVT_RESPONDER_TERMINATE, SRP16_TERMINATE_TRY
トレース順序:前面から背面へ
強制通知:あり
状態フィルタ:すべての状態
12 :
イベントの範囲:SREVT_MENU
トレース順序:なし
強制通知:なし
状態フィルタ:すべての状態
13 :
イベントの範囲:SREVT_DIALOG
トレース順序:なし
強制通知:なし
状態フィルタ:すべての状態
14 :
イベントの範囲:SREVT_CONTROL
トレース順序:なし
強制通知:なし
状態フィルタ:すべての状態
[Note] 注意

SFEVT_KEY は、通常の用途ではどれか一つのレスポンダがイベントを処理した場合は通知を続ける必要は無いため強制通知フラグは設定されていません。

SFEVT_RESUME などはすべてのレスポンダにイベントの通知する必要があるので、強制通知フラグが設定されています。