ウィンドウの一要素であるリストボックス (ListBox) は、大量のウィンドウ要素を手作業で割り当てることなく、大きなデータテーブルとして自動表示する手段を提供します。
ListBox | ウィンドウの一要素であるリストボックス (ListBox) は、大量のウィンドウ要素を手作業で割り当てることなく、大きなデータテーブルとして自動表示する手段を提供します。 |
実装の詳細 | |
XML定義 | |
XMLタグ | |
任意属性 | |
rowdef | 表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。 |
scrollbar | リスト内の項目の数が表示できる数を超えていた場合、垂直スクロールバーの名前を指定します。 |
rowcount | リストに含まれる行の最大値。 |
visiblerows | 一回の描画で画面内に表示される、見える状態の行の数。 |
rowspacing | 行間のサイズ。 |
要素 | |
ListData | この要素には、各行のデータをどのように表示させるかを指定します。 |
関数 | |
関数 | |
ListBoxSetDataTable() | リストデータを取得するためにデータテーブルを設定します。 |
ListBoxGetDataIndex() | 現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。 |
ListBoxSetDisplayOrder() | データリスト上の表示順序を設定します。 |
ListBoxSetVisibleRowCount() | 一回(の描画)で画面上に表示できる最大行数を設定します。 |
リストボックスは、三つの主コンポーネントから構成されています。
XML定義の一部に ListData バインディングを使ってセットアップしたテキストとアイコン要素を、自動的にリストボックスに格納できます。表示できるものは次の通りです:
DynamicImage は……
ListBoxSetDisplayOrder() 関数により、Luaからデータがリストへ格納されます。このコールは表示するデータのサブセットと順序を判断できますので、Luaソート関数を自作することも可能です。
XMLタグ | |
任意属性 | |
rowdef | 表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。 |
scrollbar | リスト内の項目の数が表示できる数を超えていた場合、垂直スクロールバーの名前を指定します。 |
rowcount | リストに含まれる行の最大値。 |
visiblerows | 一回の描画で画面内に表示される、見える状態の行の数。 |
rowspacing | 行間のサイズ。 |
要素 | |
ListData | この要素には、各行のデータをどのように表示させるかを指定します。 |
この要素には、各行のデータをどのように表示させるかを指定します。
<ListData table="InteractionWindow.storedata" populationfunction="InteractionWindow.SetStoreItemPrices"> <ListColumns> <ListColumn windowname="ItemPicIconBase" variable="iconNum" format="icon" /> <ListColumn windowname="ItemName" variable="name" format="wstring"/> <ListColumn windowname="ItemCost" variable="cost" format="number" /> </ListColumns> </ListData>
table | リストデータを含むLuaテーブル変数の名前。 |
populationfunction | Luaによる行の表示方法を変更をするためのコールバック関数 (オプション)。 |
ListColumnsは特定のデータをひとまとめにして、行のUI要素とします。リストボックスが更新、もしくはスクロールされると、これらのウィンドウ要素は自動的に更新され、表示されます。
windowname | rowdef の子要素の名前。 |
varaible | データテーブルの各インデックスに含まれるLua変数の名前。 |
format | 変数のデータタイプ (値: icon, wstring, number)。 |
style | 数値の表示方式 (値: default, comma)。 |
関数 | |
ListBoxSetDataTable() | リストデータを取得するためにデータテーブルを設定します。 |
ListBoxGetDataIndex() | 現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。 |
ListBoxSetDisplayOrder() | データリスト上の表示順序を設定します。 |
ListBoxSetVisibleRowCount() | 一回(の描画)で画面上に表示できる最大行数を設定します。 |
現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。
listBoxName | (string) リストボックスの名前。 |
rowIndex | (integer) リストボックスの行のインデックス ( 1 -> 最大可視行 ) |
dataIndex | (integer) ListData Luaテーブル上のインデックス。 |
local dataIndex = ListBoxGetDataIndex("AbilitiesWindowAbilityList" )
データリスト上の表示順序を設定します。
この関数を使って、Lua内でソートやフィルタリングを実行できます。
listBoxName | (string) リストボックスの名前。 |
displayOrder | (number-table) データ-インデックス群が表示される順序。 |
nil | 戻り値無し。 |
local displayOrder = {} table.insert(displayOrder, 5) -- add the 5th item from the source data table LuaSetDisplayOrder("AbilitiesWindowAbilityList", displayOrder )