前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFYWidget
ウィジェットを表す抽象クラスです。
#include <SFYWidget.h.hpp>
class SFYWidget : public SFYResponder;
SFMTYPEDEFRESPONDER(SFYWidget)

継承図

SFYWidget クラスの継承図

協調図

SFYWidget クラスの協調図

解説

■ 仕様と使い方

SFYWidget クラスは、描画や領域に関する基本的な処理を行うクラスです。 SFYResponder を除くすべてのレスポンダクラスは、このクラスを継承します。

■ イベントとハンドラ

SFYWidget を継承するレスポンダでは、 SFYWidget::SFYWidget コンストラクタで登録されたハンドラの処理により、 下記のイベントを受信すると、対応する下記の仮想関数(ハンドラ)が最初に呼び出されます。 その後、開発者がレスポンダに登録したハンドラが呼び出されることになります。

[Note] 注意

ハンドラの詳細については、 SFYWidget::SFYWidget コンストラクタの解説を参照してください。

[Tip] Tip

ハンドラを登録する手間を省略できるので、 通常、これらのイベント処理は仮想関数をオーバーライドして記述します。

表 252. イベント、仮想関数(ハンドラ)とデフォルト動作

イベント 仮想関数(ハンドラ) デフォルトの動作 オーバーライド
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント SFYWidget::HandleBoundRequest 推奨
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント SFYWidget::HandleBoundOptimize 推奨
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント SFYWidget::HandleBoundReal 任意
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント SFYWidget::HandleBoundVirtual 任意
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント SFYWidget::HandleBoundGlobal 非推奨[廃止予定]
(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST) イベント SFYWidget::HandleRenderRequest 任意

※デフォルトの動作にある "−" は何も実装していないことを表す。

[Note] グローバル領域イベントについて

グローバル領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント]と SFYWidget::HandleBoundGlobal 関数は、 SophiaFramework UNIVERSE 6.0 で廃止される予定です。

描画ハンドラの処理などでグローバル領域が必要な場合は、 SFYResponder::GetGlobalBound 関数を呼び出して取得してください。

参照

SFYWidget::SFYWidget | 領域イベント[SFEVT_RESPONDER_BOUND] | 描画イベント[SFEVT_RESPONDER_RENDER]

メンバ

コンストラクタ/デストラクタ
SFYWidget( Void )
SFYWidget クラスのコンストラクタです。
~SFYWidget( Void )
SFYWidget クラスのデストラクタです。
パブリック関数
SFXRGBColorConstRef GetBackgroundColor( Void )
背景の色を取得します。
Void SetBackgroundColor( SFXRGBColorConstRef param )
背景の色を設定します。
Void ClearHandler( Void ) (SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
Void ClearTracer( Void ) (SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
SFCError Distribute( SFXEventConstRef event , BoolPtr result = null ) (SFYResponder から継承)
指定された配信型イベントを SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
SFYResponderSmp GetChildBack( Void ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SInt32 GetChildCount( Void ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SFYResponderSmp GetChildForward( SInt32 index ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Void ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYDistributerPtr GetDistributer( Void ) (SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
SFYResponderSmp GetFrame( Void ) (SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
SFXRectangle GetGlobalBound( Void ) (SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
UInt32 GetID( Void ) (SFYResponder から継承)
このレスポンダの ID を取得します。
SFXRectangle GetLocalBound( Void ) (SFYResponder から継承)
このレスポンダのローカル領域を取得します。
SInt32 GetNthBackward( Void ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Void ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SFYResponderSmp GetParent( Void ) (SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
Bool GetPropertyTransparent( Void ) (SFYResponder から継承)
このレスポンダの透過属性を取得します。
SFXRectangleConstRef GetRealBound( Void ) (SFYResponder から継承)
このレスポンダの実領域を取得します。
VoidPtr GetReference( Void ) (SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
SFYRendererPtr GetRenderer( Void ) (SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
SFYResponderSmp GetRoot( Void ) (SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
Bool GetStateActive( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの活性状態を取得します。
Bool GetStateEnable( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
Bool GetStateFocus( Bool inherit = false ) (SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
Bool GetStateValid( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの有効状態を取得します。
Bool GetStateVisible( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの可視状態を取得します。
SFXRectangle GetSuitableBound( Void ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef rectangle ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef param , HorizontalEnum horizontal , VerticalEnum vertical ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXMargin GetSuitableMargin( Void ) (SFYResponder から継承)
このレスポンダのフレーム余白領域を取得します。
SFCType GetType( Void ) (SFYResponder から継承)
このレスポンダのタイプを取得します。
SFXRectangleConstRef GetVirtualBound( Void ) (SFYResponder から継承)
このレスポンダの仮想領域を取得します。
Bool HasFrame( Void ) (SFYResponder から継承)
このレスポンダがコンテントレスポンダであるかどうかを判定します。
Void Initialize( Void ) (SFYResponder から継承)
このレスポンダを初期化します。
Void Invalidate( Void ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void Invalidate( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void InvokeBackward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録順に起動されます)。
Void InvokeForward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録の逆順に起動されます)。
Bool IsBack( Void ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsFrame( Void ) (SFYResponder から継承)
このレスポンダがアタッチメントフレームであるかどうかを判定します。
Bool IsFront( Void ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsRoot( Void ) (SFYResponder から継承)
このレスポンダがルートレスポンダであるかどうかを判定します。
SFCError Recover( Void ) (SFYResponder から継承)
デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::RuleRecConstRef rule ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::OrderEnum order , SFYTracer::StateEnum state , Bool overload ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::OrderEnumConstPtr order , SFYTracer::StateEnumConstPtr state , BoolConstPtr overload , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError Render( Bool force = false ) (SFYResponder から継承)
このレスポンダ以下のレスポンダツリーをレスポンダ空間に再描画します。
Void SetDistributer( SFYDistributerPtr param ) (SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
SFCError SetFrame( SFYResponderSmpConstRef param ) (SFYResponder から継承)
このレスポンダにフレームを装着します。
Void SetID( UInt32 param ) (SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
SFCError SetParent( SFYResponderSmpConstRef param ) (SFYResponder から継承)
指定されたレスポンダをこのレスポンダの親レスポンダに設定します。
Void SetProperty( Bool transparent ) (SFYResponder から継承)
指定された属性をこのレスポンダに設定します。
Void SetPropertyTransparent( Bool param ) (SFYResponder から継承)
指定された透過属性をこのレスポンダに設定します。
Void SetRealBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの実領域に設定します。
Void SetReference( VoidPtr param ) (SFYResponder から継承)
指定された値をこのレスポンダのリファレンスに設定します。
Void SetRenderer( SFYRendererPtr param ) (SFYResponder から継承)
指定された描画エンジンをこのレスポンダに設定します。
Void SetState( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
指定された値をこのレスポンダの可視、活性、操作可能、フォーカスの各状態フラグに設定します。
Void SetStateActive( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの活性状態フラグに設定します。
Void SetStateEnable( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの操作可能状態フラグに設定します。
Void SetStateFocus( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダのフォーカス状態フラグに設定します。
Void SetStateVisible( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの可視状態フラグに設定します。
Void SetVirtualBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの仮想領域に設定します。
SFCError Snapshot( SFBBitmapSmpConstRef bitmap ) (SFYResponder から継承)
デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
Void Terminate( Void ) (SFYResponder から継承)
このレスポンダの終了処理を行います。
Void ToBack( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToFront( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterTracer( SFXEventRangeConstRef range ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
Void UnregisterTracer( SFXEventRangeConstPtr range , SInt32 length ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
プロテクト関数
Void HandleBoundGlobal( SFXRectangleConstRef rectangle )
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
Void HandleBoundOptimize( SFXRectanglePtr rectangle )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
Void HandleBoundReal( Void )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です (実領域が変化したときの処理を行います)。
Void HandleBoundRequest( SFXRectanglePtr rectangle )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
Void HandleBoundVirtual( Void )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です (仮想領域が変化したときの処理を行います)。
Void HandleRenderRequest( SFXGraphicsPtr graphics )
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
static
SFYResponderSmp
Factory( SFYResponderPtr responder , SFCErrorPtr exception = null ) (SFYResponder から継承)
NewInstance 関数の実装を補助します。
SFYResponderSmp GetThis( Void ) (SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
Void SetType( SFCType param ) (SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
CodeEnum
SFYWidget クラスを表す定数です。
HorizontalEnum (SFYResponder から継承)
水平方向のアライメントを表す定数です。
VerticalEnum (SFYResponder から継承)
垂直方向のアライメントを表す定数です。

SFYWidget::SFYWidget
SFYWidget クラスのコンストラクタです。
[ protected, explicit ]
SFYWidget(Void);

解説

このコンストラクタは、以下の初期化処理を行います。

  1. タイプを ".wgt" に設定します。
  2. 背景色を SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) [白色]に設定します。
  3. 下表にあるハンドラをレスポンダに登録します。

表 253. イベントハンドラ

イベント ハンドラの内容
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント SFYWidget::HandleBoundRequest 関数を呼び出します。
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント SFYWidget::HandleBoundOptimize 関数を呼び出します。
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント SFYWidget::HandleBoundReal 関数を呼び出します。
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント SFYWidget::HandleBoundVirtual 関数を呼び出します。
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント[※廃止予定] SFYWidget::HandleBoundGlobal 関数を呼び出します。[※廃止予定]
(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST) イベント SFYWidget::SetBackgroundColor 関数で設定される色で背景を塗り潰してから SFYWidget::HandleRenderRequest 関数を呼び出します。
[Note] 注意
SFYWidget クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。

内部実装

このコンストラクタの内部実装は以下の通りです。

/*protected */SFYWidget::SFYWidget(Void) static_throws
{
    static SFXRGBColor::AtomRecConst            rgb[] = {
        {{{0x00, 0xFF, 0xFF, 0xFF}}}
    };
    static SFXEventRange::AtomRecConst          trange[] = {
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND,  SFP16_BOUND_REQUEST,  SFP16_BOUND_REQUEST},
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, SFP16_BOUND_OPTIMIZE},
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND,     SFP16_BOUND_REAL,     SFP16_BOUND_REAL},
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND,  SFP16_BOUND_VIRTUAL,  SFP16_BOUND_VIRTUAL},
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND,   SFP16_BOUND_GLOBAL,   SFP16_BOUND_GLOBAL},
        {SFEVT_RESPONDER_RENDER, SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, SFP16_RENDER_REQUEST}
    };
    SFYHandler::RuleRec                         trule[lengthof(trange)];

    if (static_try()) {
        SetType(CODE_TYPE);
        trule[0].spp = XANDLER_FUNCTION(OnBoundRequest);
        trule[0].reference = this;
        trule[1].spp = XANDLER_FUNCTION(OnBoundOptimize);
        trule[1].reference = this;
        trule[2].spp = XANDLER_FUNCTION(OnBoundReal);
        trule[2].reference = this;
        trule[3].spp = XANDLER_FUNCTION(OnBoundVirtual);
        trule[3].reference = this;
        trule[4].spp = XANDLER_FUNCTION(OnBoundGlobal);
        trule[4].reference = this;
        trule[5].spp = XANDLER_FUNCTION(OnRenderRequest);
        trule[5].reference = this;
        static_throw(RegisterHandler(atomic_cast(trange), trule, lengthof(trange)));
        if (static_try()) {
            _color.background.Set(rgb[0]);
        }
    }
}// SFYWidget::SFYWidget //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundRequest, invoker, reason, rectangle)
{
    unused(invoker);
    unused(reason);
    HandleBoundRequest(rectangle);
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundRequest) //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundOptimize, invoker, reason, rectangle)
{
    unused(invoker);
    unused(reason);
    HandleBoundOptimize(rectangle);
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundOptimize) //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundReal, invoker, reason, rectangle)
{
    unused(invoker);
    unused(reason);
    unused(rectangle);
    HandleBoundReal();
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundReal) //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundVirtual, invoker, reason, rectangle)
{
    unused(invoker);
    unused(reason);
    unused(rectangle);
    HandleBoundVirtual();
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundVirtual) //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundGlobal, invoker, reason, rectangle)
{
    unused(invoker);
    unused(reason);
    HandleBoundGlobal(*rectangle);
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFYWidget, OnBoundGlobal) //

/*private */XANDLER_IMPLEMENT_VOIDRENDER(SFYWidget, OnRenderRequest, invoker, reason, graphics)
{
    unused(invoker);
    unused(reason);
    if (!GetPropertyTransparent()) {
        graphics->FillRectangle(GetLocalBound(), _color.background);
    }
    HandleRenderRequest(graphics);
    return;
}// XANDLER_IMPLEMENT_VOIDRENDER(SFYWidget, OnRenderRequest) //

参照

SFYResponder::SetType | SFYWidget::CodeEnum | SFYWidget::SetBackgroundColor | SFYWidget::HandleBoundRequest | SFYWidget::HandleBoundOptimize | SFYWidget::HandleBoundReal | SFYWidget::HandleBoundVirtual | SFYWidget::HandleBoundGlobal | SFYWidget::HandleRenderRequest | SFYWidget::SetBackgroundColor | SFXEvent | SFXRGBColor | タイプ | イベント | 領域イベント[SFEVT_RESPONDER_BOUND] | 描画イベント[SFEVT_RESPONDER_RENDER]


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

解説

このデストラクタは、何も行いません。

内部実装

このデストラクタの内部実装は以下の通りです。

/*protected virtual */SFYWidget::~SFYWidget(Void)
{
}// SFYWidget::~SFYWidget //

SFYWidget::GetBackgroundColor
背景の色を取得します。
[ public, const ]
SFXRGBColorConstRef GetBackgroundColor(Void);

戻り値

背景の色。

解説

この関数は、背景の色を取得します。

内部実装

この関数の内部実装は以下の通りです。

/*public */inline SFXRGBColorConstRef SFYWidget::GetBackgroundColor(Void) const
{
    return _color.background;
}// SFYWidget::GetBackgroundColor //

参照

SFYWidget::SetBackgroundColor


SFYWidget::HandleBoundGlobal
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
[ protected, virtual ]
Void HandleBoundGlobal(
    SFXRectangleConstRef rectangle   // グローバル領域
);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL, rectangle)] を受信したときに呼び出されます。

グローバル領域の変更時に追加の処理を行いたい場合は、 この関数をオーバーライドします。

デフォルトの実装は何も行いません。

[Note] (SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベントの送信

領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL, rectangle)] は SFYResponder::SetRealBound または SFYResponder::SetVirtualBound 関数の呼び出しによってグローバル領域が変化したときに発生します。

このとき、(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベントは描画エンジンを起動した直後、描画エンジンによって送信されます。

[Note] グローバル領域の変更時の処理

この仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

グローバル領域の変更処理は、最初に仮想関数を実行し、次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常はこの仮想関数をオーバーライドして処理を記述します。

[Note] [非推奨(廃止予定 API)]

この関数は、SophiaFramework UNIVERSE 6.0 で廃止される予定です。 描画ハンドラの処理などでグローバル領域が必要な場合は、 SFYResponder::GetGlobalBound 関数を呼び出して取得してください。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleBoundGlobal(SFXRectangleConstRef /*rectangle*/)
{
    return;
}// SFYWidget::HandleBoundGlobal //

参照

SFYResponder::SetRealBound | SFYResponder::SetVirtualBound | SFYResponder::GetGlobalBound | グローバル領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


SFYWidget::HandleBoundOptimize
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
[ protected, virtual, const ]
Void HandleBoundOptimize(
    SFXRectanglePtr rectangle   // 矩形
);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] を受信したときに呼び出されます。

引数 rectangle で指定した矩形領域に収まる範囲内でレスポンダの最適な領域を計算する場合、 この関数をオーバーライドします。

計算結果のレスポンダに最適なサイズは、rectangle 引数の size 要素(サイズ)に格納されます。 なお、領域イベントの P32 パラメータとして渡された rectangle 引数の origin 要素(始点)はこの関数内で変更しないことを推奨します。

デフォルトの実装は何も行いません。

[Note] 領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント]

SFYResponder::GetSuitableBound 関数は、 引数にヒント領域を指定した場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] をレスポンダに送信します。

SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundOptimize 仮想関数が呼び出されます。

※ 領域イベントの P32 パラメータ rectangle にはヒント領域が初期設定されています。

[Note] (SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント受信時の最適な領域計算

SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

最適な領域の計算は、最初に SFYWidget::HandleBoundOptimize 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドして処理を記述します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleBoundOptimize(SFXRectanglePtr /*rectangle*/) const
{
    return;
}// SFYWidget::HandleBoundOptimize //

参照

SFYResponder::GetSuitableBound | 領域イベント[SFEVT_RESPONDER_BOUND]


SFYWidget::HandleBoundReal
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です (実領域が変化したときの処理を行います)。
[ protected, virtual ]
Void HandleBoundReal(Void);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, rectangle)] を受信したときに呼び出されます。

実領域の変更時に追加の処理を行いたい場合は、 この関数をオーバーライドします。

デフォルトの実装は何も行いません。

[Note] 領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント]

SFYResponder::SetRealBound 関数は、この関数内の処理により実領域が変化すると、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, rectangle)] をレスポンダに送信します。

SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundReal 仮想関数が呼び出されます。

※ 領域イベントの P32 パラメータ rectangle には変更後の実領域が設定されています。

[Note] 実領域が変化した時の処理

SFYWidget::HandleBoundReal 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

実領域の変更処理は、最初に SFYWidget::HandleBoundReal 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundReal 仮想関数をオーバーライドして処理を記述します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleBoundReal(Void)
{
    return;
}// SFYWidget::HandleBoundReal //

参照

SFYResponder::SetRealBound | 実領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


SFYWidget::HandleBoundRequest
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
[ protected, virtual, const ]
Void HandleBoundRequest(
    SFXRectanglePtr rectangle   // 計算された領域
);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] を受信したときに呼び出されます。

レスポンダの最適な領域を計算する場合、この関数をオーバーライドします。

計算結果のレスポンダに最適なサイズは、rectangle 引数の size 要素(サイズ)に格納されます。 なお、領域イベントの P32 パラメータとして渡された rectangle 引数の origin 要素(始点)はこの関数内で変更しないことを推奨します。

デフォルトの実装は何も行いません。

[Note] 領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント]

SFYResponder::GetSuitableBound 関数は、 引数に何も指定しない場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] をレスポンダに送信します。

SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundRequest 仮想関数が呼び出されます。

※ 領域イベントの P32 パラメータ rectangle には実領域が初期設定されています。

[Tip] Tip
実領域のデフォルト値は SFXRectangle(0, 0, 0, 0) です。

[Note] (SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント受信時の最適な領域計算

SFYWidget::HandleBoundRequest 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

最適な領域の計算は、最初に SFYWidget::HandleBoundRequest 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundRequest 仮想関数をオーバーライドして処理を記述します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleBoundRequest(SFXRectanglePtr /*rectangle*/) const
{
    return;
}// SFYWidget::HandleBoundRequest //

参照

SFYResponder::GetSuitableBound | SFYResponder::SetRealBound | SFXEvent | 実領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


SFYWidget::HandleBoundVirtual
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です (仮想領域が変化したときの処理を行います)。
[ protected, virtual ]
Void HandleBoundVirtual(Void);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] を受信したときに呼び出されます。

仮想領域の変更時に追加の処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装は何も行いません。

[Note] 領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント]

SFYResponder::SetRealBound / SFYResponder::SetVirtualBound 関数は、 この関数内の処理により仮想領域が変化すると、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] をレスポンダに送信します。

SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundVirtual 仮想関数が呼び出されます。

※ 領域イベントの P32 パラメータ rectangle には変更後の仮想領域が設定されています。

[Note] 仮想領域の変更処理

SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

仮想領域の変更処理は、最初に SFYWidget::HandleBoundVirtual 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドして処理を記述します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleBoundVirtual(Void)
{
    return;
}// SFYWidget::HandleBoundVirtual //

参照

SFYResponder::SetRealBound | SFYResponder::SetVirtualBound | 仮想領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


SFYWidget::HandleRenderRequest
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
[ protected, virtual, const ]
Void HandleRenderRequest(
    SFXGraphicsPtr graphics   // グラフィックスオブジェクト
);

解説

この関数は、 描画イベント [SFXEvent(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, graphics)] を受信したときに呼び出されます。

レスポンダの描画処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装は何も行いません。

[Tip] Tip

SFYWidget::HandleRenderRequest 関数は、 レスポンダが描画イベントを受信したとき、 最初に起動される下記の SFYWidget クラスに登録されているデフォルトの描画ハンドラから呼び出されます。

// 最初に呼び出される SFYWidget クラスに登録されているデフォルトの描画ハンドラ
/*private */XANDLER_IMPLEMENT_VOIDRENDER(SFYWidget, OnRenderRequest, invoker, reason, graphics)
{
    unused(invoker);
    unused(reason);

    if (!GetPropertyTransparent()) { // 透過属性が設定されていないなら

        // レスポンダの領域を SetBackgroundColor() を利用して設定した背景色で塗り潰す
        graphics->FillRectangle(GetLocalBound(), _color.background);
    }

    // レスポンダを描画する仮想関数を呼び出す
    HandleRenderRequest(graphics);

    return;
}// XANDLER_IMPLEMENT_VOIDRENDER(SFYWidget, OnRenderRequest) //

SFYResponder::SetPropertyTransparent 関数を使用して透過属性を設定していない場合、 レスポンダの領域は SFYWidget::HandleRenderRequest 関数を実行する前に SFYWidget::SetBackgroundColor 関数を使用して設定した背景色(デフォルト値: 白色)で塗り潰されます。

[Note] レスポンダの描画手順

  1. SFYResponder::Invalidate 関数を使用して再描画領域を登録します。
  2. イベントループの最後、 アプリ開始/レジュームまたは優先的イベントハンドラ終了のタイミング、 あるいは、コールバックなどのイベントループの外で、 自動的に、あるいは、明示的に SFYResponder::Render 関数を呼び出します。
  3. 描画エンジンが起動されます。
  4. 再描画が必要なレスポンダだけが描画イベントを受信します。
  5. SFYWidget クラスを継承するレスポンダが描画イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した描画ハンドラの処理により、 SFYWidget::HandleRenderRequest 仮想関数が呼び出されます。 その後、描画ハンドラが登録した順に呼び出されます。
  6. 実際にレスポンダが描画されます。

[Tip] Tip
描画ハンドラの宣言と登録の手間を省けるので、 通常は SFYWidget::HandleRenderRequest 仮想関数だけを利用してレスポンダを描画します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFYWidget::HandleRenderRequest(SFXGraphicsPtr /*graphics*/) const
{
    return;
}// SFYWidget::HandleRenderRequest //

参照

SFYResponder::Invalidate | SFYResponder::Render | SFYWidget::SetBackgroundColor | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理 | イベントループ | レスポンダツリー


SFYWidget::SetBackgroundColor
背景の色を設定します。
[ public ]
Void SetBackgroundColor(
    SFXRGBColorConstRef param   // 設定する値
);

解説

この関数は、レスポンダの背景を塗り潰す色を設定します。

SFYWidget を継承するレスポンダのローカル領域は、 描画ハンドラ実行前にこの関数で設定された色で塗り潰されますので、 描画ハンドラで背景を塗り潰す必要はありません。

ただし、SFYResponder::SetPropertyTransparent 関数を使用して透過属性が設定されているときは背景が塗り潰されません。

デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) [白色]

[Note] ソフトキーコントロールの背景色

ソフトキーコントロール(SFZSoftKeyControl)のデフォルトの背景色は、 SFXRGBColor(0xCC, 0xCC, 0xCC, 0x00) [灰色]です。

[Note] 透過属性がデフォルトで true に設定されるクラス

以下のクラスは、透過属性がデフォルトで true に設定されています。 これらのクラスでは、デフォルト設定では SFYWidget::SetBackgroundColor 関数で設定される色で背景は塗り潰されません。

SFYImageWidget | SFYSingleTextWidget | SFYSingleEditWidget | SFYMultipleTextWidget | SFYMultipleEditWidget | SFZSingleTextLabelControl | SFZSingleEditLabelControl | SFZMultipleTextLabelControl | SFZMultipleEditLabelControl | SFZImageLabelControl | SFZCheckboxControl | SFZRadiobuttonControl

内部実装

この関数の内部実装は以下の通りです。

/*public */Void SFYWidget::SetBackgroundColor(SFXRGBColorConstRef param)
{
    if (!param.Equals(_color.background)) {
        _color.background.Set(param);
        Invalidate();
        InvokeBackward(SFXEvent(SFEVT_RESPONDER_STYLE, SFP16_STYLE_COLOR, 0), true);
    }
    return;
}// SFYWidget::SetBackgroundColor //

参照

SFYWidget::GetBackgroundColor | ローカル領域 | 描画ハンドラ | 属性 | SFYResponder::SetPropertyTransparent | SFXRGBColor


SFYWidget::CodeEnum
SFYWidget クラスを表す定数です。
enum CodeEnum {
    CODE_TYPE = four_char_code('.', 'w', 'g', 't')
};
SFMTYPEDEFTYPE(CodeEnum)

参照

SFYResponder::GetType | SFYResponder::SetType