Moony

Skin Specification

Moony Version0.2系列のスキン仕様を公開しています。

Index

  1. スキン定義ファイル
  2. スキンのツリー構造
  3. セレクタ
    1. 通常セレクタ
    2. テキストセレクタ
    3. アイコンセレクタ
  4. プロパティ
    1. 通常セレクタのプロパティ
    2. テキストセレクタのプロパティ
    3. アイコンセレクタのプロパティ
  5. 注意点

スキン定義ファイル

スキン定義ファイルは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]
タブの幅や外観。
[Tab.Caption]
キャプション(タブのつまみ)部分。
[Tab.Border-Left]
タブの左側境界。
[Tab.Border-Right]
タブの右側境界。
[Tab.Border-Bottom]
タブの下側境界。
[Tab.Item]
アイテムの外観や高さ。
[Tab.Item.Hover]
アイテムが選択されているときの外観。
[Tab.Item.Pressed]
アイテムが押された時の外観。

テキストセレクタ

テキストを描画するための設定を記述するセレクタです。以下のセレクタが該当します。

[Tab.Caption.Text]
タブのキャプション(つまみ)部分のテキスト。
[Tab.Item.Text]
アイテム部分のテキスト。
[Tab.Item.Hover.Text]
アイテム部分が選択されている時のテキスト。
[Tab.Item.Pressed.Text]
アイテム部分が押された時のテキスト。

アイコンセレクタ

アイコンを描画するための設定を記述するセレクタです。以下のセレクタが該当します。

[Tab.Item.Icon]
アイテムに表示するアイコン。
[Tab.Item.Hover.Icon]
アイテム部分が選択されている時に表示するアイコン。
[Tab.Item.Pressed.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では親のプロパティを継承しません。従って全てのセレクタを適切に記述する必要があります。これは今後の改善点として変更される予定です。