前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFRResponder
レスポンダの基底クラスです。
#include <SFRResponder.hpp>
class SFRResponder : public SFRHandler;
SFMTYPEDEFCLASS(SFRResponder)

継承図

SFRResponder クラスの継承図

協調図

SFRResponder クラスの協調図

解説

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

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

[Note] レスポンダとは

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

図 278. 継承関係

継承関係

参照

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 )
ベース領域内の再描画領域を登録します。
Void InvalidateBase( SFXRectangleConstRef rect )
ベース領域内の再描画領域を登録します。
Void InvalidateContent( Void )
コンテント領域内の再描画領域を登録します。
Void InvalidateContent( SFXRectangleConstRef rect )
コンテント領域内の再描画領域を登録します。
Void InvalidateVirtual( Void )
仮想領域内の再描画領域を登録します。
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 から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum type , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum type , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承)
ハンドラを登録します。
SFCError RegisterTracer( BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum type , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum type , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承)
トレーサを登録します。
Void UnregisterHandler( HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum type , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承)
登録されているハンドラを削除します。
Void UnregisterTracer( Void ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum type ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum type , UInt16 p16 ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 ) (SFRTracer から継承)
登録されているトレーサを削除します。
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 ) (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] レスポンダの検索

詳細情報 : 検索

使用例

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

responder>GetBack();

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

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] レスポンダの検索

詳細情報 : 検索

使用例

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

responder->GetFront();

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

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 GetInheritFocus(Void);

戻り値

  • フォーカス状態のとき: true
  • 非フォーカスの状態のとき: false

解説

親のレスポンダが非フォーカスの状態の場合、GetInheritFocus 関数は非フォーカスの状態を返します。

[Note] 使い方

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

使用例

// 親レスポンダも含めた、レスポンダがフォーカス状態の場合
if (GetInheritFocus()) {
    // 何か処理を行う
}

参照

SFRResponder::SetStatusFocus | SFRResponder::GetStatusFocus


SFRResponder::GetInheritTarget
所有関係の親レスポンダも含めた、レスポンダのターゲット / 非ターゲットの状態を取得します。
[ public, const ]
Bool GetInheritTarget(Void);

戻り値

  • ターゲットの状態のとき: true
  • 非ターゲットの状態のとき: false

解説

親のレスポンダが非ターゲットの状態の場合、GetInheritTarget 関数は非ターゲットの状態を返します。

[Note] 使い方

GetInheritTarget 関数は親レスポンダを含めたレスポンダのターゲット状態が取得できるため、レスポンダの描画時などに使います。

使用例

// 親レスポンダも含めた、レスポンダがターゲット状態の場合
if (GetInheritTarget()) {
    // 何か処理を行う
}

参照

SFRResponder::SetStatusTarget | SFRResponder::GetStatusTarget


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

戻り値

  • 可視状態のとき: true
  • 不可視状態のとき: false

解説

親のレスポンダが不可視の状態の場合、GetInheritVisible 関数は不可視の状態を返します

[Note] 使い方

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

使用例

// 親レスポンダも含めた、レスポンダが可視状態の場合
if (GetInheritVisible()) {
    // 何か処理を行う
}

参照

SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible


SFRResponder::GetLeft
グループ化されているレスポンダのうち、検索条件に一致する、1つ左(1つ前)のレスポンダを取得します。
[ public, const ]
SFRResponderPtr GetLeft(
    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] レスポンダの検索

詳細情報 : 検索

使用例

例 792. グループ化されているレスポンダのうち、「タイプ」、「アトリビュート」、「振る舞い」に関係なく、1つ左(1つ前)のレスポンダを取得する方法

responder->GetLeft();

例 793. グループ化されているレスポンダのうち、「タイプ」がウィンドウである、1つ左(1つ前)のレスポンダを取得する方法

responder->GetLeft(TYPE_SFRWINDOW);

参照

SFRResponder::GetRight | SFRResponder::Group | SFRResponder::Ungroup


SFRResponder::GetMoveInterval
一回あたりの移動ピクセル数を取得します。
[ public, const ]
SInt16 GetMoveInterval(Void);

解説

SFRResponder::MoveUpHandlerSFRResponder::MoveDownHandlerSFRResponder::MoveLeftHandlerSFRResponder::MoveRightHandler 関数を呼び出してレスポンダを移動する単位(ピクセル数)を取得します。

上記関数でレスポンダを移動する単位は、SFRResponder::SetMoveInterval 関数で設定できます。

なお、上記関数でレスポンダを移動する単位のデフォルト値は 8 ピクセルです。

参照

SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler


SFRResponder::GetMoveMargin
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で取得します。
[ public, const ]
SInt16 GetMoveMargin(Void);

解説

このマージンのデフォルト値は 1 ピクセルです。マージンを設定するには、 SFRResponder::SetMoveMargin 関数を使います。

子レスポンダを移動するには SFRResponder::MoveUpHandlerSFRResponder::MoveDownHandlerSFRResponder::MoveLeftHandlerSFRResponder::MoveRightHandler、または SFRResponder::Move 関数を使います。

参照

SFRResponder::SetMoveMargin | SFRResponder::Move | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler


SFRResponder::GetNext
検索条件に一致する、1つ背面にある兄弟レスポンダを取得します。
[ public, const ]
SFRResponderPtr GetNext(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
    Bool repeat = true                                       // 見つからなければ最初から再検索を行う
);

引数

type

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

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

attribute

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

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

behavior

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

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

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

戻り値

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

解説

[Note] レスポンダの検索

詳細情報 : 検索

使用例

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

responder->GetNext();

例 795. 「タイプ」がウィンドウである、1つ背面にある兄弟レスポンダを取得する方法

responder->GetNext(TYPE_SFRWINDOW);

参照

SFRResponder::GetPrevious | SFRResponder::GetFront | SFRResponder::GetBack


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

引数

index

インデックスは 0-based で表します。 負の値は無効となります。

type

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

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

attribute

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

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

behavior

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

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

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

戻り値

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

使用例

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

responder->GetNthBackward(2);

参照

SFRResponder::GetNthForward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack


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

引数

index

インデックスは 0-based で表します。 負の値は無効となります。

type

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

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

attribute

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

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

behavior

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

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

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

戻り値

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

使用例

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

responder->GetNthForward(2);

参照

SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack


SFRResponder::GetPrevious
検索条件に一致する、1つ前面にある兄弟レスポンダを取得します。
[ public, const ]
SFRResponderPtr GetPrevious(
    SFCType type = TYPE_WILDCARD                             // タイプ
    SFCType attribute = ATTRIBUTE_WILDCARD                   // アトリビュート
    BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE   // 振る舞い
    Bool repeat = true                                       // 見つからなければ最後から再検索を行う
);

引数

type

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

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

attribute

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

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

behavior

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

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

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

戻り値

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

解説

[Note] レスポンダの検索

詳細情報 : 検索

使用例

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

responder->GetRight();

例 797. 「タイプ」がウィンドウである、1つ前面にある兄弟レスポンダを取得する方法

responder->GetRight(TYPE_SFRWINDOW);

参照

SFRResponder::GetNext | SFRResponder::GetFront | SFRResponder::GetBack


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

戻り値

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

解説

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

詳細情報 : 振る舞い

参照

SFRResponder::BehaviorEnum


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

使用例

SFRButtonControlPtr button;
SInt32 i;

// 番号 ( リファレンス値 ) を設定して 10 個のボタンを作成する
for (i = 0; i < 10; ++i) {
    button = new SFRButtonControl(this, SFXRectangle(0, i * 30, 20, 20), ");

    // ボタンに識別のための番号をつける
    button->SetReference(reinterpret_cast<VoidPtr>(i));
}

...

// 番号 ( リファレンス値 ) を取得する
SInt32 number = reinterpret_cast<SInt32>(button->GetReference());

参照

SFRResponder::SetReference


SFRResponder::GetRight
グループ化されているレスポンダのうち、検索条件に一致する、1つ右(ひとつ後)のレスポンダを取得します。
[ public, const ]
SFRResponderPtr GetRight(
    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] レスポンダの検索

詳細情報 : 検索

使用例

例 798. グループ化されているレスポンダのうち、「タイプ」、「アトリビュート」、「振る舞い」に関係なく、1つ右(1つ後)のレスポンダを取得する方法

responder->GetRight();

例 799. グループ化されているレスポンダのうち、「タイプ」がウィンドウである、1つ右(1つ後)のレスポンダを取得する方法

responder->GetRight(TYPE_SFRWINDOW);

参照

SFRResponder::GetLeft | SFRResponder::Group | SFRResponder::Ungroup


SFRResponder::GetScrollInterval
仮想領域をスクロールする単位を取得します。(ピクセル数)
[ public, const ]
SInt16 GetScrollInterval(Void);

解説

SFRResponder::ScrollUpHandlerSFRResponder::ScrollDownHandlerSFRResponder::ScrollLeftHandlerSFRResponder::ScrollRightHandler 関数を呼び出して仮想領域をスクロールする単位(ピクセル数)を取得します。

上記関数で仮想領域をスクロールする単位は、SFRResponder::SetScrollInterval 関数で設定できます。

なお、上記関数で仮想領域をスクロールする単位のデフォルト値は 8 ピクセルです。

詳細情報 : スクロール

参照

SFRResponder::SetScrollInterval | SFRResponder::Scroll | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler


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

戻り値

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

解説

[Note] レスポンダの応答可能 / 不可能

詳細情報 : レスポンダの応答可能 / 不可能

参照

SFRResponder::GroupStatusEnable | SFRResponder::SetStatusEnable | SFRResponder::GetInheritEnable


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

戻り値

  • フォーカス状態のとき: true
  • 非フォーカス状態のとき: false

解説

[Note] フォーカスとは

詳細情報 : フォーカス

使用例

SFRButtonControlPtr button;

...

if (button->GetStatusFocus()) { 
    // ボタンがフォーカスを持つとき
    ...
}

参照

SFRResponder::SetStatusFocus | SFRResponder::GetInheritFocus


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

戻り値

  • ターゲット状態のとき: true
  • 非ターゲット状態のとき: false

参照

SFRResponder::SetStatusTarget | SFRResponder::GetInheritTarget


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

戻り値

  • 可視状態のとき: true
  • 不可視状態のとき: false

解説

[Note] レスポンダの可視 / 不可視

詳細情報 : レスポンダの可視 / 不可視

参照

SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetInheritVisible


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

参照

SFRResponder::SetTranslate | SFRResponder::SetVirtualBound | SFRResponder::GetVirtualBound


SFRResponder::GetTravelMargin
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の矩形を 自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で取得します。
[ public, const ]
SInt16 GetTravelMargin(Void);

解説

このマージンのデフォルト値は 4 ピクセルです。マージンを設定するには、 SFRResponder::SetTravelMargin 関数を使います。

コンテント領域外にある仮想領域の矩形をコンテント領域に自動的にスクロールするには SFRResponder::Travel 関数を使いします。

参照

SFRResponder::SetTravelMargin | SFRResponder::Travel


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

解説

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

TYPE_SFRAPPLICATION ( アプリケーションレスポンダ )
TYPE_SFRWINDOW ( ウィンドウ レスポンダ )
TYPE_SFRDIALOG ( ダイアログ レスポンダ )
TYPE_SFRMENU ( メニュー レスポンダ )
TYPE_SFRCONTROL ( コントロール レスポンダ )
TYPE_SFRPANE ( ペイン レスポンダ )

参照

SFRResponder::GetAttribute


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

使用例

仮想領域を左上に 10 ピクセル移動させる場合、以下のように記述します。

SFRResponderPtr   r;
SFXRectangle      u;

u = r->GetVirtualBound();
u.Offset(-10,-10);
r->SetVirtualBound(u);

参照

SFRResponder::SetVirtualBound | SFRResponder::GetBaseBound | SFRResponder::GetContentBound | SFRResponder::GetVirtualWorld


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

解説

仮想領域の矩形を返します。 左上の点は必ず ( 0, 0 ) になります。

参照

SFRResponder::GetBaseWorld | SFRResponder::GetContentWorld | SFRResponder::SetVirtualBound | SFRResponder::GetVirtualBound


SFRResponder::Group
他のレスポンダとグループ化します。
[ public, virtual ]
Void Group(
    SFRResponderPtr with   // 自分をグループ化するレスポンダへのポインタ
);

解説

レスポンダをグループ化すると、特定の処理をグループ化されているレスポンダすべてに適応することが可能になります。

SFRRadiobuttonControl クラスなどの一部のコントロールではグループ化することによって自動的に排他的処理を行うようになります。

使用例

SFRRadiobuttonControl クラスなどをグループ化する場合、以下のように記述します。

SFRRadiobuttonControlPtr   rb0;
SFRRadiobuttonControlPtr   rb1;
SFRRadiobuttonControlPtr   rb2;

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

参照

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


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

参照

SFRResponder::Move | SFRResponder::Group | SFRResponder::Ungroup


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

解説

詳細情報 : スクロール

参照

SFRResponder::Scroll | SFRResponder::Group | SFRResponder::Ungroup


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

参照

SFRResponder::Select


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

参照

SFRResponder::SetStatusEnable | SFRResponder::GetStatusEnable | SFRResponder::GetInheritEnable | SFRResponder::Group | SFRResponder::Ungroup


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

参照

SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible | SFRResponder::GetInheritVisible | SFRResponder::Group | SFRResponder::Ungroup


SFRResponder::InvalidateBase
ベース領域内の再描画領域を登録します。
[ public ]
Void InvalidateBase(Void);
[ public ]
Void InvalidateBase(
    SFXRectangleConstRef rect   // 登録する再描画領域
);

使用例

ベース領域をすべて再描画領域にスケジュールする場合、以下のように記述します。

InvalidateBase();

参照

SFRResponder::InvalidateContent | SFRResponder::InvalidateVirtual


SFRResponder::InvalidateContent
コンテント領域内の再描画領域を登録します。
[ public ]
Void InvalidateContent(Void);
[ public ]
Void InvalidateContent(
    SFXRectangleConstRef rect   // 登録する再描画領域
);

使用例

コンテント領域をすべて再描画領域にスケジュールする場合、以下のように記述します。

InvalidateContent();

参照

SFRResponder::InvalidateBase | SFRResponder::InvalidateVirtual


SFRResponder::InvalidateVirtual
仮想領域内の再描画領域を登録します。
[ public ]
Void InvalidateVirtual(Void);
[ public ]
Void InvalidateVirtual(
    SFXRectangleConstRef rect   // 登録する再描画領域
);

使用例

仮想領域をすべて再描画領域にスケジュールする場合、以下のように記述します。

InvalidateVirtual();

参照

SFRResponder::InvalidateBase | SFRResponder::InvalidateContent


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

戻り値

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

解説

オーバーロードすることでイベント送信の方法を変更できます。

参照

SFCInvoker::Invoke


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

参照

SFRResponder::GroupMove | SFRResponder::SetMoveMargin | SFRResponder::GetMoveMargin


SFRResponder::MoveDownHandler
[ハンドラ] レスポンダを下に移動します。
[ public ]
Bool MoveDownHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_MOVABLE フラグを設定していること。

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

MoveDownHandler の移動ピクセル数は SFRResponder::SetMoveInterval 関数で設定します。

使用例

以下の 2 つの例は、ウィンドウを 10 ピクセル分下へ移動する同等の内容のコードです。

例 800. MoveDownHandler 関数を使用してウィンドウを 10 ピクセル分下へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」は PROPERTY_MOVABLE を設定する
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample", SFRTitleWindow::ALIGN_LEFT, BEHAVIOR_SFRTITLEWINDOW | PROPERTY_MOVABLE);

// MoveDownHandler 関数をイベントハンドラとして登録する
// 下矢印キーのキーイベントを受信したときに、ウィンドウを下に移動する
RegisterHandler(SFEVT_KEY, AVK_DOWN, HANDLER_AFTER, HANDLER_FUNCTION(MoveDownHandler));

// 下へ移動するピクセル数を設定する
SetMoveInterval(10);

例 801. キーハンドラを使用してウィンドウを 10 ピクセル分下へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」の設定は不要
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample");

// キーハンドラを登録する
RegisterHandler(SFEVT_KEY, HANDLER_AFTER, HANDLER_FUNCTION(OnKey));

// キーハンドラの内容
HANDLER_IMPLEMENT_BOOLEVENT(MoveSample, OnKey, event)
{
    switch (event.GetP16()) {
        case AVK_DOWN:
            // 下矢印キーのキーイベントを受信したときに、ウィンドウを 10 ピクセル分下へ移動する
            _window->Move(SFXSize(0, 10));
            return true;
    }
    return false;
}

参照

SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler | SFRResponder::BehaviorEnum


SFRResponder::MoveLeftHandler
[ハンドラ] レスポンダを左に移動します。
[ public ]
Bool MoveLeftHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_MOVABLE フラグを設定していること。

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

MoveLeftHandler の移動ピクセル数は SFRResponder::SetMoveInterval 関数で設定します。

使用例

以下の 2 つの例は、ウィンドウを 10 ピクセル分左へ移動する同等の内容のコードです。

例 802. MoveLeftHandler 関数を使用してウィンドウを 10 ピクセル分左へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」は PROPERTY_MOVABLE を設定する
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample", SFRTitleWindow::ALIGN_LEFT, BEHAVIOR_SFRTITLEWINDOW | PROPERTY_MOVABLE);

// MoveLeftHandler 関数をイベントハンドラとして登録する
// 左矢印キーのキーイベントを受信したときに、ウィンドウを左に移動する
RegisterHandler(SFEVT_KEY, AVK_LEFT, HANDLER_AFTER, HANDLER_FUNCTION(MoveLeftHandler));

// 左へ移動するピクセル数を設定する
SetMoveMargin(10);

例 803. キーハンドラを使用してウィンドウを 10 ピクセル分左へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」の設定は不要
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample");

// キーハンドラを登録する
// ウィンドウの「振る舞い」の設定は不要
RegisterHandler(SFEVT_KEY, HANDLER_AFTER, HANDLER_FUNCTION(OnKey));

// キーハンドラの内容
HANDLER_IMPLEMENT_BOOLEVENT(MoveSample, OnKey, event)
{
    switch (event.GetP16()) {
        case AVK_LEFT:
           // 左矢印キーのキーイベントを受信したときに、ウィンドウを 10 ピクセル分左へ移動する
           _window->Move(SFXSize(-10, 0));
           return true;
    }
    return false;
}

参照

SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveRightHandler | SFRResponder::BehaviorEnum


SFRResponder::MoveRightHandler
[ハンドラ] レスポンダを右に移動します。
[ public ]
Bool MoveRightHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_MOVABLE フラグを設定していること。

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

MoveRightHandler の移動ピクセル数は SFRResponder::SetMoveInterval 関数で設定します。

使用例

以下の 2 つの例は、ウィンドウを 10 ピクセル分右へ移動する同等の内容のコードです。

例 804. MoveRightHandler 関数を使用してウィンドウを 10 ピクセル分右へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」は PROPERTY_MOVABLE を設定する
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample", SFRTitleWindow::ALIGN_LEFT, BEHAVIOR_SFRTITLEWINDOW | PROPERTY_MOVABLE);

// MoveRightHandler 関数をイベントハンドラとして登録する
// 右矢印キーのキーイベントを受信したときに、ウィンドウを右に移動する
RegisterHandler(SFEVT_KEY, AVK_RIGHT, HANDLER_AFTER, HANDLER_FUNCTION(MoveRightHandler));

// 右へ移動するピクセル数を設定する
SetMoveMargin(10);

例 805. キーハンドラを使用してウィンドウを 10 ピクセル分右へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」の設定は不要
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample");

// キーハンドラを登録する
RegisterHandler(SFEVT_KEY, HANDLER_AFTER, HANDLER_FUNCTION(OnKey));

// キーハンドラの内容
HANDLER_IMPLEMENT_BOOLEVENT(MoveSample, OnKey, event)
{
    switch (event.GetP16()) {
        case AVK_RIGHT:
            // 右矢印キーのキーイベントを受信したときに、ウィンドウを 10 ピクセル分右へ移動する
            _window->Move(SFXSize(10, 0));
            return true;
    }
    return false;
}

参照

SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::BehaviorEnum


SFRResponder::MoveUpHandler
[ハンドラ] レスポンダを上に移動します。
[ public ]
Bool MoveUpHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_MOVABLE フラグを設定していること。

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

MoveUpHandler の移動ピクセル数は SFRResponder::SetMoveInterval 関数で設定します。

使用例

以下の 2 つの例は、ウィンドウを 10 ピクセル分上へ移動する同等の内容のコードです。

例 806. MoveUpHandler 関数を使用してウィンドウを 10 ピクセル分上へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」は PROPERTY_MOVABLE を設定する
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample", SFRTitleWindow::ALIGN_LEFT, BEHAVIOR_SFRTITLEWINDOW | PROPERTY_MOVABLE);

// MoveUpHandler 関数をイベントハンドラとして登録する
// 上矢印キーのキーイベントを受信したときに、ウィンドウを上に移動する
RegisterHandler(SFEVT_KEY, AVK_UP, HANDLER_AFTER, HANDLER_FUNCTION(MoveUpHandler));

// 上へ移動するピクセル数を設定する
SetMoveMargin(10);

例 807. キーハンドラを使用してウィンドウを 10 ピクセル分上へ移動するコード

SFRWindowPtr _window;

// ウィンドウを生成する
// ウィンドウの「振る舞い」の設定は不要
_window = new SFRTitleWindow(this, SFXRectangle(10, 10, 100, 180), "sample");

// キーハンドラを登録する
RegisterHandler(SFEVT_KEY, HANDLER_AFTER, HANDLER_FUNCTION(OnKey));

// キーハンドラの内容
HANDLER_IMPLEMENT_BOOLEVENT(MoveSample, OnKey, event)
{
    switch (event.GetP16()) {
        case AVK_UP:
            // 上矢印キーのキーイベントを受信したときに、ウィンドウを 10 ピクセル分上へ移動する
            _window->Move(SFXSize(0, -10));
            return true;
    }
    return false;
}

参照

SFRResponder::SetMoveInterval | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler | SFRResponder::BehaviorEnum


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

解説

詳細情報 : スクロール

参照

SFRResponder::GroupScroll


SFRResponder::ScrollDownHandler
[ハンドラ] 仮想領域を下にスクロールします。
[ public ]
Bool ScrollDownHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_SCROLLABLE フラグを設定していること。

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

スクロールする単位(ピクセル数)は SFRResponder::SetScrollInterval 関数で設定します。

詳細情報 : スクロール

使用例

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

参照

SFRHandler::RegisterHandler | SFRResponder::SetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler | SFRResponder::BehaviorEnum


SFRResponder::ScrollLeftHandler
[ハンドラ] 仮想領域を左にスクロールします。
[ public ]
Bool ScrollLeftHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_SCROLLABLE を設定していること。

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

スクロールする単位(ピクセル数)は SFRResponder::SetScrollInterval 関数で設定します。

詳細情報 : スクロール

使用例

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

参照

SFRHandler::RegisterHandler | SFRResponder::SetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollRightHandler | SFRResponder::BehaviorEnum


SFRResponder::ScrollRightHandler
[ハンドラ] 仮想領域を右にスクロールします。
[ public ]
Bool ScrollRightHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_SCROLLABLE を設定していること。

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

スクロールする単位(ピクセル数)は SFRResponder::SetScrollInterval 関数で設定します。

詳細情報 : スクロール

使用例

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

参照

SFRHandler::RegisterHandler | SFRResponder::SetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::BehaviorEnum


SFRResponder::ScrollUpHandler
[ハンドラ] 仮想領域を上にスクロールします。
[ public ]
Bool ScrollUpHandler(Void);

戻り値

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

解説

[前提条件] PROPERTY_SCROLLABLE を設定していること。

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

スクロールする単位(ピクセル数)は SFRResponder::SetScrollInterval 関数で設定します。

詳細情報 : スクロール

使用例

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

参照

SFRHandler::RegisterHandler | SFRResponder::SetScrollInterval | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler | SFRResponder::BehaviorEnum


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

参照

SFRResponder::GroupSelect


SFRResponder::SelectHandler
[ハンドラ] レスポンダをターゲット状態にします。
[ public ]
Bool SelectHandler(Void);

戻り値

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

解説

[前提条件] ターゲット状態になるためには、レスポンダがフォーカスを持つことが前提条件です。さもなければ、最前面のレスポンダをフォーカスします。

詳細情報 : 振る舞い

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

使用例

RegisterHandler(SFEVT_KEY, 
                AVK_SELECT, 
                HANDLER_AFTER, 
                HANDLER_FUNCTION(SelectHandler));

参照

SFRResponder::ClearHandler


SFRResponder::SetBaseBound
所有関係の親レスポンダのコンテント座標系でベース領域を設定します。
[ public, virtual ]
Void SetBaseBound(
    SFXRectangleConstRef rect   // 設定する値
);

使用例

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

SFRResponderPtr   r;
SFXRectangle      u;

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

参照

SFRResponder::GetBaseBound | SFRResponder::SetContentBound | SFRResponder::SetVirtualBound | SFRResponder::GetBaseWorld


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

参照

SFRResponder::GetContentBound | SFRResponder::SetBaseBound | SFRResponder::SetVirtualBound | SFRResponder::GetContentWorld


SFRResponder::SetFrameMargin
ベース領域とコンテント領域の間のマージンを設定します。
[ public ]
Void SetFrameMargin(
    SFXMarginConstRef param   // 設定するマージン
);

参照

SFRResponder::GetFrameMargin


SFRResponder::SetMoveInterval
一回あたりの移動ピクセル数を設定します。
[ public ]
Void SetMoveInterval(
    SInt16 interval   // 設定する値
);

解説

SFRResponder::MoveUpHandlerSFRResponder::MoveDownHandlerSFRResponder::MoveLeftHandlerSFRResponder::MoveRightHandler 関数を呼び出してレスポンダを移動する単位(ピクセル数)を設定します。

上記関数でレスポンダを移動する単位は、SFRResponder::GetMoveInterval 関数で取得できます。

なお、上記関数でレスポンダを移動する単位のデフォルト値は 8 ピクセルです。

参照

SFRResponder::GetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler


SFRResponder::SetMoveMargin
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で設定します。
[ public ]
Void SetMoveMargin(
    SInt16 margin   // 設定する値
);

解説

このマージンのデフォルト値は 1 ピクセルです。マージンを取得するには、 SFRResponder::GetMoveMargin 関数を使います。

レスポンダを移動するには SFRResponder::MoveUpHandlerSFRResponder::MoveDownHandlerSFRResponder::MoveLeftHandlerSFRResponder::MoveRightHandler、または SFRResponder::Move 関数を使います。

参照

SFRResponder::GetMoveMargin | SFRResponder::Move | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler


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

参照

SFRResponder::GetReference


SFRResponder::SetScrollInterval
仮想領域をスクロールする単位を取得します。(ピクセル数)
[ public ]
Void SetScrollInterval(
    SInt16 interval   // 設定する値
);

解説

SFRResponder::ScrollUpHandlerSFRResponder::ScrollDownHandlerSFRResponder::ScrollLeftHandlerSFRResponder::ScrollRightHandler 関数を呼び出して仮想領域をスクロールする単位(ピクセル数)を設定します。

上記関数で仮想領域をスクロールする単位は、SFRResponder::GetScrollInterval 関数で取得できます。

なお、上記関数で仮想領域をスクロールする単位のデフォルト値は 8 ピクセルです。

詳細情報 : スクロール

参照

SFRResponder::GetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler


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

参照

SFRResponder::GroupStatusEnable | SFRResponder::GetStatusEnable | SFRResponder::GetInheritEnable


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

参照

SFRResponder::GetStatusFocus | SFRResponder::GetInheritFocus


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

参照

SFRResponder::GetStatusTarget | SFRResponder::GetInheritTarget


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

参照

SFRResponder::GroupStatusVisible | SFRResponder::GetStatusVisible | SFRResponder::GetInheritVisible


SFRResponder::SetTranslate
コンテント座標系での仮想領域の原点座標を設定します。
[ public ]
Void SetTranslate(
    SFXGridConstRef point   // 設定する値
);

参照

SFRResponder::GetTranslate | SFRResponder::SetVirtualBound | SFRResponder::GetVirtualBound


SFRResponder::SetTravelMargin
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の矩形を 自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で設定します。
[ public ]
Void SetTravelMargin(
    SInt16 margin   // 設定する値
);

解説

このマージンのデフォルト値は 4 ピクセルです。マージンを取得するには、 SFRResponder::GetTravelMargin 関数を使います。

コンテント領域外にある仮想領域の矩形をコンテント領域に自動的にスクロールするには SFRResponder::Travel 関数を使います。

参照

SFRResponder::GetTravelMargin | SFRResponder::Travel


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

使用例

仮想領域を左上に 10 ピクセル移動させる場合、以下のように記述します。

SFRResponderPtr   r;
SFXRectangle      u;

u = r->GetVirtualBound();
u.Offset(-10,-10);
r->SetVirtualBound(u);

参照

SFRResponder::GetVirtualBound | SFRResponder::SetBaseBound | SFRResponder::SetContentBound | SFRResponder::GetVirtualWorld


SFRResponder::Travel
指定した矩形がコンテント領域に入るように、レスポンダの仮想領域をスクロールします。
[ public ]
Void Travel(
    SFXRectangleConstRef rect   // コンテント領域にスクロールする矩形
);

解説

指定した矩形がコンテント領域内にあるときは、仮想領域をスクロールしません。

参照

SFRResponder::SetTravelMargin | SFRResponder::GetTravelMargin


SFRResponder::Ungroup
グループ化したレスポンダを解除します。
[ public, virtual ]
Void Ungroup(Void);

参照

SFRResponder::Group | SFRResponder::GetLeft | SFRResponder::GetRight


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 | SFRResponder::GetStatusVisible | SFRResponder::GetStatusEnable | SFRResponder::GetStatusFocus | SFRResponder::GetStatusTarget | SFRResponder::GetAppearanceTransparent | SFRResponder::GetPropertyDirect | SFRResponder::GetPropertySelect | SFRResponder::GetPropertyTravel | SFRResponder::GetPropertyClosable | SFRResponder::GetPropertyMovable | SFRResponder::GetPropertyScrollable | SFRTracer::RegisterTracer