CONTAINER

C#: CWinCtrlContainer

複数のコントロールを纏めるためのコントロールです。

SIZEによって、コンテナのサイズが決定し、CONTENTS_SIZEによって仮想画面のサイズが決定します。

仮想画面サイズがサイズより大きいときは、内包しているコントロールをスクロールさせることができます。

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

STYLEに SCROLL_LOCK をつけておくと、onDragコールバックが呼び出され、ドラッグした方向を検出できます。 DRAGをつけても、これらコントロールには効果がないことに気を付けてください。

CONTAINER(コントロール名) {

プロパティ1;

プロパティ2;

:

:

プロパティn;

};

記述例

WINDOW(255_000_00001) {
  STYLE = NOTITLEBAR|ANCHOR_CENTER;
  POSITION = 0,100;
  SIZE = 512,256;
  TEX_ID = 100_010_00000;
};

$w = 400;
CONTAINER(Map) {
  ID = 000_000_000100;
  POSITION = 0,0;
  SIZE = {100},{100};
  CONTENTS_SIZE = 640,1136;
  COLOR = COLOR32(255,255,255,255);
  CONTENTS = {
    TEXTURE(Map) {
      ID = 000_000_000110;
      SIZE = 640,1136;
      PRIORITY = -1;
      POSITION = 0,0;
      TEX_ID = 0,"MAP2";
    };
  };
};
_images/CONTAINER.png

プロパティ

代表的なデフォルト値

COLOR = 1,1,1,1;
CAPTION_COLOR = 1,1,1,1;

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 = 横幅,縦幅

仮想画面のサイズを指定します。

仮想画面が、表示サイズより大きいときは、コンテナ内のコンテンツをスクロールさせることができます。

SIZE = 400,400;               //display size
CONTENTS_SIZE = 800,800;      //virtual screen size

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

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

CONTAINERの中に内包するコントロールを列挙します。

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

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

CONTENTS = {
   BUTTON(A) {
      :
   };
   CHECKBOX(B) {
      :
   };
   LISTBOX(C) {
      :
   };
};

C#からコンテンツに対してアクセスする方法は こちら を参考にしてください。

注釈

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

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

COLOR = R,G,B,A

カラーを指定します。 カラー変更することによって、含まれるコントロール全てに影響を与えます。

R,G,Bについては、0~2の間で指定してください。

1を超えたとき、そのカラー成分を2倍まで上げて表示することができます。

Aについては、0~1の間で指定してください。

GROUP = SCROLLBARコントロールID,…

SCROLLBARコントロールをGROUPとして定義しておくと、自動的にコンテナと連動してスクロールバーを表示します。

CONTENTSに入れないように気を付けてください。

複数のスクロールバーを関連付けることも可能です。

GROUP = SCROLLBAR(Horizon),SCROLLBAR(Vertical);

STYLE = フラグ0|フラグ1|..|フラグn

コンテナ固有のスタイルは以下のものがあります。

コンテナ制御フラグ

説明

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

押せなくする。

NOBOUNCES

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

SCROLL_UNLOCK

スクロールを許可する。

SCROLL_LOCK

スクロールを抑制する。