ComboBox

コンボボックス (ComboBox) 要素は、ウィンドウスタイルのコンボボックスコントロールを提供します。このウィンドウ要素は、他のいくつかのウィンドウコンポーネントの自動化された組み合わせです。

Summary
ComboBoxコンボボックス (ComboBox) 要素は、ウィンドウスタイルのコンボボックスコントロールを提供します。このウィンドウ要素は、他のいくつかのウィンドウコンポーネントの自動化された組み合わせです。
実装の詳細コンボボックスはウィンドウ要素の集合体です。基本的なウィンドウコンポーネントを組み合わせて、自動的にコンボボックスの動作をするようにします。
XML定義
XMLタグ
任意属性
selectedbuttonメインドロップダウンボタンのボタン定義の名前。
menuitembuttonメニューボタンのボタン定義の名前。
menubackgroundドロップダウンメニューのウィンドウ定義の名前。
scrollbar水平スクロールバー定義の名前。
maxvisibleitems画面内に一度に表示できる項目数の最大値。
要素
MenuButtonOffsetメニューボタンのオフセットを指定できます。
ウィンドウ コールバック
コールバック
OnSelChanged選択されたメニューアイテムが変更された時に呼び出されます。
関数
関数
ComboBoxAddMenuItem()メニューリストに新たな項目を追加します。
ComboBoxClearMenuItems()現在そのメニューに含まれる全項目を消去します。
ComboBoxSetSelectedMenuItem()現在選択されているメニュー項目を設定します。
ComboBoxGetSelectedMenuItem()現在選択されているメニュー項目のインデックスを返します。
ComboBoxGetSelectedText()現在選択されているメニュー項目のテキストを返します。
ComboBoxSetDisabledFlag()コンボボックスを無効な状態に設定します。
ComboBoxGetDisabledFlag()コンボボックスが現在無効になっているかどうかを返します。
ComboBoxIsMenuOpen()コンボボックスが現在開いているかどうかを調べて値を返します。
ComboBoxExternalOpenMenu()OpenMenu() wrapper, ExternalOpenMenu()用のLua-exposedな関数です。

実装の詳細

コンボボックスはウィンドウ要素の集合体です。基本的なウィンドウコンポーネントを組み合わせて、自動的にコンボボックスの動作をするようにします。

コンポーネント

コンボボックスは以下のコンポーネントによって構成されます。

  • ドロップダウンボタン用の Button 定義。
  • ドロップダウンの背景に使う FullResizeImage
  • メニューリスト内の各項目用の Button 定義。

XML定義

Summary
XMLタグ
任意属性
selectedbuttonメインドロップダウンボタンのボタン定義の名前。
menuitembuttonメニューボタンのボタン定義の名前。
menubackgroundドロップダウンメニューのウィンドウ定義の名前。
scrollbar水平スクロールバー定義の名前。
maxvisibleitems画面内に一度に表示できる項目数の最大値。
要素
MenuButtonOffsetメニューボタンのオフセットを指定できます。

XMLタグ

<ComboBox>
....
</ComboBox>

代替グループ

任意属性

selectedbutton

メインドロップダウンボタンのボタン定義の名前。

このボタン定義を使用する際には、選択されたメニュー項目を表示するためのテキストコンポーネントと、項目一覧を表示するための矢印を一緒に指定することをお勧めします。

データ型

string有効な Button の名前。

デフォルト値

  • ””

menuitembutton

メニューボタンのボタン定義の名前。

ボタン定義の名前はドロップダウンリスト中の各メニュー項目に使用されます。また、このボタン定義はテキストコンポーネントを持っている必要があります。

データ型

string有効な Button の名前。

デフォルト値

  • ””

menubackground

ドロップダウンメニューのウィンドウ定義の名前。

背景は、メニューに追加された要素の数に合うように自動的にサイズが決定されます。このウインドウは子ウィンドウを持つことができますが、正しくリサイズするにはアンカーを設定してください。

データ型

string有効な Window の名前。

デフォルト値

  • ””

scrollbar

水平スクロールバー定義の名前。

コンボボックスが一度に表示しきれないほど多くの項目を含んでいる場合に使用されます。

データ型

string有効な HorizontalScrollbar の名前。

デフォルト値

  • ””

maxvisibleitems

画面内に一度に表示できる項目数の最大値。

最大値以上の項目がコンボボックスに含まれている場合、スクロールバーが表示されます。値が指定されていない場合、コンボボックスは画面の高さの半分に入るメニューボタンの数に基づいて自動的に最大値を計算します。

データ型

integer表示出来る項目の最大値。

デフォルト値

  • 0

要素

MenuButtonOffset

メニューボタンのオフセットを指定できます。

構文

<MenuButtonOffset x="10" y="10" />
xメニュー背景の左上角からのXピクセルオフセット。
yメニュー背景の左上角からのYピクセルオフセット。

デフォルト値

x0
y0

メモ

  • メニューボタンのサイズは背景サイズを決定します。オフセット*2 がメニュー背景のサイズに加えられます。

ウィンドウ コールバック

Summary
コールバック
OnSelChanged選択されたメニューアイテムが変更された時に呼び出されます。

コールバック

OnSelChanged

選択されたメニューアイテムが変更された時に呼び出されます。

構文

SomeComboBox.OnSelChanged( selectedIndex )
selectedIndex(integer) 新しく選択された項目のインデックス (1からメニュー内の最大項目数まで)。

関数

Summary
関数
ComboBoxAddMenuItem()メニューリストに新たな項目を追加します。
ComboBoxClearMenuItems()現在そのメニューに含まれる全項目を消去します。
ComboBoxSetSelectedMenuItem()現在選択されているメニュー項目を設定します。
ComboBoxGetSelectedMenuItem()現在選択されているメニュー項目のインデックスを返します。
ComboBoxGetSelectedText()現在選択されているメニュー項目のテキストを返します。
ComboBoxSetDisabledFlag()コンボボックスを無効な状態に設定します。
ComboBoxGetDisabledFlag()コンボボックスが現在無効になっているかどうかを返します。
ComboBoxIsMenuOpen()コンボボックスが現在開いているかどうかを調べて値を返します。
ComboBoxExternalOpenMenu()OpenMenu() wrapper, ExternalOpenMenu()用のLua-exposedな関数です。

関数

ComboBoxAddMenuItem()

メニューリストに新たな項目を追加します。

最初の項目がindex 1となり、2番目の項目はindex 2、と続きます。

パラメータ

comboBoxName(string) コンボボックスの名前。
menuItemText(wstring) メニュー項目のテキスト。

戻り値

nil戻り値無し。

ComboBoxAddMenuItem("CareerWindowOrderCombo", L"Apprentice")
ComboBoxAddMenuItem("CareerWindowOrderCombo", L"Journeyman")
ComboBoxAddMenuItem("CareerWindowOrderCombo", L"Expert")
ComboBoxAddMenuItem("CareerWindowOrderCombo", L"Master")

ComboBoxClearMenuItems()

現在そのメニューに含まれる全項目を消去します。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

nil戻り値無し。

メモ

  • 次にウインドウが更新されるまで、項目は削除されません。この関数は単に削除のためのフラグを立てるだけにすぎません。

ComboBoxClearMenuItems("CareerWindowOrderCombo")

ComboBoxSetSelectedMenuItem()

現在選択されているメニュー項目を設定します。

パラメータ

comboBoxName(string) コンボボックスの名前。
menuItemIndex(integer) 選択されているメニュー項目のインデックス番号。1から現在のメニュー項目数の間の数でなければなりません。

戻り値

nil戻り値無し。

メモ

  • 選択された項目を設定すると、OnSelChangedイベントハンドラが起動されます。イベントハンドラが戻る前に ComboBoxSetSelectedMenuItem() を呼び出そうとすることがないように注意してください。

ComboBoxSetSelectedMenuItem( "CareerWindowOrderCombo", 1 )

ComboBoxGetSelectedMenuItem()

現在選択されているメニュー項目のインデックスを返します。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

menuItemIndex(integer) 選択されているメニュー項目のインデックス番号。

local curSel = ComboBoxSetSelectedMenuItem( "CareerWindowOrderCombo" )

ComboBoxGetSelectedText()

現在選択されているメニュー項目のテキストを返します。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

menuItemText(wstring) 選択されているメニュー項目のテキスト。

local text = ComboBoxGetSelectedText( "CareerWindowOrderCombo" )

ComboBoxSetDisabledFlag()

コンボボックスを無効な状態に設定します。

無効化すると選択されたボタンは「無効化」状態を表示し、そのドロップダウンメニューは機能しなくなります。

パラメータ

comboBoxName(string) コンボボックスの名前。
isDisabled(boolean) コンボボックスを無効化するか否か?

戻り値

nil戻り値無し。

メモ

  • コンボボックスを無効化にセットすると、コンボボックスメニューのみが無効化されます。コンボボックスと結びついた <OnLButtonUP> イベントがある場合、そのイベントのプロセスは続行されます。

ComboBoxSetDisabledFlag("GroupOptionsWindowLootModeCombo", GameData.Player.isGroupLeader == false )

ComboBoxGetDisabledFlag()

コンボボックスが現在無効になっているかどうかを返します。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

isDisabled(boolean) true = 無効になっている, false = 無効になっていない

local disabled = ComboBoxGetDisabledFlag("GroupOptionsWindowLootModeCombo" )

ComboBoxIsMenuOpen()

コンボボックスが現在開いているかどうかを調べて値を返します。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

isOpen(boolean) コンボボックスが開いているか否か?

local isOpen = ComboBoxIsMenuOpen("GroupOptionsWindowLootModeCombo" )

ComboBoxExternalOpenMenu()

OpenMenu() wrapper, ExternalOpenMenu()用のLua-exposedな関数です。

コンボボックス開閉の二者択一の方法をLuaが提供できるようにします。

パラメータ

comboBoxName(string) コンボボックスの名前。

戻り値

booleantrue = メニューが開いていた, false = メニューが開いていなかった

ComboBoxExternalOpenMenu("GroupOptionsWindowLootModeCombo")
ボタン (Button) 要素は、マウスカーソルの状態に応じて自動的にテクスチャやフォントカラーを変更するなどといった、一般的なボタン要素を自動化します。
フルリサイズイメージ (FullResizeImage) 要素を使うことで、背景やフレームを作る際のタイル画像を自動的に作ることができます。
ウィンドウ (Window) 要素はウィンドウを作成する際に使用する基本的な要素です。他のウィンドウ要素もこの要素の内容を継承しており、全ての属性、要素、データメンバー、関数をサポートしています。
水平スクロールバー (HorizontalScrollbar) は、自動的なスクロールバー機能を持つ複合ウィンドウ要素です。
現在選択されているメニュー項目を設定します。
Close