![]() ![]() ![]()
|
SophiaFramework 2.1 |
#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 |
FocusNext | フォーカスを一つ次に進めます。 |
| public |
FocusPrevious | フォーカスを一つ前に戻します。 |
| public |
GetAttribute | アトリビュートを取得します。 |
| public |
GetBack | 子階層のレスポンダのうち検索条件に一致するレスポンダを 後ろから検索します。 |
| public |
GetBaseBound | ベース領域を親レスポンダのコンテント座標で取得します。 |
| public |
GetBaseWorld | ベース領域を取得します。 |
| public |
GetContentBound | コンテント領域をベース領域の座標で取得します。 |
| public |
GetContentWorld | コンテント領域を取得します。 |
| public |
GetDirector | 親レスポンダを取得します。 |
| public |
GetFocus | 子階層のレスポンダでフォーカスの当たっているものを取得します。 |
| public |
GetFront | 子階層のレスポンダのうち検索条件に一致するレスポンダを前から検索します。 |
| public |
GetLeft | グループ化されているレスポンダのうち 自分より前にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetMoveInterval | UpHandler, DownHandler, LeftHandler, RightHandler に よりレスポンダが移動されるときの移動量を取得します。 |
| public |
GetMoveMargin | UpHandler, DownHandler, LeftHandler, RightHandler, Move 関数に よりレスポンダが移動されるときに画面の端からどこまで 移動できるかを示すマージンを取得します。 |
| public |
GetNext | 自分より後にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetNth | 子階層のレスポンダのうち検索項目に一致するレスポンダで 前から数えてN番目にあるレスポンダを検索します。 |
| public |
GetNthBackward | 子階層のレスポンダのうち検索条件に一致するレスポンダで 後ろから数えてN番目にあるレスポンダを検索します。 |
| public |
GetPrevious | 自分より前にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetReference | ユーザが自由に設定できるリファレンス値を取得します。 |
| public |
GetRight | グループ化されているレスポンダのうち 自分より後にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetScrollInterval | NorthHandler, SouthHandler, WestHandler, EastHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を取得します。 |
| 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 |
RegisterTracer (SFRTracer から継承) | トレーサを登録します。 |
| public |
Scroll | 仮想領域をスクロールします。 |
| public |
Select | レスポンダを最前面に移動させます。 |
| public |
SetBaseBound | ベース領域を親の相対座標で設定します。 |
| public |
SetContentBound | コンテント領域をベース領域の相対座標で設定します。 |
| public |
SetMoveInterval | UpHandler, DownHandler, LeftHandler, RightHandler によりレスポンダが移動されるときの移動量を設定します。 |
| public |
SetMoveMargin | UpHandler, DownHandler, LeftHandler, RightHandler, Move 関数によりレスポンダが移動されるときに画面の端から何処まで 移動できるかのマージンを設定します。 |
| public |
SetReference | ユーザが自由に設定できるリファレンス値を設定します。 |
| public |
SetScrollInterval | NorthHandler, SouthHandler, WestHandler, EastHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を設定します。 |
| public |
SetStatusEnable | 応答可能/不可能を設定します。 |
| public |
SetStatusFocus | フォーカス/非フォーカスを設定します。 |
| public |
SetStatusTarget | ターゲット/非ターゲットを設定します。 |
| public |
SetStatusVisible | 可視/不可視を設定します。 |
| public |
SetTranslate | コンテント領域から見た仮想領域の原点を設定します。 |
| public |
SetTravelMargin | フォーカスされたレスポンダを自動的に可視領域内に 移動させるときのマージンを設定します。 |
| public |
SetVirtualBound | 仮想領域をコンテント領域の相対座標で設定します。 |
| public |
Ungroup | グループ化を解除します。 |
| public |
UnregisterHandler (SFRHandler から継承) | 登録されているハンドラを削除します。 |
| public |
UnregisterTracer (SFRTracer から継承) | 登録されているトレーサを削除します。 |
| プロテクト関数 | ||
|---|---|---|
| protected |
ClearHandler | クリアキーが押されたときのハンドラです。 |
| protected |
DownHandler | 数字の8キーが押されたときのハンドラです。 |
| protected |
EastHandler | 数字の6キーが押されたときのハンドラです。 |
| protected |
GetAppearanceTransparent | APPEARANCE_TRANSPARENT フラグが設定されているかどうかを取得します。 |
| 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 |
LeftHandler | 数字の4キーが押されたときのハンドラです。 |
| protected |
NextHandler | 下矢印キーが押されたときのハンドラです。 フォーカスを一つ後に移動します。 |
| protected |
NorthHandler | 数字の2キーが押されたときのハンドラです。 |
| protected |
PreviousHandler | 上矢印キーが押されたときのハンドラです。 フォーカスを一つ前に移動します。 |
| protected |
RegisterManipulateHandler | SelectHandler, ClearHandler, NextHandler, PreviousHandler を それぞれ AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録します。 |
| protected |
RegisterMoveHandler | UpHandler, DownHandler, LeftHandler, RightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| protected |
RegisterScrollHandler | NorthHandler, SouthHandler, WestHandler, EastHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| protected |
RightHandler | 数字の6キーが押されたときのハンドラです。 |
| protected |
SelectHandler | セレクトキーが押されたときのハンドラです。 |
| protected |
SouthHandler | 数字の8キーが押されたときのハンドラです。 |
| 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 に登録されているハンドラを 削除します。 |
| protected |
UpHandler | 数字の2キーが押されたときのハンドラです。 |
| protected |
WestHandler | 数字の4キーが押されたときのハンドラです。 |
| 型 | ||
|---|---|---|
| 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 が設定されていれば レスポンダを破棄します。
[ protected ] Bool DownHandler(Void);
PROPERTY_MOVABLE が設定されているレスポンダを下に移動します。
[ protected ] Bool EastHandler(Void);
PROPERTY_SCROLLABLE が設定されていれば、仮想領域を右へスクロールします。
[ public, const ] Void FocusNext(Void);
[ public, const ] Void FocusPrevious(Void);
[ 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);
[ public, const ] ConstSFURectRef GetBaseBound(Void);
レスポンダの座標を右下に10ピクセル移動されるには 以下のように記述します。
SFRResponderPtr r; SFURect u; u = r->GetBaseBound(); u.Offset(10,10); r->SetBaseBound(u);
[ public, const ] SFURect GetBaseWorld(Void);
ベース領域の長方形を返します。 左上の点は必ず (0,0) になります。
ベース領域をすべてアップデート領域にスケジューリング するには以下のように記述します。
InvalidateBase(GetBaseWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateBase();
[ public, const ] ConstSFURectRef GetContentBound(Void);
[ public, const ] SFURect GetContentWorld(Void);
コンテント領域をすべてアップデート領域に スケジューリングするには以下のように記述します。
InvalidateContent(GetContentWorld());
以下の関数も使用できます。こちらのほうが高速です。
InvalidateContent();
[ public, const ] SFRResponderPtr GetDirector(Void);
[ public, const ] SFRResponderPtr GetFocus(Void);
[ 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);
[ 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);
[ public, const ] SInt16 GetMoveMargin(Void);
[ 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 GetNth( 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->GetNth(2,TYPE_WILDCARD,ATTRIBUTE_WILDCARD);
[ 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);
[ 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);
[ public, const ] Bool GetStatusEnable(Void);
[ public, const ] Bool GetStatusFocus(Void);
[ public, const ] Bool GetStatusTarget(Void);
[ public, const ] Bool GetStatusVisible(Void);
[ public, const ] SFUPoint GetTranslate(Void);
[ public, const ] SInt16 GetTravelMargin(Void);
[ public, const ] SFCType GetType(Void);
レスポンダのタイプを取得します。 以下の値のいずれかになります。
| TYPE_APPLICATION (アプリケーション レスポンダ) |
| TYPE_WINDOW (ウィンドウ レスポンダ) |
| TYPE_MENU (メニュー レスポンダ) |
| TYPE_CONTROL (コントロール レスポンダ) |
[ public, const ] ConstSFURectRef GetVirtualBound(Void);
[ public, const ] SFURect GetVirtualWorld(Void);
[ public ] Void Group( SFRResponderPtr prm // 自分をグループ化するオブジェクトへのポインタ );
SFRRadiobuttonControl などをグループ化するには 以下のように記述します。
SFRRadiobuttonControlPtr rb0; SFRRadiobuttonControlPtr rb1; SFRRadiobuttonControlPtr rb2; rb1->Group(rb0); rb2->Group(rb0);
[ public ] Void GroupMove( ConstSFUSizeRef size // 移動量 );
[ public ] Void GroupScroll( ConstSFUSizeRef size // スクロール量 );
[ public ] Void GroupSelect(Void);
グループ化されているレスポンダすべてを最前面に移動します。ただし、フォーカスが当たっていて ターゲッティングされていて、PROPERTY_SELECT フラグが設定されている レスポンダが他に存在する場合、そちらが優先されます。
[ 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 を返します。
[ protected ] Bool LeftHandler(Void);
PROPERTY_MOVABLE が設定されているレスポンダを左に移動します。
[ public ] Void Move( ConstSFUSizeRef size // 移動量 );
[ protected ] Bool NextHandler(Void);
[ protected ] Bool NorthHandler(Void);
PROPERTY_SCROLLABLE が設定されていれば、仮想領域を上へスクロールします。
[ protected ] Bool PreviousHandler(Void);
[ protected ] SFCError RegisterManipulateHandler(Void);
[ protected ] SFCError RegisterMoveHandler(Void);
[ protected ] SFCError RegisterScrollHandler(Void);
[ protected ] Bool RightHandler(Void);
PROPERTY_MOVABLE が設定されているレスポンダを右に移動します。
[ public ] Void Scroll( ConstSFUSizeRef size // スクロール量 );
[ public ] Void Select(Void);
レスポンダを最前面に移動します。ただし、フォーカスが当たっていて ターゲッティングされていて、PROPERTY_SELECT フラグが設定されている レスポンダが他に存在する場合、そちらが優先されます。
[ protected ] Bool SelectHandler(Void);
フォーカスされているレスポンダをターゲッティング状態にします。
[ public, virtual ] Void SetBaseBound( ConstSFURectRef rect // 設定する値 );
レスポンダの座標を右下に10ピクセル移動されるには 以下のように記述します。
SFRResponderPtr r; SFURect u; u = r->GetBaseBound(); u.Offset(10,10); r->SetBaseBound(u);
[ public, virtual ] Void SetContentBound( ConstSFURectRef rect // 設定する値 );
[ public ] Void SetTranslate( ConstSFUPointRef point // 設定する値 );
[ public, virtual ] Void SetVirtualBound( ConstSFURectRef rect // 設定する値 );
[ protected ] Bool SouthHandler(Void);
PROPERTY_SCROLLABLE が設定されていれば、仮想領域を下へスクロールします。
[ public ] Void Ungroup(Void);
[ protected ] Void UnregisterManipulateHandler(Void);
[ protected ] Void UnregisterMoveHandler(Void);
[ protected ] Void UnregisterScrollHandler(Void);
[ protected ] Bool UpHandler(Void);
PROPERTY_MOVABLE が設定されているレスポンダを上に移動します。
[ protected ] Bool WestHandler(Void);
PROPERTY_SCROLLABLE が設定されていれば、仮想領域を左へスクロールします。
enum BehaviorEnum;
レスポンダの振る舞いを表す定数です。 以下に一覧を示します。
| BEHAVIOR_NONE | - |
| STATUS_VISIBLE | 可視/不可視 |
| STATUS_ENABLE | 応答可能/不可能 |
| STATUS_FOCUS | フォーカス状態/非フォーカス状態 |
| STATUS_TARGET | ターゲッティング状態/非ターゲッティング状態 |
| APPEARANCE_TRANSPARENT | 透過描画 |
| PROPERTY_DIRECT | ターゲッティング無し |
| PROPERTY_SELECT | 背面で選択されたときに自動的に最前面に移動させるかどうか |
| PROPERTY_TRAVEL | フォーカスされたレスポンダが画面内に成るように自動調整をするかどうか |
| PROPERTY_CLOSABLE | クリアキーによる破棄可能/不可能 |
| PROPERTY_MOVABLE | 数字キーによる移動可能/不可能 |
| PROPERTY_SCROLLABLE | 数字キーによる仮想領域のスクロール可能/不可能 |
| TRACER_PROVIDE | 強制通知 |
| Copyright(C) 2003 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|