SophiaFramework UNIVERSE 5.3 |
#include <SFZListBoxControl.h.hpp>
class SFZListBoxControl : public SFYBoxControl;
SFMTYPEDEFRESPONDER(SFZListBoxControl)
■ 仕様と使い方
SFZListBoxControl は項目のリストの中からひとつ選択させるためのコントロール用クラスです。
選択された項目はハイライト表示されます。
注意 | |
---|---|
項目が無効状態であれば、選択できません。 |
□リストボックスコントロールの使い方
項目を追加するには、SFZListBoxControl::Insert / SFZListBoxControl::InsertFirst / SFZListBoxControl::InsertLast 関数を使います。 項目を削除するには、SFZListBoxControl::Remove / SFZListBoxControl::RemoveFirst / SFZListBoxControl::RemoveLast 関数を使います。 SFZListBoxControl::Clear 関数を呼び出すと、すべての項目が削除されます。
SFZListBoxControl::SetUpKey 関数で設定された UP キー、または SFZListBoxControl::SetDownKey 関数で設定された DOWN キーを使用して選択項目を項目単位で移動できます。
選択項目が移動した場合は、 値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を送信します。
注意 | |
---|---|
この値イベントは、内部的に呼び出される SFYControl::SetCurrentValue 関数内で発生します。 |
選択項目は、 SFZListBoxControl::SetSelForeColor 関数で設定された文字列、 SFZListBoxControl::SetSelBackColor 関数で設定された背景色で描画されます。
非選択項目は、 SFZListBoxControl::SetItemForeColor 関数で設定された文字列の色、 SFZListBoxControl::SetItemBackColor 関数で設定された背景色で描画されます。
SFZListBoxControl::SetItemEnable 関数により設定される有効フラグが "false" である項目は、 SFZListBoxControl::SetItemForeColor 関数および SFZListBoxControl::SetSelForeColor 関数で設定された色、 SFZListBoxControl::SetItemBackColor 関数で設定された色を基にして目立たない色が自動的に計算されて描画されます。 選択項目の背景だけは、常に SFZListBoxControl::SetSelBackColor 関数で設定された色で描画されます。 また、このコントロールの状態が非活性状態であるときは、 すべての項目が 有効フラグが "false" であるときと同じ処理で描画されます。
SFZListBoxControl::SetGridLineEnable 関数と SFZListBoxControl::SetGridLineColor 関数を使用してグリッド線を表示することも可能です。 項目内のマージンは SFZListBoxControl::SetListMargin 関数で設定します。
デフォルトの実装では、 リストボックスコントロール[SFZListBoxControl]は 下記の結果イベント[SFEVT_RESPONDER_RESULT]を受信します。
開発者は、これらの結果イベントを受信するハンドラを登録できます。
操作キーは、SFYBoxControl::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーが操作キーとして割り当てられています。
アクセスキーは、SFZListBoxControl::SetItemAccessKey 関数を使用して設定します。
ESCAPE キーは、SFZListBoxControl::SetEscapeKey 関数を使用して設定します。 デフォルトでは、クリアキーが ESCAPE キーとして割り当てられています。
注意 | |
---|---|
選択項目が SFZListBoxControl::SetItemEnable 関数により無効化("false" が設定)されているとき、 結果イベントは発生しません。 |
注意 | |
---|---|
この結果イベントは SFZListBoxControl::HandleEscapeKey 関数内で発生します。 |
参照: 結果イベント[SFEVT_RESPONDER_RESULT] | SFYBoxControl::HandleOperateKey | SFZListBoxControl::HandleAccessKey | SFZListBoxControl::HandleEscapeKey
仕様上の制限 | |
---|---|
最小値は常に 0 です。 現在値は選択されている項目のインデックスを表します。 最大値は項目数を表します。 (※この機能は将来的に廃止予定です。 リストボックスコントロールの項目数を取得するは、 SFZListBoxControl::GetItemCount 関数を呼び出してください。) SFYControl::SetMinimumValue 関数または SFYControl::SetMaximumValue 関数を使用して最小値または最大値を変更してはいけません。 |
フレックスリストボックスコントロール | |
---|---|
リストボックスコントロールを高機能化したフレックスリストボックスコントロールが利用可能です。 このコントロールについての詳細仕様は、SFZFlexListBoxControl を参照してください。 |
□リストボックスを生成するためのコード
Void UserClass::Main(Void) { SFZWindowSmp window; SFZListBoxControlSmp list; // ウインドウを生成する window = SFZWindow::NewInstance(); window->SetParent(GetThis()); window->SetBackgroundColor(SFXRGBColor(0xDD, 0xFF, 0xDD, 0x00)); window->SetRealBound(GetLocalBound()); window->SetState(true, true, true, true); // [必須] リストボックスを生成する list = SFZListBoxControl::NewInstance(&error); // [必須] 親をウィンドウに設定する list->SetParent(window); // [必須] 20個の項目を追加する for (SInt32 i = 0; i < 20 ; ++i) { list->InsertLast(SFXWideString::Format("List Item %d ", i)); } // [任意] グリッド線を有効にする list->SetGridLineEnable(true); // [任意] グリッド線の色を黒に設定する list->SetGridLineColor(SFXRGBColor(0x00, 0x00, 0x00, 0x00)); // [任意] 連続スクロールするように設定する list->SetScrollRepeat(true); // [任意] スクロールバーの幅を設定する list->SetScrollBarWidth(7); // [必須] 引数で与えた領域内で最適な領域を計算して実領域を設定する list->SetRealBound(list->GetSuitableBound(_window->GetLocalBound().Deflate(30, 30)).SetOrigin(30, 30)); // [必須] 状態を (true, true, true, true) に設定する list->SetState(true, true, true, true); return; }
実行結果:
リストボックスコントロール[SFZListBoxControl] | SFZFlexListBoxControl | SFYBoxControl | SFZComboBoxControl | SFXEvent | 状態 | 値イベント [SFEVT_RESPONDER_VALUE]
コンストラクタ/デストラクタ |
---|
SFZListBoxControl( Void ) SFZListBoxControl クラスのコンストラクタです。
|
~SFZListBoxControl( Void ) SFZListBoxControl クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
Append(
SFXPathConstRef path
, UInt16 id
) [非推奨 (廃止予定 API)] 項目を追加します。
|
SFCError |
Append(
SFXPathConstRef path
, UInt16 id
, AVKType key
, WChar keyIcon = 0
) [非推奨 (廃止予定 API)] 項目を追加します。
|
SFCError |
Append(
SFXWideStringConstRef text
) [非推奨 (廃止予定 API)] 項目を追加します。
|
SFCError |
Append(
SFXWideStringConstRef text
, AVKType key
, WChar keyIcon = 0
) [非推奨 (廃止予定 API)] 項目を追加します。
|
Void |
Clear( Void ) すべての項目を削除します。
|
SFXRGBColorConstRef |
GetDefaultItemBackColor( Void ) 非選択項目のデフォルトの背景色を取得します。
|
SFXRGBColorConstRef |
GetDefaultItemForeColor( Void ) 非選択項目のデフォルトの前景色を取得します。
|
AVKType |
GetDownKey( Void ) DOWN キーを取得します。
|
AVKType |
GetEscapeKey( Void ) ESCAPE キーを取得します。
|
SInt32 |
GetFieldValue( Void ) 同時に表示できる項目の数を取得します。
|
AEEFont |
GetFont( Void ) フォントを取得します。
|
SFXRGBColorConstRef |
GetGridLineColor( Void ) グリッド線の色を取得します。
|
Bool |
GetGridLineEnable( Void ) グリッド線有効フラグの値を取得します。
|
AVKType |
GetItemAccessKey(
SInt32 index
) 指定された項目のアクセスキーを取得します。
|
SFXRGBColorConstRef |
GetItemBackColor(
SInt32 index
) 指定された項目の非選択時の背景色を取得します。
|
SInt32 |
GetItemCount( Void ) 項目数を取得します。
|
Bool |
GetItemEnable(
SInt32 index
) 指定された項目の有効フラグの値を取得します。
|
SFXRGBColorConstRef |
GetItemForeColor(
SInt32 index
) 指定された項目の非選択時の前景色を取得します。
|
SInt16 |
GetItemHeight( Void ) 項目の高さを取得します。[単位:ピクセル]
|
WChar |
GetItemKeyIcon(
SInt32 index
) 指定された項目の絵文字を取得します。
|
SFXWideStringConstRef |
GetItemText(
SInt32 index
) 指定された項目の文字列を取得します。
|
SFXMarginConstRef |
GetListMargin( Void ) リスト項目のマージンを取得します。
|
SInt32 |
GetMaximumValue( Void ) 項目数を取得します。
|
SFYScrollBarControlSmpConstRef |
GetScrollBarControl( Void ) スクロールバーコントロールを取得します。
|
SInt16 |
GetScrollBarWidth( Void ) スクロールバーの横幅を取得します。
|
DirectionEnum |
GetScrollDirection( Void ) スクロールの移動方向を取得します。
|
UInt32 |
GetScrollInterval( Void ) スクロールインターバルを取得します。[単位:ミリ秒]
|
Bool |
GetScrollRepeat( Void ) 連続スクロールフラグの値を取得します。
|
SInt16 |
GetScrollStep( Void ) スクロール移動量を取得します。[単位:ピクセル]
|
SFXRGBColorConstRef |
GetSelBackColor( Void ) 選択項目の背景色を取得します。
|
SFXRGBColorConstRef |
GetSelForeColor( Void ) 選択項目の前景色を取得します。
|
SInt32 |
GetTopValue( Void ) 現在表示されている項目内で最も上の項目のインデックスを取得します。
|
AVKType |
GetUpKey( Void ) UP キーを取得します。
|
UInt32 |
GetWaitInterval( Void ) スクロール開始までの待ち時間を設定します。[単位:ミリ秒]
|
SFCError |
Insert(
SInt32 index
, SFXPathConstRef path
, UInt16 id
) 項目を挿入します。
|
SFCError |
Insert(
SInt32 index
, SFXPathConstRef path
, UInt16 id
, AVKType key
, WChar keyIcon
) 項目を挿入します。
|
SFCError |
Insert(
SInt32 index
, SFXWideStringConstRef text
) 項目を挿入します。
|
SFCError |
Insert(
SInt32 index
, SFXWideStringConstRef text
, AVKType key
, WChar keyIcon
) 項目を挿入します。
|
SFCError |
InsertFirst(
SFXPathConstRef path
, UInt16 id
) 項目を最初に挿入します。
|
SFCError |
InsertFirst(
SFXPathConstRef path
, UInt16 id
, AVKType key
, WChar keyIcon
) 項目を最初に挿入します。
|
SFCError |
InsertFirst(
SFXWideStringConstRef text
) 項目を最初に挿入します。
|
SFCError |
InsertFirst(
SFXWideStringConstRef text
, AVKType key
, WChar keyIcon
) 項目を最初に挿入します。
|
SFCError |
InsertLast(
SFXPathConstRef path
, UInt16 id
) 項目を最後に挿入します。
|
SFCError |
InsertLast(
SFXPathConstRef path
, UInt16 id
, AVKType key
, WChar keyIcon
) 項目を最後に挿入します。
|
SFCError |
InsertLast(
SFXWideStringConstRef text
) 項目を最後に挿入します。
|
SFCError |
InsertLast(
SFXWideStringConstRef text
, AVKType key
, WChar keyIcon
) 項目を最後に挿入します。
|
static SFZListBoxControlSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
Void |
Remove(
SInt32 index
) 指定されたインデックスの位置または範囲の項目を削除します。
|
Void |
Remove(
SInt32 begin
, SInt32 end
) 指定されたインデックスの位置または範囲の項目を削除します。
|
Void |
RemoveFirst( Void ) 先頭の項目を削除します。
|
Void |
RemoveLast( Void ) 末尾の項目を削除します。
|
Void |
SetDefaultItemBackColor(
SFXRGBColorConstRef param
) 非選択項目のデフォルトの背景色を設定します。
|
Void |
SetDefaultItemForeColor(
SFXRGBColorConstRef param
) 非選択項目のデフォルトの前景色を設定します。
|
Void |
SetDownKey(
AVKType param
) DOWN キーを設定します。
|
Void |
SetEscapeKey(
AVKType param
) ESCAPE キーを設定します。
|
Void |
SetFont(
AEEFont value
) フォントを設定します。
|
Void |
SetGridLineColor(
SFXRGBColorConstRef param
) グリッド線の色を設定します。
|
Void |
SetGridLineEnable(
Bool param
) グリッド線有効フラグを設定します。
|
SFCError |
SetItemAccessKey(
SInt32 index
, AVKType key
) 指定された項目にアクセスキーを設定します。
|
SFCError |
SetItemBackColor(
SInt32 index
, SFXRGBColorConstRef param
) 指定された項目の非選択時の背景色を設定します。
|
SFCError |
SetItemEnable(
SInt32 index
, Bool param
) 指定された項目の有効フラグを設定します。
|
Void |
SetItemForeColor(
SInt32 index
, SFXRGBColorConstRef param
) 指定された項目の非選択時の前景色を設定します。
|
SFCError |
SetItemKeyIcon(
SInt32 index
, WChar param
) 指定された項目に絵文字を設定します。
|
SFCError |
SetItemText(
SInt32 index
, SFXPathConstRef path
, UInt16 id
) 指定された項目に文字列を設定します。
|
SFCError |
SetItemText(
SInt32 index
, SFXWideStringConstRef item
) 指定された項目に文字列を設定します。
|
Void |
SetListMargin(
SFXMarginConstRef param
) リスト項目のマージンを設定します。
|
SFCError |
SetScrollBarControl(
SFYScrollBarControlSmpConstRef param
) スクロールバーコントロールを設定します。
|
Void |
SetScrollBarWidth(
SInt16 param
) スクロールバーの横幅を設定します。
|
Void |
SetScrollDirection(
DirectionEnum param
) スクロールの移動方向を設定します。
|
Void |
SetScrollInterval(
UInt32 param
) スクロールインターバルを設定します。[単位:ミリ秒]
|
Void |
SetScrollRepeat(
Bool param
) 連続スクロールフラグを設定します。
|
Void |
SetScrollStep(
SInt16 param
) スクロール移動量を設定します。[単位:ピクセル]
|
Void |
SetSelBackColor(
SFXRGBColorConstRef param
) 選択項目の背景色を設定します。
|
Void |
SetSelForeColor(
SFXRGBColorConstRef param
) 選択項目の前景色を設定します。
|
Void |
SetUpKey(
AVKType param
) UP キーを設定します。
|
Void |
SetWaitInterval(
UInt32 param
) スクロール開始までの待ち時間を設定します。[単位:ミリ秒]
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
SFXBevelColorConstRef |
GetBevelColor( Void )
(SFYBoxControl から継承)
ボックスコントロールの外枠を描画するためのベベルカラーを取得します。
|
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 から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
SFXRGBColorConstRef |
GetFocusColor( Void )
(SFYBoxControl から継承)
フォーカス状態にあるときの内枠の色を取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRGBColorConstRef |
GetFrameColor( Void )
(SFYBoxControl から継承)
中枠の色を取得します。
|
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 から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
AVKType |
GetOperateKey( Void )
(SFYBoxControl から継承)
操作キーを取得します。
|
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 |
SetBevelColor(
SFXBevelColorConstRef param
)
(SFYBoxControl から継承)
ボックスコントロールの外枠を描画するためのベベルカラーを設定します。
|
Void |
SetCurrentValue(
SInt32 param
)
(SFYControl から継承)
コントロールの現在値を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
Void |
SetFocusColor(
SFXRGBColorConstRef param
)
(SFYBoxControl から継承)
フォーカス状態にあるときの内枠の色を設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetFrameColor(
SFXRGBColorConstRef param
)
(SFYBoxControl から継承)
中枠の色を設定します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetMaximumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最大値を設定します。
|
Void |
SetMinimumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最小値を設定します。
|
Void |
SetOperateKey(
AVKType param
)
(SFYBoxControl から継承)
操作キーを設定します。
|
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 |
HandleAccessKey(
AVKType key
) アクセスキーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
HandleBoundOptimize(
SFXRectanglePtr rectangle
) (SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
|
Void |
HandleBoundRequest(
SFXRectanglePtr rectangle
) (SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
|
Void |
HandleBoundVirtual( Void )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です
(仮想領域が変化したときの処理を行います)。
|
Void |
HandleEscapeKey( Void ) エスケープキーのキーイベントを受信したときに呼び出される関数です。
|
Void |
HandleOperateKey( Void ) 操作キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
HandleRenderRequest(
SFXGraphicsPtr graphics
) 描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
Void |
DrawBox(
SFXGraphicsPtr graphics
, SFXRectangleConstRef rectangle
)
(SFYBoxControl から継承)
ボックスコントロールを描画します。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
static SFXMarginConstRef |
GetBoxMargin( Void )
(SFYBoxControl から継承)
ボックスコントロールのマージンの値を取得します。
|
SFYResponderSmp |
GetThis( Void )
(SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
|
Void |
HandleBoundGlobal(
SFXRectangleConstRef rectangle
)
(SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
|
Void |
HandleBoundReal( Void )
(SFYControl から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です
(実領域が変化したときの処理を行います)。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFZListBoxControl クラスを表す定数です。
|
DefaultEnum 各種パラメータのデフォルト値を表します。
|
DirectionEnum スクロールの移動方向を表します。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFZListBoxControl(Void);
このコンストラクタは、以下の初期化処理を行います。
表 265. イベントハンドラ
イベント | ハンドラの内容 |
---|---|
SFYBoxControl::SetOperateKey で設定された操作キーの SFEVT_KEY イベント | SFZListBoxControl::HandleOperateKey 関数を呼び出します。 |
SFZListBoxControl::SetItemAccessKey で設定されたアクセスキーの SFEVT_KEY イベント | SFZListBoxControl::HandleOperateKey 関数を呼び出します。 |
SFZListBoxControl::SetEscapeKey で設定された ESCAPE キーの SFEVT_KEY イベント | SFZListBoxControl::HandleEscapeKey 関数を呼び出します。 |
SFZListBoxControl::SetUpKey で設定された UP キーの SFEVT_KEY イベント | 1つ上の項目を現在の選択項目にします(必要に応じて1項目分上にスクロールします)。 |
SFZListBoxControl::SetDownKey で設定された DOWN キーの SFEVT_KEY イベント | 1つ下の項目を現在の選択項目にします(必要に応じて1項目分下にスクロールします)。 |
アプリ中断イベント[SFEVT_APP_SUSPEND] | 選択項目をスクロールするためのタイマー処理をキャンセルします。 |
アプリ再開イベント[SFEVT_APP_RESUME] | 選択項目をスクロールするためのタイマー処理を再開します。 |
フォーカス状態が変更された時に発生する状態イベント[SFEVT_RESPONDER_STATE] | フォーカス状態になると選択項目のスクロールを開始し、非フォーカス状態になるとスクロールを停止する |
現在の選択項目が変更になった時に発生する値イベント[SFEVT_RESPONDER_VALUE] | SFYControl::SetCurrentValue 関数を呼び出して現在選択されている項目のインデックスを現在値に設定します。 |
一度に表示できる項目数が変更になった時に発生する値イベント[SFEVT_RESPONDER_VALUE] | このリストボックスを再配置します。 |
注意 | |
---|---|
SFZListBoxControl クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。 |
このコンストラクタの内部実装は以下の通りです。
/*protected */SFZListBoxControl::SFZListBoxControl(Void) static_throws { static SFXRGBColor::AtomRecConst rgb[] = { {{{0x00, 0x00, 0x00, 0x00}}}, // black: ItemFore {{{0x00, 0xFF, 0xFF, 0xFF}}}, // white: ItemBack {{{0x00, 0xFF, 0xFF, 0xFF}}}, // white: SelFore {{{0x00, 0x11, 0x22, 0xBB}}} // blue : SelBack }; static SFXEventRange::AtomRecConst lrange[] = { { SFEVT_APP_RESUME, SFEVT_APP_RESUME, SFP16_BEGIN, SFP16_END}, { SFEVT_APP_SUSPEND, SFEVT_APP_SUSPEND, SFP16_BEGIN, SFP16_END}, #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_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_FOCUS, SFP16_STATE_FOCUS}, { SFEVT_RESPONDER_VALUE, SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, SFP16_VALUE_CURRENT}, { SFEVT_RESPONDER_VALUE, SFEVT_RESPONDER_VALUE, SFP16_VALUE_FIELD, SFP16_VALUE_FIELD} }; SFYHandler::RuleRec lrule[lengthof(lrange)]; SFYHandler::RuleRec brule[lengthof(brange)]; SFCError error; if (static_try()) { SetType(CODE_TYPE); lrule[0].spp = XANDLER_FUNCTION(OnAppResume); lrule[0].reference = this; lrule[1].spp = XANDLER_FUNCTION(OnAppSuspend); lrule[1].reference = this; lrule[2].spp = XANDLER_FUNCTION(OnShield); lrule[2].reference = this; lrule[3].spp = XANDLER_FUNCTION(OnKey); lrule[3].reference = this; lrule[4].spp = XANDLER_FUNCTION(OnStateFocus); lrule[4].reference = this; lrule[5].spp = XANDLER_FUNCTION(OnCurrentValue); lrule[5].reference = this; lrule[6].spp = XANDLER_FUNCTION(OnFieldValue); lrule[6].reference = this; static_throw(RegisterHandler(atomic_cast(lrange), lrule, lengthof(lrange))); if (static_try()) { if ((_bar = SFZScrollBarControl::NewInstance(&error)) != null) { static_throw(_bar->SetParent(GetThis())); if (static_try()) { _bar->SetOrientation(SFYScrollBarControl::VERTICAL); brule[0].spp = XANDLER_FUNCTION(OnBarScrollEnable); brule[0].reference = this; static_throw(_bar->RegisterHandler(atomic_cast(brange), brule, lengthof(brange))); if (static_try()) { _color.defaultItemFore.Set(rgb[0]); _color.defaultItemBack.Set(rgb[1]); _color.selFore.Set(rgb[2]); _color.selBack.Set(rgb[3]); _color.gridLine.Set(rgb[0]); _font = AEE_FONT_NORMAL; _listMargin.Set(1, 2); _key.operate = AVK_SELECT; _key.escape = AVK_CLR; _key.up = AVK_UP; _key.down = AVK_DOWN; _barWidth = DEFAULT_BAR_WIDTH; _state = STATE_IDLE; _timer.Set(XALLBACK_INTERNAL(OnTimer)); _wait = DEFAULT_WAIT; _scroll = DEFAULT_SCROLL; _direction = DEFAULT_DIRECTION; _step = Measure(); _field = 0; _top = 0; _repeat = false; _line = false; } } } else { static_throw(error); } } } }// SFZListBoxControl::SFZListBoxControl // /*private */SInt16 SFZListBoxControl::Measure(Void) { _size.Set(SFXGraphics::MeasureSingleText(_font, " "), SFXGraphics::GetFontHeight(_font)); return _size.GetWidth(); }// SFZListBoxControl::Measure // /*private */XANDLER_IMPLEMENT_VOIDRESUME(SFZListBoxControl, OnAppResume, invoker, environment) { unused(invoker); unused(environment); switch (_state) { case STATE_WAIT: _timer.Schedule(_wait); break; case STATE_SCROLL: _timer.Schedule(_scroll); break; case STATE_IDLE: default: break; } return; }// XANDLER_IMPLEMENT_VOIDRESUME(SFZListBoxControl, OnAppResume) // /*private */XANDLER_IMPLEMENT_VOIDSUSPEND(SFZListBoxControl, OnAppSuspend, invoker, reason, info) { unused(invoker); unused(reason); unused(info); if (_state != STATE_IDLE) { _timer.Cancel(); } return; }// XANDLER_IMPLEMENT_VOIDSUSPEND(SFZListBoxControl, OnAppSuspend) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZListBoxControl, OnShield, invoker, event) { unused(invoker); return (event.GetP16() == _key.operate || event.GetP16() == _key.escape || event.GetP16() == _key.up || event.GetP16() == _key.down || ContainsAccessKey(static_cast<AVKType>(event.GetP16()))); }// XANDLER_IMPLEMENT_BOOLEVENT(SFZListBoxControl, OnShield) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZListBoxControl, OnKey, invoker, event) { Bool result(false); unused(invoker); if (event.GetP16() == _key.operate) { HandleOperateKey(); result = true; } else if (event.GetP16() == _key.escape) { HandleEscapeKey(); result = true; } else if (event.GetP16() == _key.up) { StopScroll(); HandleUpKey(); Refresh(); StartScroll(); result = true; } else if (event.GetP16() == _key.down) { StopScroll(); HandleDownKey(); Refresh(); StartScroll(); result = true; } else if (ContainsAccessKey(static_cast<AVKType>(event.GetP16()))) { HandleAccessKey(static_cast<AVKType>(event.GetP16())); result = true; } return result; }// XANDLER_IMPLEMENT_BOOLEVENT(SFZListBoxControl, OnKey) // /*private */XANDLER_IMPLEMENT_VOIDSTATE(SFZListBoxControl, OnStateFocus, invoker, reason, state) { unused(invoker); unused(reason); (state) ? (StartScroll()) : (StopScroll()); return; }// XANDLER_IMPLEMENT_VOIDSTATE(SFZListBoxControl, OnStateFocus) // /*private */XANDLER_IMPLEMENT_VOIDVALUE(SFZListBoxControl, OnCurrentValue, invoker, reason, value) { SInt32 cur(value); SInt32 max(GetItemCount()); unused(invoker); unused(reason); if (cur >= max) { cur = max - 1; } if (cur < 0) { cur = 0; } if (cur != value) { SetCurrentValue(cur); } else { Refresh(); if (_state != STATE_IDLE) { StartScroll(); } } return; }// XANDLER_IMPLEMENT_VOIDVALUE(SFZListBoxControl, OnCurrentValue) // /*private */XANDLER_IMPLEMENT_VOIDVALUE(SFZListBoxControl, OnFieldValue, invoker, reason, value) { unused(invoker); unused(reason); unused(value); Refresh(); return; }// XANDLER_IMPLEMENT_VOIDVALUE(SFZListBoxControl, OnFieldValue) // /*private */XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZListBoxControl, OnBarScrollEnable, invoker, reason) { unused(invoker); unused(reason); _bar->SetState(_bar->IsScrollable(), _bar->IsScrollable(), false, false); return; }// XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZListBoxControl, OnBarScrollEnable) // /*private */XALLBACK_IMPLEMENT_SFXTIMER(SFZListBoxControl, OnTimer) { SInt16 offset; switch (_state) { case STATE_WAIT: _state = STATE_SCROLL; case STATE_SCROLL: offset = 0; switch (_direction) { case DIRECTION_RIGHT: offset = +_step; break; case DIRECTION_LEFT: default: offset = -_step; break; } if (Scroll(offset)) { Render(); } _timer.Schedule(_scroll); break; case STATE_IDLE: default: break; } return; }// XALLBACK_IMPLEMENT_SFXTIMER(SFZListBoxControl, OnTimer) //
SFYResponder::SetType | SFZListBoxControl::CodeEnum | SFZListBoxControl::SetScrollBarWidth SFZListBoxControl::SetDefaultItemBackColor | SFZListBoxControl::SetDefaultItemForeColor | SFZListBoxControl::SetSelBackColor | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetGridLineColor | SFZListBoxControl::SetGridLineEnable | SFZListBoxControl::SetScrollRepeat | SFZListBoxControl::GetFieldValue | SFZListBoxControl::GetTopValue | SFZListBoxControl::SetFont | SFZListBoxControl::SetListMargin | SFZListBoxControl::SetScrollDirection | SFZListBoxControl::SetScrollInterval | SFZListBoxControl::SetScrollStep | SFZListBoxControl::SetWaitInterval | SFZListBoxControl::DirectionEnum | SFZListBoxControl::DefaultEnum | SFYBoxControl::SetOperateKey | SFZListBoxControl::SetItemAccessKey | SFZListBoxControl::HandleOperateKey | SFZListBoxControl::SetEscapeKey | SFZListBoxControl::HandleEscapeKey | SFZListBoxControl::SetUpKey | SFZListBoxControl::SetDownKey | SFXMargin | SFXRGBColor | SFXEvent | タイプ | 実領域 | 状態 | イベント | キーイベント[SFEVT_KEY] | アプリ中断イベント[SFEVT_APP_SUSPEND] | アプリ再開イベント[SFEVT_APP_RESUME] | 状態イベント[SFEVT_RESPONDER_STATE] | 値イベント[SFEVT_RESPONDER_VALUE]
[ protected, virtual ] virtual ~SFZListBoxControl(Void);
このリストボックスコントロールからすべての項目を削除します。
このデストラクタの内部実装は以下の通りです。
/*protected virtual */SFZListBoxControl::~SFZListBoxControl(Void) { ListItemArray::Iterator i0; ListItemPtr item; StopScroll(); if (_item.GetSize() > 0) { i0 = _item.GetFirstIterator(); while (i0.HasNext()) { if ((item = i0.GetNext()) != null) { ::delete item; } } } }// SFZListBoxControl::~SFZListBoxControl //
[ public ] SFCError Append( SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID );
[ public ] SFCError Append( SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID AVKType key // ダイレクトアクセスキー WChar keyIcon = 0 // キーアイコン );
[ public ] SFCError Append( SFXWideStringConstRef text // 項目のテキスト );
[ public ] SFCError Append( SFXWideStringConstRef text // 項目のテキスト AVKType key // ダイレクトアクセスキー WChar keyIcon = 0 // キーアイコン );
この関数は、リストボックスに項目を追加します。
追加された項目はリストボックスの最後の項目となります。
注意 | |
---|---|
追加後の項目数が SFYControl クラスの最大値として設定されます。 |
廃止予定 | |
---|---|
この関数は、SophiaFramework UNIVERSE 6.0 で廃止される予定です。 この関数の代わりに SFZListBoxControl::InsertLast 関数を利用することを推奨します。 |
[ public ] Void Clear(Void);
この関数は、リストボックスからすべての項目を削除します。
[ public, const ] SFXRGBColorConstRef GetDefaultItemBackColor(Void);
非選択項目のデフォルトの背景色。
この関数は、 非選択項目のデフォルトの背景色(SFXRGBColor)を取得します。
[ public, const ] SFXRGBColorConstRef GetDefaultItemForeColor(Void);
非選択項目のデフォルトの前景色(テキストを描画する色)。
この関数は、 非選択項目のデフォルトの前景色(テキストを描画する色)を取得します。
[ public, const ] AVKType GetDownKey(Void);
DOWN キー。
この関数は、SFZListBoxControl::SetDownKey 関数により設定された DOWN キーを取得します。
SFZListBoxControl::SetDownKey | SFZListBoxControl::GetUpKey | SFZListBoxControl::SetUpKey | AVKType
[ public, const ] AVKType GetEscapeKey(Void);
ESCAPE キー。
この関数は、SFZListBoxControl::GetEscapeKey 関数により設定された DOWN キーを取得します。
[ public, const ] SInt32 GetFieldValue(Void);
同時に表示できる項目の数。
この関数は、リストボックスに同時に表示できる項目の数を取得します。
注意 | |
---|---|
表示できる項目の数は、リストボックスの高さ、リストマージン、フォントの種類などによって決定されます。 |
[ public, const ] AEEFont GetFont(Void);
リストボックスの項目を描画するフォント。
この関数は、リストボックスの項目を描画するフォントを取得します。
[ public, const ] SFXRGBColorConstRef GetGridLineColor(Void);
グリッド線の色。
この関数は、グリッド線の色(SFXRGBColor)を取得します。
[ public, const ] Bool GetGridLineEnable(Void);
グリッド線有効フラグに設定された値。
この関数は、テキストメニューのグリッド線有効フラグに設定された値を取得します。
指定された項目のアクセスキー。アクセスキーが設定されていない場合、AVK_UNDEFINED。
この関数は、指定された項目のアクセスキーを取得します。
[ public, const ] SFXRGBColorConstRef GetItemBackColor( SInt32 index // 項目のインデックス );
指定された項目の非選択時の背景色。
この関数は、 指定された項目の非選択時の背景色(SFXRGBColor)を取得します。
[ public, const ] SInt32 GetItemCount(Void);
項目の数。
この関数は、項目の数を取得します。
この関数は、指定された項目の有効フラグの値を取得します。
[ public, const ] SFXRGBColorConstRef GetItemForeColor( SInt32 index // 項目のインデックス );
指定された項目の非選択時の前景色(テキストを描画する色)。
この関数は、 指定された項目の非選択時の前景色(テキストを描画する色)を取得します。
[ public, const ] SInt16 GetItemHeight(Void);
項目の高さ。[単位:ピクセル]
この関数は、項目の高さを取得します。
注意 | |
---|---|
SFZListBoxControl::SetFont 関数で設定されたフォントの高さと、 SFZListBoxControl::SetListMargin 関数で設定された上下の余白からリストボックスコントロールの項目の高さを計算します。 |
絵文字(WChar)。
この関数は、指定された項目の絵文字を取得します。
[ public, const ] SFXWideStringConstRef GetItemText( SInt32 index // 項目のインデックス );
指定された項目に設定されている文字列。
この関数は、指定された項目の文字列を取得します。
[ public, const ] SFXMarginConstRef GetListMargin(Void);
リスト項目のマージン(SFXMargin)。
この関数は、リスト項目のマージンを取得します。
[ public, const ] SInt32 GetMaximumValue(Void);
リストボックスの項目数。
この関数は、リストボックスの項目数を取得します。
[ public, const ] SFYScrollBarControlSmpConstRef GetScrollBarControl(Void);
スクロールバーコントロール。
この関数は、リストボックスで使用されるスクロールバーコントロールを取得します。
注意 | |
---|---|
開発者は取得したスクロールバーコントロールを使用して、スクロールバーの色を変更したりできます。 |
以下は、リストボックスで使用されるスクロールバーコントロールを取得するコードです。
// スクロールバーコントロールを取得する
SFZListBoxControlSmp _list;
SFYScrollBarControlSmp _bar;
_list = SFZListBoxControl::NewInstance();
if ((_bar = _list->GetScrollBarControl()) != null) {
_bar->SetTrackColor(SFXRGBColor(0xDD, 0xFF, 0xDD, 0x00));
}
[ public, const ] SInt16 GetScrollBarWidth(Void);
スクロールバーの横幅。
この関数は、スクロールバーの横幅を取得します。
[ public, const ] DirectionEnum GetScrollDirection(Void);
スクロールの移動方向。
この関数は、スクロールの移動方向を取得します。
[ public, const ] UInt32 GetScrollInterval(Void);
スクロールインターバル。[単位:ミリ秒]
この関数は、スクロールインターバルを取得します。[単位:ミリ秒]
[ public, const ] Bool GetScrollRepeat(Void);
この関数は、連続スクロールフラグの値を取得します。
注意 | |
---|---|
連続スクロールフラグが true に設定されていると、 最上部または最下部の項目が選択されているときに、それぞれ UP キーまたは DOWM キーを押下すると、 最下部または最上部の項目が選択項目となります。 連続スクロールフラグが false の場合は、 最上部または最下部の項目が選択されているときに、それぞれ UP キーまたは DOWM キーを押下しても選択項目に変化はありません。 |
[ public, const ] SInt16 GetScrollStep(Void);
スクロール移動量。[単位:ピクセル]
この関数は、スクロール移動量を取得します。[単位:ピクセル]
[ public, const ] SFXRGBColorConstRef GetSelBackColor(Void);
選択項目の背景色。
この関数は、選択項目の背景色を取得します。
SFZListBoxControl::SetSelBackColor | SFZListBoxControl::GetSelForeColor | SFZListBoxControl::SetSelForeColor | SFXRGBColor
[ public, const ] SFXRGBColorConstRef GetSelForeColor(Void);
選択項目の前景色(テキストを描画する色)。
この関数は、選択項目の前景色(テキストを描画する色)を取得します。
SFZListBoxControl::SetSelForeColor | SFZListBoxControl::GetSelBackColor | SFZListBoxControl::SetSelBackColor | SFXRGBColor
[ public, const ] SInt32 GetTopValue(Void);
現在表示されている項目内で最も上の項目のインデックス。
この関数は、現在表示されている項目内で最も上の項目のインデックスを取得します。
[ public, const ] AVKType GetUpKey(Void);
UP キー。
この関数は、SFZListBoxControl::SetUpKey 関数により設定された UP キーを取得します。
SFZListBoxControl::SetUpKey | SFZListBoxControl::GetDownKey | SFZListBoxControl::SetDownKey | AVKType
[ public, const ] UInt32 GetWaitInterval(Void);
スクロール開始までの待ち時間。[単位:ミリ秒]
この関数は、スクロール開始までの待ち時間を設定します。[単位:ミリ秒]
この関数は、SFZListBoxControl::SetItemAccessKey 関数で設定したアクセスキーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は以下の通りです。
SFZListBoxControl::SetItemAccessKey 関数で設定したアクセスキーを設定した項目が SFZListBoxControl::SetItemEnable 関数により項目の有効フラグが true に設定されている場合、 SFYControl::SetCurrentValue 関数を呼び出してその項目を現在の選択項目とします。 そして、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 指定されたアクセスキーが設定されている項目のインデックス)] を送信します。
項目の有効フラグが false に設定されている場合、何も処理されません。
同じアクセスキーが複数の項目に設定されている場合は、最初の項目に設定されたものだけが有効になります。
この関数の内部実装は以下の通りです。
struct ListItem { SFXWideString text; AVKType key; WChar keyIcon; SFXRGBColor foreColor; SFXRGBColor backColor; Bool enable; }; ListItemArray _item; /*protected virtual */Void SFZListBoxControl::HandleAccessKey(AVKType key) { ListItemPtr item; for (SInt32 i = 0; i < GetItemCount(); ++i) { if ((item = GetListItem(i)) != null) { if (item->key == key) { if (item->enable) { SetCurrentValue(i); Invalidate(); InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, i), false); break; } } } } return; }// SFZListBoxControl::HandleAccessKey // /*private */SFZListBoxControl::ListItemPtr SFZListBoxControl::GetListItem(SInt32 param) const { ListItemPtr result(null); if (0 <= param && param < GetItemCount()) { result = _item.Get(param); } return result; }// SFZListBoxControl::GetListItem //
SFZListBoxControl::SetItemAccessKey | SFZListBoxControl::SetItemEnable | SFYControl::GetCurrentValue | SFXEvent | 結果イベント | キーイベント[SFEVT_KEY]
[ protected, virtual, const ] Void HandleBoundOptimize( SFXRectanglePtr rectangle // 矩形 );
この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] を受信したときに呼び出されます。
指定した矩形に収まる範囲内で最適なサイズを計算します。
デフォルトの実装は以下の通りです。
項目のフォント、アイコンキャラクタ、文字列、マージン | |
---|---|
項目内の要素であるフォント、アイコンキャラクタ、文字列、マージンは、 SFZListBoxControl::SetFont 関数、 SFZListBoxControl::SetItemKeyIcon 関数、 SFZListBoxControl::SetItemText 関数、 SFZListBoxControl::SetListMargin 関数を使用して設定されます。 アイコンキャラクタや文字列は設定されないこともあります。 設定されていない項目内の要素の長さは 0 として計算されます。 |
スクロールバーの横幅 | |
---|---|
スクロールバーの幅は、SFZListBoxControl::SetScrollBarWidth 関数で設定される幅です。 |
ボックス枠用のマージン | |
---|---|
ボックスコントロールのマージンは、SFXMargin(3, 3, 3, 3) で表される領域です。 詳細は SFYBoxControl::GetBoxMargin 関数の解説を参照してください。 |
領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント] | |
---|---|
SFYResponder::GetSuitableBound 関数は、 引数にヒント領域を指定した場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] をレスポンダに送信します。 SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundOptimize 仮想関数が呼び出されます。 ※ 領域イベントの P32 パラメータ rectangle にはヒント領域が初期設定されています。 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント受信時の最適な領域計算 | |
---|---|
SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 最適な領域の計算は、最初に SFYWidget::HandleBoundOptimize 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
struct ListItem { SFXWideString text; AVKType key; WChar keyIcon; SFXRGBColor foreColor; SFXRGBColor backColor; Bool enable; }; /*protected virtual */Void SFZListBoxControl::HandleBoundOptimize(SFXRectanglePtr rectangle) const { ListItemPtr item; SInt16 width; SInt16 maxWidth; SInt16 barWidth; SInt16 height; SInt32 num; maxWidth = 0; barWidth = 0; height = GetItemHeight(); rectangle->Deflate(GetBoxMargin()); num = rectangle->GetHeight() / height; if (num > 0) { if (num < GetItemCount()) { barWidth = _barWidth; } else { num = GetItemCount(); } rectangle->SetHeight(static_cast<SInt16>(height * num)); } for (SInt32 i = 0; i < GetItemCount(); ++i) { if ((item = GetListItem(i)) != null) { width = SFXGraphics::MeasureSingleText(_font, item->text); if (item->keyIcon != null) { width += GetFontSize().GetWidth(); } maxWidth = (maxWidth < width) ? width : maxWidth; } } maxWidth += barWidth; rectangle->Deflate(GetListMargin()); if (maxWidth < rectangle->GetWidth()) { rectangle->SetWidth(maxWidth); } rectangle->Inflate(GetListMargin()); rectangle->Inflate(GetBoxMargin()); return; }// SFZListBoxControl::HandleBoundOptimize //
SFZListBoxControl::SetFont | SFZListBoxControl::SetItemKeyIcon | SFZListBoxControl::SetItemText | SFZListBoxControl::SetListMargin | SFZListBoxControl::SetScrollBarWidth | SFYResponder::GetSuitableBound | SFYBoxControl::GetBoxMargin | SFXMargin | SFXEvent | 領域イベント[SFEVT_RESPONDER_BOUND]
[ protected, virtual, const ] Void HandleBoundRequest( SFXRectanglePtr rectangle // 計算された矩形 );
この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] を受信したときに呼び出されます。
レスポンダの最適な領域を計算します。
計算結果のレスポンダに最適なサイズは、rectangle 引数の size 要素(サイズ)に格納されます。 なお、領域イベントの P32 パラメータとして渡された rectangle 引数の origin 要素(始点)はこの関数内で変更しないことを推奨します。
デフォルトの実装は以下の通りです。
項目のフォント、アイコンキャラクタ、文字列、マージン | |
---|---|
項目内の要素であるフォント、アイコンキャラクタ、文字列、マージンは、 SFZListBoxControl::SetFont 関数、 SFZListBoxControl::SetItemKeyIcon 関数、 SFZListBoxControl::SetItemText 関数、 SFZListBoxControl::SetListMargin 関数を使用して設定されます。 アイコンキャラクタや文字列は設定されないこともあります。設定されていない項目内の要素の長さは 0 として計算されます。 |
ボックス枠用のマージン | |
---|---|
ボックスコントロールのマージンは、SFXMargin(3, 3, 3, 3) で表される領域です。 詳細は SFYBoxControl::GetBoxMargin 関数の解説を参照してください。 |
領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント] | |||||
---|---|---|---|---|---|
SFYResponder::GetSuitableBound 関数は、 引数に何も指定しない場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] をレスポンダに送信します。 SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundRequest 仮想関数が呼び出されます。 ※ 領域イベントの P32 パラメータ rectangle には実領域が初期設定されています。
|
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント受信時の最適な領域計算 | |
---|---|
SFYWidget::HandleBoundRequest 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 最適な領域の計算は、最初に SFYWidget::HandleBoundRequest 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundRequest 仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
struct ListItem { SFXWideString text; AVKType key; WChar keyIcon; SFXRGBColor foreColor; SFXRGBColor backColor; Bool enable; }; /*protected virtual */Void SFZListBoxControl::HandleBoundRequest(SFXRectanglePtr rectangle) const { ListItemPtr item; SInt16 width; SInt16 maxWidth; maxWidth = 0; rectangle->Deflate(GetBoxMargin()); for (SInt32 i = 0; i < GetItemCount(); ++i) { if ((item = GetListItem(i)) != null) { width = SFXGraphics::MeasureSingleText(_font, item->text); if (item->keyIcon != null) { width += GetFontSize().GetWidth(); } maxWidth = (maxWidth < width) ? width : maxWidth; } } rectangle->SetHeight(static_cast<SInt16>(GetItemHeight() * GetItemCount())); rectangle->Deflate(GetListMargin()); rectangle->SetWidth(maxWidth); rectangle->Inflate(GetListMargin()); rectangle->Inflate(GetBoxMargin()); return; }// SFZListBoxControl::HandleBoundRequest //
SFZListBoxControl::SetFont | SFZListBoxControl::SetItemKeyIcon | SFZListBoxControl::SetItemText | SFZListBoxControl::SetListMargin | SFYResponder::GetSuitableBound | SFYBoxControl::GetBoxMargin | SFXMargin | SFXEvent | 実領域 | 領域イベント[SFEVT_RESPONDER_BOUND]
[ protected, virtual ] Void HandleBoundVirtual(Void);
この関数は、領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] を受信したときに呼び出されます。
仮想領域の変更時に追加の処理を行いたい場合は、この関数をオーバーライドします。
領域イベント[(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 には変更後の仮想領域が設定されています。 |
仮想領域の変更処理 | |
---|---|
SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 仮想領域の変更処理は、最初に SFYWidget::HandleBoundVirtual 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常はこの仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZListBoxControl::HandleBoundVirtual(Void) { SFXMargin margin(GetBoxMargin()); SInt32 field; StopScroll(); field = (GetLocalBound().GetHeight() - margin.GetTop() - margin.GetBottom()) / GetItemHeight(); field = (field > 0) ? field : 1; SetFieldValue(field); _offset = 0; Relocate(); if (_state != STATE_IDLE) { StartScroll(); } return; }// SFZListBoxControl::HandleBoundVirtual // /*private */Void SFZListBoxControl::Relocate(Void) { SFXRectangle rc(GetLocalBound()); if (_bar != null) { rc.Deflate(GetBoxMargin()); rc.SubRight(_barWidth); _bar->SetRealBound(SFXRectangle(rc.GetRight(), rc.GetTop(), _barWidth, rc.GetHeight())); } return; }// SFZListBoxControl::Relocate //
[ protected, virtual ] Void HandleEscapeKey(Void);
この関数は、SFZListBoxControl::SetEscapeKey 関数で設定した ESCAPE キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は以下の通りです。
デフォルトの実装では、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0)] を送信します。
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZListBoxControl::HandleEscapeKey(Void) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0), false); return; }// SFZListBoxControl::HandleEscapeKey //
[ protected, virtual ] Void HandleOperateKey(Void);
この関数は、SFYBoxControl::SetOperateKey 関数で設定した操作キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は以下の通りです。
SFZListBoxControl::SetItemEnable 関数により選択された項目の有効フラグが true に設定されている場合、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, SFYControl::GetCurrentValue 関数の戻り値)] を送信します。
項目の有効フラグが false に設定されている場合、結果イベントを送信しません。
この関数の内部実装は以下の通りです。
struct ListItem { SFXWideString text; AVKType key; WChar keyIcon; SFXRGBColor foreColor; SFXRGBColor backColor; Bool enable; }; /*protected virtual */Void SFZListBoxControl::HandleOperateKey(Void) { ListItemPtr item; if ((item = GetListItem(GetCurrentValue())) != null) { if (item->enable) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, GetCurrentValue()), false); } } return; }// SFZListBoxControl::HandleOperateKey //
[ protected, virtual, const ] Void HandleRenderRequest( SFXGraphicsPtr graphics // グラフィックスオブジェクト );
この関数は、 描画イベント [SFXEvent(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, graphics)] を受信したときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装は、リストボックスコントロールを描画します。
レスポンダの描画手順 | |||||
---|---|---|---|---|---|
|
この関数の内部実装は以下の通りです。
struct ListItem { SFXWideString text; AVKType key; WChar keyIcon; SFXRGBColor foreColor; SFXRGBColor backColor; Bool enable; }; /*protected virtual */Void SFZListBoxControl::HandleRenderRequest(SFXGraphicsPtr graphics) const { SFXRectangle rc(GetLocalBound()); DrawBox(graphics, rc); DrawItemList(graphics, rc.Deflate(GetBoxMargin())); return; }// SFZListBoxControl::HandleRenderRequest // /*private */Void SFZListBoxControl::DrawItemList(SFXGraphicsPtr graphics, SFXRectangleConstRef rectangle) const { SFXRectangle rc(rectangle); SInt16 itemHeight(GetItemHeight()); if (_bar != null && _bar->GetStateVisible()) { rc.SubRight(_barWidth); } if (rc.GetHeight() > itemHeight) { rc.SetHeight(itemHeight); } for (SInt32 i = 0; i < GetFieldValue(); ++i) { if (GetTopValue() + i < GetItemCount()) { DrawItem(graphics, rc, i + GetTopValue()); if (_line) { graphics->DrawLine(rc.GetEdgeBottom(), _color.gridLine); } } rc.AddY(itemHeight); } return; }// SFZListBoxControl::DrawItemList // /*private */Void SFZListBoxControl::DrawItem(SFXGraphicsPtr graphics, SFXRectangleConstRef rectangle, SInt32 index) const { ListItemPtr item; SFXRectangle rc(rectangle); SFXGrid grid; SFXRGBColor fore; SFXRGBColor back; if ((item = GetListItem(index)) != null) { fore.Set(item->foreColor); back.Set(item->backColor); if (!item->enable || !GetStateActive(true)) { (fore.GetBrightness() > 0x7F) ? fore.SubRGB(RGB_ACTIVE) : fore.AddRGB(RGB_ACTIVE); } else if (index == GetCurrentValue()) { fore.Set(_color.selFore); } if (!item->enable) { (back.GetBrightness() > 0x7F) ? back.SubRGB(RGB_ENABLE) : back.AddRGB(RGB_ENABLE); } if (index == GetCurrentValue()) { back.Set(_color.selBack); } graphics->FillRectangle(rectangle, back); rc.Deflate(GetListMargin()); if (item->keyIcon != 0) { SFXRectangle iconRect(rc); iconRect.SetSize(GetFontSize()); graphics->SetFont(_font); graphics->DrawSingleText(SFXWideString(item->keyIcon), iconRect, fore, IDF_ALIGN_LEFT); rc.AddX(iconRect.GetWidth()); } grid = rc.GetOrigin(); if (index == GetCurrentValue()) { grid.AddX(_offset); } graphics->SetFont(_font); graphics->DrawSingleText(item->text, grid, rc, fore, IDF_ALIGN_LEFT); } return; }// SFZListBoxControl::DrawItem // /*private */inline SFXSize SFZListBoxControl::GetFontSize(Void) const { return _size; }// SFZListBoxControl::GetFontSize //
SFYResponder::Invalidate | SFYResponder::Render | SFYResponder::InvokeBackward | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理
[ public ] SFCError Insert( SInt32 index // 項目のインデックス SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID );
[ public ] SFCError Insert( SInt32 index // 項目のインデックス SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
[ public ] SFCError Insert( SInt32 index // 項目のインデックス SFXWideStringConstRef text // 項目のテキスト );
[ public ] SFCError Insert( SInt32 index // 項目のテキスト SFXWideStringConstRef text // 項目のテキスト AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
この関数は、 リストボックスに項目を挿入します。
インデックスが 0 以下の場合は最初に挿入されます。
インデックスが項目数以上の場合は最後に挿入されます。
テキストは直接、あるいは、リソースファイルから読み込むように指定します。
注意 | |
---|---|
この関数で項目を追加した後、 項目数(SFZListBoxControl::GetItemCount 関数の戻り値)は 1 だけ増加します。 |
SFZListBoxControl::InsertFirst | SFZListBoxControl::InsertLast| SFZListBoxControl::Remove | SFZListBoxControl::GetItemCount
[ public ] SFCError InsertFirst( SFXPathConstRef path // 項目のインデックス UInt16 id // テキストオブジェクト ID );
[ public ] SFCError InsertFirst( SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
[ public ] SFCError InsertFirst( SFXWideStringConstRef text // 項目のテキスト );
[ public ] SFCError InsertFirst( SFXWideStringConstRef text // 項目のテキスト AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
この関数は、 リストボックスの最初に項目を挿入します。
テキストは直接、あるいは、リソースファイルから読み込むように指定します。
注意 | |
---|---|
この関数で項目を追加した後、 項目数(SFZListBoxControl::GetItemCount 関数の戻り値)は 1 だけ増加します。 |
SFZListBoxControl::Insert | SFZListBoxControl::InsertLast | SFZListBoxControl::RemoveFirst | SFZListBoxControl::GetItemCount
[ public ] SFCError InsertLast( SFXPathConstRef path // 項目のインデックス UInt16 id // テキストオブジェクト ID );
[ public ] SFCError InsertLast( SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
[ public ] SFCError InsertLast( SFXWideStringConstRef text // 項目のテキスト );
[ public ] SFCError InsertLast( SFXWideStringConstRef text // 項目のテキスト AVKType key // ダイレクトアクセスキー WChar keyIcon // キーアイコン );
この関数は、 リストボックスの最後に項目を挿入します。
テキストは直接、あるいは、リソースファイルから読み込むように指定します。
注意 | |
---|---|
この関数で項目を追加した後、 項目数(SFZListBoxControl::GetItemCount 関数の戻り値)は 1 だけ増加します。 |
SFZListBoxControl::Insert| SFZListBoxControl::InsertFirst | SFZListBoxControl::RemoveLast | SFZListBoxControl::GetItemCount
[ public, static ] SFZListBoxControlSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFZListBoxControl クラスの新しいインスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、リストボックスのインスタンスを生成するためのコードです。
// リストボックスのインスタンスを生成する SFCError error; SFZListBoxControlSmp _listbox; if ((_listbox = SFZListBoxControl::NewInstance(&error)) != null) { // ... }
[ public ] Void Remove( SInt32 index // 削除する項目のインデックス );
[ public ] Void Remove( SInt32 begin // 削除開始位置 (この位置を含む) SInt32 end // 削除終了位置 (この位置を含まない) );
この関数は、 指定されたインデックスの位置または範囲の項目を削除します。
削除する項目の位置が 0 より小さい場合、または項目数以上の場合、項目の削除は行われません。
削除開始位置が項目数以上の場合、または 削除終了位置が 0 以下の場合、項目の削除は行われません。
削除開始位置が 0 より小さい場合、削除開始位置は 0 に再設定されます。
削除終了位置が項目数より大きい場合、削除終了位置は項目数に再設定されます。
注意 | |
---|---|
この関数で項目を削除した後、 項目数(SFZListBoxControl::GetItemCount 関数の戻り値)は 1 だけ減少します。 |
SFZListBoxControlSmp listbox; // ・・・インスタンスの作成等・・・ // 項目を追加 if (listbox->InsertLast("0番目") == SFERR_NO_ERROR) { // 項目を追加 if (listbox->InsertLast("1番目") == SFERR_NO_ERROR) { // 項目を追加 if (listbox->InsertLast("2番目") == SFERR_NO_ERROR) { // 項目を追加 if (listbox->InsertLast("3番目") == SFERR_NO_ERROR) { // 2 番目を選択する listbox->SetCurrentValue(2); ////////////////////////// // リストボックスの状態 // // 0: "0番目" // // 1: "1番目" // // 2: "2番目" ← // // 3: "3番目" // ////////////////////////// // 項目1 から項目2 までを削除する listbox->Remove(1, 3); // 現在値 (2) が最大値 (2) 以上になるため、 // 現在値は [最大値 - 1] (1) に設定される ////////////////////////// // リストボックスの状態 // // 0: "0番目" // // 1: "3番目" ← // ////////////////////////// } } } }
SFZFlexListBoxControl::Clear | SFZFlexListBoxControl::RemoveFirst | SFZFlexListBoxControl::RemoveLast | SFZFlexListBoxControl::Insert | SFZListBoxControl::GetItemCount
[ public ] Void RemoveFirst(Void);
SFZListBoxControl::Clear | SFZListBoxControl::Remove | SFZListBoxControl::RemoveLast | SFZListBoxControl::GetItemCount
[ public ] Void RemoveLast(Void);
SFZListBoxControl::Clear | SFZListBoxControl::Remove | SFZListBoxControl::RemoveFirst | SFZListBoxControl::InsertLast | SFZListBoxControl::GetItemCount
[ public ] Void SetDefaultItemBackColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、 非選択項目のデフォルトの背景色を設定します。
デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色]
リストボックスコントロールの非選択項目の背景色 | |
---|---|
リストボックスコントロールの非選択項目の背景色は、項目毎に変えることが可能です。 すべての項目の背景色を同じ色にしたい場合は、 この関数を使用してデフォルトの背景色を指定し、 個別に背景色を指定できる SFZListBoxControl::SetItemBackColor 関数は使用しません。 選択項目の背景は、 常に SFZListBoxControl::SetSelBackColor 関数で指定した色で描画されます。 |
項目の有効フラグが false に設定されているときの非選択項目の背景色 | |
---|---|
SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。 このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。 色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。 |
SFZListBoxControl::GetDefaultItemBackColor | SFZListBoxControl::SetDefaultItemForeColor | SFZListBoxControl::SetItemBackColor | SFZListBoxControl::SetSelBackColor | SFZListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor
[ public ] Void SetDefaultItemForeColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、 非選択項目のデフォルトの前景色(テキストを描画する色)を設定します。
デフォルト値: SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色]
リストボックスコントロールの非選択項目の前景色 | |
---|---|
リストボックスコントロールの非選択項目の前景色は、項目毎に変えることが可能です。 すべての項目の前景色を同じ色にしたい場合は、 この関数を使用してデフォルトの前景色を指定し、 個別に前景色を指定できる SFZListBoxControl::SetItemForeColor 関数は使用しません。 選択項目のテキストは、 SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 およびリストボックスコントロールの状態が非活性化状態にあるときを除いて、 SFZListBoxControl::SetSelForeColor 関数で指定した色で描画されます。 |
項目の有効フラグが false に設定されているときの非選択項目の前景色 | |
---|---|
SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 またはリストボックスコントロールの状態が非活性化状態にあるときは、 この関数によって設定される色でテキストは描画されません。 このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。 色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。 |
SFZListBoxControl::GetDefaultItemForeColor | SFZListBoxControl::SetDefaultItemBackColor | SFZListBoxControl::SetItemForeColor | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor | 状態
この関数は、 リストボックスコントロールの DOWN キーを設定します。
デフォルト値: AVK_DOWN
注意 | |
---|---|
DOWN キーが押下された場合、 現在の選択項目よりも1つ下の項目がリストの新しい選択項目になります。 新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の下端の位置に来るようにスクロールします。 連続スクロールフラグの値が true、かつ、 現在の選択項目が末尾の項目であるときに DOWN キーを押下すると、 先頭の項目が新しい選択項目となり、実領域の下端の位置に来るようにスクロールします。 このとき、末尾の項目は下から 2 行目の位置に表示されます(先頭の項目は最下行に表示されます)。 |
SFZListBoxControl::GetDownKey | SFZListBoxControl::GetUpKey | SFZListBoxControl::SetUpKey | SFZListBoxControl::SetScrollRepeat | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType
この関数は、 リストボックスの ESCAPE キーを設定します。
デフォルト値: AVK_CLR
注意 | |
---|---|
ESCAPE キーが押下されると、 SFZListBoxControl::HandleEscapeKey 関数が呼び出されます。 |
この関数は、 リストボックスの項目のフォントを設定します。
デフォルト値: AEE_FONT_NORMAL
[ public ] Void SetGridLineColor( SFXRGBColorConstRef param // グリッド線の色 );
この関数は、グリッド線の色を設定します。
デフォルト値: SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色]。
注意 | |
---|---|
グリッド線は、SFZListBoxControl::SetGridLineEnable 関数を使用して、 有効フラグが true に設定されているときだけ描画されます。 |
グリッド線の描画領域 | |
---|---|
グリッド線は各項目の矩形領域の最下端1ピクセルの線上に描画されます。 グリッド線有効フラグを true に設定する場合は、 SFZListBoxControl::SetListMargin 関数を使用してその分の余白領域を設定することを推奨します。 |
この関数は、グリッド線有効フラグを設定します。
デフォルト値は false です。
注意 | |
---|---|
グリッド線有効フラグが true に設定されているときだけ、 グリッド線は SFZListBoxControl::SetGridLineColor 関数で設定した色で描画されます。 |
グリッド線の描画領域 | |
---|---|
グリッド線は各項目の矩形領域の最下端1ピクセルの線上に描画されます。 グリッド線有効フラグを true に設定する場合は、 SFZListBoxControl::SetListMargin 関数を使用してその分の余白領域を設定することを推奨します。 |
SFZListBoxControl::GetGridLineEnable | SFZListBoxControl::SetGridLineColor | SFZListBoxControl::SetListMargin
この関数は、項目のアクセスキーを設定します。
注意 | |
---|---|
この関数を使用して設定されたアクセスキーが押下されると、 SFZListBoxControl::HandleAccessKey 関数が呼び出されます。 |
項目のアクセスキーを設定するコードです。
// 最初の項目に、アクセスキーとして AVK_1 を設定する
_listbox->SetItemAccessKey(0, AVK_1);
[ public ] SFCError SetItemBackColor( SInt32 index // 項目のインデックス SFXRGBColorConstRef param // 背景色 );
この関数は、 指定された項目の非選択時の背景色を設定します。
デフォルト値: SFZListBoxControl::SetDefaultItemBackColor 関数で設定されている色。 SFZListBoxControl::SetDefaultItemBackColor 関数でデフォルトの背景色を設定していない場合は、 SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色]。
SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。
このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
非選択項目の前景色 | |
---|---|
SFZListBoxControl::SetItemForeColor 関数の解説を参照してください。 |
選択項目の背景色 | |
---|---|
SFZListBoxControl::SetSelBackColor 関数の解説を参照してください。 |
選択項目の前景色 | |
---|---|
SFZListBoxControl::SetSelForeColor 関数の解説を参照してください。 |
SFZListBoxControl::SetDefaultItemBackColor | SFZListBoxControl::GetItemBackColor | SFZListBoxControl::SetItemForeColor | SFZListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetSelBackColor | SFXRGBColor
この関数は、 指定された項目の有効フラグを設定します。
デフォルト値: true
項目の有効フラグが false に設定されているとき | |
---|---|
操作キーやアクセスキーが押下されても結果イベントは送信されません。 項目の前景色(テキストを描画する色)と非選択項目の背景色は以下の通りです。 項目の前景色は、SFZListBoxControl::SetItemForeColor 関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色になります。 非選択項目の背景色は、SFZListBoxControl::SetItemBackColor 関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色になります。 色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。 |
注意 | |
---|---|
項目の有効フラグが false に設定されているとき、 選択項目の前景色も上述の補正色になります。 SFZListBoxControl::SetSelForeColor 関数で設定した色で描画されません。 選択項目の背景色は、 項目の有効フラグの値に関係なく SFZListBoxControl::SetSelBackColor 関数で設定した色です。 |
SFZListBoxControl::GetItemEnable | SFZListBoxControl::HandleOperateKey | SFZListBoxControl::HandleAccessKey | SFZListBoxControl::SetItemForeColor | SFZListBoxControl::SetItemBackColor | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetSelBackColor | SFZListBoxControl::SetSelForeColor
[ public ] Void SetItemForeColor( SInt32 index // 項目のインデックス SFXRGBColorConstRef param // 前景色 );
この関数は、 指定された項目の非選択時の前景色(テキストを描画する色)を設定します。
デフォルト値: SFZListBoxControl::SetDefaultItemForeColor 関数で設定されている色。 SFZListBoxControl::SetDefaultItemForeColor 関数でデフォルトの前景色を設定していない場合は、 SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色]。
SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 またはリストボックスコントロールの状態が非活性化状態にあるときは、 この関数によって設定される色で項目のテキストは描画されません。
このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色でテキストは描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
非選択項目の背景色 | |
---|---|
SFZListBoxControl::SetItemBackColor 関数の解説を参照してください。 |
選択項目の前景色 | |
---|---|
SFZListBoxControl::SetSelForeColor 関数の解説を参照してください。 |
選択項目の背景色 | |
---|---|
SFZListBoxControl::SetSelBackColor 関数の解説を参照してください。 |
SFZListBoxControl::SetDefaultItemForeColor | SFZListBoxControl::GetItemForeColor | SFZListBoxControl::SetItemBackColor | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetSelBackColor | SFZListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor | 状態
この関数は、 指定された項目の絵文字を設定します。
指定された項目の絵文字を設定するコードです。
// 最初の項目に、絵文字として 0xFBF6 を設定する
_listbox->SetItemKeyIcon(0, 0xFBF6);
[ public ] SFCError SetItemText( SInt32 index // 項目のインデックス SFXPathConstRef path // リソースファイルのパス UInt16 id // テキストオブジェクト ID );
[ public ] SFCError SetItemText( SInt32 index // 項目のインデックス SFXWideStringConstRef item // テキスト );
この関数は、 指定された項目にテキストを設定します。
テキストは直接、あるいは、リソースファイルから読み込むように指定します。
[ public ] Void SetListMargin( SFXMarginConstRef param // 設定するマージン );
[ public ] SFCError SetScrollBarControl( SFYScrollBarControlSmpConstRef param // スクロールバーコントロール );
この関数は、リストボックスで使用されるスクロールバーコントロールを設定します。
開発者が独自のスクロールバーを設定したいときに利用します。
以下は、カスタムスクロールバーを設定するコードです。
// 独自のスクロールバーコントロール class CustomScrollBarControl : public SFYScrollBarControl { // 独自の定義 }; Void UserApplication::SomeFunction { SFZListBoxControlSmp list; CustomScrollBarControlSmp bar; // リストボックスの生成 list = SFZListBoxControl::NewInstance(); // リストボックスの設定 // … // スクロールバーの生成 bar = CustomScrollBarControl::NewInstance(); // 独自のスクロールバーをリストボックスに設定する list->SetScrollBarControl(bar); return; }
この関数は、スクロールバーコントロールの横幅を設定します。
デフォルト値: SFZListBoxControl::DEFAULT_BAR_WIDTH
SFZListBoxControl::DEFAULT_BAR_WIDTH の値は SFZListBoxControl::DefaultEnum を参照してください。
スクロールバーコントロールの幅について | |
---|---|
スクロールバーコントロールの幅として、4 ピクセル以上の値を指定できます。 減分・増分矢印を矩形領域内にバランス良く描画するには、5 以上の奇数を指定することを推奨します。 |
[ public ] Void SetScrollDirection( DirectionEnum param // 設定する値 );
この関数は、スクロール移動方向を設定します。
デフォルト値: SFZListBoxControl::DEFAULT_DIRECTION
SFZListBoxControl::DEFAULT_DIRECTION の値は SFZListBoxControl::DirectionEnum を参照してください。
この関数は、スクロールインターバルを設定します。[単位:ミリ秒]
デフォルト値: SFZListBoxControl::DEFAULT_SCROLL
SFZListBoxControl::DEFAULT_SCROLL の値は SFZListBoxControl::DefaultEnum を参照してください。
この関数は、連続スクロールフラグを設定します。
注意 | |
---|---|
連続スクロールフラグが true に設定されていると、 最上部または最下部の項目が選択されているときに、それぞれ UP キーまたは DOWM キーを押下すると、 最下部または最上部の項目が選択項目となります。 連続スクロールフラグが false の場合は、 最上部または最下部の項目が選択されているときに、それぞれ UP キーまたは DOWM キーを押下しても選択項目に変化はありません。 |
この関数は、スクロール移動量を設定します。[単位:ピクセル]
デフォルト値: SFZListBoxControl::DEFAULT_STEP
SFZListBoxControl::DEFAULT_STEP の値は SFZListBoxControl::DefaultEnum を参照してください。
[ public ] Void SetSelBackColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、選択項目の背景色を設定します。
デフォルト値: SFXRGBColor(0x11, 0x22, 0xBB, 0x00)[青色]
選択項目の前景色 | |
---|---|
SFZListBoxControl::SetSelForeColor 関数の解説を参照してください。 |
非選択項目の背景色 | |
---|---|
SFZListBoxControl::SetItemBackColor 関数の解説を参照してください。 |
非選択項目の前景色 | |
---|---|
SFZListBoxControl::SetItemForeColor 関数の解説を参照してください。 |
SFZListBoxControl::GetSelBackColor | SFZListBoxControl::GetSelForeColor | SFZListBoxControl::SetSelForeColor | SFZListBoxControl::SetItemBackColor | SFZListBoxControl::SetItemForeColor | SFXRGBColor
[ public ] Void SetSelForeColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、選択項目の前景色(テキストを描画する色)を設定します。
デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色]
SFZListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 またはリストボックスコントロールの状態が非活性化状態にあるときは、 この関数によって設定される色で項目のテキストは描画されません。
このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色でテキストは描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
選択項目の背景色 | |
---|---|
SFZListBoxControl::SetSelBackColor 関数の解説を参照してください。 |
非選択項目の前景色 | |
---|---|
SFZListBoxControl::SetItemForeColor 関数の解説を参照してください。 |
非選択項目の背景色 | |
---|---|
SFZListBoxControl::SetItemBackColor 関数の解説を参照してください。 |
SFZListBoxControl::GetSelForeColor | SFZListBoxControl::SetSelBackColor | SFZListBoxControl::SetItemForeColor | SFZListBoxControl::SetItemBackColor | SFZListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor
この関数は、 リストボックスコントロールの UP キーを設定します。
デフォルト値: AVK_UP
注意 | |
---|---|
UP キーが押下された場合、 現在の選択項目よりも1つ上の項目がフレックスリストの新しい選択項目になります。 新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の上端の位置に来るようにスクロールします。 連続スクロールフラグの値が true、かつ、 現在の選択項目が先頭の項目であるときに UP キーを押下すると、 末尾の項目が新しい選択項目となり、実領域の上端の位置に来るようにスクロールします。 このとき、先頭の項目は上から 2 行目の位置に表示されます(末尾の項目は最上行に表示されます)。 |
SFZListBoxControl::GetUpKey | SFZListBoxControl::GetDownKey | SFZListBoxControl::SetDownKey | SFZListBoxControl::SetScrollRepeat SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType
この関数は、スクロールが開始されるまでの待ちインターバルを設定します。[単位: ミリ秒]
デフォルト値: SFZListBoxControl::DEFAULT_WAIT
SFZListBoxControl::DEFAULT_WAIT の値は SFZListBoxControl::DefaultEnum を参照してください。
enum CodeEnum { CODE_TYPE = four_char_code('c', 'l', 's', 't') }; SFMTYPEDEFTYPE(CodeEnum)
enum DefaultEnum { DEFAULT_WAIT = 1000, // スクロール開始までの待ち時間(単位:ミリ秒) DEFAULT_SCROLL = 100, // スクロールインターバル(単位:ミリ秒) DEFAULT_STEP = -1, // スクロール移動量(単位:ピクセル)[ −1 の場合は使用しているフォントの半角空白文字(" ")一文字分の横幅になる] DEFAULT_BAR_WIDTH = 5 // スクロールバーの幅(単位:ピクセル) }; SFMTYPEDEFTYPE(DefaultEnum)
enum DirectionEnum { DIRECTION_LEFT = 0, // 左へスクロール DIRECTION_RIGHT, // 右へスクロール DEFAULT_DIRECTION = DIRECTION_LEFT // デフォルト値: 左へスクロール }; SFMTYPEDEFTYPE(DirectionEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |