.. default-domain:: csharp .. _LOG: ==================== LOG ==================== C#: :ref:`CWinCtrlLog` チャットログのためのコントロールです。 コンテンツを複製し、それを一行とします。 リストボックスと違い、コンテンツの最大数が設定でき、それ以上のコンテンツを追加しようとしたとき、内部で循環(一番古いものが破棄されます)するようになっています。 :ref:`LOGTEXT` 以外のコントロールもコンテンツとして入れることができます。 このコントロールはスクロール可能なコントロールです。 STYLEに :ref:`SCROLL_LOCK` をつけておくと、onDragコールバックが呼び出され、ドラッグした方向を検出できます。 DRAGをつけても、これらコントロールには効果がないことに気を付けてください。 .. note:: **LOG** 内の **CONTENTS** には、必ず一つの **LOGTEXT** を入れておく必要があります。 .. LOG(コントロール名) { プロパティ1; プロパティ2; : : プロパティn; }; 記述例 =========== :: LOG(Chat) { ID = 000_000_00030; STYLE = ANCHOR_LEFTBOTTOM; POSITION = 0,OFFSET_Y; SIZE = WINDOW_SIZE_FULL, 80-2; CONTENTS_SIZE = WINDOW_SIZE_FULL, 80-2; CONTENTS = { ICON(Chat) { : } TEXT(Name) { : } FRAME(Balloon) { : } LOGTEXT(Chat) { : } } COLOR = COLOR32(0,0,0,255); LINE_SPACE = 10; GROUP = SCROLLBAR(Chat); }; SCROLLBAR(Chat) { ID = 000_001_00001; STYLE = ANCHOR_RIGHTTOP; COLOR = 1,1,1,0.5; POSITION = -2,-5; SIZE = 0,-10; }; .. プロパティ ================== 代表的なデフォルト値 ------------------------------------- :: 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:`横幅,縦幅` ---------------------------------------------- リストボックスの表示領域を定義します。 表示領域をはみ出たコントロールは、クリッピングされます。 :: SIZE = {100} - 32,400; //display size CONTENTS_SIZE = 800,80; //one content size .. サイズは :ref:`割合指定` が可能です。 **CONTENTS_SIZE** = :ref:`横幅,縦幅` ------------------------------------------------------- 一行のサイズを決定します。 垂直方向に並んでいるリストボックスにおいては、縦方向にスクロールします。 ただし、コンテンツサイズの横幅のほうが表示エリアよりも大きいときは、左右にもスクロールします。 :: // only vertical direction to scroll SIZE = 400,400; //display size CONTENTS_SIZE = {100},40; //virtual screen size // Scroll to the left and right direction SIZE = 400,400; //display size CONTENTS_SIZE = {200},40; //virtual screen size .. コンテンツサイズは :ref:`割合指定` が可能です。 .. _LOG_CONTENTS: **CONTENTS** = { コントロール定義 … } ----------------------------------------------- LOGの中の一行を定義するためのコンテンツを列挙します。 コントロールの座標は、LOGの座標から相対で配置されます。 全てのコントロールを関連付けることが可能です。 .. note:: **LOG** 内の **CONTENTS** には、必ず一つの **LOGTEXT** を入れておく必要があります。 :: CONTENTS = { ICON(Chat) { : } TEXT(Name) { : } FRAME(Balloon) { : } LOGTEXT(Chat) { : } .. C#からコンテンツリストの特定のコントロールに対してアクセスする方法 は :ref:`こちら` を参考にしてください。 ただし、内部のコンテンツは循環リストになっているため、直接アクセスするのは危険です。 コンテンツに対するカスタマイズは、 :meth:`ログを追加` したときに行ってください。 .. note:: コンテンツ内のコントロールの座標やサイズの :ref:`割合指定` は、リストボックスのサイズを基準に計算されます。 ウィンドウサイズではないことに気を付けてください。 .. **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の間で指定してください。 **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 |スクロールを抑制する。 | +-------------------------+--------------------------------------------------------+