SophiaFramework UNIVERSE 5.3 |
#include <SFRButtonBase.hpp>
class SFRButtonBase : public SFRControl;
SFMTYPEDEFCLASS(SFRButtonBase)
必要に応じて仮想関数をオーバーライドして独自のボタンコントロールを実装します。
SFRButtonBase::HandleContent 関数をオーバーライドする必要があります。
独自のボタンを実装するとき、コードは以下のようになります。
SFMTYPEDEFCLASS(UserButton) class UserButton : public SFRButtonBase { // コピー禁止マクロ SFMSEALCOPY(UserButton) public: // コンストラクタとデストラクタの宣言 UserButton(SFRResponderPtr, SFXRectangleConstRef, BehaviorType); virtual ~UserButton(Void); private: // 描画ハンドラの宣言 virtual Void HandleContent(SFXGraphicsPtr); // キーリリース ハンドラの宣言 virtual Void HandleRelease(Void); }; // コンストラクタ UserButton::UserButton(SFRResponderPtr director, SFXRectangleConstRef rect, BehaviorType behavior) : SFRButtonBase(director, rect, behavior, four_char_code('U', 's', 'e', 'r')) { return; } // デストラクタ UserButton::~UserButton(Void) { return; } // ボタンを描画 Void UserButton::HandleContent(SFXGraphicsPtr graphic) { SFXRGBColor color; // 応答可能か if (GetInheritEnable()) { // フォーカスされているか if (GetInheritFocus()) { // キーが押されているか if (GetStatusPress()) { color.SetRGB(0x44, 0x44, 0x44); } else { color.SetRGB(0x66, 0x66, 0x66); } } else { color.SetRGB(0x88, 0x88, 0x88); } } else { color.SetRGB(0xAA, 0xAA, 0xAA); } // ボタンを描画 graphic->DrawRectangle(GetVirtualWorld(), color); return; } // キーリリース時の処理を行う関数 Void UserButton::HandleRelease(Void) { // SREVT_CONTROL イベントを自分自身に送信 Invoke(SFXEvent(SREVT_CONTROL, 0, reinterpret_cast<UInt32>(this))); return; }
SFRButtonBase クラスを継承したクラスには、SFRButtonControl クラスがあります。
SFRResponder | SFRApplication | SFRWindow | SFRDialog | SFRControl | SFRButtonControl | ボタン
コンストラクタ/デストラクタ |
---|
SFRButtonBase(
SFRResponderPtr director
, SFXRectangleConstRef rect
, BehaviorType behavior
, SFCType attribute
)
SFRButtonBase クラスのコンストラクタです。
|
~SFRButtonBase( Void ) SFRButtonBase クラスのデストラクタです。
|
パブリック関数 | |
---|---|
Void |
SetBaseBound(
SFXRectangleConstRef rect
) 所有関係の親レスポンダのコンテント座標系でベース領域を設定します。
|
Void |
SetContentBound(
SFXRectangleConstRef rect
) ベース領域の座標系でコンテント領域を設定します。【無効】
|
Void |
SetVirtualBound(
SFXRectangleConstRef rect
) 仮想領域をコンテント領域の座標系で設定します。【無効】
|
Bool |
ClearHandler( Void )
(SFRResponder から継承)
[ハンドラ] ターゲット状態を解除、またはレスポンダを破棄します。
|
Bool |
Compare(
SFCType type
, SFCType attribute
, BehaviorType behavior
)
(SFRResponder から継承)
タイプ、アトリビュート、振る舞いが一致するか調べます。
|
Bool |
FocusDown(
Bool repeat = true
)
(SFRResponder から継承)
1つ下のレスポンダにフォーカスを移動します。
|
Bool |
FocusDownHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ下のレスポンダにフォーカスを移動します。
|
Bool |
FocusLeft(
Bool repeat = true
)
(SFRResponder から継承)
1つ左のレスポンダにフォーカスを移動します。
|
Bool |
FocusLeftHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ左のレスポンダにフォーカスを移動します。
|
Bool |
FocusNext(
Bool repeat = true
)
(SFRResponder から継承)
1つ後の兄弟レスポンダにフォーカスを移動します。
|
Bool |
FocusNextHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ後の兄弟レスポンダにフォーカスを移動します。
|
Bool |
FocusPrevious(
Bool repeat = true
)
(SFRResponder から継承)
1つ前の兄弟レスポンダにフォーカスに移動します。
|
Bool |
FocusPreviousHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ前の兄弟レスポンダにフォーカスを移動します。
|
Bool |
FocusRight(
Bool repeat = true
)
(SFRResponder から継承)
1つ右のレスポンダにフォーカスを移動します。
|
Bool |
FocusRightHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ右のレスポンダにフォーカスを移動します。
|
Bool |
FocusUp(
Bool repeat = true
)
(SFRResponder から継承)
1つ上のレスポンダにフォーカスを移動します。
|
Bool |
FocusUpHandler( Void )
(SFRResponder から継承)
[ハンドラ] 1つ上のレスポンダにフォーカスを移動します。
|
SFCType |
GetAttribute( Void )
(SFRResponder から継承)
アトリビュートを取得します。
|
SFRResponderPtr |
GetBack(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する、最背面の子レスポンダを取得します。
|
SFXRectangleConstRef |
GetBaseBound( Void )
(SFRResponder から継承)
所有関係の親レスポンダのコンテント座標系でベース領域を取得します。
|
SFXRectangle |
GetBaseWorld( Void )
(SFRResponder から継承)
ベース領域を取得します。
|
SFXRectangleConstRef |
GetContentBound( Void )
(SFRResponder から継承)
ベース領域の座標系でコンテント領域を取得します。
|
SFXRectangle |
GetContentWorld( Void )
(SFRResponder から継承)
コンテント領域を取得します。
|
SFRResponderPtr |
GetDirector( Void )
(SFRResponder から継承)
所有関係の親レスポンダを取得します。
|
SFRResponderPtr |
GetFocus( Void )
(SFRResponder から継承)
所有関係の子階層のレスポンダでフォーカスを持つレスポンダを取得します。
|
SFXMargin |
GetFrameMargin( Void )
(SFRResponder から継承)
ベース領域とコンテント領域の間のマージンを取得します。
|
SFRResponderPtr |
GetFront(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する、最前面の子レスポンダを取得します。
|
SInt16 |
GetIndexBackward(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する兄弟レスポンダの中で、最背面から何番目であるかを取得します。
|
SInt16 |
GetIndexForward(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する兄弟レスポンダの中で、最前面から何番目であるかを取得します。
|
Bool |
GetInheritEnable( Void )
(SFRResponder から継承)
所有関係の親レスポンダも含めた、レスポンダの応答可能 / 不可能の状態を取得します。
|
Bool |
GetInheritFocus( Void )
(SFRResponder から継承)
所有関係の親レスポンダも含めた、レスポンダのフォーカス / 非フォーカスの状態を取得します。
|
Bool |
GetInheritTarget( Void )
(SFRResponder から継承)
所有関係の親レスポンダも含めた、レスポンダのターゲット / 非ターゲットの状態を取得します。
|
Bool |
GetInheritVisible( Void )
(SFRResponder から継承)
所有関係の親レスポンダも含めた、レスポンダの可視 / 不可視の状態を取得します。
|
SFRResponderPtr |
GetLeft(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
グループ化されているレスポンダのうち、検索条件に一致する、1つ左(1つ前)のレスポンダを取得します。
|
SInt16 |
GetMoveInterval( Void )
(SFRResponder から継承)
一回あたりの移動ピクセル数を取得します。
|
SInt16 |
GetMoveMargin( Void )
(SFRResponder から継承)
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で取得します。
|
SFRResponderPtr |
GetNext(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
, Bool repeat = true
)
(SFRResponder から継承)
検索条件に一致する、1つ背面にある兄弟レスポンダを取得します。
|
SFRResponderPtr |
GetNthBackward(
SInt16 index
, SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する、最背面から N 番目の子レスポンダを取得します。
|
SFRResponderPtr |
GetNthForward(
SInt16 index
, SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
検索条件に一致する、最前面から N 番目の子レスポンダを取得します。
|
SFRResponderPtr |
GetPrevious(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
, Bool repeat = true
)
(SFRResponder から継承)
検索条件に一致する、1つ前面にある兄弟レスポンダを取得します。
|
VoidPtr |
GetReference( Void )
(SFRResponder から継承)
ユーザーが自由に設定できるリファレンス値を取得します。
|
SFRResponderPtr |
GetRight(
SFCType type = TYPE_WILDCARD
, SFCType attribute = ATTRIBUTE_WILDCARD
, BehaviorType behavior = STATUS_VISIBLE | STATUS_ENABLE
)
(SFRResponder から継承)
グループ化されているレスポンダのうち、検索条件に一致する、1つ右(ひとつ後)のレスポンダを取得します。
|
SInt16 |
GetScrollInterval( Void )
(SFRResponder から継承)
仮想領域をスクロールする単位を取得します。(ピクセル数)
|
Bool |
GetStatusEnable( Void )
(SFRResponder から継承)
応答可能 / 不可能 フラグを取得します。
|
Bool |
GetStatusFocus( Void )
(SFRResponder から継承)
フォーカス / 非フォーカス フラグを取得します。
|
Bool |
GetStatusTarget( Void )
(SFRResponder から継承)
ターゲット / 非ターゲット フラグを取得します。
|
Bool |
GetStatusVisible( Void )
(SFRResponder から継承)
可視 / 不可視 フラグを取得します。
|
SFXGrid |
GetTranslate( Void )
(SFRResponder から継承)
コンテント座標系での仮想領域の原点座標を取得します。
|
SInt16 |
GetTravelMargin( Void )
(SFRResponder から継承)
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の矩形を
自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で取得します。
|
SFCType |
GetType( Void )
(SFRResponder から継承)
タイプを取得します。
|
SFXRectangleConstRef |
GetVirtualBound( Void )
(SFRResponder から継承)
仮想領域をコンテント領域の座標系で取得します。
|
SFXRectangle |
GetVirtualWorld( Void )
(SFRResponder から継承)
仮想領域を取得します。
|
Void |
Group(
SFRResponderPtr with
)
(SFRResponder から継承)
他のレスポンダとグループ化します。
|
Void |
GroupMove(
SFXSizeConstRef size
)
(SFRResponder から継承)
グループ化されているレスポンダすべてを移動します。
|
Void |
GroupScroll(
SFXSizeConstRef size
)
(SFRResponder から継承)
グループ化されているレスポンダすべての仮想領域をスクロールします。
|
Void |
GroupSelect( Void )
(SFRResponder から継承)
グループ化されているレスポンダすべてを最前面に移動します。
|
Void |
GroupStatusEnable(
Bool enable
)
(SFRResponder から継承)
グループ化されているレスポンダすべてに対して、応答可能 / 不可能フラグを設定します。
|
Void |
GroupStatusVisible(
Bool visible
)
(SFRResponder から継承)
グループ化されているレスポンダすべてに対して、可視 / 不可視フラグを設定します。
|
Void |
InvalidateBase( Void )
(SFRResponder から継承)
ベース領域内の再描画領域を登録します。
|
Void |
InvalidateBase(
SFXRectangleConstRef rect
)
(SFRResponder から継承)
ベース領域内の再描画領域を登録します。
|
Void |
InvalidateContent( Void )
(SFRResponder から継承)
コンテント領域内の再描画領域を登録します。
|
Void |
InvalidateContent(
SFXRectangleConstRef rect
)
(SFRResponder から継承)
コンテント領域内の再描画領域を登録します。
|
Void |
InvalidateVirtual( Void )
(SFRResponder から継承)
仮想領域内の再描画領域を登録します。
|
Void |
InvalidateVirtual(
SFXRectangleConstRef rect
)
(SFRResponder から継承)
仮想領域内の再描画領域を登録します。
|
Bool |
Invoke(
SFXEventConstRef event
)
(SFRResponder から継承)
イベントを送信します。
|
Void |
Move(
SFXSizeConstRef size
)
(SFRResponder から継承)
レスポンダを移動します。
|
Bool |
MoveDownHandler( Void )
(SFRResponder から継承)
[ハンドラ] レスポンダを下に移動します。
|
Bool |
MoveLeftHandler( Void )
(SFRResponder から継承)
[ハンドラ] レスポンダを左に移動します。
|
Bool |
MoveRightHandler( Void )
(SFRResponder から継承)
[ハンドラ] レスポンダを右に移動します。
|
Bool |
MoveUpHandler( Void )
(SFRResponder から継承)
[ハンドラ] レスポンダを上に移動します。
|
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 |
Scroll(
SFXSizeConstRef size
)
(SFRResponder から継承)
仮想領域をスクロールします。
|
Bool |
ScrollDownHandler( Void )
(SFRResponder から継承)
[ハンドラ] 仮想領域を下にスクロールします。
|
Bool |
ScrollLeftHandler( Void )
(SFRResponder から継承)
[ハンドラ] 仮想領域を左にスクロールします。
|
Bool |
ScrollRightHandler( Void )
(SFRResponder から継承)
[ハンドラ] 仮想領域を右にスクロールします。
|
Bool |
ScrollUpHandler( Void )
(SFRResponder から継承)
[ハンドラ] 仮想領域を上にスクロールします。
|
Void |
Select( Void )
(SFRResponder から継承)
レスポンダを最前面に移動します。
|
Bool |
SelectHandler( Void )
(SFRResponder から継承)
[ハンドラ] レスポンダをターゲット状態にします。
|
Void |
SetFrameMargin(
SFXMarginConstRef param
)
(SFRResponder から継承)
ベース領域とコンテント領域の間のマージンを設定します。
|
Void |
SetMoveInterval(
SInt16 interval
)
(SFRResponder から継承)
一回あたりの移動ピクセル数を設定します。
|
Void |
SetMoveMargin(
SInt16 margin
)
(SFRResponder から継承)
子レスポンダを移動できないコンテント領域(但し、仮想領域が設定されている場合は仮想領域)の縁からのマージンをピクセル数で設定します。
|
Void |
SetReference(
VoidPtr ref
)
(SFRResponder から継承)
ユーザーが自由に設定できるリファレンス値を設定します。
|
Void |
SetScrollInterval(
SInt16 interval
)
(SFRResponder から継承)
仮想領域をスクロールする単位を取得します。(ピクセル数)
|
Void |
SetStatusEnable(
Bool enable
)
(SFRResponder から継承)
応答可能 / 不可能フラグを設定します。
|
Void |
SetStatusFocus(
Bool focus
)
(SFRResponder から継承)
フォーカス / 非フォーカス フラグを設定します。
|
Void |
SetStatusTarget(
Bool target
)
(SFRResponder から継承)
ターゲット / 非ターゲット フラグを設定します。
|
Void |
SetStatusVisible(
Bool visible
)
(SFRResponder から継承)
可視 / 不可視フラグを設定します。
|
Void |
SetTranslate(
SFXGridConstRef point
)
(SFRResponder から継承)
コンテント座標系での仮想領域の原点座標を設定します。
|
Void |
SetTravelMargin(
SInt16 margin
)
(SFRResponder から継承)
SFRResponder::Travel 関数によって、コンテント領域外にある仮想領域の矩形を
自動的にコンテント領域内にスクロールさせるときのコンテント領域の縁からのマージンをピクセル数で設定します。
|
Void |
Travel(
SFXRectangleConstRef rect
)
(SFRResponder から継承)
指定した矩形がコンテント領域に入るように、レスポンダの仮想領域をスクロールします。
|
Void |
Ungroup( Void )
(SFRResponder から継承)
グループ化したレスポンダを解除します。
|
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 |
GetStatusPress( Void ) キーが押されている状態かどうかを取得します。
|
Void |
HandleContent(
SFXGraphicsPtr graphic
) コンテント領域を描画します。
|
Void |
HandlePress( Void ) キーのキーイベントを受信したときに実行されます。
|
Void |
HandleRelease( Void ) キーが放されたときに実行されます。
|
Void |
InvalidateButton( Void ) ボタンの領域をアップデート領域として登録します。
|
Bool |
GetAppearanceTransparent( Void )
(SFRResponder から継承)
APPEARANCE_TRANSPARENT フラグを取得します。
|
Bool |
GetPropertyClosable( Void )
(SFRResponder から継承)
PROPERTY_CLOSABLE フラグを取得します。
|
Bool |
GetPropertyDirect( Void )
(SFRResponder から継承)
PROPERTY_DIRECT フラグを取得します。
|
Bool |
GetPropertyMovable( Void )
(SFRResponder から継承)
PROPERTY_MOVABLE フラグを取得します。
|
Bool |
GetPropertyScrollable( Void )
(SFRResponder から継承)
PROPERTY_SCROLLABLE フラグを取得します。
|
Bool |
GetPropertySelect( Void )
(SFRResponder から継承)
PROPERTY_SELECT フラグを取得します。
|
Bool |
GetPropertyTravel( Void )
(SFRResponder から継承)
PROPERTY_TRAVEL フラグを取得します。
|
HandlerRecConstPtr |
SearchHandler(
SFXEventConstRef event
, HandlerEnum timing
)
(SFRHandler から継承)
指定したイベントに一致するハンドラを検索します。
|
TracerRecConstPtr |
SearchTracer(
SFXEventConstRef event
)
(SFRTracer から継承)
指定したイベントに一致するトレーサを検索します。
|
型 |
---|
BehaviorEnum
(SFRControl から継承)
コントロールの振る舞いを表します。
|
HandlerEnum
(SFRHandler から継承)
ハンドラの呼び出されるタイミングを表します。
|
SFRHandlerSPP
(SFRHandler から継承)
コールバック関数の型です。
|
TracerEnum
(SFRTracer から継承)
トレース順序を表します。
|
TracerTraceMPP
(SFRTracer から継承)
コールバック関数の型です。
|
[ protected ] SFRButtonBase( SFRResponderPtr director // 親レスポンダ SFXRectangleConstRef rect // ベース領域 BehaviorType behavior // 振る舞い SFCType attribute // アトリビュート );
[ protected, virtual ] ~SFRButtonBase(Void);
[ protected, const ] Bool GetStatusPress(Void);
独自にボタンコントロールなどを実装する場合に、 キーの状態によって描画を変更するときなどに使います。
[ protected, virtual ] Void HandleContent( SFXGraphicsPtr graphic // SFXGraphics インスタンス );
ボタンを独自実装する場合は、HandleContent 関数をオーバーライドしてボタン自身を描画します。
独自にボタンを描画します。
操作可能 / 不可能、フォーカス / 非フォーカス、押されているかどうかで色を変更して描画します。
// ボタンを描画 Void UserButton::HandleContent(SFXGraphicsPtr graphic) { SFXRGBColor color; // 応答可能か if (GetInheritEnable()) { // フォーカスされているか if (GetInheritFocus()) { // キーが押されているか if (GetStatusPress()) { color.SetRGB(0x44, 0x44, 0x44); } else { color.SetRGB(0x66, 0x66, 0x66); } } else { color.SetRGB(0x88, 0x88, 0x88); } } else { color.SetRGB(0xAA, 0xAA, 0xAA); } // ボタンを描画 graphic->DrawRectangle(GetVirtualWorld(), color); return; }
[ protected, virtual ] Void HandlePress(Void);
独自実装のボタンで、キーのキーイベントを受信したときに独自の処理を行いたい場合は、HandlePress 関数をオーバーライドする必要があります。
キーのキーイベントを受信したときに独自のイベントを送信します。
Void HandlePress(Void) { Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_PRESS, reinterpret_cast<UInt32>(this))); return; }
[ protected, virtual ] Void HandleRelease(Void);
独自実装のボタンで、キーが放されたときに独自の処理を行いたい場合は、HandleRelease 関数をオーバーライドする必要があります。
キーが放されたときに独自のイベントを送信します。
Void HandleRelease(Void) { Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_RELEASE, reinterpret_cast<UInt32>(this))); return; }
[ protected, virtual ] Void InvalidateButton(Void);
独自にボタンコントロールを実装する場合などに、ボタンの再描画が必要になったときに使います。
InvalidateVirtual 関数と同様の動作を行います。 ボタンの領域が仮想領域すべてでないときは、InvalidateButton 関数をオーバーライドする必要があります。
独自実装のボタンでタイトル文字列が変更されたときに、アップデート領域を登録します。
if (param != _title) { _title = param; InvalidateButton(); }
独自実装のボタンでアップデート領域として登録しなければならない領域が、仮想領域すべてでないとき
Void InvalidateButton(Void) { InvalidateVirtual(_updateArea); }
[ public, virtual ] Void SetBaseBound( SFXRectangleConstRef rect // 設定する値 );
[ public, virtual ] Void SetContentBound( SFXRectangleConstRef rect // コンテント領域 );
[ public, virtual ] Void SetVirtualBound( SFXRectangleConstRef rect // 仮想領域 );
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |