SophiaFramework UNIVERSE 5.3 |
■ 仕様と使い方
ダイアログは、 ルート[SFZRoot]内に配置されるように設計されたレスポンダです。
すべてのダイアログは SFZDialog クラスを継承し、 実領域よりも大きく設定された仮想領域のスクロール機能とフォーカスの移動機能に加え、 一定時間経過後に自動的にダイアログを閉じる機能とデフォルトのキー操作機能を提供します。
たとえば、 SFZMessageDialog や SFZQuestionDialog などのダイアログは、 このクラスを継承して実装しています。
ウィンドウと同様にコントロールを配置するためのコンテナとして利用できますが、 ダイアログは一時的な画面を表示しユーザーに結果を選択させる目的で使用します。
具象ダイアログはアプリ開発ですぐに使うことができる部品であり、 抽象ダイアログはカスタマイズされたユーザー定義ダイアログを作成するための起点(基底クラス)となります。
表 258. 具象ダイアログの種類
クラス名 | 解説 |
---|---|
SFZDialog | コントロールやコンテナなどを配置する汎用ダイアログです。 |
SFZMessageDialog | 通知メッセージを表示するダイアログです。 |
SFZQuestionDialog | 選択メッセージを表示するダイアログです。 |
重要 | |
---|---|
すべての具象ダイアログにおいて、 SFYResponder::SetParent 関数、 SFYResponder::SetState 関数、 SFYResponder::SetRealBound 関数の呼び出しは必須です。 その他の関数の呼び出しは省略可能です。 ※ SFYResponder::SetFrame 関数を呼び出してフレームをダイアログに装着する場合、 フレームの SFYResponder::SetRealBound 関数を呼び出すと、 ダイアログの実領域がフレーム余白領域に合わせて自動的に設定されるので、SFYResponder::SetRealBound 関数の呼び出しは省略されます。 |
デフォルトの背景色 | |
---|---|
SFZDialog クラスでは、 SFYWidget::SetBackgroundColor 関数で設定する背景色がデフォルトで灰色[SFXRGBColor(0xEE, 0xEE, 0xEE,0x00)]に設定されています。 |
□ダイアログを表す具象クラスとしての汎用ダイアログ[SFZDialog]
汎用ダイアログ[SFZDialog]は、 各種コントロールやコンテナを配置するための汎用的なダイアログとして機能します。
コントロールやコンテナが配置されている場合、 SFYContainer::SetScrollDownKey / SFYContainer::SetScrollUpKey / SFYContainer::SetPageDownKey / SFYContainer::SetPageUpKey / SFYContainer::SetSnapDownKey / SFYContainer::SetSnapUpKey 関数で設定するスクロールキーでフォーカスの移動機能を利用できます。
仮想領域が実領域よりも大きい場合は、 フォーカス移動機能と連動した、仮想領域の上下方向へのスクロール機能も利用できます。
デフォルトの実装では、 汎用ダイアログ[SFZDialog]は 下記の結果イベント[SFEVT_RESPONDER_RESULT]を受信します。
開発者は、これらのイベントを受信するハンドラを登録できます。 デフォルトのハンドラは、ダイアログを閉じる処理だけを行います。
ダイアログ操作キーは、SFZDialog::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーがダイアログ操作キーとして割り当てられています。
ESCAPE キーは、SFZDialog::SetEscapeKey 関数を使用して設定します。 デフォルトでは、クリアキーが ESCAPE キーとして割り当てられています。
タイマーのキャンセル | |
---|---|
SFZDialog::ScheduleTimer 関数で設定したタイマー処理は、 ダイアログ操作キーまたは ESCAPE キーを押したときに自動的にキャンセルされます。 サスペンド時もタイマーはキャンセルされますが、 レジューム時に SFZDialog::ScheduleTimer 関数の引数に指定した時間でタイマー処理は再開されます。 ダイアログの有効状態が無効になったときもタイマーはキャンセルされます。 |
□ダイアログのサンプルコード
ダイアログ(SFZDialog)のサンプルコードです。
例 895. サンプルコード: ダイアログ[SFZMessageDialog]
// クラスの定義 SFMTYPEDEFCLASS(USRApplication) class USRApplication : public SFYApplication { SFMSEALCOPY(USRApplication) public: static SFCInvokerPtr Factory(Void); private: explicit USRApplication(Void) static_throws; virtual ~USRApplication(Void); // ダイアログ選択結果イベントを受信するハンドラ XANDLER_DECLARE_VOIDRESULT(OnResult) }; // コンストラクタ USRApplication::USRApplication(Void) static_throws { // ...(省略)... SFZDialogSmp dialog; // SFZDialog のスマートポインタ SFCError error(SFERR_NO_ERROR); // ダイアログを生成する if ((dialog = SFZDialog::NewInstance(&error)) != null) { // 親レスポンダをアプリケーションクラス(ルート)に設定する error = dialog->SetParent(GetThis()); if (error == SFERR_NO_ERROR) { // ダイアログ選択結果イベントを受信するハンドラを登録する error = dialog->RegisterHandler( SFXEventRange(SFEVT_RESPONDER_RESULT, SFEVT_RESPONDER_RESULT, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnResult) ); if (error == SFERR_NO_ERROR) { // 携帯画面領域を (20, 20) だけ縮小した領域をヒント領域にして // ダイアログに最適な領域を取得してヒント領域の中央に配置し、 // ダイアログの実領域として設定する dialog->SetRealBound(dialog->GetSuitableBound(GetLocalBound().Deflate(20, 20), SFYResponder::HORIZONTAL_CENTER, SFYResponder::VERTICAL_MIDDLE)); // 状態を「可視+活性+操作可能+フォーカス」にまとめて設定する dialog->SetState(true, true, true, true); // 最前面に移動する dialog->ToFront(); } } } static_throw(error); } // ダイアログ選択結果イベントを受信するハンドラ XANDLER_IMPLEMENT_VOIDRESULT(USRApplication, OnResult, invoker, reason, result) { // invoker にはダイアログが渡される // reason には結果イベントの P16 値が渡される // result には 0 が渡される switch (reason) { case SFP16_RESULT_OK: // 操作キー押下時 // ...(省略)... break; case SFP16_RESULT_ESCAPE: // ESCAPE キー押下時、または ScheduleTimer 関数で設定した時間が経過した時 // ...(省略)... break; } // ダイアログを閉じる invoker->Terminate(); return; }
□タイトルと枠を持つダイアログのサンプルコード
フレームの機能を利用して、 ダイアログにタイトルや枠を付けることが可能です。
タイトル付きベベルフレーム(SFZTitleBevelFrame)を持つ通知メッセージを表示するダイアログ(SFZDialog)のコードです。
例 896. サンプルコード : タイトル付きベベルフレームを持つ通知メッセージを表示するダイアログ[SFZDialog と SFZTitleBevelFrame]
// クラスの定義 SFMTYPEDEFCLASS(USRApplication) class USRApplication : public SFYApplication { SFMSEALCOPY(USRApplication) public: static SFCInvokerPtr Factory(Void); private: explicit USRApplication(Void) static_throws; virtual ~USRApplication(Void); XANDLER_DECLARE_VOIDRESULT(OnResult) // ダイアログ選択結果イベントを受信するハンドラ }; // コンストラクタ USRApplication::USRApplication(Void) static_throws { // ...(省略)... SFZTitleBevelFrameSmp frame; // フレームのスマートポインタ SFZDialogSmp dialog; // ダイアログのスマートポインタ SFCError error(SFERR_NO_ERROR); // フレームを生成する if ((frame = SFZTitleBevelFrame::NewInstance(&error)) != null) { // フレームのタイトルを "SFZMessageDialog" に設定する frame->SetText("SFZMessageDialog"); // 通常、フレームの状態は「可視+活性+操作可能+フォーカス」に設定する frame->SetState(true, true, true, true); // ダイアログを生成する if ((dialog = SFZDialog::NewInstance(&error)) != null) { // ダイアログの親レスポンダをアプリケーションクラス(ルート)に設定する error = dialog->SetParent(GetThis()); if (error == SFERR_NO_ERROR) { // ダイアログにフレームを装着する error = dialog->SetFrame(frame); if (error == SFERR_NO_ERROR) { // ダイアログ選択結果イベントを受信するハンドラを登録する error = dialog->RegisterHandler( SFXEventRange(SFEVT_RESPONDER_RESULT, SFEVT_RESPONDER_RESULT, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnResult) ); if (error == SFERR_NO_ERROR) { // 携帯画面領域を (20, 20) だけ縮小した領域をヒント領域にして // ダイアログに最適な領域を取得しヒント領域内の中央に配置し、 // ダイアログの実領域に設定する // ※自動的にダイアログの実領域をフレーム余白領域だけ拡大した領域がフレームの実領域に設定される dialog->SetRealBound(dialog->GetSuitableBound(GetLocalBound().Deflate(20, 20), SFYResponder::HORIZONTAL_CENTER, SFYResponder::VERTICAL_MIDDLE)); // ダイアログの状態を「可視+活性+操作可能+フォーカス」にまとめて設定する dialog->SetState(true, true, true, true); // ダイアログを最前面に移動する // ※自動的にフレームも最前面に移動する dialog->ToFront(); } } } } } static_throw(error); } // ダイアログ選択結果イベントを受信するハンドラ XANDLER_IMPLEMENT_VOIDRESULT(USRApplication, OnResult, invoker, reason, result) { // invoker にはダイアログが渡される // reason には結果イベントの P16 値が渡される // result には 0 が渡される switch (reason) { case SFP16_RESULT_OK: // 操作キー押下時 // ...(省略)... break; case SFP16_RESULT_ESCAPE: // ESCAPE キー押下時、または ScheduleTimer 関数で設定した時間が経過した時 // ...(省略)... break; } // ダイアログだけを閉じる // ※自動的にフレームはダイアログから切り離されて見えなくなる invoker->Terminate(); return; }
□ダイアログを表す抽象クラスとしての汎用ダイアログ[SFZDialog]
SFZDialog クラスは各種ダイアログを実装するための起点(基底クラス)となります。
たとえば、 SFZMessageDialog や SFZQuestionDialog などのダイアログは、 SFZDialog クラスを継承して実装しています。
コントロールやコンテナが配置されている場合、 SFYContainer::SetScrollUpKey や SFYContainer::SetScrollDownKey 関数で設定するスクロールキーを使用してフォーカス移動できます。 仮想領域が実領域よりも大きい場合は、 フォーカス移動機能と連動した、仮想領域の上下方向へのスクロール機能も利用できます。
デフォルトの実装では、 抽象ダイアログ [SFZDialog]は 下記の結果イベント[SFEVT_RESPONDER_RESULT]を受信します。
開発者は、これらのイベントを受信するハンドラを登録できます。 デフォルトのハンドラは、ダイアログを閉じる処理だけを行います。
ダイアログ操作キーは、SFZDialog::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーがダイアログ操作キーとして割り当てられています。
ESCAPE キーは、SFZDialog::SetEscapeKey 関数を使用して設定します。 デフォルトでは、クリアキーが ESCAPE キーとして割り当てられています。
注意 | |
---|---|
SFZDialog::ScheduleTimer 関数で設定したタイマー処理は、 ダイアログ操作キーまたは ESCAPE キーを押したときに自動的にキャンセルされます。 |
■ イベントとハンドラ
SFZDialog を継承するレスポンダでは、 SFZDialog::SFZDialog / SFYContainer::SFYContainer / SFYWidget::SFYWidget コンストラクタで登録されたハンドラの処理により、 下記のイベントを受信すると、対応する下記の仮想関数(ハンドラ)が最初に呼び出されます。 その後、開発者がレスポンダに登録したハンドラが呼び出されることになります。
注意 | |
---|---|
ハンドラの詳細については、 SFZDialog::SFZDialog / SFYContainer::SFYContainer / SFYWidget::SFYWidget コンストラクタの解説を参照してください。 |
Tip | |
---|---|
ハンドラを登録する手間を省略できるので、 通常、これらのイベント処理は仮想関数をオーバーライドして記述します。 |
表 260. イベント、仮想関数(ハンドラ)とデフォルト動作
イベント | 仮想関数(ハンドラ) | デフォルトの動作 | オーバーライド |
---|---|---|---|
SFZDialog::SetOperateKey で設定されたダイアログ操作キーの SFEVT_KEY イベント | SFZDialog::HandleOperateKey | イベントを送信する※1 | 任意 |
SFZDialog::SetEscapeKey で設定された ESCAPE キーの SFEVT_KEY イベント | SFZDialog::HandleEscapeKey | イベントを送信する※2 | 任意 |
SFYContainer::SetScrollUpKey で設定された ScrollUp キーの SFEVT_KEY イベント | SFYContainer::HandleScrollUpKey | 仮想領域を上方向にスクロールする※3 | 任意 |
SFYContainer::SetScrollDownKey で設定された ScrollDown キーの SFEVT_KEY イベント | SFYContainer::HandleScrollDownKey | 仮想領域を下方向にスクロールする※4 | 任意 |
SFYContainer::SetPageUpKey で設定された PageUp キーの SFEVT_KEY イベント | SFYContainer::HandlePageUpKey | 仮想領域を上方向に 1 ページ分スクロールする※5 | 任意 |
SFYContainer::SetPageDownKey で設定された PageDown キーの SFEVT_KEY イベント | SFYContainer::HandlePageDownKey | 仮想領域を下方向に 1 ページ分スクロールする※6 | 任意 |
SFYContainer::SetSnapUpKey で設定された SnapUp キーの SFEVT_KEY イベント | SFYContainer::HandleSnapUpKey | 仮想領域を上端までスクロールする※7 | 任意 |
SFYContainer::SetSnapDownKey で設定された SnapDown キーの SFEVT_KEY イベント | SFYContainer::HandleSnapDownKey | 仮想領域を下端までスクロールする※8 | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント | SFYWidget::HandleBoundRequest | − | 推奨 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント | SFYWidget::HandleBoundOptimize | − | 推奨 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント | SFYWidget::HandleBoundReal | − | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント | SFYWidget::HandleBoundVirtual | − | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント | SFYWidget::HandleBoundGlobal | − | 非推奨[廃止予定] |
(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST) イベント | SFYWidget::HandleRenderRequest | − | 任意 |
※デフォルトの動作にある "−" は何も実装していないことを表す。
注釈 | |
---|---|
※1. SFYResponder::InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 0), false) を実行します。 SFZDialog::HandleOperateKey 関数を呼び出す直前に、 SFZDialog::ScheduleTimer 関数で設定したタイマー処理をキャンセルする操作が内部的に行われます。 ※2. SFYResponder::InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0), false) を実行します。 SFZDialog::HandleEscapeKey 関数を呼び出す直前に、 SFZDialog::ScheduleTimer 関数で設定したタイマー処理をキャンセルする操作が内部的に行われます。 ※3. SFYContainer::ScrollUp 関数を実行します。 ※4. SFYContainer::ScrollDown 関数を実行します。 ※5. SFYContainer::PageUp 関数を実行します。 ※6. SFYContainer::PageDown 関数を実行します。 ※7. SFYContainer::SnapUp 関数を実行します。 ※8. SFYContainer::SnapDown 関数を実行します。 |
以下にユーザー定義ダイアログを作成するときに最低限必要なコードを示します。
例 897. 宣言
SFMTYPEDEFRESPONDER(USRDialog) class USRDialog : public SFZDialog { SFMSEALRESPONDER(USRDialog) SFMRESPONDERINSTANTIATEFIVE(USRDialog, SFZDialog, SFZWindow, SFYContainer, SFYWidget, SFYResponder) public: // レスポンダのタイプを定義する // 小文字と記号のみからなるタイプは予約されているので使えない enum CodeEnum { CODE_TYPE = four_char_code('U', 'D', 'L', 'G') }; SFMTYPEDEFTYPE(CodeEnum) public: static USRDialogSmp NewInstance(SFCErrorPtr exception = null); protected: explicit USRDialog(Void) static_throws; virtual ~USRDialog(Void); // 親クラスで定義されている仮想関数のうち、実装が推奨される仮想関数 virtual Void HandleBoundRequest(SFXRectanglePtr rectangle) const; virtual Void HandleBoundOptimize(SFXRectanglePtr rectangle) const; virtual Void HandleBoundReal(Void); virtual Void HandleBoundVirtual(Void); virtual Void HandleRenderRequest(SFXGraphicsPtr graphics) const; };
例 898. 実装
USRDialog::USRDialog(Void) static_throws { if (static_try()) { // レスポンダのタイプを設定する SetType(CODE_TYPE); // 初期化処理を記述する } } USRDialog::~USRDialog(Void) { // 終了処理を記述する } USRDialogSmp USRDialog::NewInstance(SFCErrorPtr exception) { return static_pointer_cast<USRDialog>(Factory(::new USRDialog, exception)); } Void USRDialog::HandleBoundRequest(SFXRectanglePtr rectangle) const { // ダイアログに最適な大きさを計算して rectangle パラメータに設定する // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨) return; } Void USRDialog::HandleBoundOptimize(SFXRectanglePtr rectangle) const { // ダイアログに最適な大きさを rectangle パラメータ内の大きさに // 収まるように計算し、rectangle パラメータに設定する // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨) return; } Void USRDialog::HandleBoundReal(Void) { // 実領域が変更された場合に再計算が必要なものがあれば、ここに記述する return; } Void USRDialog::HandleBoundVirtual(Void) { // 仮想領域が変更された場合に再計算が必要なものがあれば、ここに記述する return; } Void USRDialog::HandleRenderRequest(SFXGraphicsPtr graphics) const { // ダイアログを描画する return; }
SFZDialog::SFZDialog | SFYContainer::SFYContainer | SFYWidget::SFYWidget | SFZMessageDialog | SFZQuestionDialog | SFZWindow | SFYContainer | SFYWidget | SFXRGBColor | SFYWidget::SetBackgroundColor | SFYResponder::ToFront | SFYResponder::Terminate | 仮想領域 | 実領域 | ローカル領域 | SFZDialog::SetOperateKey | SFZDialog::SetEscapeKey | SFYContainer::SetScrollDownKey | SFYContainer::SetScrollUpKey | SFYContainer::SetPageDownKey | SFYContainer::SetPageUpKey | SFYContainer::SetSnapDownKey | SFYContainer::SetSnapUpKey | キーイベント[SFEVT_KEY] | 領域イベント[SFEVT_RESPONDER_BOUND] | 描画イベント[SFEVT_RESPONDER_RENDER] | フレーム | ダイアログ(基礎編)
コンストラクタ/デストラクタ |
---|
SFZDialog( Void ) SFZDialog クラスのコンストラクタです。
|
~SFZDialog( Void ) SFZDialog クラスのデストラクタです。
|
パブリック関数 | |
---|---|
Void |
CancelTimer( Void ) タイマーをキャンセルします。
|
AVKType |
GetEscapeKey( Void ) ESCAPE キーを取得します。
|
AVKType |
GetOperateKey( Void ) 操作キーを取得します。
|
static SFZDialogSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
Void |
RewindTimer( Void ) ダイアログが自動的に閉じるまでの時間を再設定します。
|
Void |
ScheduleTimer(
UInt32 param
)
指定時間経過後に、
ESCAPE キー押下と同等の処理が行われるようにタイマーをスケジュールします。
|
Void |
SetEscapeKey(
AVKType param
) ESCAPE キーを設定します。
|
Void |
SetOperateKey(
AVKType param
) 操作キーを設定します。
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
SFYResponderSmp |
GetChildBack( Void )
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SInt32 |
GetChildCount( Void )
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront( Void )
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYDistributerPtr |
GetDistributer( Void )
(SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRectangle |
GetGlobalBound( Void )
(SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
|
UInt32 |
GetID( Void )
(SFYResponder から継承)
このレスポンダの ID を取得します。
|
SFXRectangle |
GetLocalBound( Void )
(SFYResponder から継承)
このレスポンダのローカル領域を取得します。
|
SInt32 |
GetNthBackward( Void )
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward( Void )
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
AVKType |
GetPageDownKey( Void )
(SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールする PageDown キーを取得します。
|
AVKType |
GetPageUpKey( Void )
(SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールする PageUp キーを取得します。
|
SFYResponderSmp |
GetParent( Void )
(SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
|
Bool |
GetPropertyTransparent( Void )
(SFYResponder から継承)
このレスポンダの透過属性を取得します。
|
SFXRectangleConstRef |
GetRealBound( Void )
(SFYResponder から継承)
このレスポンダの実領域を取得します。
|
VoidPtr |
GetReference( Void )
(SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
|
SFYRendererPtr |
GetRenderer( Void )
(SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
|
SFYResponderSmp |
GetRoot( Void )
(SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
|
AVKType |
GetScrollDownKey( Void )
(SFYContainer から継承)
仮想領域を下方向にスクロールステップ分スクロールする ScrollDown キーを取得します。
|
Bool |
GetScrollRepeat( Void )
(SFYContainer から継承)
連続スクロールフラグの値を取得します。
|
SInt16 |
GetScrollStep( Void )
(SFYContainer から継承)
スクロールステップを取得します。[単位 : ピクセル]
|
AVKType |
GetScrollUpKey( Void )
(SFYContainer から継承)
仮想領域を上方向にスクロールステップ分スクロールする ScrollUp キーを取得します。
|
AVKType |
GetSnapDownKey( Void )
(SFYContainer から継承)
仮想領域を下端までスクロールする SnapDown キーを取得します。
|
AVKType |
GetSnapUpKey( Void )
(SFYContainer から継承)
仮想領域を上端までスクロールする SnapUp キーを取得します。
|
Bool |
GetStateActive(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの活性状態を取得します。
|
Bool |
GetStateEnable(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
|
Bool |
GetStateFocus(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
|
Bool |
GetStateValid(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの有効状態を取得します。
|
Bool |
GetStateVisible(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの可視状態を取得します。
|
SFXRectangle |
GetSuitableBound( Void )
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXRectangle |
GetSuitableBound(
SFXRectangleConstRef rectangle
)
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXRectangle |
GetSuitableBound(
SFXRectangleConstRef param
, HorizontalEnum horizontal
, VerticalEnum vertical
)
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXMargin |
GetSuitableMargin( Void )
(SFYResponder から継承)
このレスポンダのフレーム余白領域を取得します。
|
SFCType |
GetType( Void )
(SFYResponder から継承)
このレスポンダのタイプを取得します。
|
SFXRectangleConstRef |
GetVirtualBound( Void )
(SFYResponder から継承)
このレスポンダの仮想領域を取得します。
|
Bool |
HasFrame( Void )
(SFYResponder から継承)
このレスポンダがコンテントレスポンダであるかどうかを判定します。
|
Void |
Initialize( Void )
(SFYResponder から継承)
このレスポンダを初期化します。
|
Void |
Invalidate( Void )
(SFYResponder から継承)
指定された領域を再描画領域に登録します。
|
Void |
Invalidate(
SFXRectangleConstRef param
)
(SFYResponder から継承)
指定された領域を再描画領域に登録します。
|
Void |
InvokeBackward(
SFXEventConstRef event
, Bool overload
, BoolPtr result = null
)
(SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します
(ハンドラは登録順に起動されます)。
|
Void |
InvokeForward(
SFXEventConstRef event
, Bool overload
, BoolPtr result = null
)
(SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します
(ハンドラは登録の逆順に起動されます)。
|
Bool |
IsBack( Void )
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsFrame( Void )
(SFYResponder から継承)
このレスポンダがアタッチメントフレームであるかどうかを判定します。
|
Bool |
IsFront( Void )
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsRoot( Void )
(SFYResponder から継承)
このレスポンダがルートレスポンダであるかどうかを判定します。
|
Bool |
PageDown( Void )
(SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールします。
|
Bool |
PageUp( Void )
(SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールします。
|
SFCError |
Recover( Void )
(SFYResponder から継承)
デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstRef range
, SFYHandler::RuleRecConstRef rule
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstRef range
, SFYHandler::HandlerSPP spp
, VoidPtr reference
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::HandlerSPPConstPtr spp
, VoidPtrConstPtr reference
, SInt32 length
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstRef range
, SFYTracer::RuleRecConstRef rule
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstRef range
, SFYTracer::OrderEnum order
, SFYTracer::StateEnum state
, Bool overload
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstPtr range
, SFYTracer::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstPtr range
, SFYTracer::OrderEnumConstPtr order
, SFYTracer::StateEnumConstPtr state
, BoolConstPtr overload
, SInt32 length
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
Render(
Bool force = false
)
(SFYResponder から継承)
このレスポンダ以下のレスポンダツリーをレスポンダ空間に再描画します。
|
Bool |
ScrollDown( Void )
(SFYContainer から継承)
仮想領域を下方向にスクロールします。
|
Bool |
ScrollUp( Void )
(SFYContainer から継承)
仮想領域を上方向にスクロールします。
|
Void |
SetBackgroundColor(
SFXRGBColorConstRef param
)
(SFYWidget から継承)
背景の色を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetPageDownKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールする PageDown キーを設定します。
|
Void |
SetPageUpKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールする PageUp キーを設定します。
|
SFCError |
SetParent(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
指定されたレスポンダをこのレスポンダの親レスポンダに設定します。
|
Void |
SetProperty(
Bool transparent
)
(SFYResponder から継承)
指定された属性をこのレスポンダに設定します。
|
Void |
SetPropertyTransparent(
Bool param
)
(SFYResponder から継承)
指定された透過属性をこのレスポンダに設定します。
|
Void |
SetRealBound(
SFXRectangleConstRef param
)
(SFYResponder から継承)
指定された領域をこのレスポンダの実領域に設定します。
|
Void |
SetReference(
VoidPtr param
)
(SFYResponder から継承)
指定された値をこのレスポンダのリファレンスに設定します。
|
Void |
SetRenderer(
SFYRendererPtr param
)
(SFYResponder から継承)
指定された描画エンジンをこのレスポンダに設定します。
|
Void |
SetScrollDownKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を下方向にスクロールステップ分スクロールする ScrollDown キーを設定します。
|
Void |
SetScrollRepeat(
Bool param
)
(SFYContainer から継承)
連続スクロールフラグを設定します。
|
Void |
SetScrollStep(
SInt16 param
)
(SFYContainer から継承)
スクロールステップを設定します。[単位 : ピクセル]
|
Void |
SetScrollUpKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を上方向にスクロールステップ分スクロールする ScrollUp キーを設定します。
|
Void |
SetSnapDownKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を下端までスクロールする SnapDown キーを設定します。
|
Void |
SetSnapUpKey(
AVKType param
)
(SFYContainer から継承)
仮想領域を上端までスクロールする SnapUp キーを設定します。
|
Void |
SetState(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
指定された値をこのレスポンダの可視、活性、操作可能、フォーカスの各状態フラグに設定します。
|
Void |
SetStateActive(
Bool param
)
(SFYResponder から継承)
指定された値をこのレスポンダの活性状態フラグに設定します。
|
Void |
SetStateEnable(
Bool param
)
(SFYResponder から継承)
指定された値をこのレスポンダの操作可能状態フラグに設定します。
|
Void |
SetStateFocus(
Bool param
)
(SFYResponder から継承)
指定された値をこのレスポンダのフォーカス状態フラグに設定します。
|
Void |
SetStateVisible(
Bool param
)
(SFYResponder から継承)
指定された値をこのレスポンダの可視状態フラグに設定します。
|
Void |
SetVirtualBound(
SFXRectangleConstRef param
)
(SFYResponder から継承)
指定された領域をこのレスポンダの仮想領域に設定します。
|
Bool |
SnapDown( Void )
(SFYContainer から継承)
仮想領域を下端までスクロールします。
|
Bool |
SnapUp( Void )
(SFYContainer から継承)
仮想領域を上端までスクロールします。
|
SFCError |
Snapshot(
SFBBitmapSmpConstRef bitmap
)
(SFYResponder から継承)
デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
|
Void |
Terminate( Void )
(SFYResponder から継承)
このレスポンダの終了処理を行います。
|
Void |
ToBack( Void )
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToFront( Void )
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToNthBackward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
UnregisterHandler(
SFXEventRangeConstRef range
, SFYHandler::RuleRecConstRef rule
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstRef range
, SFYHandler::HandlerSPP spp
, VoidPtr reference
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::HandlerSPPConstPtr spp
, VoidPtrConstPtr reference
, SInt32 length
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterTracer(
SFXEventRangeConstRef range
)
(SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
|
Void |
UnregisterTracer(
SFXEventRangeConstPtr range
, SInt32 length
)
(SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
|
プロテクト関数 | |
---|---|
Void |
HandleEscapeKey( Void )
ESCAPE キーの SFEVT_KEY イベントを受信したとき、
または ScheduleTimer 関数で指定した時間が経過したときに呼び出される関数です。
|
Void |
HandleOperateKey( Void ) 操作キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
SFYResponderSmp |
GetThis( Void )
(SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
|
Void |
HandleBoundGlobal(
SFXRectangleConstRef rectangle
)
(SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
|
Void |
HandleBoundOptimize(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
|
Void |
HandleBoundReal( Void )
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です
(実領域が変化したときの処理を行います)。
|
Void |
HandleBoundRequest(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
|
Void |
HandleBoundVirtual( Void )
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です
(仮想領域が変化したときの処理を行います)。
|
Bool |
HandlePageDownKey( Void )
(SFYContainer から継承)
PageDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Bool |
HandlePageUpKey( Void )
(SFYContainer から継承)
PageUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
HandleRenderRequest(
SFXGraphicsPtr graphics
)
(SFYWidget から継承)
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
Bool |
HandleScrollDownKey( Void )
(SFYContainer から継承)
ScrollDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Bool |
HandleScrollUpKey( Void )
(SFYContainer から継承)
ScrollUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Bool |
HandleSnapDownKey( Void )
(SFYContainer から継承)
SnapDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Bool |
HandleSnapUpKey( Void )
(SFYContainer から継承)
SnapUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFZDialog クラスを表す定数です。
|
DefaultEnum
(SFYContainer から継承)
デフォルトのスクロールステップ(単位 : ピクセル)を表す定数です。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFZDialog(Void);
このコンストラクタは、以下の初期化処理を行います。
表 261. イベントハンドラ
イベント | ハンドラの内容 |
---|---|
SFZDialog::SetOperateKey で設定された操作キーの SFEVT_KEY イベント | SFZDialog::ScheduleTimer 関数で設定したタイマー処理をキャンセルし、 SFZDialog::HandleOperateKey 関数を呼び出します。 |
SFZDialog::SetEscapeKey で設定された ESCAPE キーの SFEVT_KEY イベント | SFZDialog::ScheduleTimer 関数で設定したタイマー処理をキャンセルし、 SFZDialog::HandleEscapeKey 関数を呼び出します。 |
結果イベント[SFEVT_RESPONDER_RESULT] | このダイアログを閉じます。 |
SFZDialog::ScheduleTimer で設定されるタイマーイベント | SFZDialog::HandleEscapeKey 関数を呼び出し、画面を再描画します。 |
アプリ中断イベント[SFEVT_APP_SUSPEND] | 指定時間経過後に閉じるためのタイマー処理をキャンセルします。 |
アプリ再開イベント[SFEVT_APP_RESUME] | 指定時間経過後に閉じるためのタイマー処理を再開します。 |
注意 | |
---|---|
SFZDialog クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。 |
このコンストラクタの内部実装は以下の通りです。
/*protected */SFZDialog::SFZDialog(Void) static_throws : _state(STATE_IDLE) { static SFXRGBColor::AtomRecConst rgb[] = { {{{0x00, 0xEE, 0xEE, 0xEE}}} }; static SFXEventRange::AtomRecConst trange[] = { { SFEVT_APP_RESUME, SFEVT_APP_RESUME, SFP16_BEGIN, SFP16_END}, { SFEVT_APP_SUSPEND, SFEVT_APP_SUSPEND, SFP16_BEGIN, SFP16_END}, #if TARGET_VERSION_GE(3, 0, 0) { SFEVT_KEY_PRESS, SFEVT_KEY_RELEASE, SFP16_BEGIN, SFP16_END}, #else { SFEVT_KEY_PRESS, SFEVT_KEY_HELD, SFP16_BEGIN, SFP16_END}, #endif { SFEVT_KEY, SFEVT_KEY, SFP16_BEGIN, SFP16_END}, { SFEVT_KEY, SFEVT_KEY, SFP16_BEGIN, SFP16_END}, { SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VALID, SFP16_STATE_VALID}, {SFEVT_RESPONDER_RESULT, SFEVT_RESPONDER_RESULT, SFP16_BEGIN, SFP16_END} }; SFYHandler::RuleRec trule[lengthof(trange)]; if (static_try()) { SetType(CODE_TYPE); trule[0].spp = XANDLER_FUNCTION(OnAppResume); trule[0].reference = this; trule[1].spp = XANDLER_FUNCTION(OnAppSuspend); trule[1].reference = this; trule[2].spp = XANDLER_FUNCTION(OnShield); trule[2].reference = this; trule[3].spp = XANDLER_FUNCTION(OnKey); trule[3].reference = this; trule[4].spp = XANDLER_FUNCTION(OnRewind); trule[4].reference = this; trule[5].spp = XANDLER_FUNCTION(OnStateValid); trule[5].reference = this; trule[6].spp = XANDLER_FUNCTION(OnDialogResult); trule[6].reference = this; static_throw(RegisterHandler(atomic_cast(trange), trule, lengthof(trange))); if (static_try()) { SetBackgroundColor(rgb[0]); _timer.Set(XALLBACK_INTERNAL(OnTimer)); _msec = 0; _key.operate = AVK_SELECT; _key.escape = AVK_CLR; } } }// SFZDialog::SFZDialog // /*private */XANDLER_IMPLEMENT_VOIDRESUME(SFZDialog, OnAppResume, invoker, environment) { unused(invoker); unused(environment); if (_state == STATE_FIRE) { _timer.Schedule(_msec); } return; }// XANDLER_IMPLEMENT_VOIDRESUME(SFZDialog, OnAppResume) // /*private */XANDLER_IMPLEMENT_VOIDSUSPEND(SFZDialog, OnAppSuspend, invoker, reason, info) { unused(invoker); unused(reason); unused(info); if (_state != STATE_IDLE) { _timer.Cancel(); } return; }// XANDLER_IMPLEMENT_VOIDSUSPEND(SFZDialog, OnAppSuspend) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnShield, invoker, event) { unused(invoker); return (event.GetP16() == _key.operate || event.GetP16() == _key.escape); }// XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnShield) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnKey, invoker, event) { Bool result(false); unused(invoker); if (event.GetP16() == _key.operate) { CancelTimer(); HandleOperateKey(); result = true; } else if (event.GetP16() == _key.escape) { CancelTimer(); HandleEscapeKey(); result = true; } return result; }// XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnKey) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnRewind, invoker, event) { unused(invoker); unused(event); RewindTimer(); return false; }// XANDLER_IMPLEMENT_BOOLEVENT(SFZDialog, OnRewind) // /*private */XANDLER_IMPLEMENT_VOIDSTATE(SFZDialog, OnStateValid, invoker, reason, state) { unused(invoker); unused(reason); if (!state) { CancelTimer(); } return; }// XANDLER_IMPLEMENT_VOIDSTATE(SFZDialog, OnStateValid) // /*private */XANDLER_IMPLEMENT_VOIDRESULT(SFZDialog, OnDialogResult, invoker, reason, result) { unused(invoker); unused(reason); unused(result); Terminate(); return; }// XANDLER_IMPLEMENT_VOIDRESULT(SFZDialog, OnDialogResult) // /*private */XALLBACK_IMPLEMENT_SFXTIMER(SFZDialog, OnTimer) { SFYResponderSmp root; SFCError error; error = SFERR_NO_ERROR; if ((root = GetRoot()) != null) { if (_state == STATE_FIRE) { _state = STATE_IDLE; _msec = 0; Invalidate(); HandleEscapeKey(); error = root->Render(); } } else { error = SFERR_FAILED; } if (error != SFERR_NO_ERROR) { // internal fault! } return; }// XALLBACK_IMPLEMENT_SFXTIMER(SFZDialog, OnTimer) //
SFYResponder::SetType | SFZDialog::CodeEnum | SFYWidget::SetBackgroundColor | SFZDialog::SetOperateKey | SFZDialog::SetEscapeKey | SFZDialog::HandleOperateKey | SFZDialog::HandleEscapeKey | SFZDialog::ScheduleTimer | SFXEvent | SFXRGBColor | タイプ | イベント | キーイベント[SFEVT_KEY] | 結果イベント[SFEVT_RESPONDER_RESULT] | アプリ中断イベント[SFEVT_APP_SUSPEND] | アプリ再開イベント[SFEVT_APP_RESUME]
[ protected, virtual ] virtual ~SFZDialog(Void);
タイマーをキャンセルします。
このデストラクタの内部実装は以下の通りです。
/*protected virtual */SFZDialog::~SFZDialog(Void) { CancelTimer(); }// SFZDialog::~SFZDialog //
[ public ] Void CancelTimer(Void);
この関数は、SFZDialog::ScheduleTimer 関数によるタイマーの設定をキャンセルします。
[ public, const ] AVKType GetEscapeKey(Void);
ダイアログの ESCAPE キー。
この関数は、 SFZDialog::SetEscapeKey 関数で設定されたダイアログの ESCAPE キーを取得します。
[ public, const ] AVKType GetOperateKey(Void);
ダイアログの操作キー。
この関数は、 SFZDialog::SetOperateKey 関数で設定したダイアログの操作キーを取得します。
[ protected, virtual ] Void HandleEscapeKey(Void);
この関数は、 SFZDialog::SetEscapeKey 関数で設定した ESCAPE キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したとき、 または SFZDialog::ScheduleTimer 関数で指定した時間が経過しても操作キーや ESCAPE キーが押下されなかったときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装では、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0)] を送信します。 そして、結果ハンドラが起動されます。
注意 | |
---|---|
デフォルトの結果ハンドラの実装は、ダイアログを閉じます。 |
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZDialog::HandleEscapeKey(Void) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0), false); return; }// SFZDialog::HandleEscapeKey //
SFZDialog::SetEscapeKey | SFZDialog::ScheduleTimer | SFZDialog::SetOperateKey | SFXEvent | 結果イベント[SFEVT_RESPONDER_RESULT] | キーイベント[SFEVT_KEY]
[ protected, virtual ] Void HandleOperateKey(Void);
この関数は、SFZDialog::SetOperateKey 関数で設定した操作キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装では、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 0)] を送信します。 そして、結果ハンドラが起動されます。
注意 | |
---|---|
デフォルトの結果ハンドラの実装は、ダイアログを閉じます。 |
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZDialog::HandleOperateKey(Void) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 0), false); return; }// SFZDialog::HandleOperateKey //
[ public, static ] SFZDialogSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFZDialog クラスの新しいインスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、ダイアログのインスタンスを生成するためのコードです。
// ダイアログのインスタンスを生成する
SFZDialogSmp _dialog;
SFCError error;
if ((_dialog = SFZDialog::NewInstance(&error)) != null) {
...
}
[ public ] Void RewindTimer(Void);
この関数は、 ダイアログが自動的に閉じるまでの時間を、 前回 SFZDialog::ScheduleTimer 関数によって設定された時間に再設定します。
この関数は、 指定された時間が経過しても操作キーまたは ESCAPE キーが押下されなかった場合、 ESCAPE キーを押下したときと同等の処理が行われるようにタイマーをスケジュールします。[単位:ミリ秒]
注意 | |
---|---|
SFZMessageDialog や SFZQuestionDialog クラスの場合、 指定された時間が経過しても操作キー、ESCAPE キー、またはボタンが押下されなかったとき、 ESCAPE キーを押下したときと同等の処理が行われるようにタイマー処理をスケジュールします。 |
タイマー処理コールバックの登録と解除 | |
---|---|
指定された時間が経過すると、 SFZDialog::HandleEscapeKey 関数を呼び出し、 画面を再描画するタイマー処理コールバックを登録します。 指定された時間の経過するまでに、 SFZDialog::SetOperateKey 関数で設定する操作キー、または SFZDialog::SetEscapeKey 関数で設定する ESCAPE キーが押下されると、 このタイマー処理コールバックをキャンセルします。 サスペンド時にこのタイマー処理コールバックが登録されていると、 自動的に解除し、レジューム時に再び登録します。 その他、ダイアログの有効状態が無効になったときにこのタイマー処理コールバックが登録されていると、 自動的に解除します。 |
SFZDialog::HandleEscapeKey | SFZDialog::CancelTimer | SFZDialog::RewindTimer | SFZDialog::SetOperateKey | SFZDialog::SetEscapeKey | 状態
この関数は、ダイアログの ESCAPE キーを設定します。
この関数で設定されたキーの SFEVT_KEY イベントを受信すると、 SFZDialog::HandleEscapeKey 関数が呼び出されます。
デフォルト値: AVK_CLR
この関数は、ダイアログの操作キーを設定します。
この関数で設定されたキーの SFEVT_KEY イベントを受信すると、 SFZDialog::HandleOperateKey 関数が呼び出されます。
デフォルト値: AVK_SELECT
enum CodeEnum { CODE_TYPE = four_char_code('d', 'l', 'o', 'g') }; SFMTYPEDEFTYPE(CodeEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |