ウィンドウスクリプト(wra)文法

wra文法

wraは、大きく二つのブロックから構成されています。

  • ウィンドウ定義ブロック

  • コントロール定義ブロック

必ず、ウィンドウ定義ブロックが先頭にきて、その後にコントロール定義ブロックが続くことになります。 ウィンドウIDは、 マルチ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独自のプリプロセッサ定義について列挙しておきます。

プリプロセッサ

説明

#pragma RESOURCE マルチID

アセットバンドルとして出力する

#pragma RESOURCE 000_014_000000

#pragma RESOURCE パス

リソースデータとして指定されたパスに出力する

#pragma RESOURCE = Resources/windows.asset

#pragma PATH 出力パス

出力パスを変更する

デフォルトは、以下のフォルダ

#pragma PATH ../wrc/base

#pragma BASECLASS ベースクラス

ベースクラスを変更する

デフォルトは、以下のクラス

#pragma BASECALSS CWindowBase