SophiaFramework UNIVERSE 5.3 |
#include <SFZFlexListMenu.h.hpp>
class SFZFlexListMenu : public SFYMenu;
SFMTYPEDEFCLASS(SFZFlexListMenu)
■ 仕様と使い方
SFZFlexListMenu は、リストの中から項目をひとつ選択させるための高機能なメニューです。
□フレックスリストメニューの仕様
以下のように、個々の項目は左からヘッダ部、ボディ部、フッタ部の3つのパートに分かれます。
注意 | |
---|---|
|
□SFZFlexListMenu クラスと SFZTextMenu クラスの相違点
内容 | SFZTextMenu | SFZFlexListMenu |
---|---|---|
ヘッダ (キーアイコン) | WChar | SFXWideString |
アイコン画像 | △ (ボディ部のみ) | ○ (ボディ部とフッタ部) |
コマンド ID | × | ○ |
項目の高さ | 一定 | 可変 (文字列や画像の高さに依存) |
項目選択時の表示切り替え | × | ○ (トグル状態により一部動作変更可) |
複数行文字列 | × | ○ (選択時のみ) |
文字列のアライメント | × | ○ |
項目の上下移動 | △ 1項目のみ | ○ 1項目 / ページ / スナップ |
ページ送りの方式 | ページング方式とスクロール方式 | スクロールバーによるスクロール方式 |
構造体での項目追加 | × | ○ |
配列での複数項目追加 | × | ○ |
項目の背景色 (リストカラー) | アイテムごと | 偶数行用と奇数行用に2種類の背景色を設定できる |
パフォーマンスとメモリ使用量 | ○ 項目の数が数千でも軽い | △ 項目の数が数百以上になると、インスタンス破壊時にレスポンスが低下し、メモリ使用量も増大する(※) |
パフォーマンスとメモリ使用量 | |
---|---|
SFZFlexListMenu クラスでは、 各項目はウィジェットクラスを使用して実装されています。 項目数に比例して内部で管理するレスポンダの数が増加するので、 SFZFlexListMenu インスタンスを破棄するタイミングでパフォーマンスが劣化する恐れがあります。 また、メモリ使用量に関しても、同様のことが言えます。 項目数が数百以上の場合は、 SFZTextMenu クラスを利用することを推奨します。 |
□使い方
項目を追加するには、 SFZFlexListMenu::Insert / SFZFlexListMenu::InsertFirst / SFZFlexListMenu::InsertLast 関数を使います。 項目を削除するには、 SFZFlexListMenu::Remove / SFZFlexListMenu::RemoveFirst / SFZFlexListMenu::RemoveLast 関数を使います。 SFZFlexListMenu::Clear 関数を呼び出すと、すべての項目が削除されます。
SFYMenu::SetSelectUpKey 関数で設定された UP キー、または SFYMenu::SetSelectDownKey 関数で設定された DOWN キーを使用して選択項目を項目単位で移動できます。
SFZFlexListMenu::SetPageUpKey 関数で設定された PageUp キー、または SFZFlexListMenu::SetPageDownKey 関数で設定された PageDown キーを使用して選択項目をページ単位で移動できます。
SFZFlexListMenu::SetSnapUpKey 関数で設定された SnapUp キー、または SFZFlexListMenu::SetSnapDownKey 関数で設定された SnapDown キーを使用して選択項目を最上位項目または最下位項目に移動できます。
選択項目は、 SFZFlexListMenu::SetTextColor 関数で設定された選択項目の文字列の色、 SFZFlexListMenu::SetSelectListColor 関数で設定された背景色で描画されます。
非選択項目は、 SFZFlexListMenu::SetTextColor 関数で設定された非選択項目の文字列の色、 奇数番目の項目は SFZFlexListMenu::SetOddListColor 関数、 偶数番目の項目は SFZFlexListMenu::SetEvenListColor 関数で設定された背景色でそれぞれ描画されます。
SFZFlexListMenu::SetItemEnable 関数によって設定される有効フラグが "false" である項目は、 テキストは SFZFlexListMenu::SetTextColor 関数で設定された色を基にして「無効な項目」用に計算された色で描画されます。 背景も奇数番目と偶数番目に応じて SFZFlexListMenu::SetOddListColor と SFZFlexListMenu::SetEvenListColor 関数で設定された色を基にして「無効な項目」用に計算された色でそれぞれ塗り潰されます。 ただし、選択項目の背景は、 常に SFZFlexListMenu::SetSelectListColor 関数で設定された色で塗り潰されます。 また、このメニューの状態が非活性状態であるときは、 すべての項目が 有効フラグが "false" であるときと同じ処理で描画されます。
SFZFlexListMenu::SetGridLineEnable 関数と SFZFlexListMenu::SetGridLineColor 関数を使用してグリッド線を描画することも可能です。 項目内のマージンは SFZFlexListMenu::SetListMargin 関数で設定します。
デフォルトの実装では、 フレックスリストメニュー[SFZFlexListMenu]は 下記の結果イベント[SFEVT_RESPONDER_RESULT]を受信します。
開発者は、これらの結果イベントを受信するハンドラを登録できます。
ハンドラを登録しない場合、上記結果イベントを受信するとデフォルトのハンドラが起動されます。 デフォルトのハンドラは、メニューを閉じる処理だけを行います。
操作キーは、SFYMenu::SetOperateKey 関数を使用して設定します。 デフォルトでは、セレクトキーが操作キーとして割り当てられています。
アクセスキーは、SFZFlexListMenu::SetItemAccessKey 関数を使用して設定します。
ESCAPE キーは、SFYMenu::SetEscapeKey 関数を使用して設定します。 デフォルトでは、クリアキーが ESCAPE キーとして割り当てられています。
注意 | |
---|---|
選択項目が SFZFlexListMenu::SetItemEnable 関数により無効化("false" が設定)されているとき、 結果イベントは発生しません。 |
タイマーのキャンセル | |
---|---|
SFYMenu::ScheduleTimer 関数で設定したタイマー処理は、 操作キーまたは ESCAPE キーを押したときに自動的にキャンセルされます。 サスペンド時もタイマーはキャンセルされますが、 レジューム時に SFYMenu::ScheduleTimer 関数の引数に指定した時間でタイマー処理は再開されます。 メニューの有効状態が無効になったときもタイマーはキャンセルされます。 |
参照: 結果イベント[SFEVT_RESPONDER_RESULT] | SFZFlexListMenu::HandleOperateKey | SFZFlexListMenu::HandleAccessKey | SFZFlexListMenu::HandleEscapeKey | SFZFlexListMenu::HandleSelectUpKey | SFZFlexListMenu::HandleSelectDownKey | SFYMenu::HandleSelectRightKey | SFYMenu::HandleSelectLeftKey
■フレックスリストメニューを生成するためのコード
Void UserClass::Main(Void) { SFZFlexListMenuSmp menu; SFZFlexListMenu::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); // [必須] メニューを生成する menu = SFZFlexListMenu::NewInstance(&error); // [必須] 親を UserClass(ルート)に設定する menu->SetParent(GetThis()); // [必須] 状態を「可視+活性+操作可能+フォーカス」にまとめて設定する menu->SetState(true, true, true, true); // [任意] 偶数番目の項目の背景色を設定する menu->SetEvenListColor(SFXRGBColor(0xFF, 0xFF, 0xDD, 0x00)); // [任意] 奇数番目の項目の背景色を設定する menu->SetOddListColor(SFXRGBColor(0xFF, 0xDD, 0xFF, 0x00)); // [任意] メニューのベベルカラーを設定する menu->SetBevelColor(SFXBevelColor( SFXRGBColor(0xEE, 0xEE, 0xEE, 0x00), SFXRGBColor(0x77, 0x77, 0x77, 0x00), SFXRGBColor(0x22, 0x22, 0x22, 0x00) )); // [任意] 通常時の水平アライメントを中央揃えにする menu->SetHorizontalAlign(SFZFlexListMenu::NORMAL, SFZFlexListMenu::HORIZONTAL_CENTER); // [任意] 外枠のマージンを設定する menu->SetMenuMargin(SFXMargin(6, 6, 5, 6)); // [任意] リスト項目間のマージンを設定する menu->SetListMargin(SFXMargin(2, 1, 2, 1)); // [任意] グリッドライン線を無効にする (デフォルト) menu->SetGridLineEnable(false); // [任意] スペースサイズを設定する menu->SetSpaceSize(4); // [任意] 連続スクロールするように設定する menu->SetScrollRepeat(true); // [任意] スクロールバーの幅を設定する menu->SetScrollBarWidth(5); // [任意] 選択時は複数行文字列表示にする menu->SetToggle(SFZFlexListMenu::TOGGLE_MULTIPLE_BODY_TEXT); // ここではアイテム構造体を利用して項目を追加する。 // 文字列だけでも追加できるが画像を利用する場合は、 // アイテム構造体を利用した方が簡単。[選択] // [アイテム構造体を利用する場合は必須] アイテム構造体のプロパティを設定する item.property.enable = true; // 有効フラグを true に設定する item.property.key = 0; // アクセスキーを設定しない item.property.id = SFZFlexListMenu::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(); } // 末尾に挿入する menu->InsertLast(item); } // [任意] 5 番目の項目を無効にする menu->SetItemEnable(5, false); // [必須] 最適な領域を計算して実領域を設定する menu->SetRealBound(menu->GetSuitableBound(GetLocalBound().Deflate(10, 10)).SnapCenterMiddle(GetLocalBound().GetCenterMiddle())); // [任意] 1 番目の項目を選択する (※) menu->SetSelect(1); // (※注意) // フレックスリストメニューの状態を「操作可能状態」にしてから現在の選択項目を設定する // return; }
実行結果:
SFYMenu | SFZTextMenu | SFXEvent | 結果イベント[SFEVT_RESPONDER_RESULT] | 状態
コンストラクタ/デストラクタ |
---|
SFZFlexListMenu( Void ) SFZFlexListMenu クラスのコンストラクタです。
|
~SFZFlexListMenu( Void ) SFZFlexListMenu クラスのデストラクタです。
|
パブリック関数 | |
---|---|
Void |
Clear( Void ) すべての項目を削除します。
|
Bool |
ContainsAccessKey(
AVKType key
) 指定されたアクセスキーが登録されているかどうかを判定します。
|
SInt32 |
FirstIndexOfCommandId(
UInt32 id
) 先頭から検索して、指定されたコマンド ID と一致する最初の項目のインデックスを取得します。
|
SInt32 |
FirstIndexOfCommandId(
UInt32 id
, SInt32 index
) 先頭から検索して、指定されたコマンド ID と一致する最初の項目のインデックスを取得します。
|
Bool |
GetAccessKeyEnable( Void ) アクセスキー有効フラグの値を取得します。
|
SFXBevelColorConstRef |
GetBevelColor( Void ) 外枠のベベルカラーを取得します。
|
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 ) リスト項目のマージンを取得します。
|
SFXMarginConstRef |
GetMenuMargin( Void ) メニューマージンを取得します。
|
SFXRGBColorConstRef |
GetOddListColor( Void ) 奇数番目の非選択項目の背景色を取得します。
|
AVKType |
GetPageDownKey( Void ) 項目を下方向に 1 ページ分スクロールする PageDown キーを取得します。
|
AVKType |
GetPageUpKey( Void ) 項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
|
SFYScrollBarControlSmpConstRef |
GetScrollBarControl( Void ) スクロールバーコントロールを取得します。
|
SInt16 |
GetScrollBarWidth( Void ) スクロールバーの横幅を取得します。[単位:ピクセル]
|
DirectionEnum |
GetScrollDirection( Void ) スクロールの移動方向を取得します。
|
UInt32 |
GetScrollInterval( Void ) スクロールインターバルを取得します。[単位:ミリ秒]
|
Bool |
GetScrollRepeat( Void ) 連続スクロールフラグの値を取得します。
|
SInt16 |
GetScrollStep( Void ) スクロール移動量を取得します。[単位:ピクセル]
|
SInt32 |
GetSelect( Void ) 選択された項目のインデックスを取得します。
|
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 SFZFlexListMenuSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
Void |
Remove(
SInt32 index
) 指定されたインデックスの位置または範囲の項目を削除します。
|
Void |
Remove(
SInt32 begin
, SInt32 end
) 指定されたインデックスの位置または範囲の項目を削除します。
|
Void |
RemoveFirst( Void ) 先頭の項目を削除します。
|
Void |
RemoveLast( Void ) 末尾の項目を削除します。
|
Void |
SetAccessKeyEnable(
Bool param
) アクセスキー有効フラグを設定します。
|
Void |
SetBevelColor(
SFXBevelColorConstRef param
) 外枠のベベルカラーを設定します。
|
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 |
SetMenuMargin(
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 |
SetScrollInterval(
UInt32 param
) スクロールインターバルを設定します。[単位:ミリ秒]
|
Void |
SetScrollRepeat(
Bool param
) 連続スクロールフラグを指定された値に設定します。
|
Void |
SetScrollStep(
SInt16 param
) スクロール移動量を設定します。[単位:ピクセル]
|
Void |
SetSelect(
SInt32 param
) 指定された項目を選択します。
|
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 |
CancelTimer( Void )
(SFYMenu から継承)
タイマーをキャンセルします。
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
SFYResponderSmp |
GetChildBack( Void )
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SInt32 |
GetChildCount( Void )
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront( Void )
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYDistributerPtr |
GetDistributer( Void )
(SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
AVKType |
GetEscapeKey( Void )
(SFYMenu から継承)
ESCAPE キーを取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRectangle |
GetGlobalBound( Void )
(SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
|
UInt32 |
GetID( Void )
(SFYResponder から継承)
このレスポンダの ID を取得します。
|
SFXRectangle |
GetLocalBound( Void )
(SFYResponder から継承)
このレスポンダのローカル領域を取得します。
|
SInt32 |
GetNthBackward( Void )
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward( Void )
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
AVKType |
GetOperateKey( Void )
(SFYMenu から継承)
操作キーを取得します。
|
SFYResponderSmp |
GetParent( Void )
(SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
|
Bool |
GetPropertyTransparent( Void )
(SFYResponder から継承)
このレスポンダの透過属性を取得します。
|
SFXRectangleConstRef |
GetRealBound( Void )
(SFYResponder から継承)
このレスポンダの実領域を取得します。
|
VoidPtr |
GetReference( Void )
(SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
|
SFYRendererPtr |
GetRenderer( Void )
(SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
|
SFYResponderSmp |
GetRoot( Void )
(SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
|
AVKType |
GetSelectDownKey( Void )
(SFYMenu から継承)
DOWN キーを取得します。
|
AVKType |
GetSelectLeftKey( Void )
(SFYMenu から継承)
LEFT キーを取得します。
|
AVKType |
GetSelectRightKey( Void )
(SFYMenu から継承)
RIGHT キーを取得します。
|
AVKType |
GetSelectUpKey( Void )
(SFYMenu から継承)
UP キーを取得します。
|
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 |
RewindTimer( Void )
(SFYMenu から継承)
メニューが自動的に閉じるまでの時間を再設定します。
|
Void |
ScheduleTimer(
UInt32 param
)
(SFYMenu から継承)
指定時間経過後に、
ESCAPE キー押下と同等の処理が行われるようにタイマーをスケジュールします。
|
Void |
SetBackgroundColor(
SFXRGBColorConstRef param
)
(SFYWidget から継承)
背景の色を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
Void |
SetEscapeKey(
AVKType param
)
(SFYMenu から継承)
ESCAPE キーを設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetOperateKey(
AVKType param
)
(SFYMenu から継承)
操作キーを設定します。
|
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 |
SetSelectDownKey(
AVKType param
)
(SFYMenu から継承)
DOWN キーを設定します。
|
Void |
SetSelectLeftKey(
AVKType param
)
(SFYMenu から継承)
LEFT キーを設定します。
|
Void |
SetSelectRightKey(
AVKType param
)
(SFYMenu から継承)
RIGHT キーを設定します。
|
Void |
SetSelectUpKey(
AVKType param
)
(SFYMenu から継承)
UP キーを設定します。
|
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 |
HandleSelectDownKey( Void ) DOWN キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
HandleSelectUpKey( Void ) UP キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
SFYResponderSmp |
GetThis( Void )
(SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
|
Void |
HandleBoundGlobal(
SFXRectangleConstRef rectangle
)
(SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
|
Void |
HandleBoundReal( Void )
(SFYMenu から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です
(実領域が変化したときの処理を行います)。
|
Void |
HandleSelectLeftKey( Void )
(SFYMenu から継承)
LEFT キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
HandleSelectRightKey( Void )
(SFYMenu から継承)
RIGHT キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFZFlexListMenu クラスを表す定数です。
|
DefaultEnum 各種パラメータのデフォルト値を表します。
|
DirectionEnum スクロールの移動方向を表します。
|
HorizontalEnum 水平方向のアライメントを表す定数です。
|
IconEnum 操作対象のアイコン画像を指定する定数です。
|
ItemRec 項目の各種属性を表す構造体です。 (アイテム構造体)
|
SelectEnum 選択時かどうかを表す定数です。
|
TextEnum 操作対象の文字列を指定する定数です。
|
ToggleEnum トグル状態の設定に使用する定数です。
|
VerticalEnum 垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFZFlexListMenu(Void);
このコンストラクタは、以下の初期化処理を行います。
表 263. イベントハンドラ
イベント | ハンドラの内容 |
---|---|
SFYBoxControl::SetOperateKey で設定された操作キーの SFEVT_KEY イベント | SFZFlexListMenu::HandleOperateKey 関数を呼び出します。 |
SFZFlexListMenu::SetItemAccessKey で設定されたアクセスキーの SFEVT_KEY イベント | SFZFlexListMenu::HandleOperateKey 関数を呼び出します。 |
SFYMenu::SetEscapeKey で設定された ESCAPE キーの SFEVT_KEY イベント | SFZFlexListMenu::HandleEscapeKey 関数を呼び出します。 |
SFYMenu::SetSelectUpKey で設定された UP キーの SFEVT_KEY イベント | SFZFlexListMenu::HandleSelectUpKey 関数を呼び出します。 [1つ上の項目を現在の選択項目にします(必要に応じて1項目分上にスクロールします)。] |
SFYMenu::SetSelectDownKey で設定された DOWN キーの SFEVT_KEY イベント | SFZFlexListMenu::HandleSelectDownKey 関数を呼び出します。 [1つ下の項目を現在の選択項目にします(必要に応じて1項目分下にスクロールします)。] |
SFZFlexListMenu::SetPageUpKey で設定された PageUp キーの SFEVT_KEY イベント | 1ページ上にスクロールします。 |
SFZFlexListMenu::SetPageDownKey で設定された PageDown キーの SFEVT_KEY イベント | 1ページ下にスクロールします。 |
SFZFlexListMenu::SetSnapUpKey で設定された SnapUp キーの SFEVT_KEY イベント | 上端までスクロールします。 |
SFZFlexListMenu::SetSnapDownKey で設定された SnapDown キーの SFEVT_KEY イベント | 下端までスクロールします。 |
現在の選択項目が変更になった時に発生する値イベント[SFEVT_RESPONDER_VALUE] | SFYControl::SetCurrentValue 関数を呼び出して現在選択されている項目のインデックスを現在値に設定します。 |
領域サイズの垂直成分が変化した時に発生する値イベント[SFEVT_RESPONDER_BOUND] | このフレックスリストメニューを再配置します。 |
注意 | |
---|---|
SFZFlexListMenu クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。 |
このコンストラクタの内部実装は以下の通りです。
/*protected */SFZFlexListMenu::SFZFlexListMenu(Void) static_throws { static SFXBevelColor::AtomRecConst bevel[] = { {{{{0x00, 0xFF, 0xFF, 0xFF}}}, {{{0x00, 0xEE, 0xEE, 0xEE}}}, {{{0x00, 0x88, 0x88, 0x88}}}} }; 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} }; static SFXEventRange::AtomRecConst vrange[] = { { 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; 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(OnVerticalBound); vrule[0].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.pup = AVK_TXPGUP; _key.pdown = AVK_TXPGDOWN; _key.nup = AVK_TXHOME; _key.ndown = AVK_TXEND; _color.bevel.Set(bevel[0]); _margin.Set(SFXMargin(2, 2, 2, 2)); _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); } } } }// SFZFlexListMenu::SFZFlexListMenu /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListMenu, OnShield, invoker, event) { unused(invoker); return (event.GetP16() == GetPageUpKey() || event.GetP16() == GetPageDownKey() || event.GetP16() == GetSnapUpKey() || event.GetP16() == GetSnapDownKey() || (GetAccessKeyEnable() && _vertical->ContainsAccessKey(static_cast<AVKType>(event.GetP16()))) ); }// XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListMenu, OnShield) // /*private */XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListMenu, OnKey, invoker, event) { Bool result(false); unused(invoker); 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())); } // // SFYMenu::OnKey : Operate, Escape, Select Up, Select Down // return result; }// XANDLER_IMPLEMENT_BOOLEVENT(SFZFlexListMenu, OnKey) // /*private */XANDLER_IMPLEMENT_VOIDBOUND(SFZFlexListMenu, 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; } } return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFZFlexListMenu, OnVerticalBound) // /*private */XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZFlexListMenu, OnBarScrollEnable, invoker, reason) { unused(invoker); unused(reason); _bar.smp->SetState(_bar.smp->IsScrollable(), _bar.smp->IsScrollable(), false, false); Relocate(); return; }// XANDLER_IMPLEMENT_VOIDSCROLLBAR(SFZFlexListMenu, 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 | SFZFlexListMenu::CodeEnum | SFZFlexListMenu::SetScrollBarWidth | SFYControl::GetCurrentValue | SFZFlexListMenu::SetBevelColor | SFZFlexListMenu::SetMenuMargin | SFZFlexListMenu::SetScrollRepeat | SFZFlexListMenu::SetEvenListColor | SFZFlexListMenu::SetOddListColor | SFZFlexListMenu::SetSelectListColor | SFZFlexListMenu::SetTextColor | SFZFlexListMenu::SetGridLineColor | SFZFlexListMenu::SetListMargin | SFZFlexListMenu::SetGridLineEnable | SFZFlexListMenu::SetAccessKeyEnable | SFZFlexListMenu::SetFont | SFZFlexListMenu::SetSpaceSize | SFZFlexListMenu::SetToggle | SFZFlexListMenu::SetScrollDirection | SFZFlexListMenu::SetScrollInterval | SFZFlexListMenu::SetScrollStep | SFZFlexListMenu::SetWaitInterval | SFYBoxControl::SetOperateKey | SFZFlexListMenu::SetItemAccessKey | SFZFlexListMenu::HandleOperateKey | SFYMenu::SetEscapeKey | SFZFlexListMenu::HandleEscapeKey | SFYMenu::SetSelectUpKey | SFYMenu::SetSelectDownKey | SFZFlexListMenu::SetPageUpKey | SFZFlexListMenu::SetPageDownKey | SFZFlexListMenu::SetSnapUpKey | SFZFlexListMenu::SetSnapDownKey | SFZFlexListMenu::HorizontalEnum | SFZFlexListMenu::VerticalEnum | SFZFlexListMenu::DirectionEnum | SFZFlexListMenu::DefaultEnum | SFZFlexListMenu::ToggleEnum | SFXMargin | SFXRGBColor | SFXEvent | タイプ | 実領域 | イベント | キーイベント[SFEVT_KEY] | 値イベント[SFEVT_RESPONDER_VALUE] | 領域イベント[SFEVT_RESPONDER_BOUND]
[ protected, virtual ] virtual ~SFZFlexListMenu(Void);
このフレックスリストメニューからすべての項目を削除します。
このデストラクタの内部実装は以下の通りです。
/*protected virtual */SFZFlexListMenu::~SFZFlexListMenu(Void) { }// SFZFlexListMenu::~SFZFlexListMenu // /*protected virtual */SFYFlexListControl::~SFYFlexListControl(Void) { WidgetArray::Iterator itor; itor = _widget.GetFirstIterator(); while (itor.HasNext()) { ::delete itor.GetNext(); } }// SFYFlexListControl::~SFYFlexListControl //
[ public ] Void Clear(Void);
この関数は、メニューからすべての項目を削除します。
この関数は、指定されたアクセスキーが登録されているかどうかを判定します。
[ public, const ] SInt32 FirstIndexOfCommandId( UInt32 id // コマンド ID );
[ public, const ] SInt32 FirstIndexOfCommandId( UInt32 id // コマンド ID SInt32 index // 検索開始位置 );
この関数は、 指定されたコマンド ID を先頭から末尾に向かって検索し、最初に見つかった位置のインデックスを取得します。
注意 | |
---|---|
検索開始位置を指定することで、先頭以外の位置から検索できます。 |
コマンド ID | |
---|---|
コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。 |
SFZFlexListMenu::SetItemCommandId | SFZFlexListMenu::LastIndexOfCommandId | SFZFlexListMenu::ItemRec
[ public, const ] Bool GetAccessKeyEnable(Void);
この関数は、アクセスキー有効フラグの値を取得します。
[ public, const ] SFXBevelColorConstRef GetBevelColor(Void);
外枠のベベルカラー(SFXBevelColor)。
この関数は、外枠のベベルカラーを取得します。
[ public, const ] SFXRGBColorConstRef GetEvenListColor(Void);
偶数番目の非選択項目の背景色。
この関数は、偶数番目の非選択項目の背景色を取得します。
[ public, const ] AEEFont GetFont( TextEnum textEnum // 文字列定数 );
指定された文字列定数に対応するフォント。
この関数は、指定された文字列定数に対応するフォントを取得します。
[ public, const ] SFXRGBColorConstRef GetGridLineColor(Void);
グリッド線の色。
この関数は、グリッド線の色を取得します。
[ public, const ] Bool GetGridLineEnable(Void);
グリッド線有効フラグの値。
この関数は、グリッド線有効フラグの値を取得します。
[ public, const ] HorizontalEnum GetHorizontalAlign(Void);
水平アライメントの値。
この関数は、水平アライメントの値を取得します。
[ public, const ] ItemRec GetItem( SInt32 index // 項目のインデックス SFCErrorPtr exception = null // エラー値ポインタ );
アイテム構造体 (SFZFlexListMenu::ItemRec)。
指定された項目のアクセスキー(AVKType)。
この関数は、指定された項目のアクセスキーを取得します。
アクセスキーが設定されていない場合、static_cast<AVKType>(0) が返ります。
指定された項目のコマンド ID。
この関数は、指定された項目のコマンド ID を取得します。
コマンド ID | |
---|---|
コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。 |
SFZFlexListMenu::SetItemCommandId | SFZFlexListMenu::FirstIndexOfCommandId | SFZFlexListMenu::LastIndexOfCommandId | SFZFlexListMenu::ItemRec
[ public, const ] SInt32 GetItemCount(Void);
項目の数。
この関数は、フレックスリストメニューの項目の数を取得します。
項目の有効フラグに設定された値(Bool 型)。
この関数は、指定された項目の有効フラグの値を取得します。
項目の高さ 。[単位:ピクセル]
この関数は、リストメニュー内の指定された項目の高さを取得します。
注意 | |
---|---|
SFZFlexListMenu::SetFont 関数で項目に設定されたフォントの高さ、 SFZFlexListMenu::SetItemIconImage 関数で項目に設定されたアイコン画像の高さ、 SFZFlexListMenu::SetListMargin 関数で設定された上下の余白からフレックスリストメニューの項目の高さを計算します。 |
[ public, const ] SFBImageSmpConstRef GetItemIconImage( SInt32 index // 項目のインデックス IconEnum iconEnum // アイコン定数 );
指定された項目内の指定されたアイコン定数(SFZFlexListMenu::IconEnum)に対応する画像。
この関数は、指定された項目内の指定されたアイコン定数 (SFZFlexListMenu::IconEnum)に対応する画像を取得します。
[ public, const ] SFXWideStringConstRef GetItemText( SInt32 index // 項目のインデックス TextEnum textEnum // 文字列定数 );
指定された項目の指定された文字列定数に対応するテキスト。
この関数は、指定された項目の指定された文字列定数(SFZFlexListMenu::TextEnum)に対応する文字列を取得します。
[ public, const ] SFXMarginConstRef GetListMargin(Void);
リスト項目内のマージン(SFXMargin)。
この関数は、リスト項目のマージンを取得します。
[ public, const ] SFXMarginConstRef GetMenuMargin(Void);
メニューの外枠に相当するメニューマージン(SFXMargin)。
この関数は、メニューの外枠に相当するメニューマージンを取得します。
[ public, const ] SFXRGBColorConstRef GetOddListColor(Void);
奇数番目の非選択項目の背景色。
この関数は、奇数番目の非選択項目の背景色を取得します。
[ public, const ] AVKType GetPageDownKey(Void);
項目を下方向に 1 ページ分スクロールする PageDown キー。
この関数は、項目を下方向に 1 ページ分スクロールする PageDown キーを取得します。
[ public, const ] AVKType GetPageUpKey(Void);
項目を上方向に 1 ページ分スクロールする PageUp キー。
この関数は、項目を上方向に 1 ページ分スクロールする PageUp キーを取得します。
[ public, const ] SFYScrollBarControlSmpConstRef GetScrollBarControl(Void);
スクロールバーコントロール。
この関数は、フレックスリストメニューで使用されるスクロールバーコントロールを取得します。
開発者は取得したスクロールバーコントロールを使用してスクロールバーの外観を変更することができます。
独自のスクロールバーコントロールを利用する場合は、 SFZFlexListMenu::SetScrollBarControl 関数を呼び出して設定します。
以下は、スクロールバーコントロールを取得してトラック色を変更するためのコードです。
// スクロールバーコントロールを取得する
SFZFlexListMenuSmp menu;
SFYScrollBarControlSmp bar;
menu = SFZFlexListMenu::NewInstance();
if ((bar = menu->GetScrollBarControl()) != null) {
bar->SetTrackColor(SFXRGBColor(0xDD, 0xFF, 0xDD, 0x00));
}
[ public, const ] SInt16 GetScrollBarWidth(Void);
スクロールバーの横幅。[単位:ピクセル]
この関数は、スクロールバーの横幅を取得します。[単位:ピクセル]
[ public, const ] DirectionEnum GetScrollDirection(Void);
スクロールの移動方向(SFZFlexListMenu::DirectionEnum)。
この関数は、スクロールの移動方向を取得します。
[ public, const ] UInt32 GetScrollInterval(Void);
スクロールインターバル。[単位:ミリ秒]
この関数は、スクロールインターバルを取得します。[単位:ミリ秒]
[ public, const ] Bool GetScrollRepeat(Void);
この関数は、連続スクロールフラグの値を取得します。
注意 | |
---|---|
連続スクロールフラグの値が true の場合、 フォーカスを持つ先頭/末尾の項目を更に上/下方向にフォーカスを移動させようとすると 末尾/先頭の項目にフォーカスが移動します。 先頭の項目から末尾の項目にフォーカスが移動した場合は、 末尾の項目が実領域の最下部の位置に来るように表示されます。 末尾の項目から先頭の項目にフォーカスが移動した場合は、 先頭の項目が実領域の最上部の位置に来るように表示されます。 なお、スクロールするだけの項目が存在しない場合は、 何も起こりません。 |
[ public, const ] SInt16 GetScrollStep(Void);
スクロール移動量。[単位:ピクセル]
この関数は、スクロール移動量を取得します。[単位:ピクセル]
[ public, const ] SInt32 GetSelect(Void);
選択された項目のインデックス。
この関数は、選択された項目のインデックスを取得します。
[ public, const ] SFXRGBColorConstRef GetSelectListColor(Void);
選択項目の背景色。
この関数は、選択項目の背景色を取得します。
[ public, const ] AVKType GetSnapDownKey(Void);
項目を下端までスクロールする SnapDown キー。
この関数は、項目を下端までスクロールする SnapDown キーを取得します。
[ public, const ] AVKType GetSnapUpKey(Void);
項目を上端までスクロールする SnapUp キー。
この関数は、項目を上端までスクロールする SnapUp キーを取得します。
[ public, const ] SInt16 GetSpaceSize(Void);
スペースサイズ。[単位:ピクセル]
この関数は、項目の要素間のスペースサイズを取得します。[単位:ピクセル]
[ public, const ] SFXRGBColorConstRef GetTextColor( TextEnum textEnum // 文字列定数 );
文字列定数(SFZFlexListBoxControl::TextEnum)に対応する色。
この関数は、指定された文字列定数(SFZFlexListBoxControl::TextEnum)に対応する色を取得します。
[ public, const ] Toggle GetToggle(Void);
トグル状態(SFZFlexListMenu::ToggleEnum の論理和)。
この関数は、トグル状態(SFZFlexListMenu::ToggleEnum の論理和)を取得します。
[ public, const ] VerticalEnum GetVerticalAlign(Void);
垂直アライメント(SFZFlexListMenu::VerticalEnum)。
この関数は、垂直アライメントの値を取得します。
[ public, const ] UInt32 GetWaitInterval(Void);
項目のスクロール開始までの待ち時間。[単位:ミリ秒]
この関数は、項目のスクロール開始までの待ち時間を取得します。[単位:ミリ秒]
この関数は、SFZFlexListMenu::SetItemAccessKey 関数で設定したアクセスキーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は以下の通りです。
SFZFlexListMenu::SetAccessKeyEnable 関数によりコントロール全体のアクセスキー有効フラグが true に設定され、 SFZFlexListMenu::SetItemAccessKey 関数で設定したアクセスキーを設定した項目が SFZFlexListMenu::SetItemEnable 関数により項目の有効フラグが true に設定されている場合、 SFYControl::SetCurrentValue 関数を呼び出してその項目を現在の選択項目とします。 そして、結果イベント(「SFEVT_RESPONDER_RESULT/SFP16_RESULT_OK/SFYControl::GetCurrentValue 関数の戻り値」のイベント)を送信します。
コントロール全体のアクセスキー有効フラグが false に設定されている場合や、 項目の有効フラグが false に設定されている場合、何も処理されません。
同じアクセスキーが複数の項目に設定されている場合は、最初の項目に設定されたものだけが有効になります。
この関数の内部実装は以下の通りです。
SFYVerticalFlexListControlSmp _vertical; /*protected virtual */Bool SFZFlexListMenu::HandleAccessKey(AVKType key) { Bool result(false); for (SInt32 i = 0; i < GetItemCount(); ++ i) { if (GetItemAccessKey(i) == key) { if (GetItemEnable(i)) { _vertical->SetCurrentValue(i); InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, i), false); result = true; break; } } } return result; }// SFZFlexListMenu::HandleAccessKey // }// SFYWidget::HandleBoundOptimize //
SFZFlexListMenu::SetItemAccessKey | SFZFlexListMenu::SetAccessKeyEnable | SFZFlexListMenu::SetItemEnable SFYControl::GetCurrentValue | SFXEvent | 結果イベント | キーイベント[SFEVT_KEY]
[ protected, virtual, const ] Void HandleBoundOptimize( SFXRectanglePtr rectangle // 矩形 );
この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] を受信したときに呼び出されます。
引数 rectangle で指定した矩形領域に収まる範囲内で、レスポンダの最適な領域を計算します。
計算結果のレスポンダに最適なサイズは、rectangle 引数の size 要素(サイズ)に格納されます。 なお、領域イベントの P32 パラメータとして渡された rectangle 引数の origin 要素(始点)はこの関数内で変更しないことを推奨します。
デフォルトの実装は以下の通りです。
項目の高さ | |
---|---|
SFZFlexListMenu では、 各項目の高さは異なる可能性があるため項目毎に高さを計算し、その和をとっています。 一方、SFZTextMenu では、項目の高さはすべて同じです。 |
項目のフォント、アイコンキャラクタやアイコン画像、文字列、スペースサイズ、マージン | |
---|---|
項目内の要素であるフォント、アイコンキャラクタやアイコン画像、文字列、マージンは、 SFZFlexListMenu::SetFont 関数、 SFZFlexListMenu::SetItem 関数、 SFZFlexListMenu::SetItemIconImage 関数、 SFZFlexListMenu::SetItemText 関数、 SFZFlexListMenu::SetSpaceSize 関数、 SFZFlexListMenu::SetListMargin 関数を使用して設定されます。 アイコンキャラクタやアイコン画像、文字列は設定されないこともあります。 設定されていない項目内の要素の長さは 0 として計算されます。 |
スクロールバーの横幅 | |
---|---|
スクロールバーの幅は、SFZFlexListMenu::SetScrollBarWidth 関数で設定される幅です。 |
メニューマージン | |
---|---|
メニューの外枠を表すマージンで、デフォルトは SFXMargin(2, 2, 2, 2) で表される領域です。 詳細は SFZFlexListMenu::GetMenuMargin 関数の解説を参照してください。 |
領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント] | |
---|---|
SFYResponder::GetSuitableBound 関数は、 引数にヒント領域を指定した場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE, rectangle)] をレスポンダに送信します。 SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundOptimize 仮想関数が呼び出されます。 ※ 領域イベントの P32 パラメータ rectangle にはヒント領域が初期設定されています。 |
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント受信時の最適な領域計算 | |
---|---|
SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 最適な領域の計算は、最初に SFYWidget::HandleBoundOptimize 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundOptimize 仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
struct ScrollBarRec { SFYScrollBarControlSmp smp; SInt16 width; }; SFYVerticalFlexListControlSmp _vertical; ScrollBarRec _bar; /*protected virtual */Void SFZFlexListMenu::HandleBoundOptimize(SFXRectanglePtr rectangle) const { SFXSize size; rectangle->Deflate(GetMenuMargin()); 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(GetMenuMargin()); return; }// SFZFlexListMenu::HandleBoundRequest //
SFYResponder::GetSuitableBound | SFZFlexListMenu::SetFont | SFZFlexListMenu::SetItem | SFZFlexListMenu::SetItemIconImage | SFZFlexListMenu::SetItemText | SFZFlexListMenu::SetSpaceSize | SFZFlexListMenu::SetListMargin | SFZFlexListMenu::SetScrollBarWidth | SFZFlexListMenu::GetMenuMargin | SFXMargin | SFZTextMenu | SFXEvent | 領域イベント[SFEVT_RESPONDER_BOUND] | 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]
[ protected, virtual, const ] Void HandleBoundRequest( SFXRectanglePtr rectangle // 計算された矩形 );
この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] を受信したときに呼び出されます。
レスポンダの最適な領域を計算します。
計算結果のレスポンダに最適なサイズは、rectangle 引数の size 要素(サイズ)に格納されます。 なお、領域イベントの P32 パラメータとして渡された rectangle 引数の origin 要素(始点)はこの関数内で変更しないことを推奨します。
デフォルトの実装は以下の通りです。
項目の高さ | |
---|---|
SFZFlexListMenu では、 各項目の高さは異なる可能性があるため項目毎に高さを計算し、その和をとります。 一方、SFZListBoxControl では、項目の高さはすべて同じです。 |
項目のフォント、アイコンキャラクタやアイコン画像、文字列、スペースサイズ、マージン | |
---|---|
項目内の要素であるフォント、アイコンキャラクタやアイコン画像、文字列、マージンは、 SFZFlexListMenu::SetFont 関数、 SFZFlexListMenu::SetItem 関数、 SFZFlexListMenu::SetItemIconImage 関数、 SFZFlexListMenu::SetItemText 関数、 SFZFlexListMenu::SetSpaceSize 関数、 SFZFlexListMenu::SetListMargin 関数を使用して設定されます。 アイコンキャラクタやアイコン画像、文字列は設定されないこともあります。 設定されていない項目内の要素の長さは 0 として計算されます。 |
メニューマージン | |
---|---|
メニューの外枠を表すマージンで、デフォルトは SFXMargin(2, 2, 2, 2) で表される領域です。 詳細は SFZFlexListMenu::GetMenuMargin 関数の解説を参照してください。 |
領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント] | |||||
---|---|---|---|---|---|
SFYResponder::GetSuitableBound 関数は、 引数に何も指定しない場合は 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST, rectangle)] をレスポンダに送信します。 SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundRequest 仮想関数が呼び出されます。 ※ 領域イベントの P32 パラメータ rectangle には実領域が初期設定されています。
|
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント受信時の最適な領域計算 | |
---|---|
SFYWidget::HandleBoundRequest 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 最適な領域の計算は、最初に SFYWidget::HandleBoundRequest 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundRequest 仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
SFYVerticalFlexListControlSmp _vertical; /*protected virtual */Void SFZFlexListMenu::HandleBoundRequest(SFXRectanglePtr rectangle) const { SFXSize size; rectangle->Deflate(GetMenuMargin()); size.Set(_vertical->GetSuitableBound().GetSize()); rectangle->SetSize(size); rectangle->Inflate(GetMenuMargin()); return; }// SFZFlexListMenu::HandleBoundRequest //
SFYResponder::GetSuitableBound | SFZFlexListMenu::SetFont | SFZFlexListMenu::SetItem | SFZFlexListMenu::SetItemIconImage | SFZFlexListMenu::SetItemText | SFZFlexListMenu::SetSpaceSize | SFZFlexListMenu::SetListMargin | SFZFlexListMenu::GetMenuMargin | SFXMargin | SFZTextMenu | SFXEvent | 実領域 | 領域イベント[SFEVT_RESPONDER_BOUND] | 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]
[ protected, virtual ] Void HandleBoundVirtual(Void);
この関数は、領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] を受信したときに呼び出されます。
仮想領域の変更時に追加の処理を行いたい場合は、この関数をオーバーライドします。
領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント] | |
---|---|
SFYResponder::SetRealBound / SFYResponder::SetVirtualBound 関数は、 この関数内の処理により仮想領域が変化すると、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] をレスポンダに送信します。 SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundVirtual 仮想関数が呼び出されます。 ※ 領域イベントの P32 パラメータ rectangle には変更後の仮想領域が設定されています。 |
仮想領域の変更処理 | |
---|---|
SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。 仮想領域の変更処理は、最初に SFYWidget::HandleBoundVirtual 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。 領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常はこの仮想関数をオーバーライドして処理を記述します。 |
この関数の内部実装は以下の通りです。
struct ScrollBarRec { SFYScrollBarControlSmp smp; SInt16 width; }; SFYVerticalFlexListControlSmp _vertical; ScrollBarRec _bar; /*protected virtual */Void SFZFlexListMenu::HandleBoundVirtual(Void) { Relocate(); return; }// SFZFlexListMenu::HandleBoundVirtual // /*private */Void SFZFlexListMenu::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(GetMenuMargin()); 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(GetSelect())) { if ((widget = GetItemWidget(GetSelect())) != null) { if (widget->GetStateActive(true)) { widget->StartScroll(); } } } return; }// SFZFlexListMenu::Relocate //
[ protected, virtual ] Void HandleEscapeKey(Void);
この関数は、SFYMenu::SetEscapeKey 関数で設定した ESCAPE キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装では、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0)] を送信します。
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZFlexListMenu::HandleEscapeKey(Void) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_ESCAPE, 0), false); return; }// SFZFlexListMenu::HandleEscapeKey //
[ protected, virtual ] Void HandleOperateKey(Void);
この関数は、SFYMenu::SetOperateKey 関数で設定した操作キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
独自のキーイベント処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は以下の通りです。
SFZFlexListMenu::SetItemEnable 関数により選択された項目の有効フラグが true に設定されている場合、 結果イベント [SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, SFZFlexListMenu::GetSelect 関数の戻り値)] を送信します。
項目の有効フラグが false に設定されている場合、結果イベントを送信しません。
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZFlexListMenu::HandleOperateKey(Void) { if (GetItemEnable(GetSelect())) { InvokeForward(SFXEvent(SFEVT_RESPONDER_RESULT, SFP16_RESULT_OK, GetSelect()), false); } return; }// SFZFlexListMenu::HandleOperateKey //
SFYMenu::SetOperateKey | SFZFlexListMenu::SetItemEnable | SFZFlexListMenu::GetSelect | SFXEvent | 結果イベント[SFEVT_RESPONDER_RESULT] | キーイベント[SFEVT_KEY]
[ protected, virtual, const ] Void HandleRenderRequest( SFXGraphicsPtr graphics // グラフィックスオブジェクト );
この関数は、 描画イベント [SFXEvent(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, graphics)] を受信したときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装は、フレックスリストメニューを描画します。
レスポンダの描画手順 | |||||
---|---|---|---|---|---|
|
この関数の内部実装は以下の通りです。
struct ColorRec { SFXBevelColor bevel; }; ColorRec _color; /*protected virtual */Void SFZFlexListMenu::HandleRenderRequest(SFXGraphicsPtr graphics) const { DrawBevel(graphics, GetLocalBound()); return; }// SFZFlexListMenu::HandleRenderRequest // /*private */Void SFZFlexListMenu::DrawBevel(SFXGraphicsPtr graphics, SFXRectangleConstRef rectangle) const { SFXBevelColor bevel; SFXRectangle result(rectangle); bevel.Set(_color.bevel); if (!GetStateActive(true) || GetMenuMargin().Equals(SFXMargin(0, 0))) { bevel.SetLight(bevel.GetBase()); bevel.SetDark(bevel.GetBase()); } graphics->FillBevelRectangle(result, bevel); return; }// SFZFlexListMenu::DrawBevel //
SFYResponder::Invalidate | SFYResponder::Render | SFYResponder::InvokeBackward | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理
[ protected, virtual ] Void HandleSelectDownKey(Void);
この関数は、SFYMenu::SetSelectDownKey 関数で設定した DOWN キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装は、選択項目を 1 つ下の項目に移動します。
注意 | |
---|---|
DOWN キーが押下された場合、 現在の選択項目よりも1つ下の項目がフレックスリストの新しい選択項目になります。 新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の下端の位置に来るようにスクロールします。 連続スクロールフラグの値が true、かつ、 現在の選択項目が末尾の項目であるときに DOWN キーを押下すると、 先頭の項目が新しい選択項目となり、実領域の下端の位置に来るようにスクロールします。 このとき、末尾の項目は下から 2 行目の位置に表示されます(先頭の項目は最下行に表示されます)。 |
この関数の内部実装は以下の通りです。
SFYVerticalFlexListControlSmp _vertical; /*protected virtual */Void SFZFlexListMenu::HandleSelectDownKey(Void) { _vertical->ScrollDown(); return; }// SFZFlexListMenu::HandleSelectDownKey //
[ protected, virtual ] Void HandleSelectUpKey(Void);
この関数は、SFYMenu::SetSelectUpKey 関数で設定した UP キーの SFEVT_KEY イベント (キーイベント[SFEVT_KEY])を受信したときに呼び出されます。
開発者は、独自の処理のためにこの関数をオーバーライドできます。
デフォルトの実装は、選択項目を 1 つ上の項目に移動します。
注意 | |
---|---|
UP キーが押下された場合、 現在の選択項目よりも1つ上の項目がフレックスリストの新しい選択項目になります。 新しい選択項目が実領域内に完全に表示されていない場合は、 実領域の上端の位置に来るようにスクロールします。 連続スクロールフラグの値が true、かつ、 現在の選択項目が先頭の項目であるときに UP キーを押下すると、 末尾の項目が新しい選択項目となり、実領域の上端の位置に来るようにスクロールします。 このとき、先頭の項目は上から 2 行目の位置に表示されます(末尾の項目は最上行に表示されます)。 |
この関数の内部実装は以下の通りです。
SFYVerticalFlexListControlSmp _vertical; /*protected virtual */Void SFZFlexListMenu::HandleSelectUpKey(Void) { _vertical->ScrollUp(); return; }// SFZFlexListMenu::HandleSelectUpKey //
[ 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 // 挿入する数 );
この関数は、指定されたインデックスの位置に項目を挿入します。
index 引数が 0 以下の場合は先頭に挿入されます。
index 引数が項目数以上の場合は末尾に挿入されます。
アイテム構造体 | |
---|---|
アイテム構造体については、SFZFlexListMenu::ItemRec の解説を参照してください。 |
SFZFlexListMenu::InsertFirst | SFZFlexListMenu::InsertLast | SFZFlexListMenu::Remove | SFZFlexListMenu::ItemRec
[ public ] SFCError InsertFirst( ItemRecConstRef item // アイテム構造体 );
[ public ] SFCError InsertFirst( ItemRecConstPtr item // アイテム構造体へのポインタ SInt32 length // 挿入する数 );
[ public ] SFCError InsertFirst( SFXWideStringConstRef text // 文字列 );
[ public ] SFCError InsertFirst( SFXWideStringConstPtr text // 文字列へのポインタ SInt32 length // 挿入する数 );
SFZFlexListMenu::Insert | SFZFlexListMenu::InsertLast | SFZFlexListMenu::RemoveFirst | SFZFlexListMenu::ItemRec
[ public ] SFCError InsertLast( ItemRecConstRef item // アイテム構造体 );
[ public ] SFCError InsertLast( ItemRecConstPtr item // アイテム構造体へのポインタ SInt32 length // 挿入する数 );
[ public ] SFCError InsertLast( SFXWideStringConstRef text // 文字列 );
[ public ] SFCError InsertLast( SFXWideStringConstPtr text // 文字列へのポインタ SInt32 length // 挿入する数 );
SFZFlexListMenu::Insert | SFZFlexListMenu::InsertFirst | SFZFlexListMenu::RemoveLast | SFZFlexListMenu::ItemRec
[ public, const ] SInt32 LastIndexOfCommandId( UInt32 id // コマンド ID );
[ public, const ] SInt32 LastIndexOfCommandId( UInt32 id // コマンド ID SInt32 index // 検索開始位置 );
この関数は、コマンド ID を末尾から先頭に向かって検索し、最初に見つかった位置のインデックスを取得します。
注意 | |
---|---|
検索開始位置を指定することで、末尾以外の位置から検索できます。 |
コマンド ID | |
---|---|
コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。 |
SFZFlexListMenu::SetItemCommandId | SFZFlexListMenu::FirstIndexOfCommandId | SFZFlexListMenu::ItemRec
[ public, static ] SFZFlexListMenuSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFZFlexListMenu クラスの新しいインスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、フレックスリストメニューのインスタンスを生成するためのコードです。
// フレックスリストメニューのインスタンスを生成する SFCError error; SFZFlexListMenuSmp menu; if ((menu = SFZFlexListMenu::NewInstance(&error)) != null) { // ... }
[ public ] Void Remove( SInt32 index // 削除する項目のインデックス );
[ public ] Void Remove( SInt32 begin // 削除開始位置 (この位置を含む) SInt32 end // 削除終了位置 (この位置を含まない) );
この関数は、 指定されたインデックスの位置または範囲の項目を削除します。
削除する項目の位置が 0 より小さい場合、または項目数以上の場合、項目の削除は行われません。
削除開始位置が項目数以上の場合、または 削除終了位置が 0 以下の場合、項目の削除は行われません。
削除開始位置が 0 より小さい場合、削除開始位置は 0 に再設定されます。
削除終了位置が項目数より大きい場合、削除終了位置は項目数に再設定されます。
SFZFlexListMenuSmp menu; // インスタンスの作成等 ... // 項目を追加 if (menu->InsertLast("0番目") == SFERR_NO_ERROR) { // 項目を追加 if (menu->InsertLast("1番目") == SFERR_NO_ERROR) { // 項目を追加 if (menu->InsertLast("2番目") == SFERR_NO_ERROR) { // 項目を追加 if (menu->InsertLast("3番目") == SFERR_NO_ERROR) { // 2 番目を選択する menu->SetSelect(2); ////////////////////////// // メニューの状態 // // 0: "0番目" // // 1: "1番目" // // 2: "2番目" ← // // 3: "3番目" // ////////////////////////// // 項目1 から項目2 までを削除する menu->Remove(1, 3); ////////////////////////// // メニューの状態 // // 0: "0番目" // // 1: "3番目" ← // ////////////////////////// } } } }
SFZFlexListMenu::Clear | SFZFlexListMenu::RemoveFirst | SFZFlexListMenu::RemoveLast | SFZFlexListMenu::Insert
[ public ] Void RemoveFirst(Void);
この関数は、先頭の項目を削除します。
SFZFlexListMenu::Clear | SFZFlexListMenu::Remove | SFZFlexListMenu::RemoveLast | SFZFlexListMenu::InsertFirst
[ public ] Void RemoveLast(Void);
この関数は、末尾の項目を削除します。
SFZFlexListMenu::Clear | SFZFlexListMenu::Remove | SFZFlexListMenu::RemoveFirst | SFZFlexListMenu::InsertLast
この関数は、アクセスキー有効フラグを設定します。
注意 | |
---|---|
アクセスキー有効フラグは、 メニュー全体でアクセスキーの設定が有効であるかどうかを表します。 このフラグを true に設定すると、 SFZFlexListMenu::SetItemEnable 関数で設定する、 項目の有効フラグの値が true のときだけアクセスキーの設定が有効になります。 逆に、false に設定すると、全ての項目のアクセスキーの設定が無効になります。 |
[ public ] Void SetBevelColor( SFXBevelColorConstRef param // ベベルカラー );
この関数は、 外枠のベベルカラー(SFXBevelColor)を設定します。
デフォルト値: SFXBevelColor(SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00), SFXRGBColor(0xEE, 0xEE, 0xEE, 0x00), SFXRGBColor(0x88, 0x88, 0x88, 0x00))
注意 | |
---|---|
ベベルカラー(SFXBevelColor)は、矩形を立体的に描画するときに使用します。 |
[ public ] Void SetEvenListColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、偶数番目の非選択項目の背景色を設定します。
デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) [白色]。
SFZFlexListMenu::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。
このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
奇数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetOddListColor 関数の解説を参照してください。 |
選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetSelectListColor 関数の解説を参照してください。 |
項目の前景色 | |
---|---|
SFZFlexListMenu::SetTextColor 関数の解説を参照してください。 |
SFZFlexListMenu::GetEvenListColor | SFZFlexListMenu::SetOddListColor | SFZFlexListMenu::SetSelectListColor | SFZFlexListMenu::SetTextColor | SFZFlexListMenu::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor
この関数は、指定された文字列定数に対応するフォントを設定します。
デフォルト値: AEE_FONT_NORMAL
[ public ] Void SetGridLineColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、グリッド線の色を設定します。
デフォルト値: SFXRGBColor(0x00, 0x00, 0x00, 0x00) [黒色]。
注意 | |
---|---|
グリッド線は、SFZFlexListMenu::SetGridLineEnable 関数を使用して有効フラグが true に設定されているときだけ描画されます。 |
この関数は、グリッド線を有効フラグを設定します。
デフォルト値: false
注意 | |
---|---|
有効フラグが true に設定されているときだけ、 グリッド線は SFZFlexListMenu::SetGridLineColor 関数で設定した色で描画されます。 |
グリッド線の描画領域 | |
---|---|
グリッド線は各項目の矩形領域の最下端1ピクセルの線上に描画されます。 グリッド線有効フラグを true に設定する場合は、 SFZFlexListMenu::SetListMargin 関数を使用してその分の余白領域を設定することを推奨します。 |
SFZFlexListMenu::GetGridLineEnable | SFZFlexListMenu::SetGridLineColor | SFZFlexListMenu::SetListMargin
[ public ] Void SetHorizontalAlign( HorizontalEnum param // 水平アライメントの値 );
この関数は、水平アライメントを設定します。
デフォルト値: SFZFlexListMenu::DEFAULT_HORIZONTAL
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_HORIZONTAL の値は SFZFlexListMenu::HorizontalEnum を参照してください。 |
この関数は、指定された項目のアクセスキーを設定します。
デフォルト値: static_cast<AVKType>(0)
注意 | |
---|---|
この関数を使用して設定されたアクセスキーが押下されると、 SFZFlexListMenu::HandleAccessKey 関数が呼び出されます。 ただし、この関数が呼び出されるには、 SFZFlexListMenu::SetAccessKeyEnable 関数によりアクセスキー有効フラグが true、 SFZFlexListMenu::SetItemEnable 関数により項目の有効フラグが true に設定されている必要があります。 |
SFZFlexListMenu::GetItemAccessKey | SFZFlexListMenu::HandleAccessKey | SFZFlexListMenu::SetAccessKeyEnable | SFZFlexListMenu::SetItemEnable | SFZFlexListMenu::ItemRec | AVKType
この関数は、 指定された項目のコマンド ID を設定します。
デフォルト値: UINT32_MAXIMUM
コマンド ID | |
---|---|
コマンド ID とは、リスト内の項目に識別子として自由に設定できる 32ビット符号なし整数(UInt32 型)のことです。 FirstIndexOfCommandId / LastIndexOfCommandId 関数で コマンド ID を指定して項目を検索することができます。 |
SFZFlexListMenu::GetItemCommandId | SFZFlexListMenu::FirstIndexOfCommandId | SFZFlexListMenu::LastIndexOfCommandId | SFZFlexListMenu::ItemRec
この関数は、指定された項目の有効フラグを設定します。
デフォルト値: true
項目の有効フラグが false に設定されているとき | |
---|---|
操作キーやアクセスキーが押下されても結果イベントは送信されません。 項目の前景色(テキストを描画する色)と非選択項目の背景色は以下の通りです。 項目の前景色は、SFZFlexListMenu::SetTextColor 関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色になります。 非選択項目の背景色は、SFZFlexListMenu::SetEvenListColor 関数や SFZFlexListMenu::SetOddListColor 関数で設定された背景色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色になります。 色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。 |
注意 | |
---|---|
項目の有効フラグが false に設定されているとき、 選択項目の前景色も上述の補正色になります。 SFZFlexListMenu::SetTextColor 関数で設定した選択項目の色ではありません。 選択項目の背景色は、 常に SFZFlexListMenu::SetSelectListColor 関数で設定された色になります。 項目の有効フラグが false に設定されているとき、 偶数番目/奇数番目の非選択項目の背景色は、 SFZFlexListMenu::SetEvenListColor / SFZFlexListMenu::SetOddListColor 関数で設定された背景色を補正した色になります。 |
SFZFlexListMenu::GetItemEnable | SFZFlexListMenu::HandleOperateKey | SFZFlexListMenu::HandleAccessKey | SFZFlexListMenu::SetTextColor | SFZFlexListMenu::SetEvenListColor | SFZFlexListMenu::SetOddListColor | SFZFlexListMenu::SetSelectListColor | SFXRGBColor::GetBrightness | SFZFlexListMenu::ItemRec
[ 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 // アイコン画像 );
この関数は、 指定された項目に指定されたアイコン定数(SFZFlexListMenu::IconEnum)に対応する画像を設定します。
画像オブジェクトを直接、あるいは、リソースファイルから読み込むように指定します。
画像サイズの X または Y 成分が 0 以下のときや画像にアニメーションが含まれるときは、SFERR_INVALID_PARAM が返ります。
[ public ] SFCError SetItemText( SInt32 index // 項目のインデックス TextEnum textEnum // 文字列定数 SFXPathConstRef path // リソースファイルのパス UInt16 id // リソース ID );
[ public ] SFCError SetItemText( SInt32 index // 項目のインデックス TextEnum textEnum // 文字列定数 SFXWideStringConstRef param // テキスト );
この関数は、 指定された項目に指定された文字列定数(SFZFlexListMenu::TextEnum)に対応するテキストを設定します。
テキストは直接、あるいは、リソースファイルから読み込むように指定します。
[ public ] Void SetListMargin( SFXMarginConstRef param // マージン );
この関数は、リスト項目のマージンを設定します。
デフォルト値: SFXMargin(1, 1, 1, 1)
注意 | |
---|---|
リスト項目のコンテンツは、この関数で設定したマージンを除く領域に描画されます。 |
[ public ] Void SetMenuMargin( SFXMarginConstRef param // マージン );
この関数は、メニューの外枠に相当するマージン(SFXMargin)を設定します。
SFXMargin(0, 0, 0, 0) に指定すると、 メニューを立体的に表示するための外枠が描画されません。
デフォルト値: SFXMargin(2, 2, 2, 2)
[ public ] Void SetOddListColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、奇数番目の非選択項目の背景色を設定します。
デフォルト値: SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) [白色]。
SFZFlexListMenu::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 この関数によって設定される色で背景は描画されません。
このときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x33 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x33 を加算した色で背景は描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
偶数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetEvenListColor 関数の解説を参照してください。 |
選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetSelectListColor 関数の解説を参照してください。 |
項目の前景色 | |
---|---|
SFZFlexListMenu::SetTextColor 関数の解説を参照してください。 |
SFZFlexListMenu::GetOddListColor | SFZFlexListMenu::SetEvenListColor | SFZFlexListMenu::SetSelectListColor | SFZFlexListMenu::SetTextColor | SFZFlexListMenu::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor
この関数は、項目を下方向に 1 ページ分スクロールする PageDown キーを設定します。
デフォルト値: AVK_TXPGDOWN
注意 | |
---|---|
PageDown キーが押下された場合、 現在の選択項目よりも1ページ(フレックスリストの実領域の高さ)分下の項目が新しい選択項目となり、 実領域の下端の位置に来るようにスクロールします。 現在の選択項目より下に 1 ページ分未満の項目しか存在しなければ、 末尾の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=末尾の項目)が実領域の下端の位置に来るようにスクロールします。 |
SFZFlexListMenu::GetPageDownKey | SFZFlexListMenu::SetPageUpKey | SFYMenu::SetSelectUpKey | SFYMenu::SetSelectDownKey | SFZFlexListMenu::SetSnapUpKey | SFZFlexListMenu::SetSnapDownKey | AVKType
この関数は、項目を上方向に 1 ページ分スクロールする PageUp キーを設定します。
デフォルト値: AVK_TXPGUP
注意 | |
---|---|
PageUp キーが押下された場合、 現在の選択項目よりも1ページ(フレックスリストの実領域の高さ)分上の項目が新しい選択項目となり、 実領域の上端の位置に来るようにスクロールします。 現在の選択項目より上に 1 ページ分未満の項目しか存在しなければ、 先頭の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=先頭の項目)が実領域の上端の位置に来るようにスクロールします。 |
SFZFlexListMenu::GetPageUpKey | SFZFlexListMenu::SetPageDownKey | SFYMenu::SetSelectUpKey | SFYMenu::SetSelectDownKey | SFZFlexListMenu::SetSnapUpKey | SFZFlexListMenu::SetSnapDownKey | AVKType
[ public ] SFCError SetScrollBarControl( SFYScrollBarControlSmpConstRef param // スクロールバーコントロール );
この関数は、メニューで使用されるスクロールバーコントロールを設定します。
注意 | |
---|---|
開発者が独自のスクロールバーを設定したいときに利用します。 |
以下は、カスタムスクロールバーを設定するコードです。
// 独自のスクロールバーコントロール class CustomScrollBarControl : public SFYScrollBarControl { // ... 独自の定義 }; Void UserApplication::SomeFunction { SFZFlexListMenuSmp menu; CustomScrollBarControlSmp bar; // メニューの生成 menu = SFZFlexListMenu::NewInstance(); // メニューの設定 // ... // スクロールバーの生成 bar = CustomScrollBarControl::NewInstance(); // 独自のスクロールバーをメニューに設定する menu->SetScrollBarControl(bar); return; }
この関数は、スクロールバーコントロールの横幅を設定します。[単位:ピクセル]
デフォルト値: SFZFlexListMenu::DEFAULT_BAR_WIDTH ピクセル
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_BAR_WIDTH の値は SFZFlexListMenu::DefaultEnum を参照してください。 |
スクロールバーコントロールの幅について | |
---|---|
スクロールバーコントロールの幅として、4 ピクセル以上の値を指定できます。 減分・増分矢印を矩形領域内にバランス良く描画するには、5 以上の奇数を指定することを推奨します。 |
[ public ] Void SetScrollDirection( DirectionEnum param // スクロールの移動方向 );
この関数は、スクロール移動方向を設定します。
デフォルト値: SFZFlexListMenu::DEFAULT_DIRECTION
SFZFlexListMenu::DEFAULT_DIRECTION の値は SFZFlexListMenu::DirectionEnum を参照してください。
この関数は、スクロールインターバルを設定します 。[単位:ミリ秒]
デフォルト値: SFZFlexListMenu::DEFAULT_SCROLL ミリ秒
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_SCROLL の値は SFZFlexListMenu::DefaultEnum を参照してください。 |
この関数は、連続スクロールフラグを指定された値に設定します。
注意 | |
---|---|
連続スクロールフラグの値が true の場合、 フォーカスを持つ先頭/末尾の項目を更に上/下方向にフォーカスを移動させようとすると 末尾/先頭の項目にフォーカスが移動します。 先頭の項目から末尾の項目にフォーカスが移動した場合は、 末尾の項目が実領域の最下部の位置に来るように表示されます。 末尾の項目から先頭の項目にフォーカスが移動した場合は、 先頭の項目が実領域の最上部の位置に来るように表示されます。 なお、スクロールするだけの項目が存在しない場合は、 何も起こりません。 |
この関数は、スクロール移動量を設定します。[単位:ピクセル]
デフォルト値: SFZFlexListMenu::DEFAULT_STEP ピクセル
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_STEP の値は SFZFlexListMenu::DefaultEnum を参照してください。 |
この関数は、指定された項目を選択します。
[ public ] Void SetSelectListColor( SFXRGBColorConstRef param // 設定する色 );
この関数は、選択項目の背景色を設定します。
デフォルト値: SFXRGBColor(0x11, 0x22, 0xBB, 0x00) [青色]。
奇数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetOddListColor 関数の解説を参照してください。 |
偶数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetEvenListColor 関数の解説を参照してください。 |
項目の前景色 | |
---|---|
SFZFlexListMenu::SetTextColor 関数の解説を参照してください。 |
SFZFlexListMenu::GetSelectListColor | SFZFlexListMenu::SetEvenListColor | SFZFlexListMenu::SetOddListColor | SFZFlexListMenu::SetTextColor | SFXRGBColor
この関数は、項目を下端までスクロールする SnapDown キーを設定します。
デフォルト値: AVK_TXEND
注意 | |
---|---|
SnapDown キーがが押下された場合、 末尾の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=末尾の項目)が実領域の下端の位置に来るようにスクロールします。 |
SFZFlexListMenu::GetSnapDownKey | SFZFlexListMenu::SetSnapUpKey | SFYMenu::SetSelectUpKey | SFYMenu::SetSelectDownKey | SFZFlexListMenu::SetPageDownKey | SFZFlexListMenu::SetPageUpKey | AVKType
この関数は、項目を上端までスクロールする SnapUp キーを設定します。
デフォルト値: AVK_TXHOME
注意 | |
---|---|
SnapUp キーがが押下された場合、 先頭の項目がフレックスリストの新しい選択項目になります。 仮想領域≧実領域の場合、新しい選択項目(=先頭の項目)が実領域の上端の位置に来るようにスクロールします。 |
SFZFlexListMenu::GetSnapUpKeySFZFlexListMenu::SetSnapDownKey | SFYMenu::SetSelectUpKey | SFYMenu::SetSelectDownKey | SFZFlexListMenu::SetPageDownKey | SFZFlexListMenu::SetPageUpKey | AVKType
この関数は、項目の要素間のスペースサイズを設定します。[単位:ピクセル]
デフォルト値: SFZFlexListMenu::DEFAULT_SPACE ピクセル
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_SPACE の値は SFZFlexListMenu::DefaultEnum を参照してください。 |
[ public ] Void SetTextColor( TextEnum textEnum // 文字列定数 SFXRGBColorConstRef param // 色 );
この関数は、 指定された文字列定数(SFZFlexListMenu::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) [白色]
SFZFlexListMenu::SetItemEnable 関数を使用して項目の有効フラグが false に設定されているとき、 またはフレックスリストメニューの状態が非活性状態にあるときは、 この関数で設定された色の明度が 0x7F より大きい場合はこの色の RGB 値からそれぞれ 0x44 を減算した色、 0x7F 以下の場合はこの色の RGB 値にそれぞれ 0x44 を加算した色でテキストは描画されます。
色の明度とは、SFXRGBColor::GetBrightness 関数によって得られる値です。
奇数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetOddListColor 関数の解説を参照してください。 |
偶数番目の非選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetEvenListColor 関数の解説を参照してください。 |
選択項目の背景色 | |
---|---|
SFZFlexListMenu::SetSelectListColor 関数の解説を参照してください。 |
SFZFlexListMenu::TextEnum | SFZFlexListMenu::GetTextColor | SFZFlexListMenu::SetOddListColor | SFZFlexListMenu::SetEvenListColor | SFZFlexListMenu::SetSelectListColor | SFZFlexListMenu::SetItemEnable | SFXRGBColor::GetBrightness | SFXRGBColor | 状態
[ public ] Void SetToggle( Toggle param // トグル状態 (ToggleEnum の論理和) );
以下は、トグル状態を設定するコードです。
SFZFlexListMenu menu;
// ...
menu->SetToggle(
SFZFlexListMenu::TOGGLE_EMPTY_BODY_ICON |
SFZFlexListMenu::TOGGLE_MULTIPLE_BODY_TEXT
);
[ public ] Void SetVerticalAlign( VerticalEnum param // 垂直アライメントの値 );
この関数は、垂直アライメントを設定します。
デフォルト値: SFZFlexListMenu::DEFAULT_VERTICAL
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_VERTICAL の値は SFZFlexListMenu::VerticalEnum を参照してください。 |
この関数は、選択項目のスクロールが開始されるまでの待ち時間を設定します 。[単位:ミリ秒]
デフォルト値: SFZFlexListMenu::DEFAULT_WAIT ミリ秒
注意 | |
---|---|
SFZFlexListMenu::DEFAULT_WAIT の値は SFZFlexListMenu::DefaultEnum を参照してください。 |
enum CodeEnum { CODE_TYPE = four_char_code('m', 'f', 'm', 'n') }; SFMTYPEDEFTYPE(CodeEnum)
enum DefaultEnum { DEFAULT_WAIT = 1000, // スクロール開始までの待ち時間(単位:ミリ秒) DEFAULT_SCROLL = 100, // スクロールインターバル(単位:ミリ秒) DEFAULT_STEP = -1, // スクロール移動量(単位:ピクセル)[ −1 の場合は使用しているフォントの半角空白文字(" ")一文字分の横幅になる] DEFAULT_SPACE = 2, // 項目の要素間のスペースサイズ(単位:ピクセル) DEFAULT_BAR_WIDTH = 5 // スクロールバーの幅(単位:ピクセル) };
enum DirectionEnum { DIRECTION_LEFT = 0, // 左へスクロール DIRECTION_RIGHT, // 右へスクロール DEFAULT_DIRECTION = DIRECTION_LEFT // デフォルト値: 左へスクロール }; SFMTYPEDEFTYPE(DirectionEnum)
enum HorizontalEnum { HORIZONTAL_LEFT = 0, // 左詰め HORIZONTAL_CENTER, // 中央揃え HORIZONTAL_RIGHT, // 右詰め DEFAULT_HORIZONTAL = HORIZONTAL_LEFT // デフォルト設定: 左詰め }; SFMTYPEDEFTYPE(HorizontalEnum)
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: 選択時のフッタアイコン画像
// アイテム構造体 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; // 有効フラグ };
アイテム構造体を利用して、項目を挿入/取得/設定することができます。
SFZFlexListMenu::Insert | SFZFlexListMenu::InsertFirst | SFZFlexListMenu::InsertLast | SFZFlexListMenu::GetItem | SFZFlexListMenu::SetItem | SFZFlexListMenu::SetItemText | SFZFlexListMenu::SetItemIconImage | SFZFlexListMenu::SetItemAccessKey | SFZFlexListMenu::SetItemCommandId | SFZFlexListMenu::SetItemEnable
enum SelectEnum { NORMAL = 0, SELECT }; SFMTYPEDEFTYPE(SelectEnum)
NORMAL: 通常時 (非選択時)
SELECT: 選択時
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: 選択項目のボディ文字列
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
SFZFlexListMenuSmp menu; // インスタンスの作成等 // ... // トグル状態の設定 (複数の状態を論理和で設定) menu->SetToggle( SFZFlexListMenu::TOGGLE_EMPTY_HEADER_TEXT | SFZFlexListMenu::TOGGLE_EMPTY_FOOTER_ICON | SFZFlexListMenu::TOGGLE_MULTIPLE_BODY_TEXT );
実行結果:
enum VerticalEnum { VERTICAL_TOP = 0, // 上詰め VERTICAL_MIDDLE, // 中央揃え VERTICAL_BOTTOM, // 下詰め DEFAULT_VERTICAL = VERTICAL_MIDDLE // デフォルト値: 中央揃え }; SFMTYPEDEFTYPE(VerticalEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |