ListBox

ウィンドウの一要素であるリストボックス (ListBox) は、大量のウィンドウ要素を手作業で割り当てることなく、大きなデータテーブルとして自動表示する手段を提供します。

Summary
ListBoxウィンドウの一要素であるリストボックス (ListBox) は、大量のウィンドウ要素を手作業で割り当てることなく、大きなデータテーブルとして自動表示する手段を提供します。
実装の詳細
XML定義
XMLタグ
任意属性
rowdef表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。
scrollbarリスト内の項目の数が表示できる数を超えていた場合、垂直スクロールバーの名前を指定します。
rowcountリストに含まれる行の最大値。
visiblerows一回の描画で画面内に表示される、見える状態の行の数。
rowspacing行間のサイズ。
要素
ListDataこの要素には、各行のデータをどのように表示させるかを指定します。
関数
関数
ListBoxSetDataTable()リストデータを取得するためにデータテーブルを設定します。
ListBoxGetDataIndex()現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。
ListBoxSetDisplayOrder()データリスト上の表示順序を設定します。
ListBoxSetVisibleRowCount()一回(の描画)で画面上に表示できる最大行数を設定します。

実装の詳細

要素

リストボックスは、三つの主コンポーネントから構成されています。

  • Luaアレイ([1]...[n]値を持ったテーブル)。ここにはデータ構造が含まれます。
  • Window の定義。単一の行のフォーマットを定義します。ウィンドウには多数の子要素を持たせることができます。
  • VerticalScrollbar の定義。必要に応じてリスト内の項目をスクロールさせるために使います。

データ格納

XML定義の一部に ListData バインディングを使ってセットアップしたテキストとアイコン要素を、自動的にリストボックスに格納できます。表示できるものは次の通りです:

LabelButton は……

  • テキスト (文字列の幅の値)
  • 数値 (そのまま、あるいはコンマの書式設定がされたもの)

DynamicImage は……

  • アイコン (有効な Icon IDに基づく)

ソートとフィルタリング

ListBoxSetDisplayOrder() 関数により、Luaからデータがリストへ格納されます。このコールは表示するデータのサブセットと順序を判断できますので、Luaソート関数を自作することも可能です。

XML定義

Summary
XMLタグ
任意属性
rowdef表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。
scrollbarリスト内の項目の数が表示できる数を超えていた場合、垂直スクロールバーの名前を指定します。
rowcountリストに含まれる行の最大値。
visiblerows一回の描画で画面内に表示される、見える状態の行の数。
rowspacing行間のサイズ。
要素
ListDataこの要素には、各行のデータをどのように表示させるかを指定します。

XMLタグ

<ListBox>
....
</ListBox>

代替グループ

任意属性

rowdef

表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。

このウィンドウの子要素には ListData 要素内のwindownameパラメーターが反映されます。

データ型

string有効な Window の名前。

デフォルト値

  • ””

scrollbar

リスト内の項目の数が表示できる数を超えていた場合、垂直スクロールバーの名前を指定します。

データ型

string有効な VerticalScrollbar の名前。

デフォルト値

  • ””

rowcount

リストに含まれる行の最大値。

データ型

integer行の最大値。

デフォルト値

  • 0

visiblerows

一回の描画で画面内に表示される、見える状態の行の数。

データ型

integer表示される行の数。

デフォルト値

  • 0

rowspacing

行間のサイズ。

データ型

number行間のサイズ。

デフォルト値

  • 0

要素

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テーブル変数の名前。
populationfunctionLuaによる行の表示方法を変更をするためのコールバック関数 (オプション)。

ListColumnsは特定のデータをひとまとめにして、行のUI要素とします。リストボックスが更新、もしくはスクロールされると、これらのウィンドウ要素は自動的に更新され、表示されます。

windownamerowdef の子要素の名前。
varaibleデータテーブルの各インデックスに含まれるLua変数の名前。
format変数のデータタイプ (値: icon, wstring, number)。
style数値の表示方式 (値: default, comma)。

関数

Summary
関数
ListBoxSetDataTable()リストデータを取得するためにデータテーブルを設定します。
ListBoxGetDataIndex()現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。
ListBoxSetDisplayOrder()データリスト上の表示順序を設定します。
ListBoxSetVisibleRowCount()一回(の描画)で画面上に表示できる最大行数を設定します。

関数

ListBoxSetDataTable()

リストデータを取得するためにデータテーブルを設定します。

パラメータ

listBoxName(string) リストボックスの名前。
dataTable(string) 有効なLuaテーブルの名前。

戻り値

nil戻り値無し。

関連するXML

ListBoxSetDataTable("AbilitiesWindowAbilityList", AbilitiesWindow.moraleList )

ListBoxGetDataIndex()

現在表示している特定の行のインデックスの、データテーブル上でのインデックスを返します。

パラメータ

listBoxName(string) リストボックスの名前。
rowIndex(integer) リストボックスの行のインデックス ( 1 -> 最大可視行 )

戻り値

dataIndex(integer) ListData Luaテーブル上のインデックス。

関連するXML

local dataIndex = ListBoxGetDataIndex("AbilitiesWindowAbilityList" )

ListBoxSetDisplayOrder()

データリスト上の表示順序を設定します。

この関数を使って、Lua内でソートやフィルタリングを実行できます。

パラメータ

listBoxName(string) リストボックスの名前。
displayOrder(number-table) データ-インデックス群が表示される順序。

戻り値

nil戻り値無し。

関連するXML

local displayOrder = {}
table.insert(displayOrder, 5) -- add the 5th item from the source data table
LuaSetDisplayOrder("AbilitiesWindowAbilityList", displayOrder )

ListBoxSetVisibleRowCount()

一回(の描画)で画面上に表示できる最大行数を設定します。

パラメータ

listBoxName(string) リストボックスの名前。
visibleRows(integer) 一回(の描画)で画面上に表示できる最大行数。

戻り値

nil戻り値無し。

関連するXML

ListBoxSetVisibleRowCount("AbilitiesWindowAbilityList", 10 )
ウィンドウ (Window) 要素はウィンドウを作成する際に使用する基本的な要素です。他のウィンドウ要素もこの要素の内容を継承しており、全ての属性、要素、データメンバー、関数をサポートしています。
垂直スクロールバー (VerticalScrollbar) は、Windowsスタイルのスクロールバーを提供します。このウィンドウ要素は、自動的に他のいくつかのウィンドウコンポーネントを組み合わせたものです。
この要素には、各行のデータをどのように表示させるかを指定します。
ラベル (Label) 要素は、インターフェースのテキスト描画要素として主に使用されます。
ボタン (Button) 要素は、マウスカーソルの状態に応じて自動的にテクスチャやフォントカラーを変更するなどといった、一般的なボタン要素を自動化します。
ダイナミックイメージ (DynamicImage) 要素を使えば、テクスチャの矩形表示が可能になります。
単体のアイコンデータを定義します。
データリスト上の表示順序を設定します。
表示内の各行のテンプレートとして、 ウィンドウの名前を指定します。
一回の描画で画面内に表示される、見える状態の行の数。
リストに含まれる行の最大値。
Close