前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFZFlexListBoxControl
フレックスリストボックスを表すコントロールです。
#include <SFZFlexListBoxControl.h.hpp>
class SFZFlexListBoxControl : public SFYBoxControl;
SFMTYPEDEFCLASS(SFZFlexListBoxControl)

継承図

SFZFlexListBoxControl クラスの継承図

協調図

SFZFlexListBoxControl クラスの協調図

解説

■ 仕様と使い方

SFZFlexListBoxControl は、 リストの中から項目をひとつ選択させるための SFZListBoxControl クラスよりも高機能なリストボックスコントロール用クラスです。

□フレックスリストボックスコントロールの仕様

以下のように、個々の項目は左からヘッダ部、ボディ部、フッタ部の3つのパートに分かれます。

  1. ヘッダ部: SFXWideString クラスのキーアイコンまたは項目番号などのテキストから構成されます。
  2. ボディ部: アイコン画像や文字列から構成されます(ボディ部は項目の主な内容となります)。
  3. フッタ部: アイコン画像から構成されます。
[Note] 注意
  • ヘッダ部とフッタ部の水平アライメントは、常に左寄せ、右寄せです。 ボディ部の水平アライメントは、 SFZFlexListBoxControl::SetHorizontalAlign 関数を使用して指定できます。
  • ボディ部はトグル状態の設定により、 選択項目について複数行文字列表示にしたり、アイコン画像と文字列の順序を入れ替えることができます。
  • SFZFlexListBoxControl::SetHorizontalAlign 関数を使用して指定する、 水平アライメントはボディ部の後者に位置する要素にのみ(デフォルトは文字列)適用されます。
  • SFZFlexListBoxControl::SetVerticalAlign 関数を使用して指定する、 垂直アライメントは全てのパートに適用されます。

SFZFlexListBoxControl クラスと SFZListBoxControl クラスの相違点

内容 SFZListBoxControl SFZFlexListBoxControl
ヘッダ (キーアイコン) WChar SFXWideString
アイコン画像 × ○ (ボディ部とフッタ部)
コマンド ID ×
項目の高さ 一定 可変 (文字列や画像の高さに依存)
項目選択時の表示切り替え × ○ (トグル状態により一部動作変更可)
複数行文字列 × ○ (選択時のみ)
文字列のアライメント ×
項目の上下移動 △ 1項目のみ ○ 1項目 / ページ / スナップ
構造体での項目追加 ×
配列での複数項目追加 ×
項目の背景色 (リストカラー) アイテムごとに背景色を設定できる 偶数行用と奇数行用に2種類の背景色を設定できる
パフォーマンスとメモリ使用量 ○ 項目の数が数千でも軽い △ 項目の数が数百以上になると、インスタンス破壊時にレスポンスが低下し、メモリ使用量も増大する(※)
[Note] パフォーマンスとメモリ使用量

SFZFlexListBoxControl クラスでは、 各項目はウィジェットクラスを使用して実装されています。 項目数に比例して内部で管理するレスポンダの数が増加するので、 SFZFlexListBoxControl インスタンスを破棄するタイミングでパフォーマンスが劣化する恐れがあります。 また、メモリ使用量に関しても、同様のことが言えます。

項目数が数百以上の場合は、 SFZListBoxControl クラスを利用することを推奨します。

□フレックスリストボックスコントロールの使い方

項目を追加するには、 SFZFlexListBoxControl::Insert / SFZFlexListBoxControl::InsertFirst / SFZFlexListBoxControl::InsertLast 関数を使います。 項目を削除するには、 SFZFlexListBoxControl::Remove / SFZFlexListBoxControl::RemoveFirst / SFZFlexListBoxControl::RemoveLast 関数を使います。 SFZFlexListBoxControl::Clear 関数を呼び出すと、すべての項目が削除されます。

SFZFlexListBoxControl::SetScrollUpKey 関数で設定された ScrollUp キー、または SFZFlexListBoxControl::SetScrollDownKey 関数で設定された ScrollDown キーを使用して選択項目を項目単位で移動できます。

SFZFlexListBoxControl::SetPageUpKey 関数で設定された PageUp キー、または SFZFlexListBoxControl::SetPageDownKey 関数で設定された PageDown キーを使用して選択項目をページ単位で移動できます。

SFZFlexListBoxControl::SetSnapUpKey 関数で設定された SnapUp キー、または SFZFlexListBoxControl::SetSnapDownKey 関数で設定された SnapDown キーを使用して選択項目を最上位項目または最下位項目に移動できます。

選択項目が移動した場合は、 値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] が発生します。

[Note] 注意
この値イベントは、フレックスリストボックスコントロールの内部ハンドラ内で発生します。

選択項目は、 SFZFlexListBoxControl::SetTextColor 関数で設定された選択項目の文字列の色、 SFZFlexListBoxControl::SetSelectListColor 関数で設定された背景色で描画されます。

非選択項目は、 SFZFlexListBoxControl::SetTextColor 関数で設定された非選択項目の文字列の色、 奇数番目の項目は SFZFlexListBoxControl::SetOddListColor 関数、 偶数番目の項目は SFZFlexListBoxControl::SetEvenListColor 関数で設定された背景色でそれぞれ描画されます。

SFZFlexListBoxControl::SetItemEnable 関数によって設定される有効フラグが "false" である項目は、 テキストは SFZFlexListBoxControl::SetTextColor 関数で設定された色を基にして「無効な項目」用に計算された色で描画されます。 背景も奇数番目と偶数番目に応じて SFZFlexListBoxControl::SetOddListColorSFZFlexListBoxControl::SetEvenListColor 関数で設定された色を基にして「無効な項目」用に計算された色でそれぞれ塗り潰されます。 ただし、 選択項目の背景は、 常に SFZFlexListBoxControl::SetSelectListColor 関数で設定された色で塗り潰されます。 また、このコントロールの状態が非活性状態であるときは、 すべての項目が 有効フラグが "false" であるときと同じ処理で描画されます。

その他、 SFZFlexListBoxControl::SetItemAccessKey 関数を使用して項目にアクセスキーを設定したり、 SFZFlexListBoxControl::SetGridLineEnable 関数と SFZFlexListBoxControl::SetGridLineColor 関数を使用してグリッド線を表示することも可能です。 項目内のマージンは SFZFlexListBoxControl::SetListMargin 関数で設定します。

デフォルトの実装では、 フレックスリストボックスコントロール[SFZFlexListBoxControl]は 下記の結果イベント[SFEVT_RESPONDER_RESULT]を受信します。

開発者は、これらの結果イベントを受信するハンドラを登録できます。

フレックスリストボックスコントロールの操作キーは、SFYBoxControl::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーがフレックスリストボックスコントロールの操作キーとして割り当てられています。

アクセスキーは、SFZFlexListBoxControl::SetItemAccessKey 関数を使用して設定します。

ESCAPE キーは、SFZFlexListBoxControl::SetEscapeKey 関数を使用して設定します。 デフォルトでは、クリアキーが ESCAPE キーとして割り当てられています。

[Caution] 注意
選択項目が SFZFlexListBoxControl::SetItemEnable 関数により無効化("false" が設定)されているとき、 結果イベントは発生しません。

参照: 結果イベント[SFEVT_RESPONDER_RESULT] | SFZFlexListBoxControl::HandleOperateKey | SFZFlexListBoxControl::HandleAccessKey | SFZFlexListBoxControl::HandleEscapeKey

■フレックスリストボックスを生成するためのコード

Void UserClass::Main(Void)
{
    SFZWindowSmp                    window;
    SFZFlexListBoxControlSmp        list;
    SFZFlexListBoxControl::ItemRec  item;
    SFBShellSmp                     shell(SFBShell::GetInstance());
    SFBImageSmp                     normal(shell->LoadResImage("userclass.bar", IDI_OBJECT_5001));
    SFBImageSmp                     select(shell->LoadResImage("userclass.bar", IDI_OBJECT_5002));
    SFBImageSmp                     disable(shell->LoadResImage("userclass.bar", IDI_OBJECT_5003));
    SFCError                        error(SFERR_NO_ERROR);

    // ウインドウを生成する
    window = SFZWindow::NewInstance();
    window->SetParent(GetThis());
    window->SetBackgroundColor(SFXRGBColor(0xDD, 0xFF, 0xDD, 0x00));
    window->SetRealBound(GetLocalBound());
    window->SetState(true, true, true, true);

    // [必須] リストボックスを生成する
    list = SFZFlexListBoxControl::NewInstance(&error);

    // [必須] 親をウィンドウに設定する
    list->SetParent(window);

    // [任意] 偶数番目の項目の背景色を設定する
    list->SetEvenListColor(SFXRGBColor(0xFF, 0xFF, 0xCC, 0x00));

    // [任意] 奇数番目の項目の背景色を設定する
    list->SetOddListColor(SFXRGBColor(0xFF, 0xCC, 0xFF, 0x00));

    // [任意] 通常時の水平アライメントを中央揃えにする
    list->SetHorizontalAlign(SFZFlexListBoxControl::NORMAL, SFZFlexListBoxControl::HORIZONTAL_CENTER);

    // [任意] リスト項目間のマージンを設定する
    list->SetListMargin(SFXMargin(2, 1, 2, 1));

    // [任意] グリッドライン線を無効にする (デフォルト)
    list->SetGridLineEnable(false);

    // [任意] スペースサイズを設定する
    list->SetSpaceSize(4);

    // [任意] 連続スクロールするように設定する
    list->SetScrollRepeat(true);

    // [任意] スクロールバーの幅を設定する
    list->SetScrollBarWidth(5);

    // [任意] 選択時は複数行文字列表示にする
    list->SetToggle(SFZFlexListBoxControl::TOGGLE_MULTIPLE_BODY_TEXT);

    // ここではアイテム構造体を利用して項目を追加する。
    // 文字列だけでも追加できるが画像を利用する場合は、
    // アイテム構造体を利用した方が簡単。[選択]

    // [アイテム構造体を利用する場合は必須] アイテム構造体のプロパティを設定する
    item.property.enable = true;  // 有効フラグを true に設定する
    item.property.key = 0;        // アクセスキーを設定しない    
    item.property.id = SFZFlexListBoxControl::INVALID_COMMAND_ID; // コマンド ID を設定しない

    // [任意] アイテム構造体のボディ部属性の画像を設定する
    item.normal.body.icon = normal;
    item.select.body.icon = select;

    // [必須] 20個の項目を追加する
    for (SInt32 i = 0;  i < 20 ; ++i) {

        // [アイテム構造体を利用する場合は必須] アイテム構造体のヘッダ部属性とボディ部属性のテキストを設定する
        item.normal.header.text.Set(SFXWideString::Format("%02d", i));
        item.normal.body.text.Set(SFXWideString::Format("List item %02d", i));
        item.select.body.text.Set(SFXWideString::Format("The item %02d is selected.", i));

        // 5番目の項目だけアイテム構造体のフッタ部属性のアイコン画像を設定する
        if (i == 5) {
            item.normal.footer.icon = disable;
        }
        else {
            item.normal.footer.icon = SFBImageSmp::EmptyInstance();
        }

        // 末尾に挿入する
        list->InsertLast(item);
    }

    // [任意] 5番目の項目を無効にする
    list->SetItemEnable(5, false);

    // [必須] 最適な領域を計算して実領域を設定する
    list->SetRealBound(list->GetSuitableBound(window->GetLocalBound().Deflate(10, 10)).SnapCenterMiddle(GetLocalBound().GetCenterMiddle()));

    // [必須] 状態を (true, true, true, true) に設定する
    list->SetState(true, true, true, true);

    // [任意] 1番目の項目を選択する (※)
    list->SetCurrentValue(1);

    // (※注意)
    // フレックスリストボックスの状態を「操作可能状態」にしてから現在の選択項目を設定する
    //

    return;
}

実行結果:

参照

SFYBoxControl | SFZListBoxControl | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | 結果イベント[SFEVT_RESPONDER_RESULT] | 状態

メンバ

コンストラクタ/デストラクタ
SFZFlexListBoxControl( Void )
SFZFlexListBoxControl クラスのコンストラクタです。
~SFZFlexListBoxControl( Void )
SFZFlexListBoxControl クラスのデストラクタです。
パブリック関数
Void Clear( Void )
すべての項目を削除します。
Bool ContainsAccessKey( AVKType key )
指定されたアクセスキーが登録されているかどうかを判定します。
SInt32 FirstIndexOfCommandId( UInt32 id )
先頭から検索して、指定されたコマンド ID と一致する最初の項目のインデックスを取得します。
SInt32 FirstIndexOfCommandId( UInt32 id , SInt32 index )
先頭から検索して、指定されたコマンド ID と一致する最初の項目のインデックスを取得します。
Bool GetAccessKeyEnable( Void )
アクセスキー有効フラグの値を取得します。
AVKType GetEscapeKey( Void )
ESCAPE キーを取得します。
SFXRGBColorConstRef GetEvenListColor( Void )
偶数番目の非選択項目の背景色を取得します。
AEEFont GetFont( TextEnum textEnum )
指定された文字列定数に対応するフォントを取得します。
SFXRGBColorConstRef GetGridLineColor( Void )
グリッド線の色を取得します。
Bool GetGridLineEnable( Void )
グリッド線有効フラグの値を取得します。
HorizontalEnum GetHorizontalAlign( Void )
水平アライメントの値を取得します。
ItemRec GetItem( SInt32 index , SFCErrorPtr exception = null )
指定された項目のアイテム構造体を取得します。
AVKType GetItemAccessKey( SInt32 index )
指定された項目のアクセスキーを取得します。
UInt32 GetItemCommandId( SInt32 index )
指定された項目のコマンド ID を取得します。
SInt32 GetItemCount( Void )
項目の数を取得します。
Bool GetItemEnable( SInt32 index )
指定された項目の有効フラグの値を取得します。
SInt16 GetItemHeight( SInt32 index )
指定された項目の高さを取得します。[単位:ピクセル]
SFBImageSmpConstRef GetItemIconImage( SInt32 index , IconEnum iconEnum )
指定された項目内の指定されたアイコン画像を取得します。
SFXWideStringConstRef GetItemText( SInt32 index , TextEnum textEnum )
指定された項目の指定された文字列定数に対応するテキストを取得します。
SFXMarginConstRef GetListMargin( Void )
リスト項目のマージンを取得します。
SFXRGBColorConstRef GetOddListColor( Void )
奇数番目の非選択項目の背景色を取得します。
AVKType GetPageDownKey( Void )
項目を下方向に 1 ページ分スクロールする PageDown キーを取得します。
AVKType GetPageUpKey( Void )
項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
SFYScrollBarControlSmpConstRef GetScrollBarControl( Void )
スクロールバーコントロールを取得します。
SInt16 GetScrollBarWidth( Void )
スクロールバーの横幅を取得します。[単位:ピクセル]
DirectionEnum GetScrollDirection( Void )
スクロールの移動方向を取得します。
AVKType GetScrollDownKey( Void )
項目を下方向に1項目スクロールする ScrollDown キーを取得します。
UInt32 GetScrollInterval( Void )
スクロールインターバルを取得します。[単位:ミリ秒]
Bool GetScrollRepeat( Void )
連続スクロールフラグの値を取得します。
SInt16 GetScrollStep( Void )
スクロール移動量を取得します。[単位:ピクセル]
AVKType GetScrollUpKey( Void )
項目を上方向に1項目スクロールする ScrollUp キーを取得します。
SFXRGBColorConstRef GetSelectListColor( Void )
選択項目の背景色を取得します。
AVKType GetSnapDownKey( Void )
項目を下端までスクロールする SnapDown キーを取得します。
AVKType GetSnapUpKey( Void )
項目を上端までスクロールする SnapUp キーを取得します。
SInt16 GetSpaceSize( Void )
項目の要素間のスペースサイズを取得します。[単位:ピクセル]
SFXRGBColorConstRef GetTextColor( TextEnum textEnum )
指定された文字列定数の色を取得します。
Toggle GetToggle( Void )
トグル状態を取得します。
VerticalEnum GetVerticalAlign( Void )
垂直アライメントの値を取得します。
UInt32 GetWaitInterval( Void )
項目のスクロール開始までの待ち時間を取得します。[単位:ミリ秒]
SFCError Insert( SInt32 index , ItemRecConstRef item )
指定されたインデックスの位置に項目を挿入します。
SFCError Insert( SInt32 index , ItemRecConstPtr item , SInt32 length )
指定されたインデックスの位置に項目を挿入します。
SFCError Insert( SInt32 index , SFXWideStringConstRef text )
指定されたインデックスの位置に項目を挿入します。
SFCError Insert( SInt32 index , SFXWideStringConstPtr text , SInt32 length )
指定されたインデックスの位置に項目を挿入します。
SFCError InsertFirst( ItemRecConstRef item )
先頭に項目を挿入します。
SFCError InsertFirst( ItemRecConstPtr item , SInt32 length )
先頭に項目を挿入します。
SFCError InsertFirst( SFXWideStringConstRef text )
先頭に項目を挿入します。
SFCError InsertFirst( SFXWideStringConstPtr text , SInt32 length )
先頭に項目を挿入します。
SFCError InsertLast( ItemRecConstRef item )
末尾に項目を挿入します。
SFCError InsertLast( ItemRecConstPtr item , SInt32 length )
末尾に項目を挿入します。
SFCError InsertLast( SFXWideStringConstRef text )
末尾に項目を挿入します。
SFCError InsertLast( SFXWideStringConstPtr text , SInt32 length )
末尾に項目を挿入します。
SInt32 LastIndexOfCommandId( UInt32 id )
末尾から検索して、指定したコマンド ID と一致する最初の項目のインデックスを取得します。
SInt32 LastIndexOfCommandId( UInt32 id , SInt32 index )
末尾から検索して、指定したコマンド ID と一致する最初の項目のインデックスを取得します。
static
SFZFlexListBoxControlSmp
NewInstance( SFCErrorPtr exception = null )
新しいインスタンスを作成します。
Void Remove( SInt32 begin , SInt32 end )
指定されたインデックスの位置または範囲の項目を削除します。
Void Remove( SInt32 index )
指定されたインデックスの位置または範囲の項目を削除します。
Void RemoveFirst( Void )
先頭の項目を削除します。
Void RemoveLast( Void )
末尾の項目を削除します。
Void SetAccessKeyEnable( Bool param )
アクセスキー有効フラグを設定します。
Void SetEscapeKey( AVKType param )
ESCAPE キーを設定します。
Void SetEvenListColor( SFXRGBColorConstRef param )
偶数番目の非選択項目の背景色を設定します。
Void SetFont( TextEnum textEnum , AEEFont param )
指定された文字列定数に対応するフォントを設定します。
Void SetGridLineColor( SFXRGBColorConstRef param )
グリッド線の色を設定します。
Void SetGridLineEnable( Bool param )
グリッド線有効フラグを設定します。
Void SetHorizontalAlign( HorizontalEnum param )
水平アライメントを設定します。
SFCError SetItem( SInt32 index , ItemRecConstRef item )
指定された項目のアイテム構造体を設定します。
SFCError SetItemAccessKey( SInt32 index , AVKType key )
指定された項目のアクセスキーを設定します。
SFCError SetItemCommandId( SInt32 index , UInt32 id )
指定された項目のコマンド ID を設定します。
SFCError SetItemEnable( SInt32 index , Bool param )
指定された項目の有効フラグを設定します。
SFCError SetItemIconImage( SInt32 index , IconEnum iconEnum , SFXPathConstRef path )
指定された項目にアイコン画像を設定します。
SFCError SetItemIconImage( SInt32 index , IconEnum iconEnum , SFXPathConstRef path , UInt16 id )
指定された項目にアイコン画像を設定します。
SFCError SetItemIconImage( SInt32 index , IconEnum iconEnum , SFBImageSmpConstRef param )
指定された項目にアイコン画像を設定します。
SFCError SetItemText( SInt32 index , TextEnum textEnum , SFXPathConstRef path , UInt16 id )
指定された項目に指定された文字列定数に対応するテキストを設定します。
SFCError SetItemText( SInt32 index , TextEnum textEnum , SFXWideStringConstRef param )
指定された項目に指定された文字列定数に対応するテキストを設定します。
Void SetListMargin( SFXMarginConstRef param )
リスト項目のマージンを設定します。
Void SetOddListColor( SFXRGBColorConstRef param )
奇数番目の非選択項目の背景色を設定します。
Void SetPageDownKey( AVKType param )
項目を下方向に 1 ページ分スクロールする PageDown キーを設定します。
Void SetPageUpKey( AVKType param )
項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
SFCError SetScrollBarControl( SFYScrollBarControlSmpConstRef param )
スクロールバーコントロールを設定します。
Void SetScrollBarWidth( SInt16 param )
スクロールバーの横幅を設定します。[単位:ピクセル]
Void SetScrollDirection( DirectionEnum param )
スクロールの移動方向を設定します。
Void SetScrollDownKey( AVKType param )
項目を下方向に1項目スクロールする ScrollDown キーを設定します。
Void SetScrollInterval( UInt32 param )
スクロールインターバルを設定します。[単位:ミリ秒]
Void SetScrollRepeat( Bool param )
連続スクロールフラグを指定された値に設定します。
Void SetScrollStep( SInt16 param )
スクロール移動量を設定します。[単位:ピクセル]
Void SetScrollUpKey( AVKType param )
項目を上方向に1項目スクロールする ScrollUp キーを設定します。
Void SetSelectListColor( SFXRGBColorConstRef param )
選択項目の背景色を設定します。
Void SetSnapDownKey( AVKType param )
項目を下端までスクロールする SnapDown キーを設定します。
Void SetSnapUpKey( AVKType param )
項目を上端までスクロールする SnapUp キーを設定します。
Void SetSpaceSize( SInt16 param )
項目の要素間スペースサイズを設定します。[単位:ピクセル]
Void SetTextColor( TextEnum textEnum , SFXRGBColorConstRef param )
指定された文字列の色を設定します。
Void SetToggle( Toggle param )
トグル状態を設定します。
Void SetVerticalAlign( VerticalEnum param )
垂直アライメントを設定します。
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 GetMaximumValue( Void ) (SFYControl から継承)
コントロールの最大値を取得します。
SInt32 GetMinimumValue( Void ) (SFYControl から継承)
コントロールの最小値を取得します。
SInt32 GetNthBackward( Void ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Void ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
AVKType GetOperateKey( Void ) (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 から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
プロテクト関数
Bool 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 )
ESCAPE キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
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
SFZFlexListBoxControl クラスを表す定数です。
DefaultEnum
各種パラメータのデフォルト値を表します。
DirectionEnum
スクロールの移動方向を表します。
HorizontalEnum
水平方向のアライメントを表す定数です。
IconEnum
操作対象のアイコン画像を指定する定数です。
ItemRec
項目の各種属性を表す構造体です。 (アイテム構造体)
SelectEnum
選択時かどうかを表す定数です。
TextEnum
操作対象の文字列を指定する定数です。
ToggleEnum
トグル状態の設定に使用する定数です。
VerticalEnum
垂直方向のアライメントを表す定数です。

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

解説

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

  1. タイプを "cflb" に設定します。
  2. デフォルトのスクロールバーコントロールの初期化を行います。
  3. スクロールバーの横幅を SFZFlexListBoxControl::DEFAULT_BAR_WIDTH に設定します。
  4. 連続スクロールフラグを "false" に設定します。
  5. インデックス値 0 の項目を現在の選択項目として実領域内の最上位に設定します。
  6. 非選択時項目の背景色を SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色] に設定します。
  7. 非選択時項目の前景色を SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色] に設定します。
  8. 選択時項目の背景色を SFXRGBColor(0x11, 0x22, 0xBB, 0x00)[青色] に設定します。
  9. 選択時項目の前景色を SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色] に設定します。
  10. グリッド線の色を SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色] に設定します。
  11. グリッド線描画フラグを "false" に設定します。
  12. リスト項目のマージンを SFXMargin(1, 1, 1, 1) に設定します。
  13. アクセスキー有効フラグの値を "true" に設定します。
  14. 項目の要素間のスペースサイズを SFZFlexListBoxControl::DEFAULT_SPACE に設定します。
  15. 水平アライメントの値を SFZFlexListBoxControl::DEFAULT_HORIZONTAL に設定します。[選択時と非選択時のヘッダー部とボディ部に関して]
  16. 垂直アライメントの値を SFZFlexListBoxControl::DEFAULT_VERTICAL に設定します。[選択時と非選択時のヘッダー部とボディ部に関して]
  17. フォントを AEE_FONT_NORMAL に設定します。[選択時と非選択時のヘッダー部とボディ部に関して]
  18. トグル状態を 0 に設定します。
  19. 現在選択されている項目のスクロール開始までの待ち時間を SFZFlexListBoxControl::DEFAULT_WAIT に設定します。
  20. 現在選択されている項目のスクロール移動方向を SFZFlexListBoxControl::DEFAULT_DIRECTION に設定します。
  21. 現在選択されている項目のスクロールインターバルを SFZFlexListBoxControl::DEFAULT_SCROLL に設定します。
  22. 現在選択されている項目のスクロール移動量を SFZFlexListBoxControl::DEFAULT_STEP に設定します。
  23. 操作キーを AVK_SELECT に設定します。
  24. ESCAPE キーを AVK_CLR に設定します。
  25. ScrollUp キーを AVK_UP に設定します。
  26. ScrollDown キーを AVK_DOWN に設定します。
  27. PageUp キーを AVK_TXPGUP に設定します。
  28. PageDown キーを AVK_TXPGDOWN に設定します。
  29. SnapUp キーを AVK_TXHOME に設定します。
  30. SnapDown キーを AVK_TXEND に設定します。
  31. 下表にあるハンドラをレスポンダに登録します。

表 262. イベントハンドラ

イベント ハンドラの内容
SFYBoxControl::SetOperateKey で設定された操作キーの SFEVT_KEY イベント SFZFlexListBoxControl::HandleOperateKey 関数を呼び出します。
SFZFlexListBoxControl::SetItemAccessKey で設定されたアクセスキーの SFEVT_KEY イベント SFZFlexListBoxControl::HandleOperateKey 関数を呼び出します。
SFZFlexListBoxControl::SetEscapeKey で設定された ESCAPE キーの SFEVT_KEY イベント SFZFlexListBoxControl::HandleEscapeKey 関数を呼び出します。
SFZFlexListBoxControl::SetScrollUpKey で設定された ScrollUp キーの SFEVT_KEY イベント 1つ上の項目を現在の選択項目にします(必要に応じて1項目分上にスクロールします)。
SFZFlexListBoxControl::SetScrollDownKey で設定された ScrollDown キーの SFEVT_KEY イベント 1つ下の項目を現在の選択項目にします(必要に応じて1項目分下にスクロールします)。
SFZFlexListBoxControl::SetPageUpKey で設定された PageUp キーの SFEVT_KEY イベント 1ページ上にスクロールします。
SFZFlexListBoxControl::SetPageDownKey で設定された PageDown キーの SFEVT_KEY イベント 1ページ下にスクロールします。
SFZFlexListBoxControl::SetSnapUpKey で設定された SnapUp キーの SFEVT_KEY イベント 上端までスクロールします。
SFZFlexListBoxControl::SetSnapDownKey で設定された SnapDown キーの SFEVT_KEY イベント 下端までスクロールします。
現在の選択項目が変更になった時に発生する値イベント[SFEVT_RESPONDER_VALUE] SFYControl::SetCurrentValue 関数を呼び出して現在選択されている項目のインデックスを現在値に設定します。
領域サイズの垂直成分が変化した時に発生する値イベント[SFEVT_RESPONDER_BOUND] このフレックスリストボックスを再配置します。
[Note] 注意
SFZFlexListBoxControl クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。

内部実装

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

/*protected */SFZFlexListBoxControl::SFZFlexListBoxControl(Void) static_throws
{
    static SFXRGBColor::AtomRecConst            rgb[] = {
        {{{0x00, 0x00, 0x00, 0x00}}},           // color.normal.text
        {{{0x00, 0xFF, 0xFF, 0xFF}}}            // color.select.text
    };
    static SFXEventRange::AtomRecConst          lrange[] = {
        #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_VALUE,  SFEVT_RESPONDER_VALUE,  SFP16_VALUE_CURRENT,  SFP16_VALUE_CURRENT}
    };
    static SFXEventRange::AtomRecConst          vrange[] = {
        { SFEVT_RESPONDER_VALUE,  SFEVT_RESPONDER_VALUE,  SFP16_VALUE_CURRENT,  SFP16_VALUE_CURRENT},
        { SFEVT_RESPONDER_BOUND,  SFEVT_RESPONDER_BOUND,     SFP16_BOUND_REAL,  SFP16_BOUND_VIRTUAL}
    };
    SFYHandler::RuleRec                         lrule[lengthof(lrange)];
    SFYHandler::RuleRec                         vrule[lengthof(vrange)];
    SFYHandler::RuleRec                         brule[lengthof(brange)];
    SFCError                                    error;

    if (static_try()) {
        SetType(CODE_TYPE);
        lrule[0].spp = XANDLER_FUNCTION(OnShield);
        lrule[0].reference = this;
        lrule[1].spp = XANDLER_FUNCTION(OnKey);
        lrule[1].reference = this;
        lrule[2].spp = XANDLER_FUNCTION(OnCurrentValue);
        lrule[2].reference = this;
        static_throw(RegisterHandler(atomic_cast(lrange), lrule, lengthof(lrange)));
        if (static_try()) {
            if ((_vertical = SFYVerticalFlexListControl::NewInstance(&error)) != null) {
                static_throw(_vertical->SetParent(GetThis()));
                if (static_try()) {
                    vrule[0].spp = XANDLER_FUNCTION(OnVerticalCurrentValue);
                    vrule[0].reference = this;
                    vrule[1].spp = XANDLER_FUNCTION(OnVerticalBound);
                    vrule[1].reference = this;
                    static_throw(_vertical->RegisterHandler(atomic_cast(vrange), vrule, lengthof(vrange)));
                    if (static_try()) {
                        _vertical->SetPropertyTransparent(true);
                        _vertical->SetState(true, true, true, true);
                        if ((_bar.smp = SFZScrollBarControl::NewInstance(&error)) != null) {
                            static_throw(_bar.smp->SetParent(GetThis()));
                            if (static_try()) {
                                _bar.smp->SetOrientation(SFYScrollBarControl::VERTICAL);
                                brule[0].spp = XANDLER_FUNCTION(OnBarScrollEnable);
                                brule[0].reference = this;
                                static_throw(_bar.smp->RegisterHandler(atomic_cast(brange), brule, lengthof(brange)));
                                if (static_try()) {
                                    _bar.smp->SetState(true, true, false, false);
                                    _bar.width = DEFAULT_BAR_WIDTH;
                                    _key.sup = AVK_UP;
                                    _key.sdown = AVK_DOWN;
                                    _key.pup = AVK_TXPGUP;
                                    _key.pdown = AVK_TXPGDOWN;
                                    _key.nup = AVK_TXHOME;
                                    _key.ndown = AVK_TXEND;
                                    _key.escape = AVK_CLR;
                                    _accKeyEnable = true;
                                    _itemEmpty.property.key = static_cast<AVKType>(0);
                                    _itemEmpty.property.id = INVALID_COMMAND_ID;
                                    _itemEmpty.property.enable = false;
                                    _sub.normal.header.color.Set(rgb[0]);
                                    _sub.normal.body.color.Set(rgb[0]);
                                    _sub.select.header.color.Set(rgb[1]);
                                    _sub.select.body.color.Set(rgb[1]);
                                    _sub.space = DEFAULT_SPACE;
                                    _sub.normal.horizontal = DEFAULT_HORIZONTAL;
                                    _sub.select.horizontal = DEFAULT_HORIZONTAL;
                                    _sub.normal.vertical = DEFAULT_VERTICAL;
                                    _sub.select.vertical = DEFAULT_VERTICAL;
                                    _sub.normal.header.font = AEE_FONT_NORMAL;
                                    _sub.normal.body.font = AEE_FONT_NORMAL;
                                    _sub.select.header.font = AEE_FONT_NORMAL;
                                    _sub.select.body.font = AEE_FONT_NORMAL;
                                    _sub.scroll.wait = DEFAULT_WAIT;
                                    _sub.scroll.interval = DEFAULT_SCROLL;
                                    _sub.scroll.step = DEFAULT_STEP;
                                    _sub.scroll.direction = DEFAULT_DIRECTION;
                                    _sub.toggle = 0;
                                }
                            }
                        }
                        else {
                            static_throw(error);
                        }
                    }
                }
            }
            else {
                static_throw(error);
            }
        }
    }
}// SFZFlexListBoxControl::SFZFlexListBoxControl //

/*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListBoxControl, OnShield, invoker, event)
{
    unused(invoker);
    return (event.GetP16() == GetScrollUpKey() ||
            event.GetP16() == GetScrollDownKey() ||
            event.GetP16() == GetPageUpKey() ||
            event.GetP16() == GetPageDownKey() ||
            event.GetP16() == GetSnapUpKey() ||
            event.GetP16() == GetSnapDownKey() ||
            event.GetP16() == GetOperateKey() ||
            event.GetP16() == GetEscapeKey() ||
            (GetAccessKeyEnable() && _vertical->ContainsAccessKey(static_cast<AVKType>(event.GetP16())))
    );
}// XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListBoxControl, OnShield) //

/*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListBoxControl, OnKey, invoker, event)
{
    Bool                                        result(false);

    unused(invoker);
    if (event.GetP16() == GetOperateKey()) {
        HandleOperateKey();
        result = true;
    }
    else if (event.GetP16() == GetEscapeKey()) {
        HandleEscapeKey();
        result = true;
    }
    else if (event.GetP16() == GetScrollUpKey()) {
        _vertical->ScrollUp();
        result = true;
    }
    else if (event.GetP16() == GetScrollDownKey()) {
        _vertical->ScrollDown();
        result = true;
    }
    else if (event.GetP16() == GetPageUpKey()) {
        _vertical->PageUp();
        result = true;
    }
    else if (event.GetP16() == GetPageDownKey()) {
        _vertical->PageDown();
        result = true;
    }
    else if (event.GetP16() == GetSnapUpKey()) {
        _vertical->SnapUp();
        result = true;
    }
    else if (event.GetP16() == GetSnapDownKey()) {
        _vertical->SnapDown();
        result = true;
    }
    else if (GetAccessKeyEnable() && _vertical->ContainsAccessKey(static_cast<AVKType>(event.GetP16()))) {
        result = HandleAccessKey(static_cast<AVKType>(event.GetP16()));
    }
    return result;
}// XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListBoxControl, OnKey) //

/*private */XANDLER_IMPLEMENT_VOIDVALUE(SFZFlexListBoxControl, OnCurrentValue, invoker, reason, value)
{
    unused(invoker); unused(reason);
    _vertical->SetCurrentValue(value);
    return;
}// XANDLER_IMPLEMENT_VOIDVALUE(SFZFlexListBoxControl, OnCurrentValue) //

/*private */XANDLER_IMPLEMENT_VOIDVALUE(SFZFlexListBoxControl, OnVerticalCurrentValue, 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(value);
    }
    return;
}// XANDLER_IMPLEMENT_VOIDVALUE(SFZFlexListBoxControl,, OnVerticalCurrentValue) //

/*private */XANDLER_IMPLEMENT_VOIDBOUND(SFZFlexListBoxControl, OnVerticalBound, invoker, reason, rectangle)
{
    SFXRectangle                                rx;
    SFXRectangle                                vx;
    SInt16                                      max;
    SInt16                                      cur;
    SInt16                                      page;

    unused(invoker);
    if (_bar.smp != null) {
        switch (reason) {
            case SFP16_BOUND_REAL:
                rx.Set(*rectangle);
                if (_bar.smp->GetOrientation() == SFYScrollBarControl::VERTICAL) {
                    page = rx.GetHeight();
                }
                else {
                    page = rx.GetWidth();
                }
                _bar.smp->SetPageValue(page);
                break;
            case SFP16_BOUND_VIRTUAL:
                vx.Set(*rectangle);
                if (_bar.smp->GetOrientation() == SFYScrollBarControl::VERTICAL) {
                    max = vx.GetHeight();
                    cur = -vx.GetTop();
                }
                else {
                    max = vx.GetWidth();
                    cur = -vx.GetLeft();
                }
                _bar.smp->SetMinimumValue(0);
                _bar.smp->SetMaximumValue(max);
                _bar.smp->SetCurrentValue(cur);
                break;
            default:
                break;
        }
    }
    return;
}// XANDLER_IMPLEMENT_VOIDBOUND(SFZFlexListBoxControl, OnVerticalBound) //

/*private */XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZFlexListBoxControl, OnBarScrollEnable, invoker, reason)
{
    unused(invoker); unused(reason);
    _bar.smp->SetState(_bar.smp->IsScrollable(), _bar.smp->IsScrollable(), false, false);
    Relocate();
    return;
}// XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZFlexListBoxControl, OnBarScrollEnable) //

/*protected */SFYFlexListControl::SFYFlexListControl(Void) static_throws
{
    static SFXRGBColor::AtomRecConst            rgb[] = {
        {{{0x00, 0xFF, 0xFF, 0xFF}}},           // color.even / color.odd   (white)
        {{{0x00, 0x11, 0x22, 0xBB}}},           // color.select             (blue)
        {{{0x00, 0x00, 0x00, 0x00}}}            // color.gridLine           (black)
    };
    static SFXMargin::AtomRecConst              margin[] = {
        {1, 1, 1, 1}
    };

    if (static_try()) {
        SetType(CODE_TYPE);
        _listMargin.Set(margin[0]);
        _repeat = false;
        _color.even.Set(rgb[0]);
        _color.odd.Set(rgb[0]);
        _color.select.Set(rgb[1]);
        _color.gridLine.Set(rgb[2]);
        _property.enable = true;
        _line = false;
    }
}// SFYFlexListControl::SFYFlexListControl //

参照

SFYResponder::SetType | SFZFlexListBoxControl::CodeEnum | SFZFlexListBoxControl::SetScrollBarWidth | SFYControl::GetCurrentValue | SFZFlexListBoxControl::SetScrollRepeat | SFZFlexListBoxControl::SetEvenListColor | SFZFlexListBoxControl::SetOddListColor | SFZFlexListBoxControl::SetSelectListColor | SFZFlexListBoxControl::SetTextColor | SFZFlexListBoxControl::SetGridLineColor | SFZFlexListBoxControl::SetListMargin | SFZFlexListBoxControl::SetGridLineEnable | SFZFlexListBoxControl::SetAccessKeyEnable | SFZFlexListBoxControl::SetFont | SFZFlexListBoxControl::SetSpaceSize | SFZFlexListBoxControl::SetToggle | SFZFlexListBoxControl::SetScrollDirection | SFZFlexListBoxControl::SetScrollInterval | SFZFlexListBoxControl::SetScrollStep | SFZFlexListBoxControl::SetWaitInterval | SFYBoxControl::SetOperateKey | SFZFlexListBoxControl::SetItemAccessKey | SFZFlexListBoxControl::HandleOperateKey | SFZFlexListBoxControl::SetEscapeKey | SFZFlexListBoxControl::HandleEscapeKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetPageUpKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetSnapDownKey | SFZFlexListBoxControl::HorizontalEnum | SFZFlexListBoxControl::VerticalEnum | SFZFlexListBoxControl::DirectionEnum | SFZFlexListBoxControl::DefaultEnum | SFZFlexListBoxControl::ToggleEnum | SFXMargin | SFXRGBColor | SFXEvent | タイプ | 実領域 | イベント | キーイベント[SFEVT_KEY] | 値イベント[SFEVT_RESPONDER_VALUE] | 領域イベント[SFEVT_RESPONDER_BOUND]


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

解説

このフレックスリストボックスコントロールからすべての項目を削除します。

内部実装

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

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

/*protected virtual */SFYFlexListControl::~SFYFlexListControl(Void)
{
    WidgetArray::Iterator                       itor;

    itor = _widget.GetFirstIterator();
    while (itor.HasNext()) {
        ::delete itor.GetNext();
    }
}// SFYFlexListControl::~SFYFlexListControl //

参照

SFZFlexListBoxControl::Clear


SFZFlexListBoxControl::Clear
すべての項目を削除します。
[ public ]
Void Clear(Void);

解説

この関数は、リストボックスからすべての項目を削除します。

参照

SFZFlexListBoxControl::Remove


SFZFlexListBoxControl::ContainsAccessKey
指定されたアクセスキーが登録されているかどうかを判定します。
[ public, const ]
Bool ContainsAccessKey(
    AVKType key   // アクセスキー
);

戻り値

  • 登録されているとき: true
  • そうでないとき: false

解説

この関数は、指定されたアクセスキーが登録されているかどうかを判定します。

参照

SFZFlexListBoxControl::SetAccessKeyEnable | AVKType


SFZFlexListBoxControl::FirstIndexOfCommandId
先頭から検索して、指定されたコマンド ID と一致する最初の項目のインデックスを取得します。
[ public, const ]
SInt32 FirstIndexOfCommandId(
    UInt32 id   // コマンド ID
);
[ public, const ]
SInt32 FirstIndexOfCommandId(
    UInt32 id      // コマンド ID
    SInt32 index   // 検索開始位置
);

戻り値

  • 成功したとき: 見つかった最初の位置のインデックス
  • 失敗したとき: -1

解説

この関数は、 指定されたコマンド ID を先頭から末尾に向かって検索し、最初に見つかった位置のインデックスを取得します。

[Note] 注意

検索開始位置を指定することで、先頭以外の位置から検索できます。

[Note] コマンド ID

コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。

参照

SFZFlexListBoxControl::SetItemCommandId | SFZFlexListBoxControl::LastIndexOfCommandId | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetAccessKeyEnable
アクセスキー有効フラグの値を取得します。
[ public, const ]
Bool GetAccessKeyEnable(Void);

戻り値

  • 有効であるとき: true
  • そうでないとき: false

解説

この関数は、アクセスキー有効フラグの値を取得します。

参照

SFZFlexListBoxControl::SetAccessKeyEnable


SFZFlexListBoxControl::GetEscapeKey
ESCAPE キーを取得します。
[ public, const ]
AVKType GetEscapeKey(Void);

戻り値

ESCAPE キー。

解説

この関数は、SFZFlexListBoxControl::SetEscapeKey 関数によって設定された ESCAPE キーを取得します。

参照

SFZFlexListBoxControl::SetEscapeKey


SFZFlexListBoxControl::GetEvenListColor
偶数番目の非選択項目の背景色を取得します。
[ public, const ]
SFXRGBColorConstRef GetEvenListColor(Void);

戻り値

偶数番目の非選択項目の背景色。

解説

この関数は、偶数番目の非選択項目の背景色を取得します。

参照

SFZFlexListBoxControl::SetEvenListColor


SFZFlexListBoxControl::GetFont
指定された文字列定数に対応するフォントを取得します。
[ public, const ]
AEEFont GetFont(
    TextEnum textEnum   // 文字列定数
);

戻り値

指定された文字列定数に対応するフォント。

解説

この関数は、指定された文字列定数に対応するフォントを取得します。

参照

SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::SetFont | BREW API AEEFont


SFZFlexListBoxControl::GetGridLineColor
グリッド線の色を取得します。
[ public, const ]
SFXRGBColorConstRef GetGridLineColor(Void);

戻り値

グリッド線の色。

解説

この関数は、グリッド線の色を取得します。

参照

SFZFlexListBoxControl::SetGridLineColor | SFZFlexListBoxControl::SetGridLineEnable


SFZFlexListBoxControl::GetGridLineEnable
グリッド線有効フラグの値を取得します。
[ public, const ]
Bool GetGridLineEnable(Void);

戻り値

グリッド線有効フラグの値。

解説

この関数は、グリッド線有効フラグの値を取得します。

参照

SFZFlexListBoxControl::SetGridLineEnable | SFZFlexListBoxControl::SetGridLineColor


SFZFlexListBoxControl::GetHorizontalAlign
水平アライメントの値を取得します。
[ public, const ]
HorizontalEnum GetHorizontalAlign(Void);

戻り値

水平アライメントの値。

解説

この関数は、水平アライメントの値を取得します。

参照

SFZFlexListBoxControl::SetHorizontalAlign | SFZFlexListBoxControl::HorizontalEnum


SFZFlexListBoxControl::GetItem
指定された項目のアイテム構造体を取得します。
[ public, const ]
ItemRec GetItem(
    SInt32 index                   // 項目のインデックス
    SFCErrorPtr exception = null   // エラー値ポインタ
);

戻り値

アイテム構造体(SFZFlexListBoxControl::ItemRec)。

解説

この関数は、指定された項目のアイテム構造体を取得します。

[Note] アイテム構造体

アイテム構造体については、SFZFlexListBoxControl::ItemRec の解説を参照してください。

参照

SFZFlexListBoxControl::SetItem | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetItemAccessKey
指定された項目のアクセスキーを取得します。
[ public, const ]
AVKType GetItemAccessKey(
    SInt32 index   // 項目のインデックス
);

戻り値

指定された項目のアクセスキー(AVKType)。

解説

この関数は、指定された項目のアクセスキーを取得します。

アクセスキーが設定されていない場合、static_cast<AVKType>(0) が返ります。

参照

SFZFlexListBoxControl::SetItemAccessKey | SFZFlexListBoxControl::ItemRec | AVKType


SFZFlexListBoxControl::GetItemCommandId
指定された項目のコマンド ID を取得します。
[ public, const ]
UInt32 GetItemCommandId(
    SInt32 index   // 項目のインデックス
);

戻り値

指定された項目のコマンド ID。

解説

この関数は、指定された項目のコマンド ID を取得します。

[Note] コマンド ID

コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。

参照

SFZFlexListBoxControl::SetItemCommandId | SFZFlexListBoxControl::FirstIndexOfCommandId | SFZFlexListBoxControl::LastIndexOfCommandId | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetItemCount
項目の数を取得します。
[ public, const ]
SInt32 GetItemCount(Void);

戻り値

フレックスリストボックスコントロールの項目の数。

解説

この関数は、フレックスリストボックスコントロールの項目の数を取得します。


SFZFlexListBoxControl::GetItemEnable
指定された項目の有効フラグの値を取得します。
[ public, const ]
Bool GetItemEnable(
    SInt32 index   // 項目のインデックス
);

戻り値

項目の有効フラグに設定された値(Bool 型)。

解説

この関数は、指定された項目の有効フラグの値を取得します。

参照

SFZFlexListBoxControl::SetItemEnable | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetItemHeight
指定された項目の高さを取得します。[単位:ピクセル]
[ public, const ]
SInt16 GetItemHeight(
    SInt32 index   // 項目のインデックス
);

戻り値

指定された項目の高さ 。[単位:ピクセル]

解説

この関数は、リストボックスコントロール内の指定された項目の高さを取得します。

[Note] 注意

SFZFlexListBoxControl::SetFont 関数で項目に設定されたフォントの高さ、 SFZFlexListBoxControl::SetItemIconImage 関数で項目に設定されたアイコン画像の高さ、 SFZFlexListBoxControl::SetListMargin 関数で設定された上下の余白からフレックスリストボックスコントロールの項目の高さを計算します。

参照

SFZFlexListBoxControl::SetFont | SFZFlexListBoxControl::SetItemIconImage | SFZFlexListBoxControl::SetListMargin


SFZFlexListBoxControl::GetItemIconImage
指定された項目内の指定されたアイコン画像を取得します。
[ public, const ]
SFBImageSmpConstRef GetItemIconImage(
    SInt32 index        // 項目のインデックス
    IconEnum iconEnum   // アイコン定数
);

戻り値

指定された項目内の指定されたアイコン定数(SFZFlexListBoxControl::IconEnum)に対応する画像。

解説

この関数は、指定された項目内の指定されたアイコン定数(SFZFlexListBoxControl::IconEnum)に対応する画像を取得します。

参照

SFZFlexListBoxControl::SetItemIconImage | SFZFlexListBoxControl::IconEnum | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetItemText
指定された項目の指定された文字列定数に対応するテキストを取得します。
[ public, const ]
SFXWideStringConstRef GetItemText(
    SInt32 index        // 項目のインデックス
    TextEnum textEnum   // 文字列定数
);

戻り値

指定された項目の指定された文字列定数に対応するテキスト。

解説

この関数は、指定された項目の指定された文字列定数(SFZFlexListBoxControl::TextEnum)に対応する文字列を取得します。

参照

SFZFlexListBoxControl::SetItemText | SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::GetListMargin
リスト項目のマージンを取得します。
[ public, const ]
SFXMarginConstRef GetListMargin(Void);

戻り値

リスト項目内のマージン(SFXMargin)。

解説

この関数は、リスト項目のマージンを取得します。

参照

SFZFlexListBoxControl::SetListMargin


SFZFlexListBoxControl::GetOddListColor
奇数番目の非選択項目の背景色を取得します。
[ public, const ]
SFXRGBColorConstRef GetOddListColor(Void);

戻り値

奇数番目の非選択項目の背景色。

解説

この関数は、奇数番目の非選択項目の背景色を取得します。

参照

SFZFlexListBoxControl::SetOddListColor


SFZFlexListBoxControl::GetPageDownKey
項目を下方向に 1 ページ分スクロールする PageDown キーを取得します。
[ public, const ]
AVKType GetPageDownKey(Void);

戻り値

項目を下方向に 1 ページ分スクロールする PageDown キー。

解説

この関数は、項目を下方向に 1 ページ分スクロールする PageDown キーを取得します。

参照

SFZFlexListBoxControl::SetPageDownKey | AVKType


SFZFlexListBoxControl::GetPageUpKey
項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
[ public, const ]
AVKType GetPageUpKey(Void);

戻り値

項目を上方向に 1 ページ分スクロールする PageUp キー。

解説

この関数は、項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。

参照

SFZFlexListBoxControl::SetPageUpKey | AVKType


SFZFlexListBoxControl::GetScrollBarControl
スクロールバーコントロールを取得します。
[ public, const ]
SFYScrollBarControlSmpConstRef GetScrollBarControl(Void);

戻り値

スクロールバーコントロール。

解説

この関数は、フレックスリストボックスで使用されるスクロールバーコントロールを取得します。

開発者は取得したスクロールバーコントロールを使用してスクロールバーの外観を変更することができます。

独自のスクロールバーコントロールを利用する場合は、SFZFlexListBoxControl::SetScrollBarControl 関数を呼び出して設定します。

使用例

以下は、スクロールバーコントロールを取得してトラック色を変更するためのコードです。

// スクロールバーコントロールを取得する
SFZFlexListBoxControlSmp    _list;
SFYScrollBarControlSmp      _bar;

_list = SFZFlexListBoxControl::NewInstance();

if ((_bar = _list->GetScrollBarControl()) != null) {
    _bar->SetTrackColor(SFXRGBColor(0xDD, 0xFF, 0xDD, 0x00));
}

参照

SFYScrollBarControl | SFZFlexListBoxControl::SetScrollBarControl


SFZFlexListBoxControl::GetScrollBarWidth
スクロールバーの横幅を取得します。[単位:ピクセル]
[ public, const ]
SInt16 GetScrollBarWidth(Void);

戻り値

スクロールバーの横幅。[単位:ピクセル]

解説

この関数は、スクロールバーの横幅を取得します。[単位:ピクセル]

参照

SFZFlexListBoxControl::SetScrollBarWidth


SFZFlexListBoxControl::GetScrollDirection
スクロールの移動方向を取得します。
[ public, const ]
DirectionEnum GetScrollDirection(Void);

戻り値

スクロールの移動方向(SFZFlexListBoxControl::DirectionEnum)。

解説

この関数は、スクロールの移動方向を取得します。

参照

SFZFlexListBoxControl::SetScrollDirection


SFZFlexListBoxControl::GetScrollDownKey
項目を下方向に1項目スクロールする ScrollDown キーを取得します。
[ public, const ]
AVKType GetScrollDownKey(Void);

戻り値

項目を下方向に1項目スクロールする ScrollDown キー。

解説

この関数は、項目を下方向に1項目スクロールする ScrollDown キーを取得します。

参照

SFZFlexListBoxControl::SetScrollDownKey | AVKType


SFZFlexListBoxControl::GetScrollInterval
スクロールインターバルを取得します。[単位:ミリ秒]
[ public, const ]
UInt32 GetScrollInterval(Void);

戻り値

スクロールインターバル。[単位:ミリ秒]

解説

この関数は、スクロールインターバルを取得します。[単位:ミリ秒]

参照

SFZFlexListBoxControl::SetScrollInterval


SFZFlexListBoxControl::GetScrollRepeat
連続スクロールフラグの値を取得します。
[ public, const ]
Bool GetScrollRepeat(Void);

戻り値

  • 連続スクロールに設定されているとき: true
  • そうでないとき: false

解説

この関数は、連続スクロールフラグの値を取得します。

[Note] 注意

連続スクロールフラグの値が true の場合、 フォーカスを持つ先頭/末尾の項目を更に上/下方向にフォーカスを移動させようとすると 末尾/先頭の項目にフォーカスが移動します。

先頭の項目から末尾の項目にフォーカスが移動した場合は、 末尾の項目が実領域の最下部の位置に来るように表示されます。

末尾の項目から先頭の項目にフォーカスが移動した場合は、 先頭の項目が実領域の最上部の位置に来るように表示されます。

なお、スクロールするだけの項目が存在しない場合は、 何も起こりません。

参照

SFZFlexListBoxControl::SetScrollRepeat


SFZFlexListBoxControl::GetScrollStep
スクロール移動量を取得します。[単位:ピクセル]
[ public, const ]
SInt16 GetScrollStep(Void);

戻り値

スクロール移動量。[単位:ピクセル]

解説

この関数は、スクロール移動量を取得します。[単位:ピクセル]

参照

SFZFlexListBoxControl::SetScrollStep


SFZFlexListBoxControl::GetScrollUpKey
項目を上方向に1項目スクロールする ScrollUp キーを取得します。
[ public, const ]
AVKType GetScrollUpKey(Void);

戻り値

項目を上方向に1項目スクロールする ScrollUp キー。

解説

この関数は、項目を上方向に1項目スクロールする ScrollUp キーを取得します。

参照

SFZFlexListBoxControl::SetScrollUpKey | AVKType


SFZFlexListBoxControl::GetSelectListColor
選択項目の背景色を取得します。
[ public, const ]
SFXRGBColorConstRef GetSelectListColor(Void);

戻り値

選択項目の背景色。

解説

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

参照

SFZFlexListBoxControl::SetSelectListColor


SFZFlexListBoxControl::GetSnapDownKey
項目を下端までスクロールする SnapDown キーを取得します。
[ public, const ]
AVKType GetSnapDownKey(Void);

戻り値

項目を下端までスクロールする SnapDown キー。

解説

この関数は、項目を下端までスクロールする SnapDown キーを取得します。

参照

SFZFlexListBoxControl::SetSnapDownKey | AVKType


SFZFlexListBoxControl::GetSnapUpKey
項目を上端までスクロールする SnapUp キーを取得します。
[ public, const ]
AVKType GetSnapUpKey(Void);

戻り値

項目を上端までスクロールする SnapUp キー。

解説

この関数は、項目を上端までスクロールする SnapUp キーを取得します。

参照

SFZFlexListBoxControl::SetSnapUpKey | AVKType


SFZFlexListBoxControl::GetSpaceSize
項目の要素間のスペースサイズを取得します。[単位:ピクセル]
[ public, const ]
SInt16 GetSpaceSize(Void);

戻り値

スペースサイズ。[単位:ピクセル]

解説

この関数は、項目の要素間のスペースサイズを取得します。[単位:ピクセル]

参照

SFZFlexListBoxControl::SetSpaceSize


SFZFlexListBoxControl::GetTextColor
指定された文字列定数の色を取得します。
[ public, const ]
SFXRGBColorConstRef GetTextColor(
    TextEnum textEnum   // 文字列定数
);

戻り値

文字列定数(SFZFlexListBoxControl::TextEnum)に対応する色。

解説

この関数は、指定された文字列定数(SFZFlexListBoxControl::TextEnum)に対応する色を取得します。

参照

SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::SetTextColor


SFZFlexListBoxControl::GetToggle
トグル状態を取得します。
[ public, const ]
Toggle GetToggle(Void);

戻り値

トグル状態(SFZFlexListBoxControl::ToggleEnum の論理和)。

解説

この関数は、トグル状態(SFZFlexListBoxControl::ToggleEnum の論理和)を取得します。

参照

SFZFlexListBoxControl::ToggleEnum | SFZFlexListBoxControl::SetToggle


SFZFlexListBoxControl::GetVerticalAlign
垂直アライメントの値を取得します。
[ public, const ]
VerticalEnum GetVerticalAlign(Void);

戻り値

垂直アライメント(SFZFlexListBoxControl::VerticalEnum)。

解説

この関数は、垂直アライメントの値を取得します。

参照

SFZFlexListBoxControl::SetVerticalAlign | SFZFlexListBoxControl::VerticalEnum


SFZFlexListBoxControl::GetWaitInterval
項目のスクロール開始までの待ち時間を取得します。[単位:ミリ秒]
[ public, const ]
UInt32 GetWaitInterval(Void);

戻り値

項目のスクロール開始までの待ち時間。[単位:ミリ秒]

解説

この関数は、項目のスクロール開始までの待ち時間を取得します。[単位:ミリ秒]

参照

SFZFlexListBoxControl::SetWaitInterval


SFZFlexListBoxControl::HandleAccessKey
アクセスキーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
[ protected, virtual ]
Bool HandleAccessKey(
    AVKType key   // 押されたアクセスキー
);

解説

この関数は、SFZFlexListBoxControl::SetItemAccessKey 関数で設定したアクセスキーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。

独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装は以下の通りです。

SFZFlexListBoxControl::SetAccessKeyEnable 関数によりコントロール全体のアクセスキー有効フラグが true に設定され、 SFZFlexListBoxControl::SetItemAccessKey 関数で設定したアクセスキーを設定した項目が SFZFlexListBoxControl::SetItemEnable 関数により項目の有効フラグが true に設定されている場合、 SFYControl::SetCurrentValue 関数を呼び出してその項目を現在の選択項目とします。 そして、結果イベント[SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, 指定されたアクセスキーが設定されている項目のインデックス)]を送信します。

コントロール全体のアクセスキー有効フラグが false に設定されている場合や、 項目の有効フラグが false に設定されている場合、何も処理されません。

同じアクセスキーが複数の項目に設定されている場合は、最初の項目に設定されたものだけが有効になります。

内部実装

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

/*protected virtual */Bool SFZFlexListBoxControl::HandleAccessKey(AVKType key)
{
    Bool                                        result(false);

    for (SInt32 i = 0; i < GetItemCount(); ++ i) {
        if (GetItemAccessKey(i) == key) {
            if (GetItemEnable(i)) {
                SetCurrentValue(i);
                InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, i), false);
                result = true;
                break;
            }
        }
    }
    return result;
}// SFZFlexListBoxControl::HandleAccessKey //
}// SFYWidget::HandleBoundOptimize //

参照

SFZFlexListBoxControl::SetItemAccessKey | SFZFlexListBoxControl::SetAccessKeyEnable | SFZFlexListBoxControl::SetItemEnable SFYControl::GetCurrentValue | SFXEvent | 結果イベント | キーイベント[SFEVT_KEY]


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

解説

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

引数 rectangle で指定した矩形領域に収まる範囲内で、レスポンダの最適な領域を計算します。

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

デフォルトの実装は以下の通りです。

  1. 引数の矩形をボックス枠用に上下左右に 3 ピクセルずつ縮小した矩形 R を計算します。 このとき、矩形 R の高さを R.h、幅を R.w とします。
  2. 各項目で使用しているフォント、アイコンキャラクタやアイコン画像の高さと、項目の上下のマージンのサイズから各項目の高さを計算します。
  3. 各項目で使用しているフォントの幅、項目のアイコンキャラクタ、アイコン画像と文字列、項目間のスペースサイズ、 項目の左右のマージンのサイズから各項目の幅を計算します。
  4. R.h と Σ(各項目の高さ) の小さい方の数値を height とします。
  5. Σ(各項目の高さ) > R.h の場合は、スクロールバーが付加されます。
  6. R.w と [(最も幅の大きい項目の幅) + (付加されていればスクロールバーの幅)] の小さい方の数値を width とします。
  7. 高さが height、幅が width である矩形をボックス枠用に上下左右に 3 ピクセルずつ拡大した矩形を計算します。
  8. この矩形を返します。
[Caution] 項目の高さ

SFZFlexListBoxControl では、 各項目の高さは異なる可能性があるため項目毎に高さを計算し、その和をとっています。 一方、SFZListBoxControl では、項目の高さはすべて同じです。

[Note] 項目のフォント、アイコンキャラクタやアイコン画像、文字列、スペースサイズ、マージン

項目内の要素であるフォント、アイコンキャラクタやアイコン画像、文字列、マージンは、 SFZFlexListBoxControl::SetFont 関数、 SFZFlexListBoxControl::SetItem 関数、 SFZFlexListBoxControl::SetItemIconImage 関数、 SFZFlexListBoxControl::SetItemText 関数、 SFZFlexListBoxControl::SetSpaceSize 関数、 SFZFlexListBoxControl::SetListMargin 関数を使用して設定されます。

アイコンキャラクタやアイコン画像、文字列は設定されないこともあります。 設定されていない項目内の要素の長さは 0 として計算されます。

[Note] スクロールバーの横幅

スクロールバーの幅は、SFZFlexListBoxControl::SetScrollBarWidth 関数で設定される幅です。

[Note] ボックス枠用のマージン

ボックスコントロールのマージンは、SFXMargin(3, 3, 3, 3) で表される領域です。 詳細は SFYBoxControl::GetBoxMargin 関数の解説を参照してください。

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

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

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

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

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

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

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

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

内部実装

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

struct ScrollBarRec {
    SFYScrollBarControlSmp              smp;
    SInt16                              width;
};

SFYVerticalFlexListControlSmp   _vertical;
ScrollBarRec                    _bar;

/*protected virtual */Void SFZFlexListBoxControl::HandleBoundOptimize(SFXRectanglePtr rectangle) const
{
    SFXSize                                     size;

    rectangle->Deflate(GetBoxMargin());
    size.Set(_vertical->GetSuitableBound(*rectangle).GetSize());
    if (_vertical->IsOptimizeOver()) {
        rectangle->SubWidth(_bar.width);
        size.Set(_vertical->GetSuitableBound(*rectangle).GetSize());
        rectangle->SetSize(size);
        rectangle->AddWidth(_bar.width);
    }
    else {
        rectangle->SetSize(size);
    }
    rectangle->Inflate(GetBoxMargin());
    return;
}// SFZFlexListBoxControl::HandleBoundRequest //

参照

SFYResponder::GetSuitableBound | SFZFlexListBoxControl::SetFont | SFZFlexListBoxControl::SetItem | SFZFlexListBoxControl::SetItemIconImage | SFZFlexListBoxControl::SetItemText | SFZFlexListBoxControl::SetSpaceSize | SFZFlexListBoxControl::SetListMargin | SFZFlexListBoxControl::SetScrollBarWidth | SFYBoxControl::GetBoxMargin | SFXMargin | SFZListBoxControl | SFXEvent | 領域イベント[SFEVT_RESPONDER_BOUND] | 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]


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

解説

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

レスポンダの最適な領域を計算します。

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

デフォルトの実装は以下の通りです。

  1. 各項目で使用しているフォント、アイコンキャラクタやアイコン画像の高さと、項目の上下のマージンのサイズから各項目の高さを計算します。
  2. 各項目で使用しているフォントの幅、項目のアイコンキャラクタ、アイコン画像と文字列、項目間のスペースサイズ、 項目の左右のマージンのサイズから各項目の幅を計算します。
  3. 高さが Σ(各項目の高さ)、幅が(フレックスリストボックスで最も幅の大きい項目の幅) である矩形を計算します。
  4. この矩形をボックス枠用に上下左右に 3 ピクセルずつ拡大した矩形を計算します。
  5. この矩形を返します。
[Caution] 項目の高さ

SFZFlexListBoxControl では、 各項目の高さは異なる可能性があるため項目毎に高さを計算し、その和をとります。 一方、SFZListBoxControl では、項目の高さはすべて同じです。

[Note] 項目のフォント、アイコンキャラクタやアイコン画像、文字列、スペースサイズ、マージン

項目内の要素であるフォント、アイコンキャラクタやアイコン画像、文字列、マージンは、 SFZFlexListBoxControl::SetFont 関数、 SFZFlexListBoxControl::SetItem 関数、 SFZFlexListBoxControl::SetItemIconImage 関数、 SFZFlexListBoxControl::SetItemText 関数、 SFZFlexListBoxControl::SetSpaceSize 関数、 SFZFlexListBoxControl::SetListMargin 関数を使用して設定されます。

アイコンキャラクタやアイコン画像、文字列は設定されないこともあります。 設定されていない項目内の要素の長さは 0 として計算されます。

[Note] ボックス枠用のマージン

ボックスコントロールのマージンは、SFXMargin(3, 3, 3, 3) で表される領域です。 詳細は SFYBoxControl::GetBoxMargin 関数の解説を参照してください。

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

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

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

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

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

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

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

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

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

内部実装

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

SFYVerticalFlexListControlSmp   _vertical;

/*protected virtual */Void SFZFlexListBoxControl::HandleBoundRequest(SFXRectanglePtr rectangle) const
{
    SFXSize                                     size;

    rectangle->Deflate(GetBoxMargin());
    size.Set(_vertical->GetSuitableBound().GetSize());
    rectangle->SetSize(size);
    rectangle->Inflate(GetBoxMargin());
    return;
}// SFZFlexListBoxControl::HandleBoundRequest //

参照

SFYResponder::GetSuitableBound | SFZFlexListBoxControl::SetFont | SFZFlexListBoxControl::SetItem | SFZFlexListBoxControl::SetItemIconImage | SFZFlexListBoxControl::SetItemText | SFZFlexListBoxControl::SetSpaceSize | SFZFlexListBoxControl::SetListMargin | SFYBoxControl::GetBoxMargin | SFXMargin | SFZListBoxControl | SFXEvent | 実領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


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

解説

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

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

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

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

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

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

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

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

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

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

内部実装

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

struct ScrollBarRec {
    SFYScrollBarControlSmp              smp;
    SInt16                              width;
};

SFYVerticalFlexListControlSmp   _vertical;
ScrollBarRec                    _bar;

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

/*private */Void SFZFlexListBoxControl::Relocate(Void)
{
    SFYFlexListItemWidgetSmp                    widget;
    SFXRectangle                                rc(GetLocalBound());
    SFXRectangle                                vx;
    SFXRectangle                                bx;
    SInt16                                      width(0);

    if (_bar.smp != null && _bar.smp->IsScrollable()) {
        width = _bar.width;
    }
    rc.Deflate(GetBoxMargin());
    vx.Set(rc.SubWidth(width));
    rc.AddX(rc.GetWidth());
    bx.Set(rc.SetWidth(width));
    if (_bar.smp != null) {
        _bar.smp->SetRealBound(bx);
    }
    _vertical->SetRealBound(vx);
    if (GetItemEnable(GetCurrentValue())) {
        if ((widget = GetItemWidget(GetCurrentValue())) != null) {
            if (widget->GetStateActive(true)) {
                widget->StartScroll();
            }
        }
    }
    return;
}// SFZFlexListBoxControl::Relocate //

参照

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


SFZFlexListBoxControl::HandleEscapeKey
ESCAPE キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
[ protected, virtual ]
Void HandleEscapeKey(Void);

解説

この関数は、SFZFlexListBoxControl::SetEscapeKey 関数で設定した ESCAPE キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。

独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装では、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0)] を送信します。

内部実装

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

/*protected virtual */Void SFZFlexListBoxControl::HandleEscapeKey(Void)
{
    InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0), false);
    return;
}// SFZFlexListBoxControl::HandleEscapeKey //

参照

SFZFlexListBoxControl::SetEscapeKey SFXEvent | 結果イベント[SFEVT_RESPONDER_RESULT] | キーイベント[SFEVT_KEY]


SFZFlexListBoxControl::HandleOperateKey
操作キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
[ protected, virtual ]
Void HandleOperateKey(Void);

解説

この関数は、SFYBoxControl::SetOperateKey 関数で設定した操作キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。

独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装は以下の通りです。

SFZFlexListBoxControl::SetItemEnable 関数により選択された項目の有効フラグが true に設定されている場合、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, SFYControl::GetCurrentValue 関数の戻り値)] を送信します。

項目の有効フラグが false に設定されている場合、結果イベントを送信しません。

内部実装

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

/*protected virtual */Void SFZFlexListBoxControl::HandleOperateKey(Void)
{
    if (GetItemEnable(GetCurrentValue())) {
        InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, GetCurrentValue()), false);
    }
    return;
}// SFZFlexListBoxControl::HandleOperateKey //

参照

SFYBoxControl::SetOperateKey | SFZFlexListBoxControl::SetItemEnable | SFXEvent | 結果イベント[SFEVT_RESPONDER_RESULT] | キーイベント[SFEVT_KEY]


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

解説

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

開発者は、独自の処理のためにこの関数をオーバーライドできます。

デフォルトの実装は、フレックスリストボックスコントロールを描画します。

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

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

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

内部実装

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

/*protected virtual */Void SFZFlexListBoxControl::HandleRenderRequest(SFXGraphicsPtr graphics) const
{
    DrawBox(graphics, GetLocalBound());
    return;
}// SFZFlexListBoxControl::HandleRenderRequest //

参照

SFYResponder::Invalidate | SFYResponder::Render | SFYResponder::InvokeBackward | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理


SFZFlexListBoxControl::Insert
指定されたインデックスの位置に項目を挿入します。
[ public ]
SFCError Insert(
    SInt32 index           // 項目のインデックス
    ItemRecConstRef item   // アイテム構造体
);
[ public ]
SFCError Insert(
    SInt32 index           // 項目のインデックス
    ItemRecConstPtr item   // アイテム構造体へのポインタ
    SInt32 length          // 挿入する数
);
[ public ]
SFCError Insert(
    SInt32 index                 // 項目のインデックス
    SFXWideStringConstRef text   // 文字列
);
[ public ]
SFCError Insert(
    SInt32 index                 // 項目のインデックス
    SFXWideStringConstPtr text   // 文字列へのポインタ
    SInt32 length                // 挿入する数
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY

解説

この関数は、指定されたインデックスの位置に項目を挿入します。

index 引数が 0 以下の場合は先頭に挿入されます。

index 引数が項目数以上の場合は末尾に挿入されます。

[Note] 注意

追加後の項目数が SFYControl クラスの最大値として設定されます。

[Note] アイテム構造体

アイテム構造体については、SFZFlexListBoxControl::ItemRec の解説を参照してください。

参照

SFZFlexListBoxControl::InsertFirst | SFZFlexListBoxControl::InsertLast | SFZFlexListBoxControl::Remove | SFYControl::SetMaximumValue | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::InsertFirst
先頭に項目を挿入します。
[ public ]
SFCError InsertFirst(
    ItemRecConstRef item   // アイテム構造体
);
[ public ]
SFCError InsertFirst(
    ItemRecConstPtr item   // アイテム構造体へのポインタ
    SInt32 length          // 挿入する数
);
[ public ]
SFCError InsertFirst(
    SFXWideStringConstRef text   // 文字列
);
[ public ]
SFCError InsertFirst(
    SFXWideStringConstPtr text   // 文字列へのポインタ
    SInt32 length                // 挿入する数
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY

解説

この関数は、先頭に項目を挿入します。

[Note] 注意

追加後の項目数が SFYControl クラスの最大値として設定されます。

[Note] アイテム構造体

アイテム構造体については、SFZFlexListBoxControl::ItemRec の解説を参照してください。

参照

SFZFlexListBoxControl::Insert | SFZFlexListBoxControl::InsertLast | SFZFlexListBoxControl::RemoveFirst | SFYControl::SetMaximumValue | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::InsertLast
末尾に項目を挿入します。
[ public ]
SFCError InsertLast(
    ItemRecConstRef item   // アイテム構造体
);
[ public ]
SFCError InsertLast(
    ItemRecConstPtr item   // アイテム構造体へのポインタ
    SInt32 length          // 挿入する数
);
[ public ]
SFCError InsertLast(
    SFXWideStringConstRef text   // 文字列
);
[ public ]
SFCError InsertLast(
    SFXWideStringConstPtr text   // 文字列へのポインタ
    SInt32 length                // 挿入する数
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY

解説

この関数は、末尾に項目を挿入します。

[Note] 注意

追加後の項目数が SFYControl クラスの最大値として設定されます。

[Note] アイテム構造体

アイテム構造体については、SFZFlexListBoxControl::ItemRec の解説を参照してください。

参照

SFZFlexListBoxControl::InsertFirst | SFZFlexListBoxControl::InsertLast | SFZFlexListBoxControl::RemoveLast | SFYControl::SetMaximumValue | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::LastIndexOfCommandId
末尾から検索して、指定したコマンド ID と一致する最初の項目のインデックスを取得します。
[ public, const ]
SInt32 LastIndexOfCommandId(
    UInt32 id   // コマンド ID
);
[ public, const ]
SInt32 LastIndexOfCommandId(
    UInt32 id      // コマンド ID
    SInt32 index   // 検索開始位置
);

戻り値

  • 成功したとき: 最初に見つかった位置のインデックス
  • 失敗したとき: -1

解説

この関数は、コマンド ID を末尾から先頭に向かって検索し、最初に見つかった位置のインデックスを取得します。

[Note] 注意

検索開始位置を指定することで、末尾以外の位置から検索できます。

[Note] コマンド ID

コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。

参照

SFZFlexListBoxControl::SetItemCommandId | SFZFlexListBoxControl::FirstIndexOfCommandId


SFZFlexListBoxControl::NewInstance
新しいインスタンスを作成します。
[ public, static ]
SFZFlexListBoxControlSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);

引数

exception

関数内部で発生したエラー値を返します。

戻り値

  • 成功したとき: null 以外のポインタ
  • 失敗したとき: null ポインタ

解説

この関数は、SFZFlexListBoxControl クラスの新しいインスタンスを作成します。

作成に成功した場合は null 以外のポインタを返し、exception 引数は常に SFERR_NO_ERROR になります。メモリ不足などで作成に失敗した場合は null ポインタを返し、exception 引数にエラー値が返ります。

使用例

以下は、フレックスリストボックスのインスタンスを生成するためのコードです。

// フレックスリストボックスのインスタンスを生成する
SFCError error;
SFZFlexListBoxControlSmp _list;

if ((_list = SFZFlexListBoxControl::NewInstance(&error)) != null) {
    // ...
}

SFZFlexListBoxControl::Remove
指定されたインデックスの位置または範囲の項目を削除します。
[ public ]
Void Remove(
    SInt32 begin   // 削除開始位置 (この位置を含む)
    SInt32 end     // 削除終了位置 (この位置を含まない)
);
[ public ]
Void Remove(
    SInt32 index   // 削除する項目のインデックス
);

解説

この関数は、 指定されたインデックスの位置または範囲の項目を削除します。

削除する項目の位置が 0 より小さい場合、または項目数以上の場合、項目の削除は行われません。

削除開始位置が項目数以上の場合、または 削除終了位置が 0 以下の場合、項目の削除は行われません。

削除開始位置が 0 より小さい場合、削除開始位置は 0 に再設定されます。

削除終了位置が項目数より大きい場合、削除終了位置は項目数に再設定されます。

[Note] 注意

削除後の項目数が SFYControl クラスの最大値として設定されます。

使用例

SFZFlexListBoxControlSmp    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);

                //////////////////////////
                // リストボックスの状態 //
                // 0: "0番目"           //
                // 1: "3番目" ←        //
                //////////////////////////
            }
        }
    }
}

参照

SFZFlexListBoxControl::Clear | SFZFlexListBoxControl::RemoveFirst | SFZFlexListBoxControl::RemoveLast | SFZFlexListBoxControl::Insert | SFYControl::SetMaximumValue


SFZFlexListBoxControl::RemoveFirst
先頭の項目を削除します。
[ public ]
Void RemoveFirst(Void);

解説

この関数は、先頭の項目を削除します。

[Note] 注意

削除後の項目数が SFYControl クラスの最大値として設定されます。

参照

SFZFlexListBoxControl::Clear | SFZFlexListBoxControl::Remove | SFZFlexListBoxControl::RemoveLast | SFZFlexListBoxControl::InsertFirst | SFYControl::SetMaximumValue


SFZFlexListBoxControl::RemoveLast
末尾の項目を削除します。
[ public ]
Void RemoveLast(Void);

解説

この関数は、末尾の項目を削除します。

[Note] 注意

削除後の項目数が SFYControl クラスの最大値として設定されます。

参照

SFZFlexListBoxControl::Clear | SFZFlexListBoxControl::Remove | SFZFlexListBoxControl::RemoveFirst | SFZFlexListBoxControl::InsertLast | SFYControl::SetMaximumValue


SFZFlexListBoxControl::SetAccessKeyEnable
アクセスキー有効フラグを設定します。
[ public ]
Void SetAccessKeyEnable(
    Bool param   // 設定する値
);

解説

この関数は、アクセスキー有効フラグを設定します。

[Note] 注意

アクセスキー有効フラグは、 リストボックスコントロール全体でアクセスキーの設定が有効であるかどうかを表します。

このフラグを true に設定すると、 SFZFlexListBoxControl::SetItemEnable 関数で設定する、 項目の有効フラグの値が true のときだけアクセスキーの設定が有効になります。

逆に、false に設定すると、全ての項目のアクセスキーの設定が無効になります。

参照

SFZFlexListBoxControl::GetAccessKeyEnable | SFZFlexListBoxControl::SetItemEnable


SFZFlexListBoxControl::SetEscapeKey
ESCAPE キーを設定します。
[ public ]
Void SetEscapeKey(
    AVKType param   // ESCAPE キー
);

解説

この関数は、フレックスリストボックスの ESCAPE キーを設定します。

デフォルト値: AVK_CLR

[Note] 注意

ESCAPE キーが押下されると、 SFZFlexListBoxControl::HandleEscapeKey 関数が呼び出されます。

参照

SFZFlexListBoxControl::GetEscapeKey | SFZFlexListBoxControl::HandleEscapeKey


SFZFlexListBoxControl::SetEvenListColor
偶数番目の非選択項目の背景色を設定します。
[ public ]
Void SetEvenListColor(
    SFXRGBColorConstRef param   // 設定する色
);

解説

この関数は、偶数番目の非選択項目の背景色を設定します。

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

SFZFlexListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。

このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。

色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。

[Note] 奇数番目の非選択項目の背景色

SFZFlexListBoxControl::SetOddListColor 関数の解説を参照してください。

[Note] 選択項目の背景色

SFZFlexListBoxControl::SetSelectListColor 関数の解説を参照してください。

[Note] 項目の前景色

SFZFlexListBoxControl::SetTextColor 関数の解説を参照してください。

参照

SFZFlexListBoxControl::GetEvenListColor | SFZFlexListBoxControl::SetOddListColor | SFZFlexListBoxControl::SetSelectListColor | SFZFlexListBoxControl::SetTextColor | SFZFlexListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor


SFZFlexListBoxControl::SetFont
指定された文字列定数に対応するフォントを設定します。
[ public ]
Void SetFont(
    TextEnum textEnum   // 文字列定数
    AEEFont param       // フォント
);

解説

この関数は、指定された文字列定数に対応するフォントを設定します。

デフォルト値: AEE_FONT_NORMAL

参照

SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::GetFont | BREW API AEEFont


SFZFlexListBoxControl::SetGridLineColor
グリッド線の色を設定します。
[ public ]
Void SetGridLineColor(
    SFXRGBColorConstRef param   // 設定する色
);

解説

この関数は、グリッド線の色を設定します。

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

[Note] 注意

グリッド線は、SFZFlexListBoxControl::SetGridLineEnable 関数を使用して有効フラグが true に設定されているときだけ描画されます。

参照

SFZFlexListBoxControl::GetGridLineColor | SFZFlexListBoxControl::SetGridLineEnable | SFXRGBColor


SFZFlexListBoxControl::SetGridLineEnable
グリッド線有効フラグを設定します。
[ public ]
Void SetGridLineEnable(
    Bool param   // グリッド線有効フラグの値
);

解説

この関数は、グリッド線を有効フラグを設定します。

デフォルト値: false

[Note] 注意

有効フラグが true に設定されているときだけ、 グリッド線は SFZFlexListBoxControl::SetGridLineColor 関数で設定した色で描画されます。

[Caution] グリッド線の描画領域

グリッド線は各項目の矩形領域の最下端1ピクセルの線上に描画されます。 グリッド線有効フラグを true に設定する場合は、 SFZFlexListBoxControl::SetListMargin 関数を使用してその分の余白領域を設定することを推奨します。

参照

SFZFlexListBoxControl::GetGridLineEnable | SFZFlexListBoxControl::SetGridLineColor | SFZFlexListBoxControl::SetListMargin


SFZFlexListBoxControl::SetHorizontalAlign
水平アライメントを設定します。
[ public ]
Void SetHorizontalAlign(
    HorizontalEnum param   // 水平アライメントの値
);

解説

この関数は、水平アライメントを設定します。

デフォルト値: SFZFlexListBoxControl::DEFAULT_HORIZONTAL

[Note] 注意

SFZFlexListBoxControl::DEFAULT_HORIZONTAL の値は SFZFlexListBoxControl::HorizontalEnum を参照してください。

参照

SFZFlexListBoxControl::GetHorizontalAlign | SFZFlexListBoxControl::HorizontalEnum


SFZFlexListBoxControl::SetItem
指定された項目のアイテム構造体を設定します。
[ public ]
SFCError SetItem(
    SInt32 index           // 項目のインデックス
    ItemRecConstRef item   // アイテム構造体
);

解説

この関数は、指定された項目のアイテム構造体を設定します。

[Note] アイテム構造体

アイテム構造体については、SFZFlexListBoxControl::ItemRec の解説を参照してください。

参照

SFZFlexListBoxControl::GetItem | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::SetItemAccessKey
指定された項目のアクセスキーを設定します。
[ public ]
SFCError SetItemAccessKey(
    SInt32 index   // 項目のインデックス
    AVKType key    // アクセスキー
);

解説

この関数は、指定された項目のアクセスキーを設定します。

デフォルト値: static_cast<AVKType>(0)

[Note] 注意

この関数を使用して設定されたアクセスキーが押下されると、 SFZFlexListBoxControl::HandleAccessKey 関数が呼び出されます。

ただし、この関数が呼び出されるには、 SFZFlexListBoxControl::SetAccessKeyEnable 関数によりアクセスキー有効フラグが true、 SFZFlexListBoxControl::SetItemEnable 関数により項目の有効フラグが true に設定されている必要があります。

参照

SFZFlexListBoxControl::GetItemAccessKey | SFZFlexListBoxControl::HandleAccessKey | SFZFlexListBoxControl::SetAccessKeyEnable | SFZFlexListBoxControl::SetItemEnable | SFZFlexListBoxControl::ItemRec | AVKType


SFZFlexListBoxControl::SetItemCommandId
指定された項目のコマンド ID を設定します。
[ public ]
SFCError SetItemCommandId(
    SInt32 index   // 項目のインデックス
    UInt32 id      // コマンド ID
);

解説

この関数は、 指定された項目のコマンド ID を設定します。

デフォルト値: UINT32_MAXIMUM

[Note] コマンド ID

コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。

参照

SFZFlexListBoxControl::GetItemCommandId | SFZFlexListBoxControl::FirstIndexOfCommandId | SFZFlexListBoxControl::LastIndexOfCommandId | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::SetItemEnable
指定された項目の有効フラグを設定します。
[ public ]
SFCError SetItemEnable(
    SInt32 index   // 項目のインデックス
    Bool param     // 設定する値
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • index 引数に指定したインデックスの項目が存在しないとき: SFERR_INVALID_PARAM

解説

この関数は、指定された項目の有効フラグを設定します。

デフォルト値: true

[Note] 項目の有効フラグが false に設定されているとき

操作キーやアクセスキーが押下されても結果イベントは送信されません。

項目の前景色(テキストを描画する色)と非選択項目の背景色は以下の通りです。

項目の前景色は、SFZFlexListBoxControl::SetTextColor 関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色になります。

非選択項目の背景色は、SFZFlexListBoxControl::SetEvenListColor 関数や SFZFlexListBoxControl::SetOddListColor 関数で設定された背景色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色になります。

色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。

[Caution] 注意

項目の有効フラグが false に設定されているとき、 選択項目の前景色も上述の補正色になります。 SFZFlexListBoxControl::SetTextColor 関数で設定した選択項目の色ではありません。

選択項目の背景色は、 常に SFZFlexListBoxControl::SetSelectListColor 関数で設定された色になります。

項目の有効フラグが false に設定されているとき、 偶数番目/奇数番目の非選択項目の背景色は、 SFZFlexListBoxControl::SetEvenListColor / SFZFlexListBoxControl::SetOddListColor 関数で設定された背景色を補正した色になります。

参照

SFZFlexListBoxControl::GetItemEnable | SFZFlexListBoxControl::HandleOperateKey | SFZFlexListBoxControl::HandleAccessKey | SFZFlexListBoxControl::SetTextColor | SFZFlexListBoxControl::SetEvenListColor | SFZFlexListBoxControl::SetOddListColor | SFZFlexListBoxControl::SetSelectListColor | SFXRGBColor::GetBrightness | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::SetItemIconImage
指定された項目にアイコン画像を設定します。
[ public ]
SFCError SetItemIconImage(
    SInt32 index           // 項目のインデックス
    IconEnum iconEnum      // アイコン定数
    SFXPathConstRef path   // リソースファイルのパス
);
[ public ]
SFCError SetItemIconImage(
    SInt32 index           // 項目のインデックス
    IconEnum iconEnum      // アイコン定数
    SFXPathConstRef path   // リソースファイルのパス
    UInt16 id              // リソース ID
);
[ public ]
SFCError SetItemIconImage(
    SInt32 index                // 項目のインデックス
    IconEnum iconEnum           // アイコン定数
    SFBImageSmpConstRef param   // アイコン画像
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • index 引数に指定したインデックスの項目が存在しないとき、 または画像サイズの X または Y 成分が 0 以下のときや画像にアニメーションが含まれるとき: SFERR_INVALID_PARAM
  • BREW API IShell インターフェースのインスタンスが取得できないとき、 または画像のロードに失敗したとき: SFERR_FAILED

解説

この関数は、 指定された項目に指定されたアイコン定数(SFZFlexListBoxControl::IconEnum)に対応する画像を設定します。

画像オブジェクトを直接、あるいは、リソースファイルから読み込むように指定します。

画像サイズの X または Y 成分が 0 以下のときや画像にアニメーションが含まれるときは、SFERR_INVALID_PARAM が返ります。

参照

SFZFlexListBoxControl::GetItemIconImage | SFZFlexListBoxControl::IconEnum | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::SetItemText
指定された項目に指定された文字列定数に対応するテキストを設定します。
[ public ]
SFCError SetItemText(
    SInt32 index           // 項目のインデックス
    TextEnum textEnum      // 文字列定数
    SFXPathConstRef path   // リソースファイルのパス
    UInt16 id              // リソース ID
);
[ public ]
SFCError SetItemText(
    SInt32 index                  // 項目のインデックス
    TextEnum textEnum             // 文字列定数
    SFXWideStringConstRef param   // 文字列
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • index 引数に指定したインデックスの項目が存在しないとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY
  • BREW API IShell インターフェースのインスタンスが取得できないとき: SFERR_FAILED

解説

この関数は、 指定された項目に指定された文字列定数(SFZFlexListBoxControl::TextEnum)に対応するテキストを設定します。

テキストは直接、あるいは、リソースファイルから読み込むように指定します。

参照

SFZFlexListBoxControl::GetItemText | SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::ItemRec


SFZFlexListBoxControl::SetListMargin
リスト項目のマージンを設定します。
[ public ]
Void SetListMargin(
    SFXMarginConstRef param   // マージン
);

解説

この関数は、リスト項目のマージンを設定します。

デフォルト値: SFXMargin(1, 1, 1, 1)

リスト項目のコンテンツは、この関数で設定したマージンを除く領域に描画されます。

参照

SFZFlexListBoxControl::GetListMargin | SFXMargin


SFZFlexListBoxControl::SetOddListColor
奇数番目の非選択項目の背景色を設定します。
[ public ]
Void SetOddListColor(
    SFXRGBColorConstRef param   // 設定する色
);

解説

この関数は、奇数番目の非選択項目の背景色を設定します。

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

SFZFlexListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。

このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。

色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。

[Note] 偶数番目の非選択項目の背景色

SFZFlexListBoxControl::SetEvenListColor 関数の解説を参照してください。

[Note] 選択項目の背景色

SFZFlexListBoxControl::SetSelectListColor 関数の解説を参照してください。

[Note] 項目の前景色

SFZFlexListBoxControl::SetTextColor 関数の解説を参照してください。

参照

SFZFlexListBoxControl::GetOddListColor | SFZFlexListBoxControl::SetEvenListColor | SFZFlexListBoxControl::SetSelectListColor | SFZFlexListBoxControl::SetTextColor | SFZFlexListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor


SFZFlexListBoxControl::SetPageDownKey
項目を下方向に 1 ページ分スクロールする PageDown キーを設定します。
[ public ]
Void SetPageDownKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を下方向に 1 ページ分スクロールする PageDown キーを設定します。

デフォルト値: AVK_TXPGDOWN

[Note] 注意

PageDown キーが押下された場合、 現在の選択項目よりも1ページ(フレックスリストの実領域の高さ)分下の項目が新しい選択項目となり、 実領域の下端の位置に来るようにスクロールします。

現在の選択項目より下に 1 ページ分未満の項目しか存在しなければ、 末尾の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=末尾の項目)が実領域の下端の位置に来るようにスクロールします。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetPageDownKey | SFZFlexListBoxControl::SetPageUpKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetSnapDownKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetPageUpKey
項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
[ public ]
Void SetPageUpKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を上方向に 1 ページ分スクロールする PageUp キーを設定します。

デフォルト値: AVK_TXPGUP

[Note] 注意

PageUp キーが押下された場合、 現在の選択項目よりも1ページ(フレックスリストの実領域の高さ)分上の項目が新しい選択項目となり、 実領域の上端の位置に来るようにスクロールします。

現在の選択項目より上に 1 ページ分未満の項目しか存在しなければ、 先頭の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=先頭の項目)が実領域の上端の位置に来るようにスクロールします。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetPageUpKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetSnapDownKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetScrollBarControl
スクロールバーコントロールを設定します。
[ public ]
SFCError SetScrollBarControl(
    SFYScrollBarControlSmpConstRef param   // スクロールバーコントロール
);

解説

この関数は、リストボックスで使用されるスクロールバーコントロールを設定します。

[Note] 注意

開発者が独自のスクロールバーを設定したいときに利用します。

使用例

以下は、カスタムスクロールバーを設定するコードです。

// 独自のスクロールバーコントロール
class CustomScrollBarControl : public SFYScrollBarControl {
    // 独自の定義
};

Void UserApplication::SomeFunction {
    SFZFlexListBoxControlSmp        list;
    CustomScrollBarControlSmp       bar;

    // リストボックスの生成
    list = SFZFlexListBoxControl::NewInstance();

    // リストボックスの設定
    // …

    // スクロールバーの生成
    bar = CustomScrollBarControl::NewInstance();

    // 独自のスクロールバーをリストボックスに設定する
    list->SetScrollBarControl(bar);
    return;
}

参照

SFZFlexListBoxControl::GetScrollBarControl


SFZFlexListBoxControl::SetScrollBarWidth
スクロールバーの横幅を設定します。[単位:ピクセル]
[ public ]
Void SetScrollBarWidth(
    SInt16 param   // スクロールバーの横幅
);

解説

この関数は、スクロールバーコントロールの横幅を設定します。[単位:ピクセル]

デフォルト値: SFZFlexListBoxControl::DEFAULT_BAR_WIDTH ピクセル

[Note] 注意

SFZFlexListBoxControl::DEFAULT_BAR_WIDTH の値は SFZFlexListBoxControl::DefaultEnum を参照してください。

[Note] スクロールバーコントロールの幅について

スクロールバーコントロールの幅として、4 ピクセル以上の値を指定できます。 減分・増分矢印を矩形領域内にバランス良く描画するには、5 以上の奇数を指定することを推奨します。

参照

SFZFlexListBoxControl::GetScrollBarWidth | SFZFlexListBoxControl::DefaultEnum


SFZFlexListBoxControl::SetScrollDirection
スクロールの移動方向を設定します。
[ public ]
Void SetScrollDirection(
    DirectionEnum param   // スクロールの移動方向
);

解説

この関数は、スクロール移動方向を設定します。

デフォルト値: SFZFlexListBoxControl::DEFAULT_DIRECTION

[Note] 注意

SFZFlexListBoxControl::DEFAULT_DIRECTION の値は SFZFlexListBoxControl::DirectionEnum を参照してください。

参照

SFZFlexListBoxControl::GetScrollDirection | SFZFlexListBoxControl::DirectionEnum


SFZFlexListBoxControl::SetScrollDownKey
項目を下方向に1項目スクロールする ScrollDown キーを設定します。
[ public ]
Void SetScrollDownKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を下方向に1項目スクロールする ScrollDown キーを設定します。

デフォルト値: AVK_DOWN

[Note] 注意

ScrollDown キーが押下された場合、 現在の選択項目よりも1つ下の項目がフレックスリストの新しい選択項目になります。

新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の下端の位置に来るようにスクロールします。

連続スクロールフラグの値が true、かつ、 現在の選択項目が末尾の項目であるときに ScrollDown キーを押下すると、 先頭の項目が新しい選択項目となり、実領域の下端の位置に来るようにスクロールします。 このとき、末尾の項目は下から 2 行目の位置に表示されます(先頭の項目は最下行に表示されます)。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetScrollDownKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollRepeat | SFZFlexListBoxControl::SetPageUpKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetSnapDownKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetScrollInterval
スクロールインターバルを設定します。[単位:ミリ秒]
[ public ]
Void SetScrollInterval(
    UInt32 param   // スクロールインターバル
);

解説

この関数は、スクロールインターバルを設定します。[単位:ミリ秒]

デフォルト値: SFZFlexListBoxControl::DEFAULT_SCROLL ミリ秒

[Note] 注意

SFZFlexListBoxControl::DEFAULT_SCROLL の値は SFZFlexListBoxControl::DefaultEnum を参照してください。

参照

SFZFlexListBoxControl::GetScrollInterval | SFZFlexListBoxControl::DefaultEnum


SFZFlexListBoxControl::SetScrollRepeat
連続スクロールフラグを指定された値に設定します。
[ public ]
Void SetScrollRepeat(
    Bool param   // 設定する値
);

解説

この関数は、連続スクロールフラグを指定された値に設定します。

[Note] 注意

連続スクロールフラグの値が true の場合、 フォーカスを持つ先頭/末尾の項目を更に上/下方向にフォーカスを移動させようとすると 末尾/先頭の項目にフォーカスが移動します。

先頭の項目から末尾の項目にフォーカスが移動した場合は、 末尾の項目が実領域の最下部の位置に来るように表示されます。

末尾の項目から先頭の項目にフォーカスが移動した場合は、 先頭の項目が実領域の最上部の位置に来るように表示されます。

なお、スクロールするだけの項目が存在しない場合は、 何も起こりません。

参照

SFZFlexListBoxControl::GetScrollRepeat


SFZFlexListBoxControl::SetScrollStep
スクロール移動量を設定します。[単位:ピクセル]
[ public ]
Void SetScrollStep(
    SInt16 param   // 設定する値
);

解説

この関数は、スクロール移動量を設定します。[単位:ピクセル]

デフォルト値: SFZFlexListBoxControl::DEFAULT_STEP ピクセル

[Note] 注意

SFZFlexListBoxControl::DEFAULT_STEP の値は SFZFlexListBoxControl::DefaultEnum を参照してください。

参照

SFZFlexListBoxControl::GetScrollStep | SFZFlexListBoxControl::DefaultEnum


SFZFlexListBoxControl::SetScrollUpKey
項目を上方向に1項目スクロールする ScrollUp キーを設定します。
[ public ]
Void SetScrollUpKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を上方向に1項目スクロールする ScrollUp キーを設定します。

デフォルト値: AVK_UP

[Note] 注意

ScrollUp キーが押下された場合、 現在の選択項目よりも1つ上の項目がフレックスリストの新しい選択項目になります。

新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の上端の位置に来るようにスクロールします。

連続スクロールフラグの値が true、かつ、 現在の選択項目が先頭の項目であるときに ScrollUp キーを押下すると、 末尾の項目が新しい選択項目となり、実領域の上端の位置に来るようにスクロールします。 このとき、先頭の項目は上から 2 行目の位置に表示されます(末尾の項目は最上行に表示されます)。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetScrollRepeat | SFZFlexListBoxControl::SetPageUpKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetSnapDownKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetSelectListColor
選択項目の背景色を設定します。
[ public ]
Void SetSelectListColor(
    SFXRGBColorConstRef param   // 設定する色
);

解説

この関数は、選択項目の背景色を設定します。

デフォルト値: SFXRGBColor(0x11, 0x22, 0xBB, 0x00) [青色]

[Note] 奇数番目の非選択項目の背景色

SFZFlexListBoxControl::SetOddListColor 関数の解説を参照してください。

[Note] 偶数番目の非選択項目の背景色

SFZFlexListBoxControl::SetEvenListColor 関数の解説を参照してください。

[Note] 項目の前景色

SFZFlexListBoxControl::SetTextColor 関数の解説を参照してください。

参照

SFZFlexListBoxControl::GetSelectListColor | SFZFlexListBoxControl::SetEvenListColor | SFZFlexListBoxControl::SetOddListColor | SFZFlexListBoxControl::SetTextColor | SFXRGBColor


SFZFlexListBoxControl::SetSnapDownKey
項目を下端までスクロールする SnapDown キーを設定します。
[ public ]
Void SetSnapDownKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を下端までスクロールする SnapDown キーを設定します。

デフォルト値: AVK_TXEND

[Note] 注意

SnapDown キーがが押下された場合、 末尾の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=末尾の項目)が実領域の下端の位置に来るようにスクロールします。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetSnapDownKey SFZFlexListBoxControl::SetSnapUpKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetPageUpKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetSnapUpKey
項目を上端までスクロールする SnapUp キーを設定します。
[ public ]
Void SetSnapUpKey(
    AVKType param   // 設定するキー
);

解説

この関数は、項目を上端までスクロールする SnapUp キーを設定します。

デフォルト値: AVK_TXHOME

[Note] 注意

SnapUp キーがが押下された場合、 先頭の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=先頭の項目)が実領域の上端の位置に来るようにスクロールします。

[Note] 値イベント

選択項目が変化した場合、 フレックスリストボックスコントロールは値イベント [SFXEvent(SFEVT_RESPONDER_VALUE, SFP16_VALUE_CURRENT, 選択された項目のインデックス)] を受信します。

参照

SFZFlexListBoxControl::GetSnapUpKey SFZFlexListBoxControl::SetSnapDownKey | SFZFlexListBoxControl::SetScrollUpKey | SFZFlexListBoxControl::SetScrollDownKey | SFZFlexListBoxControl::SetPageDownKey | SFZFlexListBoxControl::SetPageUpKey | SFXEvent | 値イベント [SFEVT_RESPONDER_VALUE] | AVKType


SFZFlexListBoxControl::SetSpaceSize
項目の要素間スペースサイズを設定します。[単位:ピクセル]
[ public ]
Void SetSpaceSize(
    SInt16 param   // スペースサイズ
);

解説

この関数は、項目の要素間スペースサイズを設定します。[単位:ピクセル]

デフォルト値: SFZFlexListBoxControl::DEFAULT_SPACE ピクセル

[Note] 注意

SFZFlexListBoxControl::DEFAULT_SPACE の値は SFZFlexListBoxControl::DefaultEnum を参照してください。

参照

SFZFlexListBoxControl::GetSpaceSize | SFZFlexListBoxControl::DefaultEnum


SFZFlexListBoxControl::SetTextColor
指定された文字列の色を設定します。
[ public ]
Void SetTextColor(
    TextEnum textEnum           // 文字列定数
    SFXRGBColorConstRef param   // 文字色
);

解説

この関数は、 指定された文字列定数(SFZFlexListBoxControl::TextEnum) に対応する文字列の色を設定します。

デフォルト値: 非選択項目のヘッダ文字列(TEXT_HEADER_NORMAL): SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色]、 選択項目のヘッダ文字列(TEXT_HEADER_SELECT): SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色]、 非選択項目のボディ文字列(TEXT_BODY_NORMAL): SFXRGBColor(0x00, 0x00, 0x00, 0x00)[黒色]、 選択項目のボディ文字列(TEXT_BODY_SELECT): SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)[白色]

SFZFlexListBoxControl::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 またはフレックスリストボックスコントロールの状態が非活性状態にあるときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色でテキストは描画されます。

色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。

[Note] 奇数番目の非選択項目の背景色

SFZFlexListBoxControl::SetOddListColor 関数の解説を参照してください。

[Note] 偶数番目の非選択項目の背景色

SFZFlexListBoxControl::SetEvenListColor 関数の解説を参照してください。

[Note] 選択項目の背景色

SFZFlexListBoxControl::SetSelectListColor 関数の解説を参照してください。

参照

SFZFlexListBoxControl::TextEnum | SFZFlexListBoxControl::GetTextColor | SFZFlexListBoxControl::SetOddListColor | SFZFlexListBoxControl::SetEvenListColor | SFZFlexListBoxControl::SetSelectListColor | SFZFlexListBoxControl::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor | 状態


SFZFlexListBoxControl::SetToggle
トグル状態を設定します。
[ public ]
Void SetToggle(
    Toggle param   // トグル状態 (ToggleEnum の論理和)
);

解説

この関数は、トグル状態(SFZFlexListBoxControl::ToggleEnum の論理和)を設定します。

デフォルト値: 0

使用例

以下は、トグル状態を設定するコードです。

SFZFlexListBoxControl       listbox;

// ...

listbox->SetToggle(
    SFZFlexListBoxControl::TOGGLE_EMPTY_BODY_ICON |
    SFZFlexListBoxControl::TOGGLE_MULTIPLE_BODY_TEXT
);

参照

SFZFlexListBoxControl::ToggleEnum | SFZFlexListBoxControl::GetToggle


SFZFlexListBoxControl::SetVerticalAlign
垂直アライメントを設定します。
[ public ]
Void SetVerticalAlign(
    VerticalEnum param   // 垂直アライメントの値
);

解説

この関数は、垂直アライメントを設定します。

デフォルト値: SFZFlexListBoxControl::DEFAULT_VERTICAL

[Note] 注意

SFZFlexListBoxControl::DEFAULT_VERTICAL の値は SFZFlexListBoxControl::VerticalEnum を参照してください。

参照

SFZFlexListBoxControl::GetVerticalAlign | SFZFlexListBoxControl::VerticalEnum


SFZFlexListBoxControl::SetWaitInterval
選択項目のスクロール開始までの待ち時間を設定します。[単位:ミリ秒]
[ public ]
Void SetWaitInterval(
    UInt32 param   // 選択項目のスクロールが開始されるまでの待ち時間
);

解説

この関数は、選択項目のスクロールが開始されるまでの待ちインターバルを設定します 。[単位: ミリ秒]

デフォルト値: SFZFlexListBoxControl::DEFAULT_WAIT ミリ秒

[Note] 注意

SFZFlexListBoxControl::DEFAULT_WAIT の値は SFZFlexListBoxControl::DefaultEnum を参照してください。

参照

SFZFlexListBoxControl::GetWaitInterval | SFZFlexListBoxControl::DefaultEnum


SFZFlexListBoxControl::CodeEnum
SFZFlexListBoxControl クラスを表す定数です。
enum CodeEnum {
    CODE_TYPE = four_char_code('c', 'f', 'l', 'b')
};
SFMTYPEDEFTYPE(CodeEnum)

参照

SFYResponder::GetType | SFYResponder::SetType


SFZFlexListBoxControl::DefaultEnum
各種パラメータのデフォルト値を表します。
enum DefaultEnum {
    DEFAULT_WAIT        = 1000,     // スクロール開始までの待ち時間(単位:ミリ秒)
    DEFAULT_SCROLL      = 100,      // スクロールインターバル(単位:ミリ秒)
    DEFAULT_STEP        = -1,       // スクロール移動量(単位:ピクセル)[ −1 の場合は使用しているフォントの半角空白文字(" ")一文字分の横幅になる]
    DEFAULT_SPACE       = 2,        // 項目の要素間のスペースサイズ(単位:ピクセル)
    DEFAULT_BAR_WIDTH   = 5         // スクロールバーの幅(単位:ピクセル)
};

SFZFlexListBoxControl::DirectionEnum
スクロールの移動方向を表します。
enum DirectionEnum {
    DIRECTION_LEFT    = 0,                // 左へスクロール
    DIRECTION_RIGHT,                      // 右へスクロール
    DEFAULT_DIRECTION = DIRECTION_LEFT    // デフォルト値: 左へスクロール
};
SFMTYPEDEFTYPE(DirectionEnum)

SFZFlexListBoxControl::HorizontalEnum
水平方向のアライメントを表す定数です。
enum HorizontalEnum {
    HORIZONTAL_LEFT     = 0,                 // 左詰め
    HORIZONTAL_CENTER,                       // 中央揃え
    HORIZONTAL_RIGHT,                        // 右詰め
    DEFAULT_HORIZONTAL  = HORIZONTAL_LEFT    // デフォルト設定: 左詰め
};
SFMTYPEDEFTYPE(HorizontalEnum)

SFZFlexListBoxControl::IconEnum
操作対象のアイコン画像を指定する定数です。
enum IconEnum {
    ICON_BODY_NORMAL                    = 0,
    ICON_BODY_SELECT,
    ICON_FOOTER_NORMAL,
    ICON_FOOTER_SELECT,
    ICON_LIMIT
};
SFMTYPEDEFTYPE(IconEnum)

解説

ICON_BODY_NORMAL: 通常時のボディアイコン画像

ICON_BODY_SELECT: 選択時のボディアイコン画像

ICON_FOOTER_NORMAL: 通常時のフッタアイコン画像

ICON_FOOTER_SELECT: 選択時のフッタアイコン画像


SFZFlexListBoxControl::ItemRec
項目の各種属性を表す構造体です。 (アイテム構造体)
// アイテム構造体
SFMTYPEDEFSTRUCT(ItemRec)
struct ItemRec {
    ItemPartRec     normal;   // 通常時の属性
    ItemPartRec     select;   // 選択時の属性
    PropertyRec     propery;  // プロパティ
};

// 項目属性構造体
SFMTYPEDEFSTRUCT(ItemPartRec)
struct ItemPartRec {
    HeaderRec       header;   // ヘッダ部属性
    BodyRec         body;     // ボディ属性
    FooterRec       footer;   // フッタ属性
};

// ヘッダ部属性構造体
SFMTYPEDEFSTRUCT(HeaderRec)
struct HeaderRec {
    SFXWideString   text;     // ヘッダ部テキスト
};

// ボディ部属性構造体
SFMTYPEDEFSTRUCT(BodyRec)
struct BodyRec {
    SFXWideString   text;     // ボディ部テキスト
    SFBImageSmp     icon;     // ボディ部アイコン画像
};

// フッタ部属性構造体
SFMTYPEDEFSTRUCT(FooterRec)
struct FooterRec {
    SFBImageSmp     icon;     // フッタ部アイコン画像
};

// プロパティ構造体
SFMTYPEDEFSTRUCT(PropertyRec)
struct PropertyRec {
    UInt32          id;       // コマンド ID
    AVKType         key;      // アクセスキー
    Bool            enable;   // 有効フラグ
};

解説

アイテム構造体を利用して、項目を挿入/取得/設定することができます。

参照

SFZFlexListBoxControl::Insert | SFZFlexListBoxControl::InsertFirst | SFZFlexListBoxControl::InsertLast | SFZFlexListBoxControl::GetItem | SFZFlexListBoxControl::SetItem | SFZFlexListBoxControl::SetItemText | SFZFlexListBoxControl::SetItemIconImage | SFZFlexListBoxControl::SetItemAccessKey | SFZFlexListBoxControl::SetItemCommandId | SFZFlexListBoxControl::SetItemEnable


SFZFlexListBoxControl::SelectEnum
選択時かどうかを表す定数です。
enum SelectEnum {
    NORMAL                              = 0,
    SELECT
};
SFMTYPEDEFTYPE(SelectEnum)

解説

NORMAL: 通常時 (非選択時)

SELECT: 選択時


SFZFlexListBoxControl::TextEnum
操作対象の文字列を指定する定数です。
enum TextEnum {
    TEXT_HEADER_NORMAL                  = 0,
    TEXT_HEADER_SELECT,
    TEXT_BODY_NORMAL,
    TEXT_BODY_SELECT,
    TEXT_LIMIT
};
SFMTYPEDEFTYPE(TextEnum)

解説

TEXT_HEADER_NORMAL: 非選択項目のヘッダ文字列

TEXT_HEADER_SELECT: 選択項目のヘッダ文字列

TEXT_BODY_NORMAL: 非選択項目のボディ文字列

TEXT_BODY_SELECT: 選択項目のボディ文字列


SFZFlexListBoxControl::ToggleEnum
トグル状態の設定に使用する定数です。
enum ToggleEnum {
    TOGGLE_EMPTY_HEADER_TEXT            = 1 << 0,
    TOGGLE_EMPTY_BODY_ICON              = 1 << 1,
    TOGGLE_EMPTY_BODY_TEXT              = 1 << 2,
    TOGGLE_EMPTY_FOOTER_ICON            = 1 << 3,
    TOGGLE_MULTIPLE_BODY_TEXT           = 1 << 4,
    TOGGLE_SWAP_BODY                    = 1 << 5
};
SFMTYPEDEFTYPE(ToggleEnum)

解説

TOGGLE_EMPTY_HEADER_TEXT: 選択時のヘッダ文字列が空のとき表示しません。(通常時のヘッダ文字列で代用しません)

TOGGLE_EMPTY_BODY_ICON: 選択時のボディアイコン画像が空のとき表示しません。

TOGGLE_EMPTY_BODY_TEXT: 選択時のボディ文字列が空のとき表示しません。

TOGGLE_EMPTY_FOOTER_ICON: 選択時のフッタアイコン画像が空のとき表示しません。

TOGGLE_MULTIPLE_BODY_TEXT: 選択時のボディ文字列表示を複数行表示にします。

TOGGLE_SWAP_BODY: ボディアイコン画像とボディ文字列の配置を入れ替えます。

これらは論理和により同時指定することができます。

デフォルト値: 0

使用例

SFZFlexListBoxControlSmp    list;

// インスタンスの作成等
// ...

// トグル状態の設定 (複数の状態を論理和で設定)
list->SetToggle(
    SFZFlexListBoxControl::TOGGLE_EMPTY_HEADER_TEXT |
    SFZFlexListBoxControl::TOGGLE_EMPTY_FOOTER_ICON |
    SFZFlexListBoxControl::TOGGLE_MULTIPLE_BODY_TEXT
);

実行結果:

参照

SFZFlexListBoxControl::ToggleEnum


SFZFlexListBoxControl::VerticalEnum
垂直方向のアライメントを表す定数です。
enum VerticalEnum {
    VERTICAL_TOP      = 0,               // 上詰め
    VERTICAL_MIDDLE,                     // 中央揃え
    VERTICAL_BOTTOM,                     // 下詰め
    DEFAULT_VERTICAL  = VERTICAL_MIDDLE  // デフォルト値: 中央揃え
};
SFMTYPEDEFTYPE(VerticalEnum)