.. default-domain:: csharp .. _LISTBOX: =========================== LISTBOX =========================== C#: :ref:`CWinCtrlListbox` リストボックスのためのコントロールです。 コンテンツを複製し、それを一行とします。 コンテンツの数はメモリが許す限り自由に設定可能です。 垂直方向にコンテンツが並んでいるリストボックスだけでなく、水平方向にも並べることも可能です。 このコントロールはスクロール可能なコントロールです。 STYLEに :ref:`SCROLL_LOCK` をつけておくと、onDragコールバックが呼び出され、ドラッグした方向を検出できます。 DRAGをつけても、これらコントロールには効果がないことに気を付けてください。 LISTBOX(コントロール名) { プロパティ1; プロパティ2; : : プロパティn; }; 記述例 =========== :: WINDOW(255_000_00001) { STYLE = NOTITLEBAR|NOFRAME|ANCHOR_CENTER; POSITION = 0,100; SIZE = 512,256; }; $w = 300; LISTBOX(List) { ID = 001_100_00000; POSITION = 0,-160; STYLE = ANCHOR_BOTTOM; SIZE = $w,160 - 16; CONTENTS_SIZE = $w,48; CONTENTS = { CHECKBOX(IP) { ID = 001_000_00020; CAPTION = 001_000_00030; STYLE = ANCHOR_LEFTTOP; POSITION = 0,0; SIZE = $w,48; }; } GROUP = SCROLLBAR(List); }; SCROLLBAR(List) { ID = 001_100_00010; DEF_SCROLLBAR; STYLE = ANCHOR_RIGHTTOP; POSITION = 0,16; SIZE = 0,-16 * 2; }; .. .. image:: images/SCROLLBAR.png プロパティ ================== 代表的なデフォルト値 ----------------------- :: STYLE = ITEM_STACK_V; //Arranged in the vertical direction COLOR = 1,1,1,1; CAPTION_COLOR = 1,1,1,1; SE_ID = scrollSE; **ID** = コントロールID ------------------------------------------- コントロールIDを定義します。 :: ID = 001_000_00010; .. note:: 設定しなかったときは、自動的にハッシュ値から生成します。 **POSITION** = :ref:`X,Y` ------------------------------------------- 表示位置を決定します。 STYLEの :ref:`アンカー` 指定に応じて、基準位置が変わります。 :: POSITION = 32,{50} + 64; .. 座標は :ref:`割合指定` が可能です。 **SIZE** = :ref:`横サイズ,縦サイズ` -------------------------------------------------- 表示サイズを変更します。 省略したとき、若しくは、0を指定すると、テクスチャパーツからサイズを取得してきます。 :: SIZE = 512,512; //512x512 SIZE = {50} - 100,{50} + 100; //screen width * 0.5 - 100,screen height * 0.5 + 100 .. サイズは :ref:`割合指定` が可能です。 **CONTENTS_SIZE** = :ref:`横サイズ,縦サイズ` -------------------------------------------------------------- 一行のサイズを決定します。 垂直方向に並んでいるリストボックスにおいては、縦方向にスクロールします。 ただし、コンテンツサイズの横幅のほうが表示エリアよりも大きいときは、左右にもスクロールします。 :: // only vertical direction to scroll SIZE = 400,400; //display size CONTENTS_SIZE = 400,40; //virtual screen size // Scroll to the left and right direction SIZE = 400,400; //display size CONTENTS_SIZE = 800,40; //virtual screen size .. コンテンツサイズは :ref:`割合指定` が可能です。 **CONTENTS** = { コントロール定義 … } ----------------------------------------------------------- LISTBOXの中の一行を定義するためのコントロールを列挙します。 コントロールの座標は、LISTBOXの座標から相対で配置されます。 全てのコントロールを関連付けることが可能です。 :: // It is also possible to put the list box in the list box CONTENTS = { BUTTON(A) { : }; CHECKBOX(B) { : }; LISTBOX(C) { : }; .. C#からコンテンツリストの特定のコントロールに対してアクセスする方法 は :ref:`こちら` を参考にしてください。 .. note:: コンテンツ内のコントロールの座標やサイズの :ref:`割合指定` は、リストボックスのサイズを基準に計算されます。 ウィンドウサイズではないことに気を付けてください。 .. **LINE_SPACE** = 行間ピクセル値 ------------------------------------------- コンテンツとコンテンツ間の隙間をこのプロパティで設定可能です。 :: LINE_SPACE = 8; //Put an 8-dot space. .. 割合指定はできません。 .. _LISTBOX_GROUP: **GROUP** = SCROLLBARコントロールID,… ----------------------------------------------- SCROLLBARコントロールをGROUPとして定義しておくと、自動的にリストボックスと連動してスクロールバーを表示します。 CONTENTSに入れないように気を付けてください。 複数のスクロールバーを関連付けることも可能です。 :: GROUP = SCROLLBAR(Horizon),SCROLLBAR(Vertical); .. **COLOR** = R,G,B,A ------------------------------------------- カラーを指定します。 カラー変更することによって、含まれるコントロール全てに影響を与えます。 R,G,Bについては、0~2の間で指定してください。 1を超えたとき、そのカラー成分を2倍まで上げて表示することができます。 Aについては、0~1の間で指定してください。 **SE_ID** = SE_ID ------------------------------------------- スクロールし、コンテンツの先頭が変わった時鳴らす音を設定します。 デフォルトは、scrollSEです。 0を指定すると音が鳴らなくなります。 **STYLE** = フラグ0|フラグ1|..|フラグn ------------------------------------------------------------------ リストボックス固有のスタイルは以下のものがあります。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------------+--------------------------------------------------------+ |リストボックス制御フラグ |説明 | +=========================+========================================================+ |ITEM_STACK_V |垂直方向に並んでいるリストボックス | +-------------------------+--------------------------------------------------------+ |ITEM_STACK_H |水平方向に並んでいるリストボックス | +-------------------------+--------------------------------------------------------+ |NOBOUNCES |端までスクロールしたとき、勢いが残っていても跳ね返らない| +-------------------------+--------------------------------------------------------+ |SCROLL_UNLOCK |スクロールを許可する。 | +-------------------------+--------------------------------------------------------+ |SCROLL_LOCK |スクロールを抑制する。 | +-------------------------+--------------------------------------------------------+ コントロールの表示アンカーを指定できます。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +--------------------------+---------------------------------------------------------------+ | 表示位置アンカーフラグ |説明 | +==========================+===============================================================+ |ANCHOR_DEFAULT |アンカー位置を左上に設定 | | | | | |ANCHOR_LEFTTOPと同じ | | | | | |コントロールの中心位置はデフォルトで、BASE_LEFTTOPになる。 | +--------------------------+---------------------------------------------------------------+ | ANCHOR_LEFTTOP |アンカー位置を左上に設定 | | | | | |コントロールの中心位置はデフォルトで、BASE_LEFTTOPになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_LEFT |アンカー位置を左に設定 | | | | | |縦にはセンタリング | | | | | |コントロールの中心位置はデフォルトで、BASE_LEFTになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_LEFTBOTTOM |アンカー位置を左に設定 | | | | | |縦には下辺を基準に配置 | | | | | |コントロールの中心位置はデフォルトで、BASE_LEFTBOTTOMになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_TOP |アンカー位置を上辺に設定 | | | | | |横方向にはセンタリング | | | | | |コントロールの中心位置はデフォルトで、BASE_TOPになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_CENTER |アンカー位置を画面中央にセンタリング | | | | | |コントロールの中心位置はデフォルトで、BASE_CENTERになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_BOTTOM |アンカー位置を底辺に設定 | | | | | |横方向にはセンタリング | | | | | |コントロールの中心位置はデフォルトで、BASE_BOTTOMになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_RIGHTTOP |アンカー位置を右上に設定 | | | | | |コントロールの中心位置はデフォルトで、BASE_RIGHTBOTTOMになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_RIGHT |アンカー位置を右に設定 | | | | | |縦にはセンタリング | | | | | |コントロールの中心位置はデフォルトで、BASE_RIGHTになる。 | +--------------------------+---------------------------------------------------------------+ |ANCHOR_RIGHTBOTTOM |アンカー位置を右に設定 | | | | | |縦には下辺を基準に配置 | | | | | |コントロールの中心位置はデフォルトで、BASE_RIGHTBOTTOMになる。 | +--------------------------+---------------------------------------------------------------+ コントロールの中心位置を指定できます。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------+-----------------------------------------+ |中心位置変更フラグ | 説明 | +===================+=========================================+ |BASE_DEFAULT |アンカーフラグに応じて変わる。 | | | | | |特に指定しなければ、これになります。 | | | | | |各アンカーフラグの説明を参照 | +-------------------+-----------------------------------------+ |BASE_LEFTTOP |中心位置をコントロールの左上に設定 | +-------------------+-----------------------------------------+ |BASE_LEFT |中心位置を左に設定 | | | | | |縦にはコントロールの真中 | +-------------------+-----------------------------------------+ |BASE_LEFTBOTTOM |中心位置を左下に設定 | +-------------------+-----------------------------------------+ |BASE_TOP |中心位置を上辺に設定 | | | | | |横にはコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_CENTER |中心位置をコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_BOTTOM |中心位置を底辺に設定 | | | | | |横方向にはコントロールの真中 | +-------------------+-----------------------------------------+ |BASE_RIGHTTOP |中心位置をコントロールの右上に設定 | +-------------------+-----------------------------------------+ |BASE_RIGHT |中心位置を右に設定 | | | | | |横にはコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_RIGHTBOTTOM |中心位置を右下に設定 | +-------------------+-----------------------------------------+ 機能を制限するスタイルは以下のものがあります。 .. _LISTBOX_STYLE: .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------------+--------------------------------------------------------+ |機能制限スタイル |説明 | +=========================+========================================================+ |HIDE |表示を隠す。 | +-------------------------+--------------------------------------------------------+ |DISABLE |押せなくし、暗くする。 | +-------------------------+--------------------------------------------------------+ |NOHIT |押せなくする。 | +-------------------------+--------------------------------------------------------+ |ITEM_STACK_V |垂直方向に並んでいるリストボックス | +-------------------------+--------------------------------------------------------+ |ITEM_STACK_H |水平方向に並んでいるリストボックス | +-------------------------+--------------------------------------------------------+ |NOBOUNCES |端までスクロールしたとき、勢いが残っていても跳ね返らない| +-------------------------+--------------------------------------------------------+ |SCROLL_UNLOCK |スクロールを許可する。 | +-------------------------+--------------------------------------------------------+ |SCROLL_LOCK |スクロールを抑制する。 | +-------------------------+--------------------------------------------------------+