LISTBOX

C#: CWinCtrlListbox

リストボックスのためのコントロールです。

コンテンツを複製し、それを一行とします。

コンテンツの数はメモリが許す限り自由に設定可能です。

垂直方向にコンテンツが並んでいるリストボックスだけでなく、水平方向にも並べることも可能です。

このコントロールはスクロール可能なコントロールです。

STYLEに 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;
};
_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;

注釈

設定しなかったときは、自動的にハッシュ値から生成します。

POSITION = X,Y

表示位置を決定します。 STYLEの アンカー 指定に応じて、基準位置が変わります。

POSITION = 32,{50} + 64;

座標は 割合指定 が可能です。

SIZE = 横サイズ,縦サイズ

表示サイズを変更します。 省略したとき、若しくは、0を指定すると、テクスチャパーツからサイズを取得してきます。

SIZE = 512,512;       //512x512
SIZE = {50} - 100,{50} + 100; //screen width * 0.5 - 100,screen height * 0.5 + 100

サイズは 割合指定 が可能です。

CONTENTS_SIZE = 横サイズ,縦サイズ

一行のサイズを決定します。 垂直方向に並んでいるリストボックスにおいては、縦方向にスクロールします。

ただし、コンテンツサイズの横幅のほうが表示エリアよりも大きいときは、左右にもスクロールします。

// 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

コンテンツサイズは 割合指定 が可能です。

CONTENTS = { コントロール定義 … }

LISTBOXの中の一行を定義するためのコントロールを列挙します。

コントロールの座標は、LISTBOXの座標から相対で配置されます。

全てのコントロールを関連付けることが可能です。

// It is also possible to put the list box in the list box
CONTENTS = {
      BUTTON(A) {
          :
      };
      CHECKBOX(B) {
          :
      };
      LISTBOX(C) {
          :
      };

C#からコンテンツリストの特定のコントロールに対してアクセスする方法 は こちら を参考にしてください。

注釈

コンテンツ内のコントロールの座標やサイズの 割合指定 は、リストボックスのサイズを基準に計算されます。

ウィンドウサイズではないことに気を付けてください。

LINE_SPACE = 行間ピクセル値

コンテンツとコンテンツ間の隙間をこのプロパティで設定可能です。

LINE_SPACE = 8;       //Put an 8-dot space.

割合指定はできません。

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

リストボックス固有のスタイルは以下のものがあります。

リストボックス制御フラグ

説明

ITEM_STACK_V

垂直方向に並んでいるリストボックス

ITEM_STACK_H

水平方向に並んでいるリストボックス

NOBOUNCES

端までスクロールしたとき、勢いが残っていても跳ね返らない

SCROLL_UNLOCK

スクロールを許可する。

SCROLL_LOCK

スクロールを抑制する。

コントロールの表示アンカーを指定できます。

表示位置アンカーフラグ

説明

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になる。

コントロールの中心位置を指定できます。

中心位置変更フラグ

説明

BASE_DEFAULT

アンカーフラグに応じて変わる。

特に指定しなければ、これになります。

各アンカーフラグの説明を参照

BASE_LEFTTOP

中心位置をコントロールの左上に設定

BASE_LEFT

中心位置を左に設定

縦にはコントロールの真中

BASE_LEFTBOTTOM

中心位置を左下に設定

BASE_TOP

中心位置を上辺に設定

横にはコントロールの中心

BASE_CENTER

中心位置をコントロールの中心

BASE_BOTTOM

中心位置を底辺に設定

横方向にはコントロールの真中

BASE_RIGHTTOP

中心位置をコントロールの右上に設定

BASE_RIGHT

中心位置を右に設定

横にはコントロールの中心

BASE_RIGHTBOTTOM

中心位置を右下に設定

機能を制限するスタイルは以下のものがあります。

機能制限スタイル

説明

HIDE

表示を隠す。

DISABLE

押せなくし、暗くする。

NOHIT

押せなくする。

ITEM_STACK_V

垂直方向に並んでいるリストボックス

ITEM_STACK_H

水平方向に並んでいるリストボックス

NOBOUNCES

端までスクロールしたとき、勢いが残っていても跳ね返らない

SCROLL_UNLOCK

スクロールを許可する。

SCROLL_LOCK

スクロールを抑制する。