SophiaFramework UNIVERSE 5.3 |
#include <SFYRadiobuttonControl.h.hpp>
class SFYRadiobuttonControl : public SFYCheckboxControl;
SFMTYPEDEFRESPONDER(SFYRadiobuttonControl)
■ 仕様と使い方
SFYRadiobuttonControl は、 各種ラジオボタンコントロールを実装するための起点となります。
SFYRadiobuttonControl は、 ラジオボタンと影の描画機能と排他的なチェック状態の切り替えを実装し、 いくつかの仮想関数のデフォルトの動作も実装します。
操作キーは、 SFYButtonControl::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーが操作キーとして割り当てられています。
■ イベントとハンドラ
SFYRadiobuttonControl を継承するレスポンダでは、 SFYRadiobuttonControl::SFYRadiobuttonControl / SFYButtonControl::SFYButtonControl / SFYControl::SFYControl / SFYWidget::SFYWidget コンストラクタで登録されたハンドラの処理により、 下記のイベントを受信すると、対応する下記の仮想関数(ハンドラ)が最初に呼び出されます。 その後、開発者がレスポンダに登録したハンドラが呼び出されることになります。
注意 | |
---|---|
ハンドラの詳細については、 SFYRadiobuttonControl::SFYRadiobuttonControl / SFYButtonControl::SFYButtonControl / SFYControl::SFYControl / SFYWidget::SFYWidget コンストラクタの解説を参照してください。 |
Tip | |
---|---|
ハンドラを登録する手間を省略できるので、 通常、これらのイベント処理は仮想関数をオーバーライドして記述します。 |
表 245. イベント、仮想関数(ハンドラ)とデフォルト動作
イベント | 仮想関数(ハンドラ) | デフォルトの動作 | オーバーライド |
---|---|---|---|
SFYButtonControl::SetOperateKey で設定された操作キーの SFEVT_KEY イベント | SFYButtonControl::HandleOperateKey | − | 任意 |
SFYButtonControl::SetOperateKey で設定された操作キーの SFEVT_KEY_PRESS イベント | SFYButtonControl::HandleOperateKeyPress | − | 任意 |
SFYButtonControl::SetOperateKey で設定された操作キーの SFEVT_KEY_RELEASE イベント | SFYRadiobuttonControl::HandleOperateKeyRelease | 排他的なチェック状態切り替え結果イベントを送信する※1 | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント | SFYWidget::HandleBoundRequest | − | 推奨 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント | SFYWidget::HandleBoundOptimize | − | 推奨 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント | SFYControl::HandleBoundReal | 仮想領域を実領域に一致させる※2 | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント | SFYWidget::HandleBoundVirtual | − | 任意 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント | SFYWidget::HandleBoundGlobal | − | 非推奨[廃止予定] |
(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST) イベント | SFYWidget::HandleRenderRequest | − | 任意 |
※デフォルトの動作にある "−" は何も実装していないことを表す。
注釈 | |
---|---|
※1. 排他的にチェック状態を切り替えた後、SFYResponder::InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, GetCurrentValue()), false) を実行します。 ※2. SFYResponder::SetVirtualBound(SFXRectangle(SFXGrid::ZeroInstance(), GetRealBound().GetSize())) を実行します。つまり、仮想領域を実領域に一致させます。 |
ユーザー定義ラジオボタンコントロールを作成するときに最低限必要なコードを示します。
例 885. 宣言
SFMTYPEDEFRESPONDER(USRRadiobuttonControl) class USRRadiobuttonControl : public SFYRadiobuttonControl { SFMSEALRESPONDER(USRRadiobuttonControl) SFMRESPONDERINSTANTIATESIX(USRRadiobuttonControl, SFYRadiobuttonControl, SFYCheckboxControl, SFYButtonControl, SFYControl, SFYWidget, SFYResponder) public: // レスポンダのタイプを定義する // 小文字と記号のみからなるタイプは予約されているので使えない enum CodeEnum { CODE_TYPE = four_char_code('U', 'R', 'D', 'O') }; SFMTYPEDEFTYPE(CodeEnum) public: static USRRadiobuttonControlSmp NewInstance(SFCErrorPtr exception = null); protected: explicit USRRadiobuttonControl(Void) static_throws; virtual ~USRRadiobuttonControl(Void); // 親クラスで定義されている仮想関数のうち、実装が推奨される仮想関数 virtual Void HandleBoundRequest(SFXRectanglePtr rectangle) const; virtual Void HandleBoundOptimize(SFXRectanglePtr rectangle) const; virtual Void HandleBoundVirtual(Void); virtual Void HandleRenderRequest(SFXGraphicsPtr graphics) const; };
例 886. 実装
USRRadiobuttonControl::USRRadiobuttonControl(Void) static_throws { if (static_try()) { // レスポンダのタイプを設定する SetType(CODE_TYPE); // ラジオボタンコントロールのラベル部分は背景を持たないので透過モードに設定する SetPropertyTransparent(true); // 初期化処理を記述する } } USRRadiobuttonControl::~USRRadiobuttonControl(Void) { // 終了処理を記述する } USRRadiobuttonControlSmp USRRadiobuttonControl::NewInstance(SFCErrorPtr exception) { return static_pointer_cast<USRRadiobuttonControl>(Factory(::new USRRadiobuttonControl, exception)); } Void USRRadiobuttonControl::HandleBoundRequest(SFXRectanglePtr rectangle) const { // ラジオボタンコントロールに最適な大きさを計算して rectangle パラメータに設定する // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨) return; } Void USRRadiobuttonControl::HandleBoundOptimize(SFXRectanglePtr rectangle) const { // ラジオボタンコントロールに最適な大きさを rectangle パラメータ内の大きさに // 収まるように計算し、rectangle パラメータに設定する // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨) return; } Void USRRadiobuttonControl::HandleBoundVirtual(Void) { // 仮想領域が変更された場合に再計算が必要なものがあれば、ここに記述する return; } Void USRRadiobuttonControl::HandleRenderRequest(SFXGraphicsPtr graphics) const { SFXGrid grid; // SFYRadiobuttonControl::DrawButton**/DrawShadow**/DrawCheckmark** 関数を使用して // ラジオボタンと影を描画する // _height 変数はラジオボタン部分の高さを表し、 // _origin 変数はラジオボタン部分の原点を表すものとする // ※これらの変数は、ラベル部分に使用するフォントの高さより計算する if (_height >= 28) { grid.Set(DrawShadow28(graphics, _origin)); DrawButton27(graphics, grid); grid.Add(8, 8); DrawCheckmark11(graphics, grid); } else if (_height >= 14) { grid.Set(DrawShadow14(graphics, _origin)); DrawButton13(graphics, grid); grid.Add(4, 4); DrawCheckmark05(graphics, grid); } // ラジオボタンコントロールのラベル部分を描画する return; }
SFYRadiobuttonControl::SFYRadiobuttonControl | SFYButtonControl::SFYButtonControl | SFYControl::SFYControl | SFYWidget::SFYWidget | SFZRadiobuttonControl | キーイベント[SFEVT_KEY] | 領域イベント[SFEVT_RESPONDER_BOUND] | 描画イベント[SFEVT_RESPONDER_RENDER] | ラジオボタンコントロールを表す抽象クラス[SFYRadiobuttonControl]
コンストラクタ/デストラクタ |
---|
SFYRadiobuttonControl( Void ) SFYRadiobuttonControl クラスのコンストラクタです。
|
~SFYRadiobuttonControl( Void ) SFYRadiobuttonControl クラスのデストラクタです。
|
パブリック関数 | |
---|---|
Void |
Group(
SFYRadiobuttonControlSmpConstRef param
) ラジオボタンコントロールをグループに登録します。
|
Void |
Ungroup( Void ) ラジオボタンコントロールのグループ登録を解除します。
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
SFXBevelColorConstRef |
GetButtonColor( Void )
(SFYButtonControl から継承)
ボタンコントロール内ベベル領域を描画するベベルカラーを取得します。
|
SFXRGBColorConstRef |
GetCheckmarkColor( Void )
(SFYCheckboxControl から継承)
チェックマークの色を取得します。
|
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 から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SInt32 |
GetCurrentValue( Void )
(SFYControl から継承)
コントロールの現在値を取得します。
|
SFYDistributerPtr |
GetDistributer( Void )
(SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
SFXBevelColorConstRef |
GetFocusColor( Void )
(SFYButtonControl から継承)
フォーカス状態にあるときのボタンコントロール内ベベル領域の枠を描画するベベルカラーを取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRectangle |
GetGlobalBound( Void )
(SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
|
UInt32 |
GetID( Void )
(SFYResponder から継承)
このレスポンダの ID を取得します。
|
SFXRectangle |
GetLocalBound( Void )
(SFYResponder から継承)
このレスポンダのローカル領域を取得します。
|
SInt32 |
GetMaximumValue( Void )
(SFYControl から継承)
コントロールの最大値を取得します。
|
SInt32 |
GetMinimumValue( Void )
(SFYControl から継承)
コントロールの最小値を取得します。
|
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 から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
AVKType |
GetOperateKey( Void )
(SFYButtonControl から継承)
ボタンの操作キーを取得します。
|
SFYResponderSmp |
GetParent( Void )
(SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
|
Bool |
GetPropertyTransparent( Void )
(SFYResponder から継承)
このレスポンダの透過属性を取得します。
|
SFXRectangleConstRef |
GetRealBound( Void )
(SFYResponder から継承)
このレスポンダの実領域を取得します。
|
VoidPtr |
GetReference( Void )
(SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
|
SFYRendererPtr |
GetRenderer( Void )
(SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
|
SFYResponderSmp |
GetRoot( Void )
(SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
|
SFXRGBColorConstRef |
GetShadowColor( Void )
(SFYButtonControl から継承)
影の色を取得します。
|
Bool |
GetStateActive(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの活性状態を取得します。
|
Bool |
GetStateEnable(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
|
Bool |
GetStateFocus(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
|
Bool |
GetStatePress( Void )
(SFYButtonControl から継承)
ボタンコントロールの押下状態を取得します。
|
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 |
SetBackgroundColor(
SFXRGBColorConstRef param
)
(SFYWidget から継承)
背景の色を設定します。
|
Void |
SetButtonColor(
SFXBevelColorConstRef param
)
(SFYButtonControl から継承)
ボタンコントロール内ベベル領域を描画するベベルカラーを設定します。
|
Void |
SetCheckmarkColor(
SFXRGBColorConstRef param
)
(SFYCheckboxControl から継承)
チェックマークの色を設定します。
|
Void |
SetCurrentValue(
SInt32 param
)
(SFYControl から継承)
コントロールの現在値を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
Void |
SetFocusColor(
SFXBevelColorConstRef param
)
(SFYButtonControl から継承)
フォーカス状態にあるときのボタンコントロール内ベベル領域の枠を描画するベベルカラーを設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetMaximumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最大値を設定します。
|
Void |
SetMinimumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最小値を設定します。
|
Void |
SetOperateKey(
AVKType param
)
(SFYButtonControl から継承)
操作キーを設定します。
|
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 |
SetShadowColor(
SFXRGBColorConstRef param
)
(SFYButtonControl から継承)
影の色を設定します。
|
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 |
SetStatePress(
Bool param
)
(SFYButtonControl から継承)
ボタンコントロールの押下状態を設定します。
|
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 |
DrawButton13(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 13 × 13 ピクセルのボタンを描画します。
|
Void |
DrawButton27(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 27 × 27 ピクセルのボタンを描画します。
|
Void |
DrawCheckmark05(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 5 × 5 ピクセルのチェックマークを描画します。
|
Void |
DrawCheckmark11(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 11 × 11 ピクセルのチェックマークを描画します。
|
SFXGrid |
DrawShadow14(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 14 × 14 ピクセルの影を描画します。
|
SFXGrid |
DrawShadow28(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
) ラジオボタン用 28 × 28 ピクセルの影を描画します。
|
Void |
HandleOperateKeyRelease( Void ) 操作キーの SFEVT_KEY_RELEASE イベントを受信したときに呼び出される関数です。
|
Void |
DrawButton(
SFXGraphicsPtr graphics
, SFXRectangleConstRef rectangle
)
(SFYButtonControl から継承)
ボタンコントロールのベベル領域を描画します。
|
Void |
DrawCheckmark09(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
)
(SFYCheckboxControl から継承)
チェックボックス用 9 × 9 ピクセルのチェックマークを描画します。
|
Void |
DrawCheckmark21(
SFXGraphicsPtr graphics
, SFXGridConstRef grid
)
(SFYCheckboxControl から継承)
チェックボックス用 21 × 21 ピクセルのチェックマークを描画します。
|
SFXRectangle |
DrawShadow(
SFXGraphicsPtr graphics
, SFXRectangleConstRef rectangle
)
(SFYButtonControl から継承)
ボタンコントロールの影領域を描画します。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
static SFXMarginConstRef |
GetButtonMargin( Void )
(SFYButtonControl から継承)
ボタンコントロールのマージンを取得します。
|
static SFXGridConstRef |
GetPressOffset( Void )
(SFYButtonControl から継承)
プレスオフセットを取得します。
|
static SFXMarginConstRef |
GetShadowMargin( Void )
(SFYButtonControl から継承)
ボタンコントロールの影領域のマージンを取得します。
|
SFYResponderSmp |
GetThis( Void )
(SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
|
Void |
HandleBoundGlobal(
SFXRectangleConstRef rectangle
)
(SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
|
Void |
HandleBoundOptimize(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
|
Void |
HandleBoundReal( Void )
(SFYControl から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です
(実領域が変化したときの処理を行います)。
|
Void |
HandleBoundRequest(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
|
Void |
HandleBoundVirtual( Void )
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です
(仮想領域が変化したときの処理を行います)。
|
Void |
HandleOperateKey( Void )
(SFYButtonControl から継承)
キーイベントを処理します。
|
Void |
HandleOperateKeyPress( Void )
(SFYButtonControl から継承)
操作キーの SFEVT_KEY_PRESS イベントを受信したときに呼び出される関数です。
|
Void |
HandleRenderRequest(
SFXGraphicsPtr graphics
)
(SFYWidget から継承)
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFYRadiobuttonControl クラスを表す定数です。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFYRadiobuttonControl(Void);
このレスポンダのタイプを ".rdo" に設定します。
このコンストラクタの内部実装は以下の通りです。
/*protected */SFYRadiobuttonControl::SFYRadiobuttonControl(Void) static_throws { _forward = this; _backward = this; if (static_try()) { SetType(CODE_TYPE); } }// SFYRadiobuttonControl::SFYRadiobuttonControl //
[ protected, virtual ] virtual ~SFYRadiobuttonControl(Void);
このラジオボタンコントロールのグループ登録を解除します。
このデストラクタの内部実装は以下の通りです。
/*protected virtual */SFYRadiobuttonControl::~SFYRadiobuttonControl(Void) { Ungroup(); }// SFYRadiobuttonControl::~SFYRadiobuttonControl //
[ protected, const ] Void DrawButton13( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 13 × 13 ピクセルのボタンを描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */Void SFYRadiobuttonControl::DrawButton13(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXRectangle::AtomRecConst rectangle[] = { {{ 3, 3}, { 7, 7}} }; static SFXLine::AtomRecConst line[] = { {{ 2, 1}, { 3, 1}}, {{ 4, 0}, { 8, 0}}, {{ 1, 2}, { 1, 3}}, {{ 0, 4}, { 0, 8}}, {{ 9, 1}, {10, 1}}, {{ 1, 9}, { 1, 10}}, {{ 2, 2}, { 4, 2}}, {{ 4, 1}, { 8, 1}}, {{ 8, 2}, {10, 2}}, {{10, 2}, {10, 4}}, {{11, 4}, {11, 8}}, {{10, 8}, {10, 10}}, {{ 2, 2}, { 2, 4}}, {{ 1, 4}, { 1, 8}}, {{ 2, 8}, { 2, 10}}, {{ 2, 10}, { 4, 10}}, {{ 4, 11}, { 8, 11}}, {{ 8, 10}, {10, 10}}, {{11, 2}, {11, 3}}, {{ 2, 11}, { 3, 11}}, {{12, 4}, {12, 8}}, {{11, 9}, {11, 10}}, {{ 4, 12}, { 8, 12}}, {{ 9, 11}, {10, 11}}, {{ 5, 2}, { 7, 2}}, {{10, 5}, {10, 7}}, {{ 2, 5}, { 2, 7}}, {{ 5, 10}, { 7, 10}} }; static SInt16Const color[] = { 0, 0, 4, 6, 18, 20, 24 }; RenderButton(graphics, grid, atomic_cast(rectangle), lengthof(rectangle), atomic_cast(line), lengthof(line), color); return; }// SFYRadiobuttonControl::DrawButton13 // /*private */Void SFYRadiobuttonControl::RenderButton(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXRectangleConstPtr rectangle, SInt32 rlength, SFXLineConstPtr line, SInt32 llength, SInt16Const color[7]) const { SFXBevelColor bevel; SFXRGBColor rgb; SInt32 r0; Bool baseBright; graphics->SetTranslate(-grid); bevel.Set((GetStateFocus(true)) ? (GetFocusColor()) : (GetButtonColor())); rgb.Set(GetButtonColor().GetBase()); baseBright = rgb.GetBrightness() > 0x7F; if (!GetStateActive(true)) { bevel.SetLight(bevel.GetBase()); bevel.SetDark(bevel.GetBase()); } if (GetStatePress()) { if (baseBright) { bevel.SubRGB(0x11); rgb.SubRGB(0x11); } else { bevel.AddRGB(0x11); rgb.AddRGB(0x11); } } graphics->SetFillMode(true); for (r0 = 0; r0 < rlength; ++r0) { if (r0 == color[0]) { graphics->SetForeColor(rgb); graphics->SetFillColor(rgb); } graphics->DrawRectangle(rectangle[r0]); } for (r0 = 0; r0 < llength; ++r0) { if (r0 == color[1]) { graphics->SetForeColor(bevel.GetLight()); } else if (r0 == color[2]) { SFXRGBColor light(bevel.GetLight()); graphics->SetForeColor( (baseBright) ? light.SubRGB(0x11) : light.AddRGB(0x11) ); } else if (r0 == color[3]) { graphics->SetForeColor(bevel.GetBase()); } else if (r0 == color[4]) { SFXRGBColor dark(bevel.GetDark()); graphics->SetForeColor( (baseBright) ? dark.AddRGB(0x11) : dark.SubRGB(0x11) ); } else if (r0 == color[5]) { graphics->SetForeColor(bevel.GetDark()); } else if (r0 == color[6]) { graphics->SetForeColor(rgb); } graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); return; }// SFYRadiobuttonControl::RenderButton //
[ protected, const ] Void DrawButton27( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 27 × 27 ピクセルのボタンを描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */Void SFYRadiobuttonControl::DrawButton27(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXRectangle::AtomRecConst rectangle[] = { {{ 5, 5}, {17, 17}} }; static SFXLine::AtomRecConst line[] = { {{ 4, 3}, { 5, 3}}, {{ 6, 2}, { 6, 2}}, {{ 7, 1}, { 9, 1}}, {{10, 0}, {16, 0}}, {{ 3, 4}, { 3, 5}}, {{ 2, 6}, { 2, 6}}, {{ 1, 7}, { 1, 9}}, {{ 0, 10}, { 0, 16}}, {{17, 1}, {19, 1}}, {{20, 2}, {20, 2}}, {{21, 3}, {22, 3}}, {{ 1, 17}, { 1, 19}}, {{ 2, 20}, { 2, 20}}, {{ 3, 21}, { 3, 22}}, {{ 4, 4}, { 6, 4}}, {{ 6, 3}, { 7, 3}}, {{ 7, 2}, {10, 2}}, {{10, 1}, {16, 1}}, {{16, 2}, {19, 2}}, {{19, 3}, {20, 3}}, {{20, 4}, {22, 4}}, {{22, 4}, {22, 6}}, {{23, 6}, {23, 7}}, {{24, 7}, {24, 10}}, {{25, 10}, {25, 16}}, {{24, 16}, {24, 19}}, {{23, 19}, {23, 20}}, {{22, 20}, {22, 22}}, {{ 4, 4}, { 4, 6}}, {{ 3, 6}, { 3, 7}}, {{ 2, 7}, { 2, 10}}, {{ 1, 10}, { 1, 16}}, {{ 2, 16}, { 2, 19}}, {{ 3, 19}, { 3, 20}}, {{ 4, 20}, { 4, 22}}, {{ 4, 22}, { 6, 22}}, {{ 6, 23}, { 7, 23}}, {{ 7, 24}, {10, 24}}, {{10, 25}, {16, 25}}, {{16, 24}, {19, 24}}, {{19, 23}, {20, 23}}, {{20, 22}, {22, 22}}, {{23, 4}, {23, 5}}, {{24, 6}, {24, 6}}, {{25, 7}, {25, 9}}, {{ 4, 23}, { 5, 23}}, {{ 6, 24}, { 6, 24}}, {{ 7, 25}, { 9, 25}}, {{26, 10}, {26, 16}}, {{25, 17}, {25, 19}}, {{24, 20}, {24, 20}}, {{23, 21}, {23, 22}}, {{10, 26}, {16, 26}}, {{17, 25}, {19, 25}}, {{20, 24}, {20, 24}}, {{21, 23}, {22, 23}}, {{11, 2}, {15, 2}}, {{ 8, 3}, {18, 3}}, {{ 7, 4}, {19, 4}}, {{24, 11}, {24, 15}}, {{23, 8}, {23, 18}}, {{22, 7}, {22, 19}}, {{ 2, 11}, { 2, 15}}, {{ 3, 8}, { 3, 18}}, {{ 4, 7}, { 4, 19}}, {{11, 24}, {15, 24}}, {{ 8, 23}, {18, 23}}, {{ 7, 22}, {19, 22}} }; static SInt16Const color[] = { 0, 0, 8, 14, 42, 48, 56 }; RenderButton(graphics, grid, atomic_cast(rectangle), lengthof(rectangle), atomic_cast(line), lengthof(line), color); return; }// SFYRadiobuttonControl::DrawButton27 // /*private */Void SFYRadiobuttonControl::RenderButton(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXRectangleConstPtr rectangle, SInt32 rlength, SFXLineConstPtr line, SInt32 llength, SInt16Const color[7]) const { SFXBevelColor bevel; SFXRGBColor rgb; SInt32 r0; Bool baseBright; graphics->SetTranslate(-grid); bevel.Set((GetStateFocus(true)) ? (GetFocusColor()) : (GetButtonColor())); rgb.Set(GetButtonColor().GetBase()); baseBright = rgb.GetBrightness() > 0x7F; if (!GetStateActive(true)) { bevel.SetLight(bevel.GetBase()); bevel.SetDark(bevel.GetBase()); } if (GetStatePress()) { if (baseBright) { bevel.SubRGB(0x11); rgb.SubRGB(0x11); } else { bevel.AddRGB(0x11); rgb.AddRGB(0x11); } } graphics->SetFillMode(true); for (r0 = 0; r0 < rlength; ++r0) { if (r0 == color[0]) { graphics->SetForeColor(rgb); graphics->SetFillColor(rgb); } graphics->DrawRectangle(rectangle[r0]); } for (r0 = 0; r0 < llength; ++r0) { if (r0 == color[1]) { graphics->SetForeColor(bevel.GetLight()); } else if (r0 == color[2]) { SFXRGBColor light(bevel.GetLight()); graphics->SetForeColor( (baseBright) ? light.SubRGB(0x11) : light.AddRGB(0x11) ); } else if (r0 == color[3]) { graphics->SetForeColor(bevel.GetBase()); } else if (r0 == color[4]) { SFXRGBColor dark(bevel.GetDark()); graphics->SetForeColor( (baseBright) ? dark.AddRGB(0x11) : dark.SubRGB(0x11) ); } else if (r0 == color[5]) { graphics->SetForeColor(bevel.GetDark()); } else if (r0 == color[6]) { graphics->SetForeColor(rgb); } graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); return; }// SFYRadiobuttonControl::RenderButton //
[ protected, const ] Void DrawCheckmark05( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 5 × 5 ピクセルのチェックマークを描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */Void SFYRadiobuttonControl::DrawCheckmark05(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXRectangle::AtomRecConst rectangle[] = { {{ 1, 1}, { 3, 3}} }; static SFXLine::AtomRecConst line[] = { {{ 1, 0}, { 3, 0}}, {{ 4, 1}, { 4, 3}}, {{ 0, 1}, { 0, 3}}, {{ 1, 4}, { 3, 4}} }; RenderCheckmark(graphics, grid, atomic_cast(rectangle), lengthof(rectangle), atomic_cast(line), lengthof(line)); return; }// SFYRadiobuttonControl::DrawCheckmark05 // /*private */Void SFYRadiobuttonControl::RenderCheckmark(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXRectangleConstPtr rectangle, SInt32 rlength, SFXLineConstPtr line, SInt32 llength) const { SFXRGBColor rgb; SInt32 r0; if (GetCurrentValue()) { graphics->SetTranslate(-grid); rgb.Set(GetCheckmarkColor()); if (!GetStateActive(true)) { (rgb.GetBrightness() > 0x7F) ? rgb.SubRGB(0x44) : rgb.AddRGB(0x44); } graphics->SetFillMode(true); graphics->SetForeColor(rgb); graphics->SetFillColor(rgb); for (r0 = 0; r0 < rlength; ++r0) { graphics->DrawRectangle(rectangle[r0]); } for (r0 = 0; r0 < llength; ++r0) { graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); } return; }// SFYRadiobuttonControl::RenderCheckmark //
[ protected, const ] Void DrawCheckmark11( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 11 × 11 ピクセルのチェックマークを描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */Void SFYRadiobuttonControl::DrawCheckmark11(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXRectangle::AtomRecConst rectangle[] = { {{ 2, 2}, { 7, 7}} }; static SFXLine::AtomRecConst line[] = { {{ 4, 0}, { 6, 0}}, {{ 2, 1}, { 8, 1}}, {{10, 4}, {10, 6}}, {{ 9, 2}, { 9, 8}}, {{ 0, 4}, { 0, 6}}, {{ 1, 2}, { 1, 8}}, {{ 4, 10}, { 6, 10}}, {{ 2, 9}, { 8, 9}} }; RenderCheckmark(graphics, grid, atomic_cast(rectangle), lengthof(rectangle), atomic_cast(line), lengthof(line)); return; }// SFYRadiobuttonControl::DrawCheckmark11 // /*private */Void SFYRadiobuttonControl::RenderCheckmark(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXRectangleConstPtr rectangle, SInt32 rlength, SFXLineConstPtr line, SInt32 llength) const { SFXRGBColor rgb; SInt32 r0; if (GetCurrentValue()) { graphics->SetTranslate(-grid); rgb.Set(GetCheckmarkColor()); if (!GetStateActive(true)) { (rgb.GetBrightness() > 0x7F) ? rgb.SubRGB(0x44) : rgb.AddRGB(0x44); } graphics->SetFillMode(true); graphics->SetForeColor(rgb); graphics->SetFillColor(rgb); for (r0 = 0; r0 < rlength; ++r0) { graphics->DrawRectangle(rectangle[r0]); } for (r0 = 0; r0 < llength; ++r0) { graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); } return; }// SFYRadiobuttonControl::RenderCheckmark //
[ protected, const ] SFXGrid DrawShadow14( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 14 × 14 ピクセルの影を描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */SFXGrid SFYRadiobuttonControl::DrawShadow14(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXLine::AtomRecConst line[][9] = { { {{11, 1}, {11, 1}}, {{ 1, 11}, { 1, 11}}, {{12, 2}, {12, 3}}, {{ 2, 12}, { 3, 12}}, {{13, 4}, {13, 8}}, {{12, 9}, {12, 10}}, {{ 4, 13}, { 8, 13}}, {{ 9, 12}, {10, 12}}, {{11, 11}, {11, 11}} }, { {{12, 2}, {12, 2}}, {{ 2, 12}, { 2, 12}}, {{10, 1}, {11, 1}}, {{ 1, 10}, { 1, 11}}, {{ 3, 1}, { 4, 1}}, {{ 5, 0}, { 9, 0}}, {{ 1, 3}, { 1, 4}}, {{ 0, 5}, { 0, 9}}, {{ 2, 2}, { 2, 2}} } }; static SInt16Const color[] = { 0, 2, 4 }; SFXGrid result(grid); if (GetStatePress()) { RenderShadow(graphics, grid, atomic_cast(line[1]), lengthof(line[1]), color); result.Add(1, 1); } else { RenderShadow(graphics, grid, atomic_cast(line[0]), lengthof(line[0]), color); result.Add(0, 0); } return result; }// SFYRadiobuttonControl::DrawShadow14 // /*private */Void SFYRadiobuttonControl::RenderShadow(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXLineConstPtr line, SInt32 llength, SInt16Const color[3]) const { SFXRGBColor rgb; SInt32 r0; Bool shadowBright; graphics->SetTranslate(-grid); rgb.Set(GetShadowColor()); shadowBright = rgb.GetBrightness() > 0x7F; if (!GetStateActive(true)) { (shadowBright) ? rgb.SubRGB(0x44) : rgb.AddRGB(0x44); } for (r0 = 0; r0 < llength; ++r0) { if (r0 == color[0]) { graphics->SetForeColor( (shadowBright) ? SFXRGBColor(rgb).SubRGB(0x44) : SFXRGBColor(rgb).AddRGB(0x44) ); } else if (r0 == color[1]) { graphics->SetForeColor( (shadowBright) ? SFXRGBColor(rgb).SubRGB(0x22) : SFXRGBColor(rgb).AddRGB(0x22) ); } else if (r0 == color[2]) { graphics->SetForeColor(rgb); } graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); return; }// SFYRadiobuttonControl::RenderShadow //
[ protected, const ] SFXGrid DrawShadow28( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXGridConstRef grid // 左上の座標 );
この関数は、ラジオボタン用 28 × 28 ピクセルの影を描画します。
独自の処理を行う場合は、この関数をオーバーライドします。
Tip | |
---|---|
この関数は、SFZRadiobuttonControl::HandleRenderRequest 関数内で呼び出されます。 |
この関数の内部実装は以下の通りです。
/*protected */SFXGrid SFYRadiobuttonControl::DrawShadow28(SFXGraphicsPtr graphics, SFXGridConstRef grid) const { static SFXLine::AtomRecConst line[][17] = { { {{23, 3}, {23, 3}}, {{24, 4}, {24, 5}}, {{ 3, 23}, { 3, 23}}, {{ 4, 24}, { 5, 24}}, {{25, 6}, {25, 6}}, {{26, 7}, {26, 9}}, {{ 6, 25}, { 6, 25}}, {{ 7, 26}, { 9, 26}}, {{27, 10}, {27, 16}}, {{26, 17}, {26, 19}}, {{25, 20}, {25, 20}}, {{24, 21}, {24, 22}}, {{10, 27}, {16, 27}}, {{17, 26}, {19, 26}}, {{20, 25}, {20, 25}}, {{21, 24}, {22, 24}}, {{23, 23}, {23, 23}} }, { {{22, 3}, {23, 3}}, {{24, 4}, {24, 4}}, {{ 3, 22}, { 3, 23}}, {{ 4, 24}, { 4, 24}}, {{18, 1}, {20, 1}}, {{21, 2}, {21, 2}}, {{ 1, 18}, { 1, 20}}, {{ 2, 21}, { 2, 21}}, {{ 5, 3}, { 6, 3}}, {{ 7, 2}, { 7, 2}}, {{ 8, 1}, {10, 1}}, {{11, 0}, {17, 0}}, {{ 3, 5}, { 3, 6}}, {{ 2, 7}, { 2, 7}}, {{ 1, 8}, { 1, 10}}, {{ 0, 11}, { 0, 17}}, {{ 4, 4}, { 4, 4}} } }; static SInt16Const color[] = { 0, 4, 8 }; SFXGrid result(grid); if (GetStatePress()) { RenderShadow(graphics, grid, atomic_cast(line[1]), lengthof(line[1]), color); result.Add(1, 1); } else { RenderShadow(graphics, grid, atomic_cast(line[0]), lengthof(line[0]), color); result.Add(0, 0); } return result; }// SFYRadiobuttonControl::DrawShadow28 // /*private */Void SFYRadiobuttonControl::RenderShadow(SFXGraphicsPtr graphics, SFXGridConstRef grid, SFXLineConstPtr line, SInt32 llength, SInt16Const color[3]) const { SFXRGBColor rgb; SInt32 r0; Bool shadowBright; graphics->SetTranslate(-grid); rgb.Set(GetShadowColor()); shadowBright = rgb.GetBrightness() > 0x7F; if (!GetStateActive(true)) { (shadowBright) ? rgb.SubRGB(0x44) : rgb.AddRGB(0x44); } for (r0 = 0; r0 < llength; ++r0) { if (r0 == color[0]) { graphics->SetForeColor( (shadowBright) ? SFXRGBColor(rgb).SubRGB(0x44) : SFXRGBColor(rgb).AddRGB(0x44) ); } else if (r0 == color[1]) { graphics->SetForeColor( (shadowBright) ? SFXRGBColor(rgb).SubRGB(0x22) : SFXRGBColor(rgb).AddRGB(0x22) ); } else if (r0 == color[2]) { graphics->SetForeColor(rgb); } graphics->DrawLine(line[r0]); } graphics->SetTranslate(grid); return; }// SFYRadiobuttonControl::RenderShadow //
[ public ] Void Group( SFYRadiobuttonControlSmpConstRef param // 登録するグループ );
この関数は、このラジオボタンコントロールをグループに登録します。
注意 | |
---|---|
この関数は、複数のラジオボタンコントロールをグループ化し、選択状態の排他的切替を自動的に行えるようにします。 |
[ protected, virtual ] Void HandleOperateKeyRelease(Void);
この関数は、SFYButtonControl::SetOperateKey 関数で設定した操作キーの SFEVT_KEY_RELEASE イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキー解放イベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は、グループ化されたラジオボタンの選択状態の切替を行い、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 現在値)] を送信します。 現在値は、SFYControl::GetCurrentValue 関数を呼び出すことで取得できる値です。
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFYRadiobuttonControl::HandleOperateKeyRelease(Void) { SFYRadiobuttonControlPtr responder; for (responder = _forward; responder != this; responder = responder->_forward) { responder->SetCurrentValue(false); } SetCurrentValue(true); InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, GetCurrentValue()), false); return; }// SFYRadiobuttonControl::HandleOperateKeyRelease //
[ public ] Void Ungroup(Void);
この関数は、このラジオボタンコントロールのグループ登録を解除します。
enum CodeEnum { CODE_TYPE = four_char_code('.', 'r', 'd', 'o') }; SFMTYPEDEFTYPE(CodeEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |