SophiaFramework UNIVERSE 5.3 |
#include <SFYTabControl.h.hpp>
class SFYTabControl : public SFYControl;
SFMTYPEDEFRESPONDER(SFYTabControl)
■ 仕様と使い方
SFYTabControl は、SFZTabControl などの具象タブコントロールを実装するための起点となるクラスです。
タブコントロールは、 複数のタブページ(SFZTabPage)をタブ形式のユーザーインターフェースで管理する機能を提供します。
タブコントロールへのタブページの挿入は、 タブページの親レスポンダをタブコントロールに設定することにより行います。
タブページの表示切り替えは、タブコントロールのタブのフォーカス移動によって行います。
タブコントロールのレイアウト
タブページの追加
タブコントロールへのタブページの追加は、 タブページの SFYResponder::SetParent 関数を呼び出して親レスポンダにタブコントロールを設定することにより行います。
注意 | |
---|---|
タブページは、タブコントロールに追加された順に並びます。 この順序を変更するには、タブページを削除して追加しなおす必要があります。 なお、タブページのインデックスは、タブページがタブコントロールに追加された順を表します。 |
注意 | |
---|---|
コントロールは子レスポンダとしてコンテナ(SFYContainer クラスを継承するレスポンダ)を持ちませんが、 タブコントロールだけは例外的に子レスポンダとしてコンテナを持ちます。 |
領域の設定
SFYResponder::SetRealBound 関数を呼び出してタブコントロールの実領域を設定します。
注意 | |
---|---|
内部処理により、 タブコントロールの仮想領域は、 常に実領域に一致します。 |
タブページの実領域は、 内部処理により自動的にタブコントロールのコンテント領域に設定されます。 開発者はタブページの実領域を設定する必要はありません。
タブコントロールのコンテント領域 | |
---|---|
タブコントロールのコンテント領域とは、 タブコントロールの領域からヒント領域、タブ領域、ボーダー領域、スクロールバー領域を除いた矩形領域のことです。 タブページの内容が表示される領域であるので、コンテント領域と呼びます。 |
タブページの仮想領域は、 タブコントロールにすべてのタブページを追加し終えてから一度だけ 明示的に SFYTabControl::AdjustPages 関数を呼び出すことにより行います。 このとき、仮想領域は自動的に計算されて、 タブコントロールのコンテント領域とタブページの子レスポンダを含む最小の矩形領域に設定されます (始点は (0, 0) で、タブページの実領域の始点と同じ)。
注意 | |
---|---|
タブページのすべての子レスポンダがタブコントロールのコンテント領域内に配置される場合、 SFYTabControl::AdjustPages 関数の呼び出しは省略できます。 |
状態について
タブコントロールは、 以下のようにタブページの状態に応じて描画や、 フォーカス時の振る舞いが異なります。
注意 | |
---|---|
上記のラベルとは、タブコントロールのタブに表示されるタブページのタイトルラベルのことです。 |
状態に応じたタブコントロールの描画とフォーカスの振る舞いの実装 | |
---|---|
これらのタブページの状態に基づいたフォーカスの振る舞いは SFYTabControl クラスで実装されます。 タブ領域(タグラベル)の描画は、 SFYTabControl クラスを継承する具象クラスで実装する必要があります。 |
タブページの初期状態 | |
---|---|
インスタンス生成直後、タブページの状態は「可視+活性+操作可能+非フォーカス」に初期化されます。 大抵の場合は、この設定で十分なので、タブページの状態を設定する必要はありません。 |
タブコントロールのデザイン
タブ領域やヒント領域、ボーダー領域を表示するための関数が利用可能です。 詳しくは、SFZTabControl / SFZTabPage クラスのリファレンスを参照してください。
タブページの選択
タブコントロールには、SFYTabControl::SetFieldValue 関数で設定した数のタブが表示されます。
各タブには対応するタブページが存在し、タブには対応するタブページのタイトルテキストが表示されます (ヒント領域が設定されている場合はヒントテキストも表示されます)。 そのうちの 1 つのタブページだけがフォーカス状態になり、その内容がコンテント領域に表示されます。
SFZTabControl::SetFocusTabTopEdgeEnable 関数で上境界線を有効に設定している場合、 フォーカス状態のタブページに対応するタブの上境界線は SFZTabControl::SetFocusTabTopEdgeColor 関数で設定した色で描画されます。
特定のタブページにフォーカスを移動するには、 SFYTabControl::FocusPage 関数を呼び出します。 現在フォーカスを持つタブページのフォーカスを前後(左右)のタブページに移動するには、 SFYTabControl::FocusLeft / SFYTabControl::FocusRight 関数を呼び出します。
フォーカスの移動先であるタブページのタイトルテキストがタブコントロールのタブ領域に表示されていない場合は、 自動的にタブ領域が左右にスクロールして表示されます。
注意 | |
---|---|
SFYTabControl::FocusLeft / SFYTabControl::FocusRight 関数は、 SFYTabControl::SetFocusLeftKey / SFYTabControl::SetFocusRightKey 関数で設定した左右のフォーカス移動キーを押下すると呼び出されます。 |
注意 | |
---|---|
選択されたタブページは、 フォーカス状態は "true"に設定され、 同じ姉妹タブページの中で最前面に配置されます。 タブコントロールの表示内容の整合性が崩れるので、 タブページに対して SFYResponder::ToFront / SFYResponder::SetStateFocus 関数を呼び出すことは禁止されています。 タブページの内容を表示する場合は、SFYTabControl::FocusPage 関数を使用してください。 |
タブページの削除
タブコントロールからタブページを削除する方法は以下の通りです。
タブコントロールからタブページを動的に削除するコードは以下の通りです。
// CASE 1. タブページを保持する場合 (親を空にする) page->SetParent(SFYResponder::EmptyInstance()); // CASE 2. タブページを他のタブコントロールで利用する場合(親を他のタブコントロールに設定する) SFYTabControlSmp othertab; page->SetParent(othertab); // CASE 3. タブページを破棄する場合 page->Terminate();
コントロール値の役割と制限について
最小値は、常に 0 です。
現在値は、選択されているタブページのインデックスを表します。 タブページが存在しない場合は -1 になります。 タブページの選択は、 SFYControl::SetCurrentValue 関数ではなく SFYTabControl::FocusPage 関数を使用します。
最大値は、タブコントロールのタブページ数を表します(※この機能は将来的に廃止される予定です)。 タブページ数の取得には、SFYTabControl::GetPageCount 関数を使用してください。
フィールド値は、タブの数を表します。 必ず 1 以上の値を設定する必要があります。
トップ値は、一番左側のタブに対応するタブページのインデックスを表します。
仕様上の制限
タブコントロールの子レスポンダに、 SFZTabPage クラスかそれを継承するクラス以外のレスポンダを登録した時の動作は未定義です。
SFYControl::SetMinimumValue, SFYControl::SetMaximumValue, SFYControl::SetCurrentValue で最小値、最大値、現在値を変更してはいけません。
SFYContainer | SFYResponder::SetRealBound | SFYResponder::SetVirtualBound | SFYTabControl::AdjustPages | 実領域 | 仮想領域 | 状態
コンストラクタ/デストラクタ |
---|
SFYTabControl( Void ) SFYTabControl クラスのコンストラクタです。
|
~SFYTabControl( Void ) SFYTabControl クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SInt32 |
FirstIndexOf(
Bool visible
, Bool active
, Bool enable
) 指定された条件に一致する最初のタブページのインデックスを取得します。
|
Void |
FocusLeft( Void ) フォーカスを左のタブページに移動します。
|
SFCError |
FocusPage(
SInt32 index
) 指定されたインデックスのタブページにフォーカスを移動します。
|
Void |
FocusRight( Void ) フォーカスを右のタブページに移動します。
|
SInt32 |
GetBottomValue( Void ) 現在最右端に表示されているタブに対応するタブページのインデックスを取得します。
|
SFXRectangleConstRef |
GetContentBound( Void ) タブコントロールに設定されるタブページの実領域を取得します。
|
SInt32 |
GetFieldValue( Void ) タブの数を取得します。
|
AVKType |
GetFocusLeftKey( Void ) 左のタブにフォーカスを移動させるキーを取得します。
|
AVKType |
GetFocusRightKey( Void ) 右のタブにフォーカスを移動させるキーを取得します。
|
SInt32 |
GetIndex(
SFYContainerSmpConstRef tabpage
) 指定されたタブページのインデックスを取得します。
|
SInt32 |
GetMaximumValue( Void ) [廃止予定] タブページの総数を取得します。
|
SFYContainerSmp |
GetPage(
SInt32 index
) 指定されたインデックスを持つタブページを取得します。
|
SInt32 |
GetPageCount( Void ) 検索条件に一致するタブページの数を取得します。
|
SInt32 |
GetPageCount(
Bool visible
, Bool active
, Bool enable
) 検索条件に一致するタブページの数を取得します。
|
SFXRGBColorConstRef |
GetSafePageBackgroundColor( Void ) セーフページの背景色を取得します。
|
SFYScrollBarControlSmpConstRef |
GetScrollBarControl( Void ) タブコントロールで使用するスクロールバーコントロールを取得します。
|
SInt16 |
GetScrollBarWidth( Void ) タブコントロールで使用するスクロールバーコントロールの幅を取得します。[単位:ピクセル]
|
Bool |
GetTabLoop( Void ) タブのフォーカス移動ループフラグの値を取得します。
|
SInt32 |
GetTopValue( Void ) 現在最左端に表示されているタブに対応するタブページのインデックスを取得します。
|
SInt32 |
LastIndexOf(
Bool visible
, Bool active
, Bool enable
) 指定された条件に一致する最後のタブページのインデックスを取得します。
|
SInt32 |
NextIndexOf(
SInt32 index
, Bool visible
, Bool active
, Bool enable
) 指定された条件に一致する次のタブページのインデックスを取得します。
|
SInt32 |
PrevIndexOf(
SInt32 index
, Bool visible
, Bool active
, Bool enable
) 指定された条件に一致する前のタブページのインデックスを取得します。
|
Void |
SetFieldValue(
SInt32 param
) タブの数を設定します。
|
Void |
SetFocusLeftKey(
AVKType param
) 左のタブにフォーカスを移動させるキーを設定します。
|
Void |
SetFocusRightKey(
AVKType param
) 右のタブにフォーカスを移動させるキーを設定します。
|
Void |
SetSafePageBackgroundColor(
SFXRGBColorConstRef param
) セーフページの背景色を設定します。
|
SFCError |
SetScrollBarControl(
SFYScrollBarControlSmpConstRef param
) タブコントロールで使用するスクロールバーを設定します。
|
Void |
SetScrollBarWidth(
SInt16 param
) タブコントロールで使用するスクロールバーコントロールの幅を設定します。[単位:ピクセル]
|
Void |
SetTabLoop(
Bool param
) タブのフォーカス移動ループフラグを設定します。
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
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 から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRectangle |
GetGlobalBound( Void )
(SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
|
UInt32 |
GetID( Void )
(SFYResponder から継承)
このレスポンダの ID を取得します。
|
SFXRectangle |
GetLocalBound( Void )
(SFYResponder から継承)
このレスポンダのローカル領域を取得します。
|
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 から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
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 |
SetBackgroundColor(
SFXRGBColorConstRef param
)
(SFYWidget から継承)
背景の色を設定します。
|
Void |
SetCurrentValue(
SInt32 param
)
(SFYControl から継承)
コントロールの現在値を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetMaximumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最大値を設定します。
|
Void |
SetMinimumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最小値を設定します。
|
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 |
AdjustPages( Void ) タブページの実領域と仮想領域を設定します。
|
SFYContainerSmpConstRef |
GetSafePage( Void ) セーフページを取得します。
|
Void |
SetContentBound(
SFXRectangleConstRef rectangle
) タブコントロールのコンテント領域を設定します。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
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 |
HandleRenderRequest(
SFXGraphicsPtr graphics
)
(SFYWidget から継承)
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFYTabControl クラスを表す定数です。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFYTabControl(Void);
このコンストラクタは、以下の初期化処理を行います。
表 249. イベントハンドラ
イベント | ハンドラの内容 |
---|---|
SFYTabControl::SetFocusLeftKey で設定された、左のタブページにフォーカスを移動させるキーの SFEVT_KEY イベント | SFYTabControl::FocusLeft 関数を呼び出します。 |
SFYTabControl::SetFocusRightKey で設定された、右のタブページにフォーカスを移動させるキーの SFEVT_KEY イベント | SFYTabControl::FocusRight 関数を呼び出します。 |
注意 | |
---|---|
SFYTabControl クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。 |
このコンストラクタの内部実装は以下の通りです。
/*protected */SFYTabControl::SFYTabControl(Void) static_throws { static SFXEventRange::AtomRecConst range[] = { #if TARGET_VERSION_GE(3, 0, 0) { SFEVT_KEY_PRESS, SFEVT_KEY_RELEASE, SFP16_BEGIN, SFP16_END}, #else { SFEVT_KEY_PRESS, SFEVT_KEY_HELD, SFP16_BEGIN, SFP16_END}, #endif { SFEVT_KEY, SFEVT_KEY, SFP16_BEGIN, SFP16_END}, { SFEVT_RESPONDER_OWNER, SFEVT_RESPONDER_OWNER, SFP16_OWNER_REGISTER, SFP16_OWNER_REGISTER}, { SFEVT_RESPONDER_OWNER, SFEVT_RESPONDER_OWNER, SFP16_OWNER_UNREGISTER, SFP16_OWNER_UNREGISTER}, { SFEVT_RESPONDER_OWNER, SFEVT_RESPONDER_OWNER, SFP16_OWNER_ARRANGE, SFP16_OWNER_ARRANGE}, { SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_FOCUS, SFP16_STATE_FOCUS}, { SFEVT_RESPONDER_VALUE, SFEVT_RESPONDER_VALUE, SFP16_VALUE_FIELD, SFP16_VALUE_FIELD}, { SFEVT_RESPONDER_VALUE, SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, SFP16_VALUE_CURRENT} }; SFYHandler::RuleRec rule[lengthof(range)]; if (static_try()) { SetType(CODE_TYPE); rule[0].spp = XANDLER_FUNCTION(OnShield); rule[0].reference = this; rule[1].spp = XANDLER_FUNCTION(OnKey); rule[1].reference = this; rule[2].spp = XANDLER_FUNCTION(OnChildInsert); rule[2].reference = this; rule[3].spp = XANDLER_FUNCTION(OnChildRemove); rule[3].reference = this; rule[4].spp = XANDLER_FUNCTION(OnChildArrange); rule[4].reference = this; rule[5].spp = XANDLER_FUNCTION(OnFocus); rule[5].reference = this; rule[6].spp = XANDLER_FUNCTION(OnField); rule[6].reference = this; rule[7].spp = XANDLER_FUNCTION(OnCurrentValue); rule[7].reference = this; static_throw(RegisterHandler(atomic_cast(range), rule, lengthof(range))); if (static_try()) { SFCError error; if ((_bar = SFZScrollBarControl::NewInstance(&error)) != null) { static_throw(_bar->SetParent(GetThis())); if (static_try()) { _barWidth = DEFAULT_BAR_WIDTH; _bar->SetOrientation(SFYScrollBarControl::VERTICAL); _bar->SetState(true, true, false, false); if ((_gatekeeper = SFZContainer::NewInstance(&error)) != null) { static_throw(_gatekeeper->SetParent(GetThis())); if (static_try()) { _gatekeeper->SetState(true, false, false, false); _key.left = AVK_LEFT; _key.right = AVK_RIGHT; SetMaximumValue(0); SetCurrentValue(-1); _field = DEFAULT_FIELD_VALUE; _top = -1; _bottom = -1; _loop = true; } } else { static_throw(error); } } } else { static_throw(error); } } } }// SFYTabControl::SFYTabControl // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFYTabControl, OnShield, invoker, event) { unused(invoker); return (event.GetP16() == _key.left || event.GetP16() == _key.right); }// XANDLER_IMPLEMENT_BOOLEVENT(SFYTabControl, OnShield) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFYTabControl, OnKey, invoker, event) { Bool result(false); unused(invoker); if (event.GetP16() == _key.left) { FocusLeft(); result = true; } else if (event.GetP16() == _key.right) { FocusRight(); result = true; } return result; }// XANDLER_IMPLEMENT_BOOLEVENT(SFYTabControl, OnKey) // /*private */XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildInsert, invoker, reason, responder) { static SFXEventRange::AtomRecConst range[] = { { SFEVT_RESPONDER_BOUND, SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, SFP16_BOUND_REAL }, { SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VISIBLE, SFP16_STATE_FOCUS} }; SFYHandler::RuleRec rule[lengthof(range)]; SFYContainerSmp page; unused(reason); unused(invoker); if (static_pointer_cast<SFYResponder>(_bar) != responder && static_pointer_cast<SFYResponder>(_gatekeeper) != responder) { page = static_pointer_cast<SFYContainer>(SFYResponderSmp(responder)); page->SetRealBound(GetContentBound()); static_throw(_child.InsertLast(page.Get())); if (static_try()) { SetMaximumValue(_child.GetSize()); if (static_try()) { rule[0].spp = XANDLER_FUNCTION(OnPageBound); rule[0].reference = this; rule[1].spp = XANDLER_FUNCTION(OnPageState); rule[1].reference = this; static_throw(page->RegisterHandler(atomic_cast(range), rule, lengthof(range))); AdjustPageVirtual(page); } } } return; }// XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildInsert) // /*private */XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildRemove, invoker, reason, responder) { static SFXEventRange::AtomRecConst range[] = { { SFEVT_RESPONDER_BOUND, SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, SFP16_BOUND_REAL }, { SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VISIBLE, SFP16_STATE_FOCUS} }; SFYHandler::RuleRec rule[lengthof(range)]; SFYContainerSmp page; SInt32 index; unused(invoker); unused(reason); if (static_pointer_cast<SFYResponder>(_bar) != responder && static_pointer_cast<SFYResponder>(_gatekeeper) != responder) { page = static_pointer_cast<SFYContainer>(SFYResponderSmp(responder)); rule[0].spp = XANDLER_FUNCTION(OnPageBound); rule[0].reference = this; rule[1].spp = XANDLER_FUNCTION(OnPageState); rule[1].reference = this; page->UnregisterHandler(atomic_cast(range), rule, lengthof(range)); index = _child.FirstIndexOf(page.Get()); if (index >= 0) { _child.Remove(index); SetMaximumValue(_child.GetSize()); if (index < GetTopValue()) { SetTopValue(GetTopValue() - 1); } if (index < _bottom) { --_bottom; } if (index < GetCurrentValue()) { SetCurrentValue(GetCurrentValue() - 1); } } } return; }// XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildRemove) // /*private */XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildArrange, invoker, reason, responder) { SFYContainerSmp page; SInt32 index; unused(invoker); unused(reason); if (responder->IsFront()) { if (static_pointer_cast<SFYResponder>(_bar) != responder && static_pointer_cast<SFYResponder>(_gatekeeper) != responder) { page = static_pointer_cast<SFYContainer>(SFYResponderSmp(responder)); index = _child.FirstIndexOf(page.Get()); if (index != -1) { Bind(_focus = page); } else { UnBind(); } } } Invalidate(); return; }// XANDLER_IMPLEMENT_VOIDOWNER(SFYTabControl, OnChildArrange) // /*private */XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnPageBound, invoker, reason, rectangle) { unused(reason); unused(rectangle); invoker->SetRealBound(GetContentBound()); return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnPageBound) // /*private */XANDLER_IMPLEMENT_VOIDSTATE(SFYTabControl, OnPageState, invoker, reason, state) { unused(invoker); unused(state); switch (reason) { case SFP16_STATE_VISIBLE: OnPageVisible(invoker); break; case SFP16_STATE_ACTIVE: OnPageActive(invoker); break; case SFP16_STATE_ENABLE: OnPageEnable(invoker); break; case SFP16_STATE_FOCUS: OnPageFocus(invoker); break; default: break; } return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnPageState) // /*private */XANDLER_IMPLEMENT_VOIDSTATE(SFYTabControl, OnFocus, invoker, reason, state) { SFYContainerSmp page; unused(invoker); unused(reason); if (state) { if (GetCurrentValue() != -1) { if ((page = GetPage(GetCurrentValue())) != null) { page->SetStateFocus(true); page->ToFront(); } } } return; }// XANDLER_IMPLEMENT_VOIDSTATE(SFYTabControl, OnFocus) // /*private */XANDLER_IMPLEMENT_VOIDVALUE(SFYTabControl, OnField, invoker, reason, value) { unused(invoker); unused(reason); if (value > 0) { if (GetTopValue() != -1 && _bottom != -1) { _bottom = CalculateBottom(GetTopValue()); if (_bottom < GetCurrentValue()) { _bottom = GetCurrentValue(); SetTopValue(CalculateTop(_bottom)); } if (_bottom == LastIndexOf(true, false, false)) { SetTopValue(CalculateTop(_bottom)); } } Invalidate(); } else { SetFieldValue(1); } return; }// XANDLER_IMPLEMENT_VOIDVALUE(SFYTabControl, OnField, invoker, reason, value) /*private */XANDLER_IMPLEMENT_VOIDVALUE(SFYTabControl, OnCurrentValue, invoker, reason, value) { SFYContainerSmp prev; SFYContainerSmp page; SInt32 top; unused(invoker); unused(reason); if (value >= 0 && value < _child.GetSize()) { if (GetTopValue() != -1 && _bottom != -1 && GetTopValue() <= _bottom) { if (value < GetTopValue()) { top = value; _bottom = CalculateBottom(top); SetTopValue(CalculateTop(_bottom)); } else if (_bottom < value) { _bottom = value; SetTopValue(CalculateTop(_bottom)); _bottom = CalculateBottom(GetTopValue()); } if ((page = GetPage(value)) != null) { if ((prev = GetPageFocus()) != null && prev != page) { prev->SetStateFocus(false); } page->ToFront(); page->SetStateFocus(true); } } } else { if ((prev = GetPageFocus()) != null) { prev->SetStateFocus(false); } _gatekeeper->ToFront(); UnBind(); } Invalidate(); return; }// XANDLER_IMPLEMENT_VOIDVALUE(SFYTabControl, OnCurrentValue, invoker, reason, value) XANDLER_IMPLEMENT_VOIDSTATE(SFYTabControl, OnBindValid, invoker, reason, state) { unused(invoker); unused(reason); if (!state) { UnBind(); } return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnBindValid) XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnBindBound, invoker, reason, bound) { unused(invoker); unused(reason); unused(bound); Listen(); return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFYTabControl, OnBindBound)
SFYResponder::SetType | SFYTabControl::CodeEnum | SFYResponder::SetParent | SFYResponder::SetState | SFZScrollBarControl::NewInstance | SFYTabControl::GetScrollBarControl | SFYScrollBarControl::SetOrientation | SFYScrollBarControl::SetOrientation | SFYTabControl::SetScrollBarWidth | SFYScrollBarControl::OrientationEnum | SFYControl::SetMaximumValue | SFYControl::SetCurrentValue | SFYTabControl::SetFieldValue | SFYTabControl::GetTabLoop | SFYTabControl::SetFocusLeftKey | SFYTabControl::SetFocusRightKey | SFZScrollBarControl | SFXEvent | SFXRGBColor | タイプ | 状態 | イベント | キーイベント[SFEVT_KEY]
[ protected, virtual ] virtual ~SFYTabControl(Void);
このデストラクタは、何も行いません。
このデストラクタの内部実装は以下の通りです。
/*protected virtual */SFYTabControl::~SFYTabControl(Void) { }// SFYTabControl::~SFYTabControl //
[ protected, const ] Void AdjustPages(Void);
この関数は、 現在タブコントロールに挿入されているすべてのタブページの実領域と仮想領域を以下のように設定します。
タブページの実領域をタブコントロールのコンテント領域に設定します。
タブページの仮想領域をタブコントロールのコンテント領域とタブページの子レスポンダを含む最小の矩形領域に設定します。 このとき、仮想領域の始点は (0, 0) に設定します(実領域の始点と一致します)。
タブコントロールのコンテント領域 | |
---|---|
タブコントロールのコンテント領域とは、 タブコントロールの領域からヒント領域、タブ領域、ボーダー領域、スクロールバー領域を除いた矩形領域のことです。 ページの内容が表示される領域なので、コンテント領域と呼びます。 タブコントロールの具象クラスの実装では、 コンテント領域は SFYTabControl::SetContentBound 関数を使用して設定しますが、 SFYTabControl::SetContentBound 関数内では現在のコンテント領域と引数に指定された新しいコンテント領域が異なる場合は SFYTabControl::AdjustPages 関数を呼び出して各ページの実領域と仮想領域を新しいコンテント領域に合わせて再設定します。 |
使用方法 | |
---|---|
タブコントロールの具象クラスを実装する場合: タブコントロールのコンテント領域が変化した際には、必ずこの関数を呼び出します。 この処理により、タブページの実領域をタブコントロールのコンテント領域に一致させます(同時にタブページの仮想領域も自動的に設定されます)。 以下の使用例のコードにあるように、 SFYTabControl::AdjustPages 関数は、 タブコントロールのコンテント領域を設定する SFYTabControl::SetContentBound 関数内で呼び出されます。 タブコントロールの具象クラスを利用する場合: タブページの子レスポンダをコンテント領域外の設定した際には、必ずこの関数を呼び出します。 この呼び出しにより、"仮想領域>実領域" となるタブページの仮想領域が自動的に計算されて設定されます。 |
以下は、ヒント領域の高さの変更に伴いタブコントロールのコンテント領域を変更するときに、 SFYTabControl::SetContentBound 関数の中から SFYTabControl::AdjustPages 関数を呼び出して タブコントロールに挿入されているタブページの実領域と仮想領域を調整するコードです。
/*public */Void SFZTabControl::SetHintHeight(SInt16 param) { if (param != _hintHeight) { _hintHeight = param; Invalidate(); Relocate(); } return; }// SFZTabControl::SetHintHeight // /*private */Void SFZTabControl::Relocate() { SFXRectangle lx; SFXRectangle content; SFYScrollBarControlSmp bar; lx.Set(GetLocalBound()); _rcHint.Set(SFXGrid::ZeroInstance(), SFXSize(lx.GetWidth(), _hintHeight)); _rcTabs.Set(_rcHint.GetLeftBottom(), SFXSize(lx.GetWidth(), _tabHeight)); _rcBody.Set(lx).SetTop(_rcTabs.GetBottom()); content.Set(_rcBody); if (_border) { content.Deflate(TAB_BORDER_WIDTH, 0, TAB_BORDER_WIDTH, TAB_BORDER_WIDTH); } if ((bar = GetScrollBarControl()) != null) { if (bar->GetStateVisible()) { content.SubWidth(GetScrollBarWidth()); bar->SetRealBound(SFXRectangle(content.GetRight(), content.GetY(), GetScrollBarWidth(), content.GetHeight())); } } SetContentBound(content); return; }// SFZTabControl::Relocate // /*protected */Void SFYTabControl::SetContentBound(SFXRectangleConstRef param) { if (!param.Equals(_rcContent)) { _rcContent.Set(param); AdjustPages(); } return; }// SFYTabControl::SetContentBound //
この関数の内部実装は以下の通りです。
/*public */Void SFYTabControl::AdjustPages(Void) const { SFYContainerSmp page; SInt32 count; if ((count = _child.GetSize()) > 0) { for (SInt32 i = 0; i < count; ++i) { if ((page = GetPage(i)) != null) { page->SetRealBound(GetContentBound()); AdjustPageVirtual(page); } } } _gatekeeper->SetRealBound(GetContentBound()); AdjustPageVirtual(_gatekeeper); return; }// SFYTabControl::AdjustPages // /*private */Void SFYTabControl::AdjustPageVirtual(SFYContainerSmp page) const { SFYResponderSmp child; SInt32 count; SInt16 w; SInt16 h; if (page != null) { w = page->GetRealBound().GetWidth(); h = page->GetRealBound().GetHeight(); count = page->GetChildCount(); for (SInt32 i = 0; i < count; ++i) { if ((child = page->GetChildBackward(i, false, false, false, false)) != null) { SFXRectangle rect(child->GetRealBound()); SInt16 v; w = (w < (v = rect.GetX() + rect.GetWidth())) ? v : w; h = (h < (v = rect.GetY() + rect.GetHeight())) ? v : h; } } page->SetVirtualBound(SFXRectangle(0, 0, w, h)); } return; }// SFYTabControl::AdjustPageVirtual //
[ public, const ] SInt32 FirstIndexOf( Bool visible // 可視状態 Bool active // 活性状態 Bool enable // 操作可能状態 );
可視状態のタブページを検索する場合は、この引数に true を指定します。
活性状態のタブページを検索する場合は、この引数と visible 引数に true を指定します。
操作可能状態のタブページを検索する場合は、この引数と visible 引数と active 引数に true を指定します。
指定された条件に一致する最初のタブページのインデックス。
この関数は、 指定された条件に一致する最初のタブページのインデックスを取得します。
条件に一致するタブページが存在しない場合、-1 を返します。
visible / active / enable 引数に true または false を指定することにより、 検索対象のタブページを「可視」、「活性」、「操作可能」の状態で制限できます。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
以下の 4 通りの指定方法があります。
// SFZTabControl クラスは SFYTabControl を継承する具象クラス SFZTabControlSmp tab; SFZTabControlSmp a, b, c, d; SInt32 index; // タブページの状態を設定する a->SetState(false, false, false, false); b->SetState(true, false, false, false); c->SetState(true, true, false, false); d->SetState(true, true, true, false); // タブページをタブコントロールに設定(挿入)する a->SetParent(tab); // インデックス 0 のタブページ b->SetParent(tab); // インデックス 1 のタブページ c->SetParent(tab); // インデックス 2 のタブページ d->SetParent(tab); // インデックス 3 のタブページ // すべてのタブページ中で最初のインデックスを取得する index = tab->FirstIndexOf(false, false, false); // index = 0 // 可視状態のタブページ中で最初のインデックスを取得する index = tab->FirstIndexOf(true, false, false); // index = 1 // 活性状態のタブページ中で最初のインデックスを取得する index = tab->FirstIndexOf(true, true, false); // index = 2 // 操作可能状態のタブページ中で最初のインデックスを取得する index = tab->FirstIndexOf(true, true, true); // index = 3
[ public ] Void FocusLeft(Void);
この関数は、フォーカスを左のタブページに移動します。
現在フォーカスを持つタブページが最初のタブページの場合、 SFYTabControl::GetTabLoop() の値より動作が異なります。
値が true なら、フォーカスは最後のタブページに移動します。
値が false なら、フォーカスは最初のページのままです。
注意 | |
---|---|
フォーカスは、操作可能状態にあるタブページにしか移動しません。 |
注意 | |
---|---|
この関数は、 SFYTabControl::SetFocusLeftKey 関数で設定した左フォーカス移動キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。 |
この関数は、指定されたインデックスのタブページにフォーカスを移動します。
注意 | |
---|---|
タブコントロールのフォーカス状態が ON である時に呼び出す必要があります。 |
[ public ] Void FocusRight(Void);
この関数は、フォーカスを右のタブページに移動します。
現在フォーカスを持つページが最後のページの場合、 SFYTabControl::GetTabLoop() の値により動作が異なります。
値が true なら、フォーカスは最初のタブページに移動します。
値が false なら、フォーカスは最後のページのままです。
注意 | |
---|---|
フォーカスは、操作可能状態にあるタブページにしか移動しません。 |
注意 | |
---|---|
この関数は、 SFYTabControl::SetFocusRightKey 関数で設定した右フォーカス移動キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。 |
[ public, const ] SInt32 GetBottomValue(Void);
現在最右端に表示されているタブに対応するタブページのインデックス。
この関数は、現在最右端に表示されているタブに対応するタブページのインデックスを取得します。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
[ public, const ] SFXRectangleConstRef GetContentBound(Void);
タブコントロールに設定されるタブページの実領域。
[ public ] SInt32 GetFieldValue(Void);
タブの数。
この関数は、 タブの数を取得します。
[ public, const ] AVKType GetFocusLeftKey(Void);
左のタブにフォーカスを移動させるキー(AVKType)。
この関数は、左のタブにフォーカスを移動させるキーを取得します。
[ public, const ] AVKType GetFocusRightKey(Void);
右のタブにフォーカスを移動させるキー(AVKType)。
この関数は、右のタブにフォーカスを移動させるキーを取得します。
[ public, const ] SInt32 GetIndex( SFYContainerSmpConstRef tabpage // タブページ );
指定されたタブページのインデックス。
この関数は、指定されたタブページのインデックスを取得します。
指定されたタブページが存在しない場合は -1 を返します。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
[ public, const ] SInt32 GetMaximumValue(Void);
この関数は、タブページの総数を取得します。
廃止予定 | |
---|---|
この API は、SophiaFramework UNIVERSE 6.0 で廃止される予定です。 この関数の代わりに SFYTabControl::GetPageCount 関数を使用してください。 |
[ public, const ] SFYContainerSmp GetPage( SInt32 index // インデックス );
指定されたインデックスを持つタブページ。
この関数は、指定されたインデックスを持つタブページを取得します。
指定されたインデックスを持つタブページが存在しない場合は、 SFYContainerSmp::EmptyInstance() を返します。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
[ public, const ] SInt32 GetPageCount(Void);
[ public, const ] SInt32 GetPageCount( Bool visible // 可視状態 Bool active // 活性化状態 Bool enable // 操作可能状態 );
可視状態のタブページを検索する場合は、この引数に true を指定します。
活性状態のタブページを検索する場合は、この引数と visible 引数に true を指定します。
操作可能状態のタブページを検索する場合は、この引数と visible 引数と active 引数に true を指定します。
*** 戻り値の説明 ***
この関数は、指定された条件に一致するタブページの数を取得します。
検索に含めるタブページを可視、活性、操作可能状態で制限できます。 条件を指定しない場合はすべてのタブページ数を取得します。
以下の 4 通りの指定方法があります。
// SFZTabControl クラスは SFYTabControl を継承する具象クラス SFZTabControlSmp tab; SFZTabControlSmp a, b, c, d; SInt32 index; // タブページの状態を設定する a->SetState(false, false, false, false); b->SetState(true, false, false, false); c->SetState(true, true, false, false); d->SetState(true, true, true, false); // タブページをタブコントロールに設定(挿入)する a->SetParent(tab); // インデックス 0 のタブページ b->SetParent(tab); // インデックス 1 のタブページ c->SetParent(tab); // インデックス 2 のタブページ d->SetParent(tab); // インデックス 3 のタブページ // タブページの総数を取得する num = tab->GetPageCount(); // num = 4 // タブページの総数を取得する(引数を指定しない方が高速) num = tab->GetPageCount(false, false, false); // num = 4 // 可視状態のタブページの総数を取得する num = tab->GetPageCount(true, false, false); // num = 3 // 活性状態のタブページの総数を取得する num = tab->GetPageCount(true, true, false); // num = 2 // 操作可能状態のタブページの総数を取得する num = tab->GetPageCount(true, true, true); // num = 1
[ protected, const ] SFYContainerSmpConstRef GetSafePage(Void);
セーフページ。
この関数は、セーフページを取得します。
注意 | |
---|---|
セーフページとは、 タブページが存在しない場合や現在値が不正な場合に表示されるタブページのことです。 |
[ public, const ] SFXRGBColorConstRef GetSafePageBackgroundColor(Void);
セーフページの背景色。
この関数は、セーフページの背景色を取得します。
注意 | |
---|---|
セーフページとは、 タブページが存在しない場合や現在値が不正な場合に表示されるタブページのことです。 |
[ public, const ] SFYScrollBarControlSmpConstRef GetScrollBarControl(Void);
タブコントロールで使用するスクロールバーコントロール。
この関数は、タブコントロールで使用するスクロールバーコントロールを取得します。
[ public, const ] SInt16 GetScrollBarWidth(Void);
タブコントロールで使用するスクロールバーコントロールの幅。[単位:ピクセル]
この関数は、タブコントロールで使用するスクロールバーコントロールの幅を取得します。[単位:ピクセル]
[ public, const ] Bool GetTabLoop(Void);
この関数は、タブのフォーカス移動ループフラグの値を取得します。
タブのフォーカス移動ループフラグについて | |
---|---|
タブのフォーカス移動ループフラグの値に応じて以下のように振る舞います。
※1. フォーカス移動可能なタブとは、対応するタブページが操作可能状態であることを表します。 ※2. 最小インデックスのタブは最小のインデックス値を持つタブページに対応するタブ、 最大インデックスのタブは最大のインデックス値を持つタブページに対応するタブをそれぞれ表します。 |
[ public, const ] SInt32 GetTopValue(Void);
現在最左端に表示されているタブに対応するタブページのインデックス。
この関数は、現在最左端に表示されているタブに対応するタブページのインデックスを取得します。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
[ public, const ] SInt32 LastIndexOf( Bool visible // 可視状態 Bool active // 活性状態 Bool enable // 操作可能状態 );
指定された条件に一致する最後のタブページのインデックス。
この関数は、 指定された条件に一致する最後のタブページのインデックスを取得します。
条件に一致するタブページが存在しない場合、-1 を返します。
visible / active / enable 引数に true または false を指定することにより、 検索対象のタブページを「可視」、「活性」、「操作可能」の状態で制限できます。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
以下の 4 通りの指定方法があります。
// SFZTabControl クラスは SFYTabControl を継承する具象クラス SFZTabControlSmp tab; SFZTabControlSmp a, b, c, d; SInt32 index; // タブページの状態を設定する a->SetState(false, false, false, false); b->SetState(true, false, false, false); c->SetState(true, true, false, false); d->SetState(true, true, true, false); // タブページをタブコントロールに設定(挿入)する a->SetParent(tab); // インデックス 0 のタブページ b->SetParent(tab); // インデックス 1 のタブページ c->SetParent(tab); // インデックス 2 のタブページ d->SetParent(tab); // インデックス 3 のタブページ // すべてのタブページ中で最後のインデックスを取得する index = tab->LastIndexOf(false, false, false); // index = 3 // 可視状態のタブページ中で最後のインデックスを取得する index = tab->LastIndexOf(true, false, false); // index = 3 // 活性状態のタブページ中で最後のインデックスを取得する index = tab->LastIndexOf(true, true, false); // index = 3 // 操作可能状態のタブページ中で最後のインデックスを取得する index = tab->LastIndexOf(true, true, true); // index = 3
[ public, const ] SInt32 NextIndexOf( SInt32 index // 検索の起点となるインデックス Bool visible // 可視状態 Bool active // 活性化状態 Bool enable // 操作可能状態 );
検索の起点となるインデックスを指定します。 このタブページ以降(このタブページは含まれない)が検索対象となります。
可視状態のタブページを検索する場合は、この引数に true を指定します。
活性状態のタブページを検索する場合は、この引数と visible 引数に true を指定します。
操作可能状態のタブページを検索する場合は、この引数と visible 引数と active 引数に true を指定します。
指定された条件に一致する次のタブページのインデックス。
この関数は、 指定された条件に一致する次のタブページのインデックスを取得します。
条件に一致するタブページが存在しない場合、-1 を返します。
index 引数には、検索を開始する最初のタブページを指定します。 このタブページ以降(このタブページは含まれない)が検索対象となります。
visible / active / enable 引数に true または false を指定することにより、 検索対象のタブページを「可視」、「活性」、「操作可能」の状態で制限できます。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
以下の 4 通りの指定方法があります。
// SFZTabControl クラスは SFYTabControl を継承する具象クラス SFZTabControlSmp tab; SFZTabControlSmp a, b, c, d; SInt32 index; // タブページの状態を設定する a->SetState(true, true, true, false); b->SetState(false, false, false, false); c->SetState(true, false, false, false); d->SetState(true, true, false, false); e->SetState(true, true, true, false); // タブページをタブコントロールに設定(挿入)する a->SetParent(tab); // インデックス 0 のタブページ b->SetParent(tab); // インデックス 1 のタブページ c->SetParent(tab); // インデックス 2 のタブページ d->SetParent(tab); // インデックス 3 のタブページ e->SetParent(tab); // インデックス 4 のタブページ // インデックス 0 のタブページの次にあるタブページのインデックスを取得する index = tab->NextIndexOf(0, false, false, false); // index = 1 // インデックス 0 のタブページの次にある可視状態のタブページのインデックスを取得する index = tab->NextIndexOf(0, true, false, false); // index = 2 // インデックス 0 のタブページの次にある活性状態のタブページのインデックスを取得する index = tab->NextIndexOf(0, true, true, false); // index = 3 // インデックス 0 のタブページの次にある操作可能状態のタブページのインデックスを取得する index = tab->NextIndexOf(0, true, true, true); // index = 4
[ public, const ] SInt32 PrevIndexOf( SInt32 index // 検索の起点となるインデックス Bool visible // 可視状態 Bool active // 活性化状態 Bool enable // 操作可能状態 );
検索の起点となるインデックスを指定します。 このタブページ以前(このタブページは含まれない)が検索対象となります。
可視状態のタブページを検索する場合は、この引数に true を指定します。
活性状態のタブページを検索する場合は、この引数と visible 引数に true を指定します。
操作可能状態のタブページを検索する場合は、この引数と visible 引数と active 引数に true を指定します。
指定された条件に一致する次のタブページのインデックス。
この関数は、 指定された条件に一致する前のタブページのインデックスを取得します。
条件に一致するタブページが存在しない場合、-1 を返します。
index 引数には、検索を開始する最初のタブページを指定します。 このタブページ以前(このタブページは含まれない)が検索対象となります。
visible / active / enable 引数に true または false を指定することにより、 検索対象のタブページを「可視」、「活性」、「操作可能」の状態で制限できます。
注意 | |
---|---|
タブページのインデックスは、タブページがタブコントロールに設定(挿入)された順序を表し、 0 から始まります。 |
以下の 4 通りの指定方法があります。
// SFZTabControl クラスは SFYTabControl を継承する具象クラス SFZTabControlSmp tab; SFZTabControlSmp a, b, c, d; SInt32 index; // タブページの状態を設定する a->SetState(true, true, true, false); b->SetState(false, false, false, false); c->SetState(true, false, false, false); d->SetState(true, true, false, false); e->SetState(true, true, true, false); // タブページをタブコントロールに設定(挿入)する a->SetParent(tab); // インデックス 0 のタブページ b->SetParent(tab); // インデックス 1 のタブページ c->SetParent(tab); // インデックス 2 のタブページ d->SetParent(tab); // インデックス 3 のタブページ e->SetParent(tab); // インデックス 4 のタブページ // インデックス 3 のタブページの前にあるタブページのインデックスを取得する index = tab->PrevIndexOf(3, false, false, false); // index = 2 // インデックス 3 のタブページの前にある可視状態のタブページのインデックスを取得する index = tab->PrevIndexOf(3, true, false, false); // index = 2 // インデックス 3 のタブページの前にある活性状態ページのインデックスを取得する index = tab->PrevIndexOf(3, true, true, false); // index = 0 // インデックス 3 のタブページの前にある操作可能状態ページのインデックスを取得する index = tab->PrevIndexOf(3, true, true, true); // index = 0
[ protected ] Void SetContentBound( SFXRectangleConstRef rectangle // 設定する領域 );
この関数は、タブコントロールのコンテント領域を設定します。
タブコントロールのコンテント領域 | |
---|---|
タブコントロールのコンテント領域とは、 タブコントロールの領域からヒント領域、タブ領域、ボーダー領域、スクロールバー領域を除いた矩形領域のことです。 タブページの内容が表示される領域であるので、コンテント領域と呼びます。 この関数は、 内部で SFYTabControl::AdjustPages 関数を呼び出してタブコントロールに挿入されている各タブページの実領域と仮想領域を新しいコンテント領域に合わせて再設定します。 |
この関数は、 タブの数を設定します。
デフォルト値: 2
注意 | |
---|---|
この関数で設定した数のタブが、 タブコントロールのタブ領域に表示されます。 |
この関数は、 左のタブにフォーカスを移動させるキーを設定します。
デフォルト値: AVK_LEFT
注意 | |
---|---|
この関数で設定した左フォーカス移動キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信すると、 SFYTabControl::FocusLeft 関数が呼び出されます。 |
この関数は、 右のタブにフォーカスを移動させるキーを設定します。
デフォルト値: AVK_RIGHT
注意 | |
---|---|
この関数で設定した右フォーカス移動キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信すると、 SFYTabControl::FocusRight 関数が呼び出されます。 |
[ public ] Void SetSafePageBackgroundColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、 セーフページの背景色を設定します。
デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)
注意 | |
---|---|
セーフページとは、 タブページが存在しない場合や現在値が不正な場合に表示されるタブページのことです。 |
[ public ] SFCError SetScrollBarControl( SFYScrollBarControlSmpConstRef param // 設定するスクロールバーコントロール );
以下は、標準のスクロールバーコントロールからカスタムスクロールバーコントロールに変更するためのコードです。
// スクロールバーコントロールのインスタンスを作成する USRScrollBar bar = USRScrollBar::NewInstance(); // 可視/活性状態にする bar->SetState(true, true, false, false); // カスタムスクロールバーコントロールを設定する _tab->SetScrollBarControl(bar);
この関数は、 タブコントロールで使用するスクロールバーコントロールの幅を取得します。[単位:ピクセル]
デフォルト値: 5 ピクセル
注意 | |
---|---|
スクロールバーコントロールの幅を変更することにより、タブコントロールのコンテント領域が変化します。 このため、タブコントロールに挿入されているタブページの実領域と仮想領域の変更を行う必要がありますが、 この処理は内部で呼び出される SFYTabControl::SetContentBound 関数により自動的に行われますので、 開発者は考慮する必要はありません。 |
この関数は、タブのフォーカス移動ループフラグを設定します。
デフォルト値: true
タブのフォーカス移動ループフラグについて | |
---|---|
タブのフォーカス移動ループフラグの値に応じて以下のように振る舞います。
※1. フォーカス移動可能なタブとは、対応するタブページが操作可能状態であることを表します。 ※2. 最小インデックスのタブは最小のインデックス値を持つタブページに対応するタブ、 最大インデックスのタブは最大のインデックス値を持つタブページに対応するタブをそれぞれ表します。 |
enum CodeEnum { CODE_TYPE = four_char_code('.', 't', 'a', 'b') }; SFMTYPEDEFTYPE(CodeEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |