LOG

C#: CWinCtrlLog

チャットログのためのコントロールです。

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

リストボックスと違い、コンテンツの最大数が設定でき、それ以上のコンテンツを追加しようとしたとき、内部で循環(一番古いものが破棄されます)するようになっています。

LOGTEXT 以外のコントロールもコンテンツとして入れることができます。

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

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

注釈

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;

注釈

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

POSITION = X,Y

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

POSITION = 32,{50} + 64;

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

SIZE = 横幅,縦幅

リストボックスの表示領域を定義します。

表示領域をはみ出たコントロールは、クリッピングされます。

SIZE = {100} - 32,400;                //display size
CONTENTS_SIZE = 800,80;               //one content size

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

CONTENTS_SIZE = 横幅,縦幅

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

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

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

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

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

LOGの中の一行を定義するためのコンテンツを列挙します。

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

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

注釈

LOG 内の CONTENTS には、必ず一つの LOGTEXT を入れておく必要があります。

CONTENTS = {
  ICON(Chat) {
       :
  }
  TEXT(Name) {
       :
  }
  FRAME(Balloon) {
       :
  }
  LOGTEXT(Chat) {
       :
  }

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

ただし、内部のコンテンツは循環リストになっているため、直接アクセスするのは危険です。 コンテンツに対するカスタマイズは、 :meth:`ログを追加<CWinCtrlLog.add>` したときに行ってください。

注釈

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

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

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

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

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

説明

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

スクロールを抑制する。