![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFRResponder.hpp>
class SFRResponder : public SFRHandler;
typedef SFRResponder& SFRResponderRef; typedef SFRResponder* SFRResponderPtr; typedef SFRResponder** SFRResponderHandle; typedef const SFRResponder ConstSFRResponder; typedef const SFRResponder& ConstSFRResponderRef; typedef const SFRResponder* ConstSFRResponderPtr; typedef const SFRResponder** ConstSFRResponderHandle;
レスポンダはイベント ハンドリングと再描画処理を管理する コンポーネントでレスポンダ モデルの根幹です。 レスポンダは管理を行うだけではなく、ウィンドウやコントロール などレスポンダを継承しているコンポーネントそのものでもあります。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| protected |
SFRResponder | SFRResponder クラスのコンストラクタです。 |
| protected |
~SFRResponder | SFRResponder クラスのデストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
FocusDown | 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusLeft | 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusNext | フォーカスを一つ次に進めます。 |
| public |
FocusPrevious | フォーカスを一つ前に戻します。 |
| public |
FocusRight | 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusUp | 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| public |
GetAttribute | アトリビュートを取得します。 |
| public |
GetBack | 子階層のレスポンダのうち検索条件に一致するレスポンダを 後ろから検索します。 |
| public |
GetBaseBound | ベース領域を親レスポンダのコンテント座標系で取得します。 |
| public |
GetBaseWorld | ベース領域を取得します。 |
| public |
GetContentBound | コンテント領域をベース領域の座標系で取得します。 |
| public |
GetContentWorld | コンテント領域を取得します。 |
| public |
GetDirector | 親レスポンダを取得します。 |
| public |
GetFocus | 子階層のレスポンダのうちフォーカスされているレスポンダを取得します。 |
| public |
GetFront | 子階層のレスポンダのうち検索条件に一致するレスポンダを前から検索します。 |
| public |
GetIndexBackward | 同階層のレスポンダのうち自分が背面から数えて何番目かを返します。 |
| public |
GetIndexForward | 同階層のレスポンダのうち自分が前面から数えて何番目かを返します。 |
| public |
GetLeft | グループ化されているレスポンダのうち 自分より前にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetMoveInterval | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を取得します。 |
| public |
GetMoveMargin | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを取得します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されています。 |
| public |
GetNext | 自分より後にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetNthBackward | 子階層のレスポンダのうち検索条件に一致するレスポンダで 後ろから数えてN番目にあるレスポンダを検索します。 |
| public |
GetNthForward | 子階層のレスポンダのうち検索条件に一致するレスポンダで 前から数えてN番目にあるレスポンダを検索します。 |
| public |
GetPrevious | 自分より前にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetReference | ユーザが自由に設定できるリファレンス値を取得します。 |
| public |
GetRight | グループ化されているレスポンダのうち 自分より後にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetScrollInterval | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を取得します。 |
| public |
GetStatusEnable | 応答可能/不可能フラグを取得します。 |
| public |
GetStatusFocus | フォーカス/非フォーカス フラグを取得します。 |
| public |
GetStatusTarget | ターゲット/非ターゲット フラグを取得します。 |
| public |
GetStatusVisible | 可視/不可視フラグを取得します。 |
| public |
GetTranslate | コンテント座標系での仮想領域の原点座標を取得します。 |
| public |
GetTravelMargin | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを取得します。 |
| public |
GetType | タイプを取得します。 |
| public |
GetVirtualBound | 仮想領域をコンテント領域の座標系で取得します。 |
| public |
GetVirtualWorld | 仮想領域を取得します。 |
| public |
Group | 他のレスポンダとグループ化します。 |
| public |
GroupMove | グループ化されているレスポンダすべてを移動します。 |
| public |
GroupScroll | グループ化されているレスポンダすべての仮想領域をスクロールします。 |
| public |
GroupSelect | グループ化されているレスポンダすべてを最前面に移動させます。 |
| public |
GroupStatusEnable | グループ化されているレスポンダすべてに対して、応答可能/不可能フラグを設定します。 |
| public |
GroupStatusVisible | グループ化されているレスポンダすべてに対して、可視/不可視フラグを設定します。 |
| public |
InvalidateBase | ベース領域内のアップデート領域を登録します。 |
| public |
InvalidateContent | コンテント領域内のアップデート領域を登録します。 |
| public |
InvalidateVirtual | 仮想領域内のアップデート領域を登録します。 |
| public |
Invoke | イベントを送信します。 |
| public |
Move | レスポンダを移動します。 |
| public |
RegisterHandler (SFRHandler から継承) | ハンドラを登録します。 |
| public |
RegisterIntelligentHandler | SelectHandler, ClearHandler, FocusUpHandler, FocusDownHandler, FocusLeftHandler, FocusRightHandler をそれぞれ AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録します。 |
| public |
RegisterManipulateHandler | SelectHandler, ClearHandler, FocusNextHandler, FocusPreviousHandler を それぞれ AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録します。 |
| public |
RegisterMoveHandler | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterScrollHandler | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterTracer (SFRTracer から継承) | トレーサを登録します。 |
| public |
Scroll | 仮想領域をスクロールします。 |
| public |
Select | レスポンダを最前面に移動させます。 |
| public |
SetBaseBound | ベース領域を親レスポンダのコンテント座標系で設定します。 |
| public |
SetContentBound | コンテント領域をベース領域の座標系で設定します。 |
| public |
SetMoveInterval | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を設定します。 |
| public |
SetMoveMargin | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを設定します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されます。 |
| public |
SetReference | ユーザが自由に設定できるリファレンス値を設定します。 |
| public |
SetScrollInterval | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を設定します。 |
| public |
SetStatusEnable | 応答可能/不可能フラグを設定します。 |
| public |
SetStatusFocus | フォーカス/非フォーカス フラグを設定します。 |
| public |
SetStatusTarget | ターゲット/非ターゲット フラグを設定します。 |
| public |
SetStatusVisible | 可視/不可視フラグを設定します。 |
| public |
SetTranslate | コンテント座標系での仮想領域の原点座標を設定します。 |
| public |
SetTravelMargin | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを設定します。 |
| public |
SetVirtualBound | 仮想領域をコンテント領域の座標系で設定します。 |
| public |
Travel | 設定された長方形が可視領域に入るように、レスポンダの 仮想領域をスクロールします。 |
| public |
Ungroup | グループ化を解除します。 |
| public |
UnregisterHandler (SFRHandler から継承) | 登録されているハンドラを削除します。 |
| public |
UnregisterTracer (SFRTracer から継承) | 登録されているトレーサを削除します。 |
| プロテクト関数 | ||
|---|---|---|
| protected |
ClearHandler | クリアキーが押されたときのハンドラです。 |
| protected |
FocusDownHandler | 下矢印キーが押されたときのハンドラです。 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusLeftHandler | 左矢印キーが押されたときのハンドラです。 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusNextHandler | 下矢印キーが押されたときのハンドラです。 フォーカスを一つ後に移動します。 |
| protected |
FocusPreviousHandler | 上矢印キーが押されたときのハンドラです。 フォーカスを一つ前に移動します。 |
| protected |
FocusRightHandler | 右矢印キーが押されたときのハンドラです。 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusUpHandler | 上矢印キーが押されたときのハンドラです。 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| protected |
GetAppearanceTransparent | APPEARANCE_TRANSPARENT フラグが設定されているかどうかを取得します。 |
| protected |
GetInheriteEnable | 現在の応答可能/不可能の状態を取得します。 |
| protected |
GetInheriteFocus | 現在のフォーカス/非フォーカスの状態を取得します。 |
| protected |
GetInheriteTarget | 現在のターゲット/非ターゲットの状態を取得します。 |
| protected |
GetInheriteVisible | 現在の可視/不可視の状態を取得します。 |
| protected |
GetPropertyClosable | PROPERTY_CLOSABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyDirect | PROPERTY_DIRECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyMovable | PROPERTY_MOVABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyScrollable | PROPERTY_SCROLLABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertySelect | PROPERTY_SELECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyTravel | PROPERTY_TRAVEL フラグが設定されているかどうかを取得します。 |
| protected |
MoveDownHandler | 数字の8キーが押されたときのハンドラです。 |
| protected |
MoveLeftHandler | 数字の4キーが押されたときのハンドラです。 |
| protected |
MoveRightHandler | 数字の6キーが押されたときのハンドラです。 |
| protected |
MoveUpHandler | 数字の2キーが押されたときのハンドラです。 |
| protected |
ScrollDownHandler | 数字の8キーが押されたときのハンドラです。 |
| protected |
ScrollLeftHandler | 数字の4キーが押されたときのハンドラです。 |
| protected |
ScrollRightHandler | 数字の6キーが押されたときのハンドラです。 |
| protected |
ScrollUpHandler | 数字の2キーが押されたときのハンドラです。 |
| protected |
SelectHandler | セレクトキーが押されたときのハンドラです。 |
| protected |
UnregisterIntelligentHandler | AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録されているハンドラを 削除します。 |
| protected |
UnregisterManipulateHandler | AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録されているハンドラを 削除します。 |
| protected |
UnregisterMoveHandler | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| protected |
UnregisterScrollHandler | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| 型 | ||
|---|---|---|
| BehaviorEnum | レスポンダのビヘイビアを表します。 | |
| HandlerEnum (SFRHandler から継承) | ハンドラの呼び出されるタイミングを表します。 | |
| TracerEnum (SFRTracer から継承) | トレース順序を表します。 | |
[ protected ]
SFRResponder(
SFRResponderPtr parent // 親となるレスポンダのポインタ
ConstSFURectRef rect // 親の座標上での位置
ConstSFUMarginRef margin // ベース領域とコンテント領域のマージン
SFCType type // タイプ
SFCType attribute // アトリビュート
BehaviorType behavior // ビヘイビア
);[ protected, virtual ] ~SFRResponder(Void);
[ protected ] Bool ClearHandler(Void);
PROPERTY_DIRECT が設定されていなくて、ターゲットされている場合は、ターゲットを解除します。 また、ターゲットが解除されているか、PROPERTY_DIRECT が設定 されていて、フォーカスされている場合は、PROPERTY_CLOSABLE が設定されていれば レスポンダを破棄します。
[ public, const ] Void FocusDown(Void);
座標上で自分より下に存在するレスポンダにフォーカスを移動します。 具体的には、X 軸において自分と重なりがあり、Y 軸において自分に一番 近くかつ自分より下に存在するレスポンダがフォーカスされます。 また、可視かつ応答可能のレスポンダがフォーカスされます。
SFRResponder::FocusUp | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ protected ] Bool FocusDownHandler(Void);
SFRResponder::FocusUpHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
[ public, const ] Void FocusLeft(Void);
座標上で自分より左に存在するレスポンダにフォーカスを移動します。 具体的には、Y 軸において自分と重なりがあり、X 軸において自分に一番 近くかつ自分より左に存在するレスポンダがフォーカスされます。 また、可視かつ応答可能のレスポンダがフォーカスされます。
SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ protected ] Bool FocusLeftHandler(Void);
SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
[ public, const ] Void FocusNext(Void);
フォーカスを一つ次に進めます。 可視かつ応答可能のレスポンダがフォーカスされます。 終端まで達した場合は、先頭に戻ってフォーカスします。
SFRResponder::FocusPrevious | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight
[ protected ] Bool FocusNextHandler(Void);
SFRResponder::FocusPreviousHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler
[ public, const ] Void FocusPrevious(Void);
フォーカスを一つ前に戻します。 可視かつ応答可能のレスポンダがフォーカスされます。 先頭まで達した場合は、終端に戻ってフォーカスします。
SFRResponder::FocusNext | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight
[ protected ] Bool FocusPreviousHandler(Void);
SFRResponder::FocusNextHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler
[ public, const ] Void FocusRight(Void);
座標上で自分より右に存在するレスポンダにフォーカスを移動します。 具体的には、Y 軸において自分と重なりがあり、X 軸において自分に一番 近くかつ自分より右に存在するレスポンダがフォーカスされます。 また、可視かつ応答可能のレスポンダがフォーカスされます。
SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ protected ] Bool FocusRightHandler(Void);
SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
[ public, const ] Void FocusUp(Void);
座標上で自分より上に存在するレスポンダにフォーカスを移動します。 具体的には、X 軸において自分と重なりがあり、Y 軸において自分に一番 近くかつ自分より上に存在するレスポンダがフォーカスされます。 また、可視かつ応答可能のレスポンダがフォーカスされます。
SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ protected ] Bool FocusUpHandler(Void);
SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
[ protected, const ] Bool GetAppearanceTransparent(Void);
[ public, const ] SFCType GetAttribute(Void);
[ public, const ] SFRResponderPtr GetBack( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は子階層の終端から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダのうち最背面にあるレスポンダを 取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetBack(TYPE_WILDCARD);
可視/不可視や応答可能などを無視してすべてのレスポンダのうち 最背面にあるレスポンダを取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetBack(TYPE_WILDCARD,ATTRIBUTE_WILDCARD,BEHAVIOR_NONE);
SFRResponder::GetFront | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward
[ public, const ] ConstSFURectRef GetBaseBound(Void);
レスポンダの座標を右下に10ピクセル移動させるには 以下のように記述します。
SFRResponderPtr r; SFURect u; u = r->GetBaseBound(); u.Offset(10,10); r->SetBaseBound(u);
SFRResponder::SetBaseBound | SFRResponder::GetContentBound | SFRResponder::GetVirtualBound | SFRResponder::GetBaseWorld
[ public, const ] SFURect GetBaseWorld(Void);
ベース領域の長方形を返します。 左上の点は必ず (0,0) になります。
ベース領域をすべてアップデート領域にスケジューリング するには以下のように記述します。
InvalidateBase(GetBaseWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateBase();
SFRResponder::GetContentWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetBaseBound | SFRResponder::GetBaseBound
[ public, const ] ConstSFURectRef GetContentBound(Void);
SFRResponder::SetContentBound | SFRResponder::GetBaseBound | SFRResponder::GetVirtualBound | SFRResponder::GetContentWorld
[ public, const ] SFURect GetContentWorld(Void);
コンテント領域の長方形を返します。 左上の点は必ず (0,0) になります。
コンテント領域をすべてアップデート領域に スケジューリングするには以下のように記述します。
InvalidateContent(GetContentWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateContent();
SFRResponder::GetBaseWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetContentBound | SFRResponder::GetContentBound
[ public, const ] SFRResponderPtr GetDirector(Void);
[ public, const ] SFRResponderPtr GetFocus(Void);
子階層のレスポンダのうちフォーカスされているレスポンダを取得します。 フォーカスされているレスポンダが存在しない場合は、 戻り値は NULL になります。
[ public, const ] SFRResponderPtr GetFront( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は子階層の先頭から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダのうち最前面にあるレスポンダを 取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetFront(TYPE_WILDCARD);
可視/不可視や応答可能などを無視してすべてのレスポンダのうち 最前面にあるレスポンダを取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetFront(TYPE_WILDCARD,ATTRIBUTE_WILDCARD,BEHAVIOR_NONE);
SFRResponder::GetBack | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward
[ public, const ] SInt16 GetIndexBackward( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
背面から数えた自分のインデックスを返します。 インデックスは 0-based で表されます。
SFRResponder::GetIndexForward | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] SInt16 GetIndexForward( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
前面から数えた自分のインデックスを返します。 インデックスは 0-based で表されます。
SFRResponder::GetIndexBackward | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ protected, const ] Bool GetInheriteEnable(Void);
レスポンダの現在の応答可能/不可能の状態を取得します。 GetStatusEnable 関数とは違い、この関数によって得られる 状態は、親の状態を継承し、また自分の状態の中で より優先度の高い状態を継承します。 よって、この関数によって得られる状態は、実際にユーザが 操作している状態に一致するため、UI オブジェクトの描画時 などに使用することができます。
[ protected, const ] Bool GetInheriteFocus(Void);
レスポンダの現在のフォーカス/非フォーカスの状態を取得します。 GetStatusFocus 関数とは違い、この関数によって得られる 状態は、親の状態を継承し、また自分の状態の中で より優先度の高い状態を継承します。 よって、この関数によって得られる状態は、実際にユーザが 操作している状態に一致するため、UI オブジェクトの描画時 などに使用することができます。
[ protected, const ] Bool GetInheriteTarget(Void);
レスポンダの現在のターゲット/非ターゲットの状態を取得します。 GetStatusTarget 関数とは違い、この関数によって得られる 状態は、親の状態を継承し、また自分の状態の中で より優先度の高い状態を継承します。 よって、この関数によって得られる状態は、実際にユーザが 操作している状態に一致するため、UI オブジェクトの描画時 などに使用することができます。
[ protected, const ] Bool GetInheriteVisible(Void);
レスポンダの現在の可視/不可視の状態を取得します。 GetStatusVisible 関数とは違い、この関数によって得られる 状態は、親の状態を継承し、また自分の状態の中で より優先度の高い状態を継承します。 よって、この関数によって得られる状態は、実際にユーザが 操作している状態に一致するため、UI オブジェクトの描画時 などに使用することができます。
SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible
[ public, const ] SFRResponderPtr GetLeft( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。
自分とグループ化されているレスポンダで可視かつ 応答可能なレスポンダを自分から見て前方向に すべてたどるには以下のように記述します。
SFRResponderPtr r;
r = this;
while ((r = r->GetLeft(TYPE_WILDCARD) != NULL && r != this) {
// something to do.
}
[ public, const ] SInt16 GetMoveInterval(Void);
SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
[ public, const ] SInt16 GetMoveMargin(Void);
SFRResponder::SetMoveMargin | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
[ public, const ] SFRResponderPtr GetNext( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダを最前面から最背面までたどるには 以下のように記述します。
SFRResponderPtr r;
SFRResponderPtr w,sw;
if ((w = r->GetFront(TYPE_WILDCARD)) != NULL) {
// first responder
sw = w;
while ((sw = sw->GetNext(TYPE_WILDCARD)) != NULL && sw != w) {
// second responder or ...
}
}
[ public, const ] SFRResponderPtr GetNthBackward( SInt16 index // インデックス SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
インデックスは 0-based で表します。 負の値は無視されます。
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は子階層の終端から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダの中で背面から3番目のレスポンダを 取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetNthBackward(2,TYPE_WILDCARD,ATTRIBUTE_WILDCARD);
SFRResponder::GetNthForward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] SFRResponderPtr GetNthForward( SInt16 index // インデックス SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
インデックスは 0-based で表します。 負の値は無視されます。
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は子階層の先頭から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダの中で前面から3番目のレスポンダを 取得するには以下のように記述します。
SFRResponderPtr r; SFRResponderPtr w; w = r->GetNthForward(2,TYPE_WILDCARD,ATTRIBUTE_WILDCARD);
SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] SFRResponderPtr GetPrevious( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。
可視かつ応答可能なレスポンダを最背面から最前面までたどるには以下の ように記述します。
SFRResponderPtr r;
SFRResponderPtr w,sw;
if ((w = r->GetBack(TYPE_WILDCARD)) != NULL) {
// last responder
sw = w;
while ((sw = sw->GetPrevious(TYPE_WILDCARD)) != NULL && sw != w) {
// second responder or ...
}
}
[ protected, const ] Bool GetPropertyClosable(Void);
[ protected, const ] Bool GetPropertyDirect(Void);
[ protected, const ] Bool GetPropertyMovable(Void);
[ protected, const ] Bool GetPropertyScrollable(Void);
[ protected, const ] Bool GetPropertySelect(Void);
[ protected, const ] Bool GetPropertyTravel(Void);
[ public, const ] VoidPtr GetReference(Void);
[ public, const ] SFRResponderPtr GetRight( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE // 検索条件 );
検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。
検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。
検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。
自分とグループ化されているレスポンダで可視かつ 応答可能なレスポンダを自分から見て後ろ方向に すべてたどるには以下のように記述します。
SFRResponderPtr r;
r = this;
while ((r = r->GetRight(TYPE_WILDCARD) != NULL && r != this) {
// something to do.
}
[ public, const ] SInt16 GetScrollInterval(Void);
SFRResponder::SetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler
[ public, const ] Bool GetStatusEnable(Void);
レスポンダの応答可能/不可能フラグを取得します。 GetInheriteEnable 関数とは違い、この関数によって 得られる状態は、親の状態や、自分の状態の中でより 優先度の高い状態を継承しません。 よって、この関数によって得られる状態は、実際に ユーザが操作している状態と一致しないかも知れません。
SFRResponder::GroupStatusEnable | SFRResponder::SetStatusEnable | SFRResponder::GetInheriteEnable
[ public, const ] Bool GetStatusFocus(Void);
レスポンダのフォーカス/非フォーカス フラグを取得します。 GetInheriteFocus 関数とは違い、この関数によって 得られる状態は、親の状態や、自分の状態の中でより 優先度の高い状態を継承しません。 よって、この関数によって得られる状態は、実際に ユーザが操作している状態と一致しないかも知れません。
[ public, const ] Bool GetStatusTarget(Void);
レスポンダのターゲット/非ターゲット フラグを取得します。 GetInheriteTarget 関数とは違い、この関数によって 得られる状態は、親の状態や、自分の状態の中でより 優先度の高い状態を継承しません。 よって、この関数によって得られる状態は、実際に ユーザが操作している状態と一致しないかも知れません。
[ public, const ] Bool GetStatusVisible(Void);
レスポンダの可視/不可視フラグを取得します。 GetInheriteVisible 関数とは違い、この関数によって 得られる状態は、親の状態や、自分の状態の中でより 優先度の高い状態を継承しません。 よって、この関数によって得られる状態は、実際に ユーザが操作している状態と一致しないかも知れません。
SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetInheriteVisible
[ public, const ] SFUPoint GetTranslate(Void);
コンテント座標系での仮想領域の原点座標を取得します。 動作は、GetVirtualBound().Origin() と同じ動作です。
[ public, const ] SInt16 GetTravelMargin(Void);
[ public, const ] SFCType GetType(Void);
レスポンダのタイプを取得します。 戻り値は以下の値のいずれかになります。
| TYPE_APPLICATION (アプリケーション レスポンダ) |
| TYPE_WINDOW (ウィンドウ レスポンダ) |
| TYPE_MENU (メニュー レスポンダ) |
| TYPE_CONTROL (コントロール レスポンダ) |
[ public, const ] ConstSFURectRef GetVirtualBound(Void);
仮想領域を左上に10ピクセル移動させるには 以下のように記述します。(仮想領域を基準に考えると、 仮想領域を左上に10ピクセル移動させるということは、 可視領域を右下に10ピクセル移動させることと等価です。)
SFRResponderPtr r; SFURect u; u = r->GetVirtualBound(); u.Offset(-10,-10); r->SetVirtualBound(u);
SFRResponder::SetVirtualBound | SFRResponder::GetBaseBound | SFRResponder::GetContentBound | SFRResponder::GetVirtualWorld
[ public, const ] SFURect GetVirtualWorld(Void);
仮想領域の長方形を返します。 左上の点は必ず (0,0) になります。
仮想領域をすべてアップデート領域に スケジューリングするには以下のように記述します。
InvalidateVirtual(GetVirtualWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateVirtual();
SFRResponder::GetBaseWorld | SFRResponder::GetContentWorld | SFRResponder::SetVirtualBound | SFRResponder::GetVirtualBound
[ public ] Void Group( SFRResponderPtr prm // 自分をグループ化するレスポンダへのポインタ );
他のレスポンダとグループ化します。 レスポンダをグループ化すると、特定の処理を グループ化されているレスポンダすべてに適応 することが可能になります。たとえば、GroupStatusVisible 関数 を使用すると、グループ化されているレスポンダすべてに 対して SetStatusVisible 関数を適応できます。 この他にも、GroupMove 関数や GroupScroll 関数なども 定義されています。また、SFRRadiobuttonControl などの一部の コントロールではグループ化することによって自動的に 排他的処理を行うようになります。
SFRRadiobuttonControl などをグループ化するには 以下のように記述します。
SFRRadiobuttonControlPtr rb0; SFRRadiobuttonControlPtr rb1; SFRRadiobuttonControlPtr rb2; rb1->Group(rb0); rb2->Group(rb0);
[ public ] Void GroupMove( ConstSFUSizeRef size // 移動量 );
グループ化されているすべてのレスポンダに対して Move 関数を適応します。 詳細については、Move 関数を参照してください。
[ public ] Void GroupScroll( ConstSFUSizeRef size // スクロール量 );
グループ化されているすべてのレスポンダに対して Scroll 関数を適応します。 詳細については、Scroll 関数を参照してください。
[ public ] Void GroupSelect(Void);
グループ化されているすべてのレスポンダに対して Select 関数を適応します。 詳細については、Select 関数を参照してください。
グループ化されているすべてのレスポンダに対して SetStatusEnable 関数を適応します。 詳細については、SetStatusEnable 関数を参照してください。
SFRResponder::SetStatusEnable | SFRResponder::GetStatusEnable | SFRResponder::GetInheriteEnable | SFRResponder::Group | SFRResponder::Ungroup
グループ化されているすべてのレスポンダに対して SetStatusVisible 関数を適応します。 詳細については、SetStatusVisible 関数を参照してください。
SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible | SFRResponder::GetInheriteVisible | SFRResponder::Group | SFRResponder::Ungroup
[ public ] Void InvalidateBase(Void);
[ public ] Void InvalidateBase( ConstSFURectRef rect // 登録する領域 );
ベース領域をすべてアップデート領域にスケジューリング するには以下のように記述します。
InvalidateBase(GetBaseWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateBase();
[ public ] Void InvalidateContent(Void);
[ public ] Void InvalidateContent( ConstSFURectRef rect // 登録する領域 );
コンテント領域をすべてアップデート領域に スケジューリングするには以下のように記述します。
InvalidateContent(GetContentWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateContent();
[ public ] Void InvalidateVirtual(Void);
[ public ] Void InvalidateVirtual( ConstSFURectRef rect // 登録する領域 );
仮想領域をすべてアップデート領域に スケジューリングするには以下のように記述します。
InvalidateVirtual(GetVirtualWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateVirtual();
[ public, virtual ] Bool Invoke( ConstSFUEventRef event // 送信するイベント );
イベントが処理されたとき TRUE を返します。
イベントを送信します。また、この関数をオーバーロードすることで イベント送信の方法を変更できます。
[ public ] Void Move( ConstSFUSizeRef size // 移動量 );
[ protected ] Bool MoveDow