.. default-domain:: csharp =================================== ウィンドウスクリプト(wra)文法 =================================== wra文法 ------------------------ wraは、大きく二つのブロックから構成されています。 * ウィンドウ定義ブロック * コントロール定義ブロック 必ず、ウィンドウ定義ブロックが先頭にきて、その後にコントロール定義ブロックが続くことになります。 ウィンドウIDは、 :ref:`マルチID` を使って指定してください。 :: // window define block WINDOW(Window ID) { Property 0; Property 1; : Property n; }; // control define blocks ControlKind(name 0) { Property 0; Property 1; : Property n; }; ControlKind(name 1) { Property 0; Property 1; : Property n; }; : ControlKind(name n) { Property 0; Property 1; : Property n; }; .. :: #include "wr.h" $y = 160; #pragma RESOURCE ON WINDOW(250_000_00010) { RESOURCE; PATH = NETWORKPATH; ID = 001_000_00000; TEX_ID = 100_000_00000; CAPTION = 000_000_0000; STYLE = NOTITLEBAR|NOFRAME|ANCHOR_CENTER|TOP; SIZE = {100},{100}; PRIORITY = PROGRESSBAR_PRIORITY; }; METER(ProgressTotal) { ID = 000_001_00000; STYLE = ANCHOR_BOTTOM; SIZE = -128{100}; POSITION = 0,$y; TEX_ID = 0,"MTRB"; COLOR = COLOR32(255.0,255.0,255.0,255.0); TEX_ID1 = 0,"MTR"; COLOR1 = COLOR32(255.0,255.0,255.0,255.0); }; $y -=64; METER(ProgressPart) { ID = 000_001_00010; STYLE = ANCHOR_BOTTOM; SIZE = -128{100},32; SIZE = -128{100},32; POSITION = 0,$y; TEX_ID = 0,"MTRB"; COLOR = COLOR32(255.0,255.0,255.0,255.0); TEX_ID1 = 0,"MTR"; COLOR1 = COLOR32(255.0,255.0,255.0,255.0); }; .. 変数と式 ---------------------------- wraファイル内で変数とその変数を使った式が使えます。 **$** から始まるものが変数となります。 使える変数の型は実数になります。 また、式をプロパティ内にも記述可能です。 :: ID = 000_000_00010 + (3 * $val); .. 変数の宣言 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 変数を使うときは、必ず初期値が付いている状態で宣言する必要があります。 未初期化な変数はエラーになります。 :: $i = 3; //integer(Decimal number) $h = 0xfff123; //integer(Hexadecimal number) $f = 3.14; //real number $m = 001_002_00003; //Multi (8bit,8bit,16bit) .. 式において使える演算子 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +--------------+----------------------------+ |演算子 |説明 | +==============+============================+ |+,-,*,/ |四則演算 | +--------------+----------------------------+ |% |剰余 | +--------------+----------------------------+ |\|,&,^,~ |ビット演算(or,and,xor,not) | +--------------+----------------------------+ |<<,>> |シフト演算 | +--------------+----------------------------+ |\*\* |べき乗演算 | +--------------+----------------------------+ .. 式においての定数表現 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +-----------------+--------------------------------+ |定数例 | 説明 | +=================+================================+ |14 |10進整数 | +-----------------+--------------------------------+ |0x12ffffff |16進整数 | +-----------------+--------------------------------+ |000_001_00010 | マルチID(8bit,8bit,16bit形式) | +-----------------+--------------------------------+ |0.345 |浮動小数点 | +-----------------+--------------------------------+ 文字列の演算 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文字列は、数字と違い変数に代入することはできませんが、連結するための演算は行えます。 連結するには、以下の形式で行います。 * 文字 + 文字 * 文字 . 文字 :: PATH = "test/" + "folder/"; .. プリプロセッサ ------------------------------ C言語,C++言語とほぼ同じプリプロセッサが使えます。 +--------------------------------+-----------------------------+ |プリプロセッサ |説明 | +================================+=============================+ |\/\/ コメント |ラインコメント | +--------------------------------+-----------------------------+ |\/\* コメント \*\/ |ブロックコメント | +--------------------------------+-----------------------------+ |#include ファイル名 |ファイルをインクルードする | +--------------------------------+-----------------------------+ |#define 記号定数の定義 |記号定数の定義 | +--------------------------------+-----------------------------+ |#define 関数マクロ |関数マクロ | +--------------------------------+-----------------------------+ |#if defined(記号定義) ~ #endif |条件コンパイル | +--------------------------------+-----------------------------+ |#ifdef ~ #endif |条件コンパイル | +--------------------------------+-----------------------------+ |#ifndef ~ #endif |条件コンパイル | +--------------------------------+-----------------------------+ |#pragma once |多重インクルード防止 | +--------------------------------+-----------------------------+ .. 次に、wra独自のプリプロセッサ定義について列挙しておきます。 .. tabularcolumns:: |p{0.5\linewidth}|p{0.5\linewidth}| +----------------------------------------+---------------------------------------------+ |プリプロセッサ |説明 | +========================================+=============================================+ |#pragma RESOURCE :ref:`マルチID` |アセットバンドルとして出力する | | | | | | 例 | | | | | | #pragma RESOURCE 000_014_000000 | +----------------------------------------+---------------------------------------------+ |#pragma RESOURCE パス |リソースデータとして指定されたパスに出力する | | | | | | 例 | | | | | | #pragma RESOURCE = Resources/windows.asset | +----------------------------------------+---------------------------------------------+ |#pragma PATH 出力パス |出力パスを変更する | | | | | |デフォルトは、以下のフォルダ | | | | | | #pragma PATH ../wrc/base | +----------------------------------------+---------------------------------------------+ |#pragma BASECLASS ベースクラス |ベースクラスを変更する | | | | | |デフォルトは、以下のクラス | | | | | | #pragma BASECALSS CWindowBase | +----------------------------------------+---------------------------------------------+ ..