Moony Version0.2系列のスキン仕様を公開しています。
スキン定義ファイルはWindowsのINIファイルと同じ構造を持ち、Moony.iniの[Path]セクションのSkinで定義されたディレクトリに置かれていなければなりません。
基本的にスキンは以下のようなツリー構造をMoony内部で生成しています。
+-Tab
+-Caption
| +-Text
+-Border-Left
+-Border-Right
+-Border-Bottom
+-Item
+-Text
+-Icon
+-Hover
| +-Text
| +-Icon
+-Pressed
+-Text
+-Icon
セレクタはいわゆるセクションで定義します。ツリーの親子関係はピリオドによる区切りで表します。
[Tab] - Tabセレクタ。親はなし。
[Tab.Caption] - Captionセレクタ。親はTabセレクタ。
[Tab.Caption.Text] - Textセレクタ。親はCaptionセレクタ。
主に背景や画像を指定するセレクタです。タブの外観にもっとも貢献するのがこのセレクタです。Text及びIconセレクタ以外のセレクタがこれに該当します。
テキストを描画するための設定を記述するセレクタです。以下のセレクタが該当します。
アイコンを描画するための設定を記述するセレクタです。以下のセレクタが該当します。
各セレクタにはそれぞれプロパティを割り当てる必要があります。以下に例を示します。
[Tab] - タブセレクタ
ThemeAPI = 1 - WindowsXPのVisualStyleを使う
ThemeClass = Toolbar - VisualStyleを使う場合のクラス名
ThemePart = 0 - クラスのパーツID
ThemeState = 0 - クラスのパーツの状態ID
Width = 128 - タブの幅は128px
| プロパティ | 値 | 説明 |
|---|---|---|
| ThemeAPI | 1か0 | VisualStyleを使うか否か。 |
| ThemeClass | 文字列 | VisualStyleを使う場合のクラス名。 |
| ThemePart | 数値 | クラスのパーツID。 |
| ThemeState | 数値 | クラスのパーツの状態ID。 |
| Width | 数値 | [Tab]で指定するタブの幅。Image指定時は無視。 |
| Height | 数値 | [Caption]や[Item]で指定する高さ。Image指定時は無視。 |
| Color | 6桁16進ColorCode | 背景色。Imageが指定されているときは無視。 |
| Image | ファイル名 | 背景に使用するBMPファイルを指定する。 |
| プロパティ | 値 | 説明 |
|---|---|---|
| Margin | 上,左,右,下 | 表示部の上下左右マージン。コンマ区切りで4カ所。 |
| Color | 6桁16進ColorCode | テキストの色。 |
| Align | left/center/right | 水平方向の表示位置。 |
| VerticalAlign | top/center/bottom | 垂直方向の表示位置。 |
| FontSize | 数値 | テキストのフォントサイズ(pt)。 |
| FontFamily | フォント名 | テキスト描画に用いるフォント |
| Italic | 1か0 | イタリック体で表示するか否か。 |
| Weight | light/bold/normal | 文字の太さ。 |
| Underline | 1か0 | 下線を付けるか否か。 |
| StrikeOut | 1か0 | 取り消し線を付けるか否か。 |
| プロパティ | 値 | 説明 |
|---|---|---|
| Position | x,y | 表示部の左上隅を起点とした座標。 |
| Size | Large/Small | アイコンの大きさ。 |
Moony Version0.2.0では親のプロパティを継承しません。従って全てのセレクタを適切に記述する必要があります。これは今後の改善点として変更される予定です。