テーマの基本

準備

このプログラムのテーマは themes フォルダ内に入っています。
新しくテーマを作る場合はこの themes の中に新しくフォルダを作ります。
フォルダ名は半角文字を使って下さい。

1つのテーマフォルダの中身は次のようになっています。

config.xml テーマの詳細を記述したファイル
images 画像ファイルを格納するフォルダ
sounds 音声ファイルを格納するフォルダ

images フォルダと sounds フォルダを作り、画像を images に、音声を sounds に入れてください。

次に config.xml ファイルを作成します。
下記のテンプレートをテキストエディタにコピーし、保存して下さい。(文字コードは UTF-8)
左端の行番号は不要です。

・テンプレート

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <data>
  3. <title></title>
  4. <size width="" height="" />
  5. <icon></icon>
  6. <info>
  7. <version></version>
  8. <author></author>
  9. <website></website>
  10. </info>
  11.  
  12. <itemset>
  13.  
  14. </itemset>
  15. </data>

まずはタイトルを決めます。
これはメニューバーに表示されます。

<title>Sample Clock</title>

次にフレームのサイズを決めます。
フレームは部品を張り付けていくための透明な土台のようなもので、
絵を描くキャンバスの大きさと言ってもよいでしょう。
このサイズを超えた部分は表示されずに途切れてしまいます。

<size width="220" height="220" />

width が幅、height が高さを表します。単位はピクセルです。

ある程度余裕をもたせるのは問題有りませんが、
大きくすればするほどコンピュータへの負荷が増えてしまうので
できるだけ必要最低限のサイズを指定して下さい。

次にアイコンのファイル名を指定します。

dial
icon.png
<icon>icon.png</icon>

アイコンとして使用できるのは JPEG、PNG、GIF、BMP です。ICO ファイルは使用できません。
環境に応じて自動的に縮小されますが、縦横 48 ピクセル以上の正方形で作るとよいでしょう。
アイコンファイルは images フォルダの中から読み込まれます。
このアイコンはメニューバーやタスクトレイに表示されます。

次に作者の情報などを表す info を追加します。

  1. <info>
  2. <version>1.0.0</version>
  3. <author>サンプル</author>
  4. <website>http://sample.com</website>
  5. <email>sample@sample.com</email>
  6. </info>
version テーマファイルのバージョン情報を記入します。
特に書き方に決まりは有りませんが「1.0.0」のようにしておくのが一般的です。
author 作者の名前を記入します。
website Webサイトを持っている場合は URL を記入します。空欄でも構いません。
email Email のアドレスです。不要ならこちらも空欄で構いません。

ここまで追加すると次のようになっていると思います。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <data>
  3. <title>Sample Theme</title>
  4. <size width="220" height="220" />
  5. <icon>icon.png</icon>
  6. <info>
  7. <version>1.0.0</version>
  8. <author>サンプル</author>
  9. <website>http://sample.com</website>
  10. <email>sample@sample.com</email>
  11. </info>
  12.  
  13. <itemset>
  14.  
  15. </itemset>
  16. </data>

時計の針や背景画像、音などの要素をこのプログラムでは「item(アイテム)」と呼びます。
アイテムは <item>~</item> タグを使って指定し、項目の詳細をその内側に書きます。
アイテムは <itemset> 内に追加します。一つの <itemset> の中に複数の <item> を追加できます。

まずは単純に一枚の画像を表示してみます。
dial
dial.png
  1. <itemset>
  2. <item type="image">
  3. <image>dial.png</image>
  4. </item>
  5. </itemset>

itemタグに挟まれた image というタグはファイル名を示しています。
画像ファイルはテーマフォルダ内の「images」という名前のフォルダから呼び出されるので、
imagesフォルダに入っている「dial.png」という画像を表示することになります。

このままでは座標が指定されていないため、この画像は左上隅に表示されることになります。
座標の初期値は x, y ともに 0 となっています。

次に時計の針を追加してみます。
時計の針には次の三種類があります。
これは item の属性 type として指定します。

short_hand 短針
long_hand 長針
second_hand 秒針
まずは短針を作ってみます。
short
short.png
  1. <itemset>
  2. <item type="image">
  3. <image>dial.png</image>
  4. </item>
  5.  
  6. <item type="short_hand">
  7. <image>short.png</image>
  8. <position x="110" y="110" />
  9. <axis x="14" y="83" />
  10. </item>
  11. </itemset>

item の type として「short_hand」を指定してあります。
<axis> という要素は回転の中心座標を指定するためのものです。
指定がない限り画像は左上を中心に回転します。これを変更するためにこの <axis> を使います。
指定する座標は画像ファイル内の座標です。フレーム全体から見た座標ではないので気をつけて下さい。

axis

<position> はアイテムを配置する座標です。これはフレームの左上から数えた位置を x と y で指定します。
<axis> が指定されていない場合は <position> 位置に画像左上が来ます。
<axis> が指定されている場合は回転の中心が <position> の座標に来るように調整されます。

同様にして長針、秒針も追加してみます。

long long
long.pngsecond.png
  1. <item type="long_hand">
  2. <image>long.png</image>
  3. <position x="110" y="110"></position>
  4. <axis x="14" y="83" />
  5. </item>
  6.  
  7. <item type="second_hand">
  8. <image>second.png</image>
  9. <position x="110" y="110" />
  10. <axis x="14" y="83" />
  11. </item>

それぞれ用いる要素はすべて共通です。
type を役割に合わせて変更し、画像ファイルを指定し、位置や回転軸を必要に応じて調整します。

画像の重なり順は基本的に後に書いたものが上になります。変更したい場合は「z-index」を使い、順番を数字で指定します。 数字が大きいほど上になります。(省略時は「0」)

<item type="image" z-index="3">

基本的な時計の作り方は以上です。
ファイルを保存して実際に実行してみましょう。

テーマファイル全体

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <data>
  3. <title>Sample Clock</title>
  4. <size width="220" height="220" />
  5. <icon>icon.png</icon>
  6. <info>
  7. <version>1.0.0</version>
  8. <author></author>
  9. <website></website>
  10. <email></email>
  11. </info>
  12.  
  13. <itemset>
  14. <item type="image">
  15. <image>dial.png</image>
  16. </item>
  17.  
  18. <item type="short_hand">
  19. <image>short.png</image>
  20. <position x="110" y="110" />
  21. <axis x="14" y="83" />
  22. </item>
  23.  
  24. <item type="long_hand">
  25. <image>long.png</image>
  26. <position x="110" y="110"></position>
  27. <axis x="14" y="83" />
  28. </item>
  29.  
  30. <item type="second_hand">
  31. <image>second.png</image>
  32. <position x="110" y="110" />
  33. <axis x="14" y="83" />
  34. </item>
  35. </itemset>
  36. </data>

・エラーが起きたら

上手く動かない時は、タグの閉じ忘れがないかチェックしてみましょう。
XML のタグは必ず <element>~</element> のように開始と終了が対応しているか、
<element /> のように空要素になっています。スラッシュが無かったり終了タグがない場合はエラーになってしまうので気をつけましょう。

あるいは半角スペースにすべきところを全角スペースで入力していないか確かめて下さい。
また、数値であっても属性は「width="120"」のようにダブルコーテーションで括る必要があります。


戻る