前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFRButtonBase
ボタンコントロールの基底クラスです。
#include <SFRButtonBase.hpp>
class SFRButtonBase : public SFRControl;
SFMTYPEDEFCLASS(SFRButtonBase)

継承図

SFRButtonBase クラスの継承図

協調図

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

SFRButtonBase::SFRButtonBase
SFRButtonBase クラスのコンストラクタです。
[ protected ]
SFRButtonBase(
    SFRResponderPtr director    // 親レスポンダ
    SFXRectangleConstRef rect   // ベース領域
    BehaviorType behavior       // 振る舞い
    SFCType attribute           // アトリビュート
);

参照

SFRButtonBase::~SFRButtonBase


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

参照

SFRButtonBase::SFRButtonBase


SFRButtonBase::GetStatusPress
キーが押されている状態かどうかを取得します。
[ protected, const ]
Bool GetStatusPress(Void);

戻り値

  • キーが押されている状態のとき: true
  • キーが押されていない状態のとき: false

解説

独自にボタンコントロールなどを実装する場合に、 キーの状態によって描画を変更するときなどに使います。


SFRButtonBase::HandleContent
コンテント領域を描画します。
[ 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;
}

SFRButtonBase::HandlePress
キーのキーイベントを受信したときに実行されます。
[ protected, virtual ]
Void HandlePress(Void);

解説

独自実装のボタンで、キーのキーイベントを受信したときに独自の処理を行いたい場合は、HandlePress 関数をオーバーライドする必要があります。

使用例

キーのキーイベントを受信したときに独自のイベントを送信します。

Void HandlePress(Void)
{
  Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_PRESS, reinterpret_cast<UInt32>(this)));
  return;
}

SFRButtonBase::HandleRelease
キーが放されたときに実行されます。
[ protected, virtual ]
Void HandleRelease(Void);

解説

独自実装のボタンで、キーが放されたときに独自の処理を行いたい場合は、HandleRelease 関数をオーバーライドする必要があります。

使用例

キーが放されたときに独自のイベントを送信します。

Void HandleRelease(Void)
{
  Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_RELEASE, reinterpret_cast<UInt32>(this)));
  return;
}

SFRButtonBase::InvalidateButton
ボタンの領域をアップデート領域として登録します。
[ protected, virtual ]
Void InvalidateButton(Void);

解説

独自にボタンコントロールを実装する場合などに、ボタンの再描画が必要になったときに使います。

InvalidateVirtual 関数と同様の動作を行います。 ボタンの領域が仮想領域すべてでないときは、InvalidateButton 関数をオーバーライドする必要があります。

使用例

独自実装のボタンでタイトル文字列が変更されたときに、アップデート領域を登録します。

if (param != _title) {
  _title = param;
  InvalidateButton();
}

独自実装のボタンでアップデート領域として登録しなければならない領域が、仮想領域すべてでないとき

Void InvalidateButton(Void)
{
  InvalidateVirtual(_updateArea);
}

参照

SFRResponder::InvalidateVirtual


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

参照

SFRResponder::SetBaseBound


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

参照

SFRResponder::GetContentBound | SFRResponder::SetContentBound


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

参照

SFRResponder::GetVirtualBound | SFRResponder::SetVirtualBound