![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
#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 から継承)
InvalidateBase( SFXRectangleConstRef rect ) (SFRResponder から継承) ベース領域内の再描画領域を登録します。
|
| Void |
InvalidateContent( Void )
(SFRResponder から継承)
InvalidateContent( SFXRectangleConstRef rect ) (SFRResponder から継承) コンテント領域内の再描画領域を登録します。
|
| Void |
InvalidateVirtual( Void )
(SFRResponder から継承)
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 から継承)
RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum btype , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) RegisterHandler( SFCEventEnum type , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (SFRHandler から継承) ハンドラを登録します。
|
| SFCError |
RegisterTracer(
BehaviorType behavior
, TracerEnum trace
)
(SFRTracer から継承)
RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) RegisterTracer( SFCEventEnum type , BehaviorType behavior , TracerEnum trace ) (SFRTracer から継承) トレーサを登録します。
|
| Void |
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 から継承)
UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing ) (SFRHandler から継承) UnregisterHandler( SFCEventEnum type , HandlerEnum timing ) (SFRHandler から継承) 登録されているハンドラを削除します。
|
| Void |
UnregisterTracer( Void )
(SFRTracer から継承)
UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type , UInt16 p16 ) (SFRTracer から継承) UnregisterTracer( SFCEventEnum type ) (SFRTracer から継承) 登録されているトレーサを削除します。
|
| プロテクト関数 | |
|---|---|
| Bool |
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 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|