.. default-domain:: cpp .. _CONTAINER: ============================= CONTAINER ============================= C#: :ref:`CWinCtrlContainer` 複数のコントロールを纏めるためのコントロールです。 SIZEによって、コンテナのサイズが決定し、CONTENTS_SIZEによって仮想画面のサイズが決定します。 仮想画面サイズがサイズより大きいときは、内包しているコントロールをスクロールさせることができます。 このコントロールはスクロール可能なコントロールです。 STYLEに :ref:`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"; }; }; }; .. .. image:: images/CONTAINER.png プロパティ ================== 代表的なデフォルト値 ----------------------------- :: COLOR = 1,1,1,1; CAPTION_COLOR = 1,1,1,1; **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:`横幅,縦幅` ---------------------------------------------------- 仮想画面のサイズを指定します。 仮想画面が、表示サイズより大きいときは、コンテナ内のコンテンツをスクロールさせることができます。 :: SIZE = 400,400; //display size CONTENTS_SIZE = 800,800; //virtual screen size .. コンテンツサイズは :ref:`割合指定` が可能です。 **CONTENTS** = { コントロール定義 … } ----------------------------------------------------------- CONTAINERの中に内包するコントロールを列挙します。 コントロールの座標は、CONTAINERの座標から相対で配置されます。 全てのコントロールを関連付けることが可能です。 :: CONTENTS = { BUTTON(A) { : }; CHECKBOX(B) { : }; LISTBOX(C) { : }; }; .. C#からコンテンツに対してアクセスする方法は :ref:`こちら` を参考にしてください。 .. note:: コンテンツ内のコントロールの座標やサイズの :ref:`割合指定` は、コンテナのサイズを基準に計算されます。 ウィンドウサイズではないことに気を付けてください。 .. **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 ------------------------------------------------------------------ コンテナ固有のスタイルは以下のものがあります。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------------+--------------------------------------------------------+ |コンテナ制御フラグ |説明 | +=========================+========================================================+ |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 |中心位置を右下に設定 | +-------------------+-----------------------------------------+ 機能を制限するスタイルは以下のものがあります。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------------+--------------------------------------------------------+ |機能制限スタイル |説明 | +=========================+========================================================+ |HIDE |表示を隠す。 | +-------------------------+--------------------------------------------------------+ |DISABLE |押せなくし、暗くする。 | +-------------------------+--------------------------------------------------------+ |NOHIT |押せなくする。 | +-------------------------+--------------------------------------------------------+ |NOBOUNCES |端までスクロールしたとき、勢いが残っていても跳ね返らない| +-------------------------+--------------------------------------------------------+ |SCROLL_UNLOCK |スクロールを許可する。 | +-------------------------+--------------------------------------------------------+ |SCROLL_LOCK |スクロールを抑制する。 | +-------------------------+--------------------------------------------------------+