前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFRResponder
レスポンダの基底クラスです。
#include <SFRResponder.hpp>
class SFRResponder : public SFRHandler;
SFMTYPEDEFCLASS(SFRResponder)

継承図

SFRResponder クラスの継承図

協調図

SFRResponder クラスの協調図

解説

SFRResponder クラスはイベント ハンドリングと再描画処理を行います。

ウィンドウやコントロールなどすべての UI コンポーネント( レスポンダ )は SFRResponder クラスを継承します。

[Note] レスポンダとは

SophiaFramework では、ウィンドウやコントロールなどの UI コンポーネントをレスポンダと呼びます。

図 206. 継承関係

継承関係

参照

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 から継承)
コールバック関数の型です。

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

参照

SFRResponder::~SFRResponder | SFRResponder::BehaviorEnum


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

参照

SFRResponder::SFRResponder


SFRResponder::ClearHandler
[ハンドラ] ターゲット状態を解除、またはレスポンダを破棄します。
[ public ]
Bool ClearHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

PROPERTY_DIRECT が設定されていなくて、ターゲットされている場合は、ターゲットを解除します。

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

SFRHandler::RegisterHandler 関数でクリアキーイベントなどのイベントと関連付ける必要があります。

詳細情報 : 振る舞い

使用例

RegisterHandler(SFEVT_KEY,
                AVK_CLR,
                HANDLER_AFTER,
                HANDLER_FUNCTION(ClearHandler)));

参照

SFRResponder::SelectHandler


SFRResponder::Compare
タイプ、アトリビュート、振る舞いが一致するか調べます。
[ public, const ]
Bool Compare(
    SFCType type            // タイプ
    SFCType attribute       // アトリビュート
    BehaviorType behavior   // 振る舞い
);

戻り値

  • 一致したとき : true
  • 一致しなかったとき : false

SFRResponder::FocusDown
1つ下のレスポンダにフォーカスを移動します。
[ public, const ]
Bool FocusDown(
    Bool repeat = true   // 見つからなければ上から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと X 軸成分で重なりがある、1つ下のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

参照

SFRResponder::FocusUp | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious


SFRResponder::FocusDownHandler
[ハンドラ] 1つ下のレスポンダにフォーカスを移動します。
[ public ]
Bool FocusDownHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと X 軸成分で重なりがある、1つ下のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

SFRHandler::RegisterHandler 関数で下矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_DOWN, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusDownHandler));

参照

SFRResponder::FocusUpHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler


SFRResponder::FocusLeft
1つ左のレスポンダにフォーカスを移動します。
[ public, const ]
Bool FocusLeft(
    Bool repeat = true   // 見つからなければ右から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと Y 軸成分で重なりがある、1つ左のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

参照

SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious


SFRResponder::FocusLeftHandler
[ハンドラ] 1つ左のレスポンダにフォーカスを移動します。
[ public ]
Bool FocusLeftHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと Y 軸成分で重なりがある、1つ左のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

SFRHandler::RegisterHandler 関数で左矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_LEFT, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusLeftHandler));

参照

SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler


SFRResponder::FocusNext
1つ後の兄弟レスポンダにフォーカスを移動します。
[ public, const ]
Bool FocusNext(
    Bool repeat = true   // 見つからなければ先頭から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」なレスポンダが兄弟フォーカス移動先の対象となります。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

終端まで達した場合は、先頭に戻ってフォーカスします。

参照

SFRResponder::FocusPrevious | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight


SFRResponder::FocusNextHandler
[ハンドラ] 1つ後の兄弟レスポンダにフォーカスを移動します。
[ public ]
Bool FocusNextHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

終端まで達した場合は、先頭に戻ってフォーカスします。

SFRHandler::RegisterHandler 関数で上矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_UP, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusNextHandler));

参照

SFRResponder::FocusPreviousHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler


SFRResponder::FocusPrevious
1つ前の兄弟レスポンダにフォーカスに移動します。
[ public, const ]
Bool FocusPrevious(
    Bool repeat = true   // 見つからなければ最後から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

先頭まで達した場合は、終端に戻ってフォーカスします。

参照

SFRResponder::FocusNext | SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight


SFRResponder::FocusPreviousHandler
[ハンドラ] 1つ前の兄弟レスポンダにフォーカスを移動します。
[ public ]
Bool FocusPreviousHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」な兄弟レスポンダをフォーカス移動の対象とします。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

終端まで達した場合は、先頭に戻ってフォーカスします。

SFRHandler::RegisterHandler 関数で下矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_DOWN, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusPreviousHandler));

参照

SFRResponder::FocusNextHandler | SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler


SFRResponder::FocusRight
1つ右のレスポンダにフォーカスを移動します。
[ public, const ]
Bool FocusRight(
    Bool repeat = true   // 見つからなければ左から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと Y 軸成分で重なりがある、1つ右のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

参照

SFRResponder::FocusUp | SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusNext | SFRResponder::FocusPrevious


SFRResponder::FocusRightHandler
[ハンドラ] 1つ右のレスポンダにフォーカスを移動します。
[ public ]
Bool FocusRightHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと Y 軸成分で重なりがある、1つ右のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

SFRHandler::RegisterHandler 関数で右矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_RIGHT, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusRightHandler));  

参照

SFRResponder::FocusUpHandler | SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler


SFRResponder::FocusUp
1つ上のレスポンダにフォーカスを移動します。
[ public, const ]
Bool FocusUp(
    Bool repeat = true   // 見つからなければ下から再検索を行う
);

戻り値

  • 成功したとき : true
  • 失敗したとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと X 軸成分で重なりがある、1つ上のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

[Note] フォーカスとは

詳細情報 : フォーカス

参照

SFRResponder::FocusDown | SFRResponder::FocusLeft | SFRResponder::FocusRight | SFRResponder::FocusNext | SFRResponder::FocusPrevious


SFRResponder::FocusUpHandler
[ハンドラ] 1つ上のレスポンダにフォーカスを移動します。
[ public ]
Bool FocusUpHandler(Void);

戻り値

  • 処理されたとき : true
  • 処理されなかったとき : false

解説

「可視かつ応答可能」なレスポンダがフォーカス移動先の対象となります。

そのレスポンダと X 軸成分で重なりがある、1つ上のレスポンダにフォーカスが移動します。

[Note] 「可視かつ応答可能」について

詳細情報 : 振る舞い

SFRHandler::RegisterHandler 関数で上矢印キーイベントなどのイベントと関連付ける必要があります。

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_UP, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(FocusUpHandler));

参照

SFRResponder::FocusDownHandler | SFRResponder::FocusLeftHandler | SFRResponder::FocusRightHandler | SFRResponder::FocusNextHandler | SFRResponder::FocusPreviousHandler


SFRResponder::GetAppearanceTransparent
APPEARANCE_TRANSPARENT フラグを取得します。
[ protected, const ]
Bool GetAppearanceTransparent(Void);

戻り値

  • 設定されているとき : true
  • 設定されていないとき : false

解説

SFRResponder::BehaviorEnum の APPEARANCE_TRANSPARENT が設定されているか確認します。

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

使用例

レスポンダのアトリビュートに応じた分岐処理

// 種類が不明のレスポンダ( responder )がある場合

// レスポンダのアトリビュートに応じて処理を分岐する
switch (responder->GetAttribute()) {
    case ATTRIBUTE_SFRTITLEWINDOW:        // ウィンドウ
        ...
    case ATTRIBUTE_SFRBUTTONCONTROL:      // ボタン
        ...
    case ATTRIBUTE_SFRRADIOBUTTONCONTROL: // ラジオ ボタン
        ...
}

参照

SFRResponder::GetType


SFRResponder::GetBack
検索条件に一致する、最背面の子レスポンダを取得します。
[ public, const ]
SFRResponderPtr GetBack(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
);

引数

type

検索対象するレスポンダの「タイプ」を指定します。

任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。

attribute

検索対象するレスポンダの「アトリビュート」を指定します。

任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。

behavior

検索するレスポンダの「振る舞い」を指定します。

「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。

任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。

戻り値

検索は所有関係の子階層の終端から開始して一周します。 見つからなければ null を返します。

解説

[Note] レスポンダの検索について

詳細情報 : 検索

使用例

例 688. 「タイプ」、「アトリビュート」、「振る舞い」に関係なく、最背面のレスポンダを取得する方法

responder>GetBack();

例 689. 「タイプ」がウィンドウである、最背面のレスポンダを取得する方法

responder->GetBack(TYPE_SFRWINDOW);

参照

SFRResponder::GetFront | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward


SFRResponder::GetBaseBound
所有関係の親レスポンダのコンテント座標系でベース領域を取得します。
[ public, const ]
SFXRectangleConstRef GetBaseBound(Void);

解説

[Note] レスポンダの描画領域について

詳細情報 : 描画領域

使用例

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

SFRResponderPtr   r;
SFXRectangle      u;

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

参照

SFRResponder::SetBaseBound | SFRResponder::GetContentBound | SFRResponder::GetVirtualBound | SFRResponder::GetBaseWorld


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

解説

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

[Note] レスポンダの描画領域について

詳細情報 : 描画領域

参照

SFRResponder::GetContentWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetBaseBound | SFRResponder::GetBaseBound


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

解説

[Note] レスポンダの描画領域について

詳細情報 : 描画領域

参照

SFRResponder::SetContentBound | SFRResponder::GetBaseBound | SFRResponder::GetVirtualBound | SFRResponder::GetContentWorld


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

解説

コンテント領域の長方形を返します。 左上の点は必ず ( 0, 0 ) になります。

[Note] レスポンダの描画領域について

詳細情報 : 描画領域

参照

SFRResponder::GetBaseWorld | SFRResponder::GetVirtualWorld | SFRResponder::SetContentBound | SFRResponder::GetContentBound


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

SFRResponder::GetFocus
所有関係の子階層のレスポンダでフォーカスを持つレスポンダを取得します。
[ public, const ]
SFRResponderPtr GetFocus(Void);

解説

フォーカスを持つレスポンダが存在しない場合は、null を返します。

使用例

SFRResponderPtr responder(null);

// 所有関係の子階層のレスポンダで
// フォーカスを持つレスポンダを取得できた場合
if (GetFocus()) {

    // 検索条件に一致する、1つ背面にある兄弟レスポンダを取得する
    responder = GetFocus()->GetPrevious(TYPE_WILDCARD, ATTRIBUTE_WILDCARD, STATUS_VISIBLE | STATUS_ENABLE, false);
}

SFRResponder::GetFrameMargin
ベース領域とコンテント領域の間のマージンを取得します。
[ public, const ]
SFXMargin GetFrameMargin(Void);

解説

[Note] レスポンダの描画領域について

詳細情報 : 描画領域

参照

SFRResponder::SetFrameMargin


SFRResponder::GetFront
検索条件に一致する、最前面の子レスポンダを取得します。
[ public, const ]
SFRResponderPtr GetFront(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
);

引数

type

検索対象するレスポンダの「タイプ」を指定します。

任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。

attribute

検索対象するレスポンダの「アトリビュート」を指定します。

任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。

behavior

検索するレスポンダの「振る舞い 」を指定します。

「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。

任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。

戻り値

検索は所有関係の子階層の最前面から開始して一周します。 見つからなければ null を返します。

解説

[Note] レスポンダの検索について

詳細情報 : 検索

使用例

例 690. 「タイプ」、「アトリビュート」、「振る舞い」に関係なく、最前面のレスポンダを取得する方法

responder->GetFront();

例 691. 「タイプ」がウィンドウである、最前面のレスポンダを取得する方法

responder->GetFront(TYPE_SFRWINDOW);

参照

SFRResponder::GetBack | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward


SFRResponder::GetIndexBackward
検索条件に一致する兄弟レスポンダの中で、最背面から何番目であるかを取得します。
[ public, const ]
SInt16 GetIndexBackward(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
);

引数

type

検索対象するレスポンダの「タイプ」を指定します。

任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。

attribute

検索対象するレスポンダの「アトリビュート」を指定します。

任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。

behavior

検索するレスポンダの「振る舞い」を指定します。

「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。

任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。

戻り値

背面から数えた自分のインデックスを返します。 インデックスは 0-based で表されます。

参照

SFRResponder::GetIndexForward | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetFront | SFRResponder::GetBack


SFRResponder::GetIndexForward
検索条件に一致する兄弟レスポンダの中で、最前面から何番目であるかを取得します。
[ public, const ]
SInt16 GetIndexForward(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
);

引数

type

検索対象するレスポンダの「タイプ」を指定します。

任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。

attribute

検索対象するレスポンダの「アトリビュート」を指定します。

任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。

behavior

検索するレスポンダの「振る舞い」を指定します。

「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。

任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。

戻り値

前面から数えた自分のインデックスを返します。 インデックスは 0-based で表されます。

参照

SFRResponder::GetIndexBackward | SFRResponder::GetNthForward | SFRResponder::GetNthBackward | SFRResponder::GetFront | SFRResponder::GetBack


SFRResponder::GetInheritEnable
所有関係の親レスポンダも含めた、レスポンダの応答可能 / 不可能の状態を取得します。
[ public, const ]
Bool GetInheritEnable(Void);

戻り値

  • 応答可能な状態のとき : true
  • 応答不可能な状態のとき : false

解説

親のレスポンダが応答不可能な状態の場合、GetInheritEnable 関数は応答不可能の状態を返します。

[Note] 使い方

GetInheritEnable 関数は親レスポンダを含めたレスポンダの応答状態が取得できるため、レスポンダの描画時などに使います。

使用例

// 親レスポンダも含めた、レスポンダが応答可能な場合
if (GetInheritEnable()) {
    // 何か処理を行う
}

参照

SFRResponder::GroupStatusEnable | SFRResponder::SetStatusEnable | SFRResponder::GetStatusEnable


SFRResponder::GetInheritFocus
所有関係の親レスポンダも含めた、レスポンダのフォーカス / 非フォーカスの状態を取得します。
[ public, const ]
Bool GetInheritFoc