SophiaFramework UNIVERSE 5.3 |
SFRResponder クラスはイベント ハンドリングと再描画を行います。
ウィンドウやコントロールなどすべての UI コンポーネント( レスポンダ )は SFRResponder クラスを継承します。
レスポンダとは | |
---|---|
SophiaFramework UNIVERSE では、ウィンドウやコントロールなどの 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 ) ベース領域内の再描画領域を登録します。
|
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 から継承)
コールバック関数の型です。
|
[ 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 GetInheritFocus(Void);
親のレスポンダが非フォーカスの状態の場合、GetInheritFocus 関数は非フォーカスの状態を返します。
使い方 | |
---|---|
GetInheritFocus 関数は親レスポンダを含めたレスポンダのフォーカス状態が取得できるため、レスポンダの描画時などに使います。 |
// 親レスポンダも含めた、レスポンダがフォーカス状態の場合 if (GetInheritFocus()) { // 何か処理を行う }
[ public, const ] Bool GetInheritTarget(Void);
親のレスポンダが非ターゲットの状態の場合、GetInheritTarget 関数は非ターゲットの状態を返します。
使い方 | |
---|---|
GetInheritTarget 関数は親レスポンダを含めたレスポンダのターゲット状態が取得できるため、レスポンダの描画時などに使います。 |
// 親レスポンダも含めた、レスポンダがターゲット状態の場合 if (GetInheritTarget()) { // 何か処理を行う }
[ public, const ] Bool GetInheritVisible(Void);
親のレスポンダが不可視の状態の場合、GetInheritVisible 関数は不可視の状態を返します
使い方 | |
---|---|
GetInheritVisible 関数は親レスポンダを含めたレスポンダの可視状態が取得できるため、レスポンダの描画時などに使います。 |
// 親レスポンダも含めた、レスポンダが可視状態の場合 if (GetInheritVisible()) { // 何か処理を行う }
SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible
[ public, const ] SFRResponderPtr GetLeft( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
検索は自分の位置から開始して一周します。 見つからなければ null を返します。
レスポンダの検索 | |
---|---|
詳細情報 : 検索 |
[ public, const ] SInt16 GetMoveInterval(Void);
SFRResponder::MoveUpHandler、SFRResponder::MoveDownHandler、SFRResponder::MoveLeftHandler、SFRResponder::MoveRightHandler 関数を呼び出してレスポンダを移動する単位(ピクセル数)を取得します。
上記関数でレスポンダを移動する単位は、SFRResponder::SetMoveInterval 関数で設定できます。
なお、上記関数でレスポンダを移動する単位のデフォルト値は 8 ピクセルです。
SFRResponder::SetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
[ public, const ] SInt16 GetMoveMargin(Void);
このマージンのデフォルト値は 1 ピクセルです。マージンを設定するには、 SFRResponder::SetMoveMargin 関数を使います。
子レスポンダを移動するには SFRResponder::MoveUpHandler、SFRResponder::MoveDownHandler、SFRResponder::MoveLeftHandler、SFRResponder::MoveRightHandler、または SFRResponder::Move 関数を使います。
SFRResponder::SetMoveMargin | SFRResponder::Move | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
[ public, const ] SFRResponderPtr GetNext( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い Bool repeat = true // 見つからなければ最初から再検索を行う );
検索は自分の位置から開始して一周します。 見つからなければ null を返します。
レスポンダの検索 | |
---|---|
詳細情報 : 検索 |
[ public, const ] SFRResponderPtr GetNthBackward( SInt16 index // インデックス SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
インデックスは 0-based で表します。 負の値は無効となります。
検索対象するレスポンダの「タイプ」を指定します。
任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。
検索対象するレスポンダの「アトリビュート」を指定します。
任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。
検索するレスポンダの「振る舞い」を指定します。
「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。
任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。
検索は子階層の終端から開始して一周します。 見つからなければ null を返します。
可視かつ応答可能なレスポンダのなかで背面から 3 番目の子レスポンダを取得するには、以下のように記述します。
responder->GetNthBackward(2);
SFRResponder::GetNthForward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] SFRResponderPtr GetNthForward( SInt16 index // インデックス SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い );
インデックスは 0-based で表します。 負の値は無効となります。
検索対象するレスポンダの「タイプ」を指定します。
任意の「タイプ」を意味する TYPE_WILDCARD がデフォルト値です。
検索対象するレスポンダの「アトリビュート」を指定します。
任意の「アトリビュート」を意味する ATTRIBUTE_WILDCARD がデフォルト値です。
検索するレスポンダの「振る舞い」を指定します。
「可視かつ応答可能(STATUS_VISIBLE | STATUS_ENABLE)」がデフォルト値です。
任意の「振る舞い」を意味する BEHAVIOR_NONE も指定できます。
検索は子階層の先頭から開始して一周します。 見つからなければ null を返します。
可視かつ応答可能なレスポンダのなかで前面から 3 番目の子レスポンダを取得するには、以下のように記述します。
responder->GetNthForward(2);
SFRResponder::GetNthBackward | SFRResponder::GetIndexForward | SFRResponder::GetIndexBackward | SFRResponder::GetFront | SFRResponder::GetBack
[ public, const ] SFRResponderPtr GetPrevious( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 振る舞い Bool repeat = true // 見つからなければ最後から再検索を行う );
検索は自分の位置から開始して一周します。 見つからなければ null を返します。
レスポンダの検索 | |
---|---|
詳細情報 : 検索 |
[ protected, const ] Bool GetPropertyClosable(Void);
[ protected, const ] Bool GetPropertyDirect(Void);
[ protected, const ] Bool GetPropertyMovable(Void);
[ protected, const ] Bool GetPropertyScrollable(Void);
[ protected, const ] Bool GetPropertySelect(Void);
[ protected, const ] Bool GetPropertyTravel(Void);
[ public, const ] VoidPtr GetReference(Void);
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());
[ public, const ] SFRResponderPtr GetRight( SFCType type = TYPE_WILDCARD // タイプ SFCType attribute = ATTRIBUTE_WILDCARD // アトリビュート BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE // 検索条件 );
検索は自分の位置から開始して一周します。 見つからなければ null を返します。
レスポンダの検索 | |
---|---|
詳細情報 : 検索 |
[ public, const ] SInt16 GetScrollInterval(Void);
SFRResponder::ScrollUpHandler、SFRResponder::ScrollDownHandler、SFRResponder::ScrollLeftHandler、SFRResponder::ScrollRightHandler 関数を呼び出して仮想領域をスクロールする単位(ピクセル数)を取得します。
上記関数で仮想領域をスクロールする単位は、SFRResponder::SetScrollInterval 関数で設定できます。
なお、上記関数で仮想領域をスクロールする単位のデフォルト値は 8 ピクセルです。
詳細情報 : スクロール
SFRResponder::SetScrollInterval | SFRResponder::Scroll | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler
[ public, const ] Bool GetStatusEnable(Void);
レスポンダの応答可能 / 不可能 | |
---|---|
詳細情報 : レスポンダの応答可能 / 不可能 |
[ public, const ] Bool GetStatusFocus(Void);
フォーカスとは | |
---|---|
詳細情報 : フォーカス |
SFRButtonControlPtr button;
...
if (button->GetStatusFocus()) {
// ボタンがフォーカスを持つとき
...
}
[ public, const ] Bool GetStatusTarget(Void);
[ public, const ] Bool GetStatusVisible(Void);
レスポンダの可視 / 不可視 | |
---|---|
詳細情報 : レスポンダの可視 / 不可視 |
SFRResponder::GroupStatusVisible | SFRResponder::SetStatusVisible | SFRResponder::GetInheritVisible
[ public, const ] SFXGrid GetTranslate(Void);
[ public, const ] SInt16 GetTravelMargin(Void);
このマージンのデフォルト値は 4 ピクセルです。マージンを設定するには、 SFRResponder::SetTravelMargin 関数を使います。
コンテント領域外にある仮想領域の矩形をコンテント領域に自動的にスクロールするには SFRResponder::Travel 関数を使いします。
[ public, const ] SFCType GetType(Void);
レスポンダのタイプを取得します。 戻り値は以下の値のいずれかになります。
TYPE_SFRAPPLICATION ( アプリケーションレスポンダ ) |
TYPE_SFRWINDOW ( ウィンドウ レスポンダ ) |
TYPE_SFRDIALOG ( ダイアログ レスポンダ ) |
TYPE_SFRMENU ( メニュー レスポンダ ) |
TYPE_SFRCONTROL ( コントロール レスポンダ ) |
TYPE_SFRPANE ( ペイン レスポンダ ) |
[ 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
[ public, const ] SFXRectangle GetVirtualWorld(Void);
仮想領域の矩形を返します。 左上の点は必ず ( 0, 0 ) になります。
SFRResponder::GetBaseWorld | SFRResponder::GetContentWorld | SFRResponder::SetVirtualBound | SFRResponder::GetVirtualBound
[ public, virtual ] Void Group( SFRResponderPtr with // 自分をグループ化するレスポンダへのポインタ );
レスポンダをグループ化すると、特定の処理をグループ化されているレスポンダすべてに適応することが可能になります。
SFRRadiobuttonControl クラスなどの一部のコントロールではグループ化することによって自動的に排他的処理を行うようになります。
SFRRadiobuttonControl クラスなどをグループ化する場合、以下のように記述します。
SFRRadiobuttonControlPtr rb0; SFRRadiobuttonControlPtr rb1; SFRRadiobuttonControlPtr rb2; rb1->Group(rb0); rb2->Group(rb0);
[ public ] Void GroupMove( SFXSizeConstRef size // 移動量 );
[ public ] Void GroupScroll( SFXSizeConstRef size // スクロール量 );
詳細情報 : スクロール
[ public ] Void GroupSelect(Void);
SFRResponder::SetStatusEnable | SFRResponder::GetStatusEnable | SFRResponder::GetInheritEnable | SFRResponder::Group | SFRResponder::Ungroup
SFRResponder::SetStatusVisible | SFRResponder::GetStatusVisible | SFRResponder::GetInheritVisible | SFRResponder::Group | SFRResponder::Ungroup
[ public ] Void InvalidateBase(Void);
[ public ] Void InvalidateBase( SFXRectangleConstRef rect // 登録する再描画領域 );
ベース領域をすべて再描画領域にスケジュールする場合、以下のように記述します。
InvalidateBase();
[ public ] Void InvalidateContent(Void);
[ public ] Void InvalidateContent( SFXRectangleConstRef rect // 登録する再描画領域 );
コンテント領域をすべて再描画領域にスケジュールする場合、以下のように記述します。
InvalidateContent();
[ public ] Void InvalidateVirtual(Void);
[ public ] Void InvalidateVirtual( SFXRectangleConstRef rect // 登録する再描画領域 );
仮想領域をすべて再描画領域にスケジュールする場合、以下のように記述します。
InvalidateVirtual();
[ public, virtual ] Bool Invoke( SFXEventConstRef event // 送信するイベント );
オーバーロードすることでイベント送信の方法を変更できます。
[ public ] Void Move( SFXSizeConstRef size // 移動量 );
[ public ] Bool MoveDownHandler(Void);
[前提条件] 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
[ public ] Bool MoveLeftHandler(Void);
[前提条件] 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
[ public ] Bool MoveRightHandler(Void);
[前提条件] 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
[ public ] Bool MoveUpHandler(Void);
[前提条件] 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
[ public ] Void Scroll( SFXSizeConstRef size // スクロール量 );
詳細情報 : スクロール
[ public ] Bool ScrollDownHandler(Void);
[前提条件] 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
[ public ] Bool ScrollLeftHandler(Void);
[前提条件] 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
[ public ] Bool ScrollRightHandler(Void);
[前提条件] 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
[ public ] Bool ScrollUpHandler(Void);
[前提条件] 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
[ public, virtual ] Void Select(Void);
[ public ] Bool SelectHandler(Void);
[前提条件] ターゲット状態になるためには、レスポンダがフォーカスを持つことが前提条件です。さもなければ、最前面のレスポンダをフォーカスします。
詳細情報 : 振る舞い
SFRHandler::RegisterHandler 関数でセレクトキーイベントなどのイベントと関連付ける必要があります。
RegisterHandler(SFEVT_KEY, AVK_SELECT, HANDLER_AFTER, HANDLER_FUNCTION(SelectHandler));
[ 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
[ public, virtual ] Void SetContentBound( SFXRectangleConstRef rect // 設定する値 );
SFRResponder::GetContentBound | SFRResponder::SetBaseBound | SFRResponder::SetVirtualBound | SFRResponder::GetContentWorld
[ public ] Void SetFrameMargin( SFXMarginConstRef param // 設定するマージン );
SFRResponder::MoveUpHandler、SFRResponder::MoveDownHandler、SFRResponder::MoveLeftHandler、SFRResponder::MoveRightHandler 関数を呼び出してレスポンダを移動する単位(ピクセル数)を設定します。
上記関数でレスポンダを移動する単位は、SFRResponder::GetMoveInterval 関数で取得できます。
なお、上記関数でレスポンダを移動する単位のデフォルト値は 8 ピクセルです。
SFRResponder::GetMoveInterval | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
このマージンのデフォルト値は 1 ピクセルです。マージンを取得するには、 SFRResponder::GetMoveMargin 関数を使います。
レスポンダを移動するには SFRResponder::MoveUpHandler、SFRResponder::MoveDownHandler、SFRResponder::MoveLeftHandler、SFRResponder::MoveRightHandler、または SFRResponder::Move 関数を使います。
SFRResponder::GetMoveMargin | SFRResponder::Move | SFRResponder::MoveUpHandler | SFRResponder::MoveDownHandler | SFRResponder::MoveLeftHandler | SFRResponder::MoveRightHandler
SFRResponder::ScrollUpHandler、SFRResponder::ScrollDownHandler、SFRResponder::ScrollLeftHandler、SFRResponder::ScrollRightHandler 関数を呼び出して仮想領域をスクロールする単位(ピクセル数)を設定します。
上記関数で仮想領域をスクロールする単位は、SFRResponder::GetScrollInterval 関数で取得できます。
なお、上記関数で仮想領域をスクロールする単位のデフォルト値は 8 ピクセルです。
詳細情報 : スクロール
SFRResponder::GetScrollInterval | SFRResponder::ScrollUpHandler | SFRResponder::ScrollDownHandler | SFRResponder::ScrollLeftHandler | SFRResponder::ScrollRightHandler
SFRResponder::GroupStatusVisible | SFRResponder::GetStatusVisible | SFRResponder::GetInheritVisible
[ public ] Void SetTranslate( SFXGridConstRef point // 設定する値 );
このマージンのデフォルト値は 4 ピクセルです。マージンを取得するには、 SFRResponder::GetTravelMargin 関数を使います。
コンテント領域外にある仮想領域の矩形をコンテント領域に自動的にスクロールするには SFRResponder::Travel 関数を使います。
[ 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
[ public ] Void Travel( SFXRectangleConstRef rect // コンテント領域にスクロールする矩形 );
指定した矩形がコンテント領域内にあるときは、仮想領域をスクロールしません。
[ public, virtual ] Void Ungroup(Void);
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
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |