![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |


SFRResponder クラスはイベント ハンドリングと再描画処理を行います。
ウィンドウやコントロールなどすべての UI コンポーネント( レスポンダ )は SFRResponder クラスを継承します。
![]() |
レスポンダとは |
|---|---|
SophiaFramework では、ウィンドウやコントロールなどの UI コンポーネントをレスポンダと呼びます。 | |
SFRApplication | SFRWindow | SFRDialog | SFRControl | SFRPane | SFRMenu | レスポンダ
| コンストラクタ/デストラクタ |
|---|
|
SFRResponder(
SFRResponderPtr parent
, SFXRectangleConstRef rect
, SFXMarginConstRef margin
, SFCType type
, SFCType attribute
, BehaviorType behavior
)
SFRResponder クラスのコンストラクタです。
|
|
~SFRResponder( Void ) SFRResponder クラスのデストラクタです。
|
| パブリック関数 | |
|---|---|
| Bool |
ClearHandler( Void )
[ハンドラ] ターゲット状態を解除、またはレスポンダを破棄します。
|
| Bool |
Compare(
SFCType type
, SFCType attribute
, BehaviorType behavior
) タイプ、アトリビュート、振る舞いが一致するか調べます。
|
| Bool |
FocusDown(
Bool repeat = true
) 1つ下のレスポンダにフォーカスを移動します。
|
| Bool |
FocusDownHandler( Void )
[ハンドラ] 1つ下のレスポンダにフォーカスを移動します。
|
| Bool |
FocusLeft(
Bool repeat = true
) 1つ左のレスポンダにフォーカスを移動します。
|
| Bool |
FocusLeftHandler( Void )
[ハンドラ] 1つ左のレスポンダにフォーカスを移動します。
|
| Bool |
FocusNext(
Bool repeat = true
) 1つ後の兄弟レスポンダにフォーカスを移動します。
|
| Bool |
FocusNextHandler( Void )
[ハンドラ] 1つ後の兄弟レスポンダにフォーカスを移動します。
|
| Bool |
FocusPrevious(
Bool repeat = true
) 1つ前の兄弟レスポンダにフォーカスに移動します。
|
| Bool |
FocusPreviousHandler( Void )
[ハンドラ] 1つ前の兄弟レスポンダにフォーカスを移動します。
|
| Bool |
FocusRight(
Bool repeat = true
) 1つ右のレスポンダにフォーカスを移動します。
|
| Bool |
FocusRightHandler( Void )
[ハンドラ] 1つ右のレスポンダにフォーカスを移動します。
|
| Bool |
FocusUp(
Bool repeat = true
) 1つ上のレスポンダにフォーカスを移動します。
|
| Bool |
FocusUpHandler( Void )
[ハンドラ] 1つ上のレスポンダにフォーカスを移動します。
|
| SFCType |
GetAttribute( Void ) アトリビュートを取得します。
|
| SFRResponderPtr |
GetBack(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する、最背面の子レスポンダを取得します。
|
| SFXRectangleConstRef |
GetBaseBound( Void ) 所有関係の親レスポンダのコンテント座標系でベース領域を取得します。
|
| SFXRectangle |
GetBaseWorld( Void ) ベース領域を取得します。
|
| SFXRectangleConstRef |
GetContentBound( Void ) ベース領域の座標系でコンテント領域を取得します。
|
| SFXRectangle |
GetContentWorld( Void ) コンテント領域を取得します。
|
| SFRResponderPtr |
GetDirector( Void ) 所有関係の親レスポンダを取得します。
|
| SFRResponderPtr |
GetFocus( Void ) 所有関係の子階層のレスポンダでフォーカスを持つレスポンダを取得します。
|
| SFXMargin |
GetFrameMargin( Void ) ベース領域とコンテント領域の間のマージンを取得します。
|
| SFRResponderPtr |
GetFront(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する、最前面の子レスポンダを取得します。
|
| SInt16 |
GetIndexBackward(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する兄弟レスポンダの中で、最背面から何番目であるかを取得します。
|
| SInt16 |
GetIndexForward(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する兄弟レスポンダの中で、最前面から何番目であるかを取得します。
|
| Bool |
GetInheritEnable( Void ) 所有関係の親レスポンダも含めた、レスポンダの応答可能 / 不可能の状態を取得します。
|
| Bool |
GetInheritFocus( Void ) 所有関係の親レスポンダも含めた、レスポンダのフォーカス / 非フォーカスの状態を取得します。
|
| Bool |
GetInheritTarget( Void ) 所有関係の親レスポンダも含めた、レスポンダのターゲット / 非ターゲットの状態を取得します。
|
| Bool |
GetInheritVisible( Void ) 所有関係の親レスポンダも含めた、レスポンダの可視 / 不可視の状態を取得します。
|
| SFRResponderPtr |
GetLeft(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
グループ化されているレスポンダのうち、検索条件に一致する、1つ左(1つ前)のレスポンダを取得します。
|
| SInt16 |
GetMoveInterval( Void )
一回あたりの移動ピクセル数を取得します。
|
| SInt16 |
GetMoveMargin( Void )
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で取得します。
|
| SFRResponderPtr |
GetNext(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
, Bool repeat = true
)
検索条件に一致する、1つ背面にある兄弟レスポンダを取得します。
|
| SFRResponderPtr |
GetNthBackward(
SInt16 index
, SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する、最背面から N 番目の子レスポンダを取得します。
|
| SFRResponderPtr |
GetNthForward(
SInt16 index
, SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
検索条件に一致する、最前面から N 番目の子レスポンダを取得します。
|
| SFRResponderPtr |
GetPrevious(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
, Bool repeat = true
)
検索条件に一致する、1つ前面にある兄弟レスポンダを取得します。
|
| VoidPtr |
GetReference( Void ) ユーザーが自由に設定できるリファレンス値を取得します。
|
| SFRResponderPtr |
GetRight(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
グループ化されているレスポンダのうち、検索条件に一致する、1つ右(ひとつ後)のレスポンダを取得します。
|
| SInt16 |
GetScrollInterval( Void ) 仮想領域をスクロールする単位を取得します。(ピクセル数)
|
| Bool |
GetStatusEnable( Void ) 応答可能 / 不可能 フラグを取得します。
|
| Bool |
GetStatusFocus( Void ) フォーカス / 非フォーカス フラグを取得します。
|
| Bool |
GetStatusTarget( Void ) ターゲット / 非ターゲット フラグを取得します。
|
| Bool |
GetStatusVisible( Void ) 可視 / 不可視 フラグを取得します。
|
| SFXGrid |
GetTranslate( Void ) コンテント座標系での仮想領域の原点座標を取得します。
|
| SInt16 |
GetTravelMargin( Void )
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の長方形を
自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で取得します。
|
| SFCType |
GetType( Void ) タイプを取得します。
|
| SFXRectangleConstRef |
GetVirtualBound( Void ) 仮想領域をコンテント領域の座標系で取得します。
|
| SFXRectangle |
GetVirtualWorld( Void ) 仮想領域を取得します。
|
| Void |
Group(
SFRResponderPtr with
) 他のレスポンダとグループ化します。
|
| Void |
GroupMove(
SFXSizeConstRef size
)
グループ化されているレスポンダすべてを移動します。
|
| Void |
GroupScroll(
SFXSizeConstRef size
)
グループ化されているレスポンダすべての仮想領域をスクロールします。
|
| Void |
GroupSelect( Void ) グループ化されているレスポンダすべてを最前面に移動します。
|
| Void |
GroupStatusEnable(
Bool enable
) グループ化されているレスポンダすべてに対して、応答可能 / 不可能フラグを設定します。
|
| Void |
GroupStatusVisible(
Bool visible
) グループ化されているレスポンダすべてに対して、可視 / 不可視フラグを設定します。
|
| Void |
InvalidateBase( Void ) InvalidateBase( SFXRectangleConstRef rect ) ベース領域内の再描画領域を登録します。
|
| Void |
InvalidateContent( Void ) InvalidateContent( SFXRectangleConstRef rect ) コンテント領域内の再描画領域を登録します。
|
| Void |
InvalidateVirtual( Void ) InvalidateVirtual( SFXRectangleConstRef rect ) 仮想領域内の再描画領域を登録します。
|
| Bool |
Invoke(
SFXEventConstRef event
) イベントを送信します。
|
| Void |
Move(
SFXSizeConstRef size
)
レスポンダを移動します。
|
| Bool |
MoveDownHandler( Void )
[ハンドラ] レスポンダを下に移動します。
|
| Bool |
MoveLeftHandler( Void )
[ハンドラ] レスポンダを左に移動します。
|
| Bool |
MoveRightHandler( Void )
[ハンドラ] レスポンダを右に移動します。
|
| Bool |
MoveUpHandler( Void )
[ハンドラ] レスポンダを上に移動します。
|
| Void |
Scroll(
SFXSizeConstRef size
)
仮想領域をスクロールします。
|
| Bool |
ScrollDownHandler( Void )
[ハンドラ] 仮想領域を下にスクロールします。
|
| Bool |
ScrollLeftHandler( Void )
[ハンドラ] 仮想領域を左にスクロールします。
|
| Bool |
ScrollRightHandler( Void )
[ハンドラ] 仮想領域を右にスクロールします。
|
| Bool |
ScrollUpHandler( Void )
[ハンドラ] 仮想領域を上にスクロールします。
|
| Void |
Select( Void ) レスポンダを最前面に移動します。
|
| Bool |
SelectHandler( Void )
[ハンドラ] レスポンダをターゲット状態にします。
|
| Void |
SetBaseBound(
SFXRectangleConstRef rect
) 所有関係の親レスポンダのコンテント座標系でベース領域を設定します。
|
| Void |
SetContentBound(
SFXRectangleConstRef rect
) ベース領域の座標系でコンテント領域を設定します。
|
| Void |
SetFrameMargin(
SFXMarginConstRef param
) ベース領域とコンテント領域の間のマージンを設定します。
|
| Void |
SetMoveInterval(
SInt16 interval
) 一回あたりの移動ピクセル数を設定します。
|
| Void |
SetMoveMargin(
SInt16 margin
)
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で設定します。
|
| Void |
SetReference(
VoidPtr ref
) ユーザーが自由に設定できるリファレンス値を設定します。
|
| Void |
SetScrollInterval(
SInt16 interval
) 仮想領域をスクロールする単位を取得します。(ピクセル数)
|
| Void |
SetStatusEnable(
Bool enable
) 応答可能 / 不可能フラグを設定します。
|
| Void |
SetStatusFocus(
Bool focus
) フォーカス / 非フォーカス フラグを設定します。
|
| Void |
SetStatusTarget(
Bool target
) ターゲット / 非ターゲット フラグを設定します。
|
| Void |
SetStatusVisible(
Bool visible
) 可視 / 不可視フラグを設定します。
|
| Void |
SetTranslate(
SFXGridConstRef point
) コンテント座標系での仮想領域の原点座標を設定します。
|
| Void |
SetTravelMargin(
SInt16 margin
)
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の長方形を
自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で設定します。
|
| Void |
SetVirtualBound(
SFXRectangleConstRef rect
) 仮想領域をコンテント領域の座標系で設定します。
|
| Void |
Travel(
SFXRectangleConstRef rect
)
指定した長方形がコンテント領域に入るように、レスポンダの仮想領域をスクロールします。
|
| Void |
Ungroup( Void ) グループ化したレスポンダを解除します。
|
| SFCError |
RegisterHandler(
HandlerEnum timing
, SFRHandlerSPP spp
, VoidPtr ref
)
(SFRHandler から継承)
RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum btype , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) ハンドラを登録します。
|
| SFCError |
RegisterTracer(
BehaviorType behavior
, TracerEnum trace
)
(SFRTracer から継承)
RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) トレーサを登録します。
|
| Void |
UnregisterHandler(
HandlerEnum timing
)
(SFRHandler から継承)
UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , HandlerEnum timing ) (SFRHandler から継承) 登録されているハンドラを削除します。
|
| Void |
UnregisterTracer( Void )
(SFRTracer から継承)
UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type , UInt16 p16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type ) (SFRTracer から継承) 登録されているトレーサを削除します。
|
| プロテクト関数 | |
|---|---|
| Bool |
GetAppearanceTransparent( Void ) APPEARANCE_TRANSPARENT フラグを取得します。
|
| Bool |
GetPropertyClosable( Void ) PROPERTY_CLOSABLE フラグを取得します。
|
| Bool |
GetPropertyDirect( Void ) PROPERTY_DIRECT フラグを取得します。
|
| Bool |
GetPropertyMovable( Void ) PROPERTY_MOVABLE フラグを取得します。
|
| Bool |
GetPropertyScrollable( Void ) PROPERTY_SCROLLABLE フラグを取得します。
|
| Bool |
GetPropertySelect( Void ) PROPERTY_SELECT フラグを取得します。
|
| Bool |
GetPropertyTravel( Void ) PROPERTY_TRAVEL フラグを取得します。
|
| HandlerRecConstPtr |
SearchHandler(
SFXEventConstRef event
, HandlerEnum timing
)
(SFRHandler から継承)
指定したイベントに一致するハンドラを検索します。
|
| TracerRecConstPtr |
SearchTracer(
SFXEventConstRef event
)
(SFRTracer から継承)
指定したイベントに一致するトレーサを検索します。
|
| 型 |
|---|
|
BehaviorEnum
レスポンダの振る舞いを表します。
|
|
HandlerEnum
(SFRHandler から継承)
ハンドラの呼び出されるタイミングを表します。
|
|
SFRHandlerSPP
(SFRHandler から継承)
コールバック関数の型です。
|
|
TracerEnum
(SFRTracer から継承)
トレース順序を表します。
|
|
TracerTraceMPP
(SFRTracer から継承)
コールバック関数の型です。
|
[ protected ]
SFRResponder(
SFRResponderPtr parent // 親となるレスポンダのポインター
SFXRectangleConstRef rect // 親の座標上での位置
SFXMarginConstRef margin // ベース領域とコンテント領域のマージン
SFCType type // タイプ
SFCType attribute // アトリビュート
BehaviorType behavior // 振る舞い
);[ protected, virtual ] ~SFRResponder(Void);
[ public ] Bool ClearHandler(Void);
PROPERTY_DIRECT が設定されていなくて、ターゲットされている場合は、ターゲットを解除します。
ターゲットが解除されている、または PROPERTY_DIRECT が設定されていてフォーカスされている場合、PROPERTY_CLOSABLE が設定されていればレスポンダを破棄します。
SFRHandler::RegisterHandler 関数でクリアキーイベントなどのイベントと関連付ける必要があります。
詳細情報 : 振る舞い
RegisterHandler(SFEVT_KEY,
AVK_CLR,
HANDLER_AFTER,
HANDLER_FUNCTION(ClearHandler)));
[ public, const ] Bool Compare( SFCType type // タイプ SFCType attribute // アトリビュート BehaviorType behavior // 振る舞い );
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと X 軸成分で重なりがある、1つ下のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
SFRResponder::FocusUp | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ public ] Bool FocusDownHandler(Void);
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと X 軸成分で重なりがある、1つ下のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
SFRHandler::RegisterHandler 関数で下矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_DOWN,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusDownHandler));
SFRResponder::FocusUpHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと Y 軸成分で重なりがある、1つ左のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ public ] Bool FocusLeftHandler(Void);
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと Y 軸成分で重なりがある、1つ左のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
SFRHandler::RegisterHandler 関数で左矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_LEFT,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusLeftHandler));
SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
「可視かつ応答可能」なレスポンダが兄弟フォーカス移動先の対象となります。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
終端まで達した場合は、先頭に戻ってフォーカスします。
SFRResponder::FocusPrevious | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight
[ public ] Bool FocusNextHandler(Void);
「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
終端まで達した場合は、先頭に戻ってフォーカスします。
SFRHandler::RegisterHandler 関数で上矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_UP,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusNextHandler));
SFRResponder::FocusPreviousHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler
「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
先頭まで達した場合は、終端に戻ってフォーカスします。
SFRResponder::FocusNext | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight
[ public ] Bool FocusPreviousHandler(Void);
「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
終端まで達した場合は、先頭に戻ってフォーカスします。
SFRHandler::RegisterHandler 関数で下矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_DOWN,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusPreviousHandler));
SFRResponder::FocusNextHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと Y 軸成分で重なりがある、1つ右のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ public ] Bool FocusRightHandler(Void);
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと Y 軸成分で重なりがある、1つ右のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
SFRHandler::RegisterHandler 関数で右矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_RIGHT,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusRightHandler));
SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと X 軸成分で重なりがある、1つ上のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
![]() |
フォーカスとは |
|---|---|
詳細情報 : フォーカス | |
SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious
[ public ] Bool FocusUpHandler(Void);
「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。
そのレスポンダと X 軸成分で重なりがある、1つ上のレスポンダにフォーカスが移動します。
![]() |
「可視かつ応答可能」について |
|---|---|
詳細情報 : 振る舞い | |
SFRHandler::RegisterHandler 関数で上矢印キーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY,
AVK_UP,
HANDLER_AFTER,
HANDLER_FUNCTION(FocusUpHandler));
SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler
[ protected, const ] Bool GetAppearanceTransparent(Void);
[ public, const ] SFCType GetAttribute(Void);
レスポンダのアトリビュートに応じた分岐処理
// 種類が不明のレスポンダ( responder )がある場合 // レスポンダのアトリビュートに応じて処理を分岐する switch (responder->GetAttribute()) { case ATTRIBUTE_SFRTITLEWINDOW: // ウィンドウ ... case ATTRIBUTE_SFRBUTTONCONTROL: // ボタン ... case ATTRIBUTE_SFRRADIOBUTTONCONTROL: // ラジオ ボタン ... }
[ public, const ] SFRResponderPtr GetBack( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
検索は所有関係の子階層の終端から開始して一周します。 見つからなければ null を返します。
![]() |
レスポンダの検索について |
|---|---|
詳細情報 : 検索 | |
SFRResponder::GetFront | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward
[ public, const ] SFXRectangleConstRef GetBaseBound(Void);
![]() |
レスポンダの描画領域について |
|---|---|
詳細情報 : 描画領域 | |
レスポンダの座標を右下に 10 ピクセル移動させる場合、以下のように記述します。
SFRResponderPtr r; SFXRectangle u; u = r->GetBaseBound(); u.Offset(10,10); r->SetBaseBound(u);
SFRResponder::SetBaseBound | SFRResponder::GetContentBound | SFRResponder::GetVirtualBound | SFRResponder::GetBaseWorld
[ public, const ] SFXRectangle GetBaseWorld(Void);
SFRResponder::GetContentWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetBaseBound | SFRResponder::GetBaseBound
[ public, const ] SFXRectangleConstRef GetContentBound(Void);
![]() |
レスポンダの描画領域について |
|---|---|
詳細情報 : 描画領域 | |
SFRResponder::SetContentBound | SFRResponder::GetBaseBound | SFRResponder::GetVirtualBound | SFRResponder::GetContentWorld
[ public, const ] SFXRectangle GetContentWorld(Void);
SFRResponder::GetBaseWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetContentBound | SFRResponder::GetContentBound
[ public, const ] SFRResponderPtr GetDirector(Void);
[ public, const ] SFRResponderPtr GetFocus(Void);
フォーカスを持つレスポンダが存在しない場合は、null を返します。
SFRResponderPtr responder(null); // 所有関係の子階層のレスポンダで // フォーカスを持つレスポンダを取得できた場合 if (GetFocus()) { // 検索条件に一致する、1つ背面にある兄弟レスポンダを取得する responder = GetFocus()->GetPrevious(TYPE_WILDCARD, ATTRIBUTE_WILDCARD, STATUS_VISIBLE | STATUS_ENABLE, false); }
[ public, const ] SFXMargin GetFrameMargin(Void);
![]() |
レスポンダの描画領域について |
|---|---|
詳細情報 : 描画領域 | |
[ public, const ] SFRResponderPtr GetFront( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
検索は所有関係の子階層の最前面から開始して一周します。 見つからなければ null を返します。
![]() |
レスポンダの検索について |
|---|---|
詳細情報 : 検索 | |
SFRResponder::GetBack | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward
[ public, const ] SInt16 GetIndexBackward( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
背面から数えた自分のインデックスを返します。 インデックスは 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 behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
前面から数えた自分のインデックスを返します。 インデックスは 0-based で表されます。
SFRResponder::GetIndexBackward | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] Bool GetInheritEnable(Void);
親のレスポンダが応答不可能な状態の場合、GetInheritEnable 関数は応答不可能の状態を返します。
![]() |
使い方 |
|---|---|
GetInheritEnable 関数は親レスポンダを含めたレスポンダの応答状態が取得できるため、レスポンダの描画時などに使います。 | |
// 親レスポンダも含めた、レスポンダが応答可能な場合 if (GetInheritEnable()) { // 何か処理を行う }
[ public, const ] Bool GetInheritFoc