前のページ次のページ上に戻るホーム SophiaFramework 2.1
SFRResponder
UI コンポーネントの根幹です。
#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;

継承図

SFRResponder クラスの継承図

協調図

SFRResponder クラスの協調図

解説

レスポンダはイベント ハンドリングと再描画処理を管理する コンポーネントでレスポンダ モデルの根幹です。 レスポンダは管理を行うだけではなく、ウィンドウやコントロール などレスポンダを継承しているコンポーネントそのものでもあります。

メンバ

コンストラクタ/デストラクタ
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 から継承) トレース順序を表します。

SFRResponder::SFRResponder
SFRResponder クラスのコンストラクタです。
[ protected ]
SFRResponder(
    SFRResponderPtr parent     // 親となるレスポンダのポインタ
    ConstSFURectRef rect       // 親の座標上での位置
    ConstSFUMarginRef margin   // ベース領域とコンテント領域のマージン
    SFCType type               // タイプ
    SFCType attribute          // アトリビュート
    BehaviorType behavior      // 振る舞い
);

参照

SFRResponder::BehaviorEnum


SFRResponder::~SFRResponder
SFRResponder クラスのデストラクタです。
[ protected, virtual ]
~SFRResponder(Void);

SFRResponder::ClearHandler
クリアキーが押されたときのハンドラです。
[ protected ]
Bool ClearHandler(Void);

解説

PROPERTY_DIRECT が設定されていなくて、ターゲッティングされている 場合は、ターゲッティングを解除します。 また、ターゲッティングが解除されているか、PROPERTY_DIRECT が設定 されていて、フォーカスされている場合は、PROPERTY_CLOSABLE が設定されていれば レスポンダを破棄します。


SFRResponder::DownHandler
数字の8キーが押されたときのハンドラです。
[ protected ]
Bool DownHandler(Void);

解説

PROPERTY_MOVABLE が設定されているレスポンダを下に移動します。


SFRResponder::EastHandler
数字の6キーが押されたときのハンドラです。
[ protected ]
Bool EastHandler(Void);

解説

PROPERTY_SCROLLABLE が設定されていれば、仮想領域を右へスクロールします。


SFRResponder::FocusNext
フォーカスを一つ次に進めます。
[ public, const ]
Void FocusNext(Void);

SFRResponder::FocusPrevious
フォーカスを一つ前に戻します。
[ public, const ]
Void FocusPrevious(Void);

SFRResponder::GetAppearanceTransparent
APPEARANCE_TRANSPARENT フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetAppearanceTransparent(Void);

SFRResponder::GetAttribute
アトリビュートを取得します。
[ public, const ]
SFCType GetAttribute(Void);

参照

SFRResponder::SFRResponder


SFRResponder::GetBack
子階層のレスポンダのうち検索条件に一致するレスポンダを 後ろから検索します。
[ public, const ]
SFRResponderPtr GetBack(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索項目に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索項目に 含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 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::GetBaseBound
ベース領域を親レスポンダのコンテント座標で取得します。
[ public, const ]
ConstSFURectRef GetBaseBound(Void);

使用例

レスポンダの座標を右下に10ピクセル移動されるには 以下のように記述します。

SFRResponderPtr   r;
SFURect           u;

u = r->GetBaseBound();
u.Offset(10,10);
r->SetBaseBound(u);

参照

SFRResponder::GetBaseWorld | SFRResponder::GetContentWorld | SFRResponder::SetBaseBound


SFRResponder::GetBaseWorld
ベース領域を取得します。
[ public, const ]
SFURect GetBaseWorld(Void);

解説

ベース領域の長方形を返します。 左上の点は必ず (0,0) になります。

使用例

ベース領域をすべてアップデート領域にスケジューリング するには以下のように記述します。

InvalidateBase(GetBaseWorld());

以下の関数も使用できます。こちらのほうが高速です。

InvalidateBase();

参照

SFRResponder::GetBaseBound | SFRResponder::GetContentWorld


SFRResponder::GetContentBound
コンテント領域をベース領域の座標で取得します。
[ public, const ]
ConstSFURectRef GetContentBound(Void);

SFRResponder::GetContentWorld
コンテント領域を取得します。
[ public, const ]
SFURect GetContentWorld(Void);

使用例

コンテント領域をすべてアップデート領域に スケジューリングするには以下のように記述します。

InvalidateContent(GetContentWorld());

以下の関数も使用できます。こちらのほうが高速です。

InvalidateContent();

参照

SFRResponder::GetBaseWorld | SFRResponder::GetBaseBound


SFRResponder::GetDirector
親レスポンダを取得します。
[ public, const ]
SFRResponderPtr GetDirector(Void);

SFRResponder::GetFocus
子階層のレスポンダでフォーカスの当たっているものを取得します。
[ public, const ]
SFRResponderPtr GetFocus(Void);

SFRResponder::GetFront
子階層のレスポンダのうち検索条件に一致するレスポンダを前から検索します。
[ public, const ]
SFRResponderPtr GetFront(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索項目に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索項目に 含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 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::GetLeft
グループ化されているレスポンダのうち 自分より前にあるレスポンダで検索条件に一致するレスポンダを検索します。
[ public, const ]
SFRResponderPtr GetLeft(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索項目に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索項目に 含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索項目に含まれません。

戻り値

検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。

使用例

自分とグループ化されているレスポンダで可視かつ 応答可能なレスポンダを自分から見て前方向に すべてたどるには以下のように記述します。

SFRResponderPtr r;

r = this;
while ((r = r->GetLeft(TYPE_WILDCARD) != NULL && r != this) {
  // something to do.
}

参照

SFRResponder::GetRight | SFRResponder::Group


SFRResponder::GetMoveInterval
UpHandler, DownHandler, LeftHandler, RightHandler に よりレスポンダが移動されるときの移動量を取得します。
[ public, const ]
SInt16 GetMoveInterval(Void);

参照

SFRResponder::SetMoveInterval


SFRResponder::GetMoveMargin
UpHandler, DownHandler, LeftHandler, RightHandler, Move 関数に よりレスポンダが移動されるときに画面の端からどこまで 移動できるかを示すマージンを取得します。
[ public, const ]
SInt16 GetMoveMargin(Void);

参照

SFRResponder::SetMoveMargin


SFRResponder::GetNext
自分より後にあるレスポンダで検索条件に一致するレスポンダを 検索します。
[ public, const ]
SFRResponderPtr GetNext(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 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 ...
  }
}

参照

SFRResponder::GetPrevious


SFRResponder::GetNth
子階層のレスポンダのうち検索項目に一致するレスポンダで 前から数えてN番目にあるレスポンダを検索します。
[ public, const ]
SFRResponderPtr GetNth(
    SInt16 index                                          // インデックス
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

index

インデックスは 0-based で表します。 負の値は無視されます。

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索項目に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索項目に 含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索項目に含まれません。

戻り値

検索は子階層の先頭から開始して一周します。 何も見つからなければ NULL を返します。

使用例

可視かつ応答可能なレスポンダの中で前面から3番目のレスポンダを 取得するには以下のように記述します。

SFRResponderPtr r;
SFRResponderPtr w;

w = r->GetNth(2,TYPE_WILDCARD,ATTRIBUTE_WILDCARD);

参照

SFRResponder::GetNthBackward


SFRResponder::GetNthBackward
子階層のレスポンダのうち検索条件に一致するレスポンダで 後ろから数えてN番目にあるレスポンダを検索します。
[ public, const ]
SFRResponderPtr GetNthBackward(
    SInt16 index                                          // インデックス
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

index

インデックスは 0-based で表します。 負の値は無視されます。

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索項目に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索項目に含まれません。

戻り値

検索は子階層の終端から開始して一周します。 何も見つからなければ NULL を返します。

使用例

可視かつ応答可能なレスポンダの中で背面から3番目のレスポンダを 取得するには以下のように記述します。

SFRResponderPtr r;
SFRResponderPtr w;

w = r->GetNthBackward(2,TYPE_WILDCARD,ATTRIBUTE_WILDCARD);

参照

SFRResponder::GetNth


SFRResponder::GetPrevious
自分より前にあるレスポンダで検索条件に一致するレスポンダを 検索します。
[ public, const ]
SFRResponderPtr GetPrevious(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に 含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に 含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 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 ...
  }
}

参照

SFRResponder::GetNth


SFRResponder::GetPropertyClosable
PROPERTY_CLOSABLE フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertyClosable(Void);

SFRResponder::GetPropertyDirect
PROPERTY_DIRECT フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertyDirect(Void);

SFRResponder::GetPropertyMovable
PROPERTY_MOVABLE フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertyMovable(Void);

SFRResponder::GetPropertyScrollable
PROPERTY_SCROLLABLE フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertyScrollable(Void);

SFRResponder::GetPropertySelect
PROPERTY_SELECT フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertySelect(Void);

SFRResponder::GetPropertyTravel
PROPERTY_TRAVEL フラグが設定されているかどうかを取得します。
[ protected, const ]
Bool GetPropertyTravel(Void);

SFRResponder::GetReference
ユーザが自由に設定できるリファレンス値を取得します。
[ public, const ]
VoidPtr GetReference(Void);

参照

SFRResponder::SetReference


SFRResponder::GetRight
グループ化されているレスポンダのうち 自分より後にあるレスポンダで検索条件に一致するレスポンダを検索します。
[ public, const ]
SFRResponderPtr GetRight(
    SFCType type = TYPE_WILDCARD                          // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                // アトリビュート
    BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE   // 検索項目
);

引数

type

検索対象のレスポンダのタイプです。 TYPE_WILDCARD を指定すると検索条件に含まれません。

attribute

検索対象のレスポンダのアトリビュートです。 ATTRIBUTE_WILDCARD を指定すると検索条件に含まれません。

compare

検索対象のレスポンダのステータスのうち どのフラグを検索条件に設定するかを指定します。 BEHAVIOR_NONE を指定するとすべてのステータス フラグは検索条件に含まれません。

戻り値

検索は自分の位置から開始して一周します。 何も見つからなければ NULL を返します。

使用例

自分とグループ化されているレスポンダで可視かつ 応答可能なレスポンダを自分から見て後ろ方向に すべてたどるには以下のように記述します。

SFRResponderPtr r;

r = this;
while ((r = r->GetRight(TYPE_WILDCARD) != NULL && r != this) {
  // something to do.
}

参照

SFRResponder::GetLeft


SFRResponder::GetScrollInterval
NorthHandler, SouthHandler, WestHandler, EastHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を取得します。
[ public, const ]
SInt16 GetScrollInterval(Void);

参照

SFRResponder::SetScrollInterval


SFRResponder::GetStatusEnable
応答可能/不可能を取得します。
[ public, const ]
Bool GetStatusEnable(Void);

参照

SFRResponder::SetStatusEnable


SFRResponder::GetStatusFocus
フォーカス/非フォーカスを取得します。
[ public, const ]
Bool GetStatusFocus(Void);

参照

SFRResponder::SetStatusFocus


SFRResponder::GetStatusTarget
ターゲット/非ターゲットを取得します。
[ public, const ]
Bool GetStatusTarget(Void);

参照

SFRResponder::SetStatusTarget


SFRResponder::GetStatusVisible
可視/不可視を取得します。
[ public, const ]
Bool GetStatusVisible(Void);

参照

SFRResponder::SetStatusVisible


SFRResponder::GetTranslate
コンテント領域から見た仮想領域の原点座標を取得します。
[ public, const ]
SFUPoint GetTranslate(Void);

SFRResponder::GetTravelMargin
フォーカスされたレスポンダを自動的に可視領域内に 移動させるときのマージンを取得します。
[ public, const ]
SInt16 GetTravelMargin(Void);

参照

SFRResponder::SetTravelMargin


SFRResponder::GetType
タイプを取得します。
[ public, const ]
SFCType GetType(Void);

解説

レスポンダのタイプを取得します。 以下の値のいずれかになります。

TYPE_APPLICATION (アプリケーション レスポンダ)
TYPE_WINDOW (ウィンドウ レスポンダ)
TYPE_MENU (メニュー レスポンダ)
TYPE_CONTROL (コントロール レスポンダ)

SFRResponder::GetVirtualBound
仮想領域をコンテント領域の座標で取得します。
[ public, const ]
ConstSFURectRef GetVirtualBound(Void);

SFRResponder::GetVirtualWorld
仮想領域を取得します。
[ public, const ]
SFURect GetVirtualWorld(Void);

SFRResponder::Group
他のオブジェクトとグループ化します。
[ public ]
Void Group(
    SFRResponderPtr prm   // 自分をグループ化するオブジェクトへのポインタ
);

使用例

SFRRadiobuttonControl などをグループ化するには 以下のように記述します。

SFRRadiobuttonControlPtr   rb0;
SFRRadiobuttonControlPtr   rb1;
SFRRadiobuttonControlPtr   rb2;

rb1->Group(rb0);
rb2->Group(rb0);

参照

SFRResponder::GetLeft | SFRResponder::GetRight | SFRResponder::Ungroup


SFRResponder::GroupMove
グループ化されているレスポンダすべてを移動します。
[ public ]
Void GroupMove(
    ConstSFUSizeRef size   // 移動量
);

SFRResponder::GroupScroll
グループ化されているレスポンダすべての仮想領域をスクロールします。
[ public ]
Void GroupScroll(
    ConstSFUSizeRef size   // スクロール量
);

SFRResponder::GroupSelect
グループ化されているレスポンダすべてを最前面に移動させます。
[ public ]
Void GroupSelect(Void);

解説

グループ化されているレスポンダすべてを最前面に移動します。ただし、フォーカスが当たっていて ターゲッティングされていて、PROPERTY_SELECT フラグが設定されている レスポンダが他に存在する場合、そちらが優先されます。


SFRResponder::GroupStatusEnable
グループ化されているレスポンダすべてに対して、応答可能/不可能を設定します。
[ public ]
Void GroupStatusEnable(
    Bool enable   // 設定する値
);

参照

SFRResponder::GetStatusEnable


SFRResponder::GroupStatusVisible
グループ化されているレスポンダすべてに対して、可視/不可視を設定します。
[ public ]
Void GroupStatusVisible(
    Bool visible   // 設定する値
);

参照

SFRResponder::GetStatusVisible


SFRResponder::InvalidateBase
ベース領域内のアップデート領域を登録します。
[ public ]
Void InvalidateBase(Void);
[ public ]
Void InvalidateBase(
    ConstSFURectRef rect   // 登録する領域
);

使用例

ベース領域をすべてアップデート領域にスケジューリング するには以下のように記述します。

InvalidateBase(GetBaseWorld());

以下の関数も使用できます。こちらのほうが高速です。

InvalidateBase();

参照

SFRResponder::InvalidateContent


SFRResponder::InvalidateContent
コンテント領域内のアップデート領域を登録します。
[ public ]
Void InvalidateContent(Void);
[ public ]
Void InvalidateContent(
    ConstSFURectRef rect   // 登録する領域
);

使用例

コンテント領域をすべてアップデート領域に スケジューリングするには以下のように記述します。

InvalidateContent(GetContentWorld());

以下の関数も使用できます。こちらのほうが高速です。

InvalidateContent();

参照

SFRResponder::InvalidateBase


SFRResponder::InvalidateVirtual
仮想領域内のアップデート領域を登録します。
[ public ]
Void InvalidateVirtual(Void);
[ public ]
Void InvalidateVirtual(
    ConstSFURectRef rect   // 登録する領域
);

使用例

仮想領域をすべてアップデート領域に スケジューリングするには以下のように記述します。

InvalidateVirtual(GetVirtualWorld());

以下の関数も使用できます。こちらのほうが高速です。

InvalidateVirtual();

参照

SFRResponder::InvalidateBase


SFRResponder::Invoke
イベントを送信します。
[ public, virtual ]
Bool Invoke(
    ConstSFUEventRef event   // 送信するイベント
);

戻り値

イベントが処理されたとき TRUE を返します。


SFRResponder::LeftHandler
数字の4キーが押されたときのハンドラです。
[ protected ]
Bool LeftHandler(Void);

解説

PROPERTY_MOVABLE が設定されているレスポンダを左に移動します。


SFRResponder::Move
レスポンダを移動します。
[ public ]
Void Move(
    ConstSFUSizeRef size   // 移動量
);

SFRResponder::NextHandler
下矢印キーが押されたときのハンドラです。 フォーカスを一つ後に移動します。
[ protected ]
Bool NextHandler(Void);

SFRResponder::NorthHandler
数字の2キーが押されたときのハンドラです。
[ protected ]
Bool NorthHandler(Void);

解説

PROPERTY_SCROLLABLE が設定されていれば、仮想領域を上へスクロールします。


SFRResponder::PreviousHandler
上矢印キーが押されたときのハンドラです。 フォーカスを一つ前に移動します。
[ protected ]
Bool PreviousHandler(Void);

SFRResponder::RegisterManipulateHandler
SelectHandler, ClearHandler, NextHandler, PreviousHandler を それぞれ AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録します。
[ protected ]
SFCError RegisterManipulateHandler(Void);

SFRResponder::RegisterMoveHandler
UpHandler, DownHandler, LeftHandler, RightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。
[ protected ]
SFCError RegisterMoveHandler(Void);

SFRResponder::RegisterScrollHandler
NorthHandler, SouthHandler, WestHandler, EastHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。
[ protected ]
SFCError RegisterScrollHandler(Void);

SFRResponder::RightHandler
数字の6キーが押されたときのハンドラです。
[ protected ]
Bool RightHandler(Void);

解説

PROPERTY_MOVABLE が設定されているレスポンダを右に移動します。


SFRResponder::Scroll
仮想領域をスクロールします。
[ public ]
Void Scroll(
    ConstSFUSizeRef size   // スクロール量
);

SFRResponder::Select
レスポンダを最前面に移動させます。
[ public ]
Void Select(Void);

解説

レスポンダを最前面に移動します。ただし、フォーカスが当たっていて ターゲッティングされていて、PROPERTY_SELECT フラグが設定されている レスポンダが他に存在する場合、そちらが優先されます。


SFRResponder::SelectHandler
セレクトキーが押されたときのハンドラです。
[ protected ]
Bool SelectHandler(Void);

解説

フォーカスされているレスポンダをターゲッティング状態にします。


SFRResponder::SetBaseBound
ベース領域を親の相対座標で設定します。
[ public, virtual ]
Void SetBaseBound(
    ConstSFURectRef rect   // 設定する値
);

使用例

レスポンダの座標を右下に10ピクセル移動されるには 以下のように記述します。

SFRResponderPtr   r;
SFURect           u;

u = r->GetBaseBound();
u.Offset(10,10);
r->SetBaseBound(u);

参照

SFRResponder::GetBaseBound


SFRResponder::SetContentBound
コンテント領域をベース領域の相対座標で設定します。
[ public, virtual ]
Void SetContentBound(
    ConstSFURectRef rect   // 設定する値
);

SFRResponder::SetMoveInterval
UpHandler, DownHandler, LeftHandler, RightHandler によりレスポンダが移動されるときの移動量を設定します。
[ public ]
Void SetMoveInterval(
    SInt16 interval   // 設定する値
);

参照

SFRResponder::GetMoveInterval


SFRResponder::SetMoveMargin
UpHandler, DownHandler, LeftHandler, RightHandler, Move 関数によりレスポンダが移動されるときに画面の端から何処まで 移動できるかのマージンを設定します。
[ public ]
Void SetMoveMargin(
    SInt16 margin   // 設定する値
);

参照

SFRResponder::GetMoveMargin


SFRResponder::SetReference
ユーザが自由に設定できるリファレンス値を設定します。
[ public ]
Void SetReference(
    VoidPtr ref   // 設定する値
);

参照

SFRResponder::GetReference


SFRResponder::SetScrollInterval
NorthHandler, SouthHandler, WestHandler, EastHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を設定します。
[ public ]
Void SetScrollInterval(
    SInt16 interval   // 設定する値
);

参照

SFRResponder::GetScrollInterval


SFRResponder::SetStatusEnable
応答可能/不可能を設定します。
[ public, virtual ]
Void SetStatusEnable(
    Bool enable   // 設定する値
);

参照

SFRResponder::GetStatusEnable


SFRResponder::SetStatusFocus
フォーカス/非フォーカスを設定します。
[ public, virtual ]
Void SetStatusFocus(
    Bool focus   // 設定する値
);

参照

SFRResponder::GetStatusFocus


SFRResponder::SetStatusTarget
ターゲット/非ターゲットを設定します。
[ public, virtual ]
Void SetStatusTarget(
    Bool target   // 設定する値
);

参照

SFRResponder::GetStatusTarget


SFRResponder::SetStatusVisible
可視/不可視を設定します。
[ public, virtual ]
Void SetStatusVisible(
    Bool visible   // 設定する値
);

参照

SFRResponder::GetStatusVisible


SFRResponder::SetTranslate
コンテント領域から見た仮想領域の原点を設定します。
[ public ]
Void SetTranslate(
    ConstSFUPointRef point   // 設定する値
);

SFRResponder::SetTravelMargin
フォーカスされたレスポンダを自動的に可視領域内に 移動させるときのマージンを設定します。
[ public ]
Void SetTravelMargin(
    SInt16 margin   // 設定する値
);

参照

SFRResponder::GetTravelMargin


SFRResponder::SetVirtualBound
仮想領域をコンテント領域の相対座標で設定します。
[ public, virtual ]
Void SetVirtualBound(
    ConstSFURectRef rect   // 設定する値
);

SFRResponder::SouthHandler
数字の8キーが押されたときのハンドラです。
[ protected ]
Bool SouthHandler(Void);

解説

PROPERTY_SCROLLABLE が設定されていれば、仮想領域を下へスクロールします。


SFRResponder::Ungroup
グループ化を解除します。
[ public ]
Void Ungroup(Void);

参照

SFRResponder::Group


SFRResponder::UnregisterManipulateHandler
AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録されているハンドラを 削除します。
[ protected ]
Void UnregisterManipulateHandler(Void);

SFRResponder::UnregisterMoveHandler
AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。
[ protected ]
Void UnregisterMoveHandler(Void);

SFRResponder::UnregisterScrollHandler
AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。
[ protected ]
Void UnregisterScrollHandler(Void);

SFRResponder::UpHandler
数字の2キーが押されたときのハンドラです。
[ protected ]
Bool UpHandler(Void);

解説

PROPERTY_MOVABLE が設定されているレスポンダを上に移動します。


SFRResponder::WestHandler
数字の4キーが押されたときのハンドラです。
[ protected ]
Bool WestHandler(Void);

解説

PROPERTY_SCROLLABLE が設定されていれば、仮想領域を左へスクロールします。


SFRResponder::BehaviorEnum
レスポンダの振る舞いを表します。
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 強制通知

参照

SFRResponder::SFRResponder