UJMLサンプル017:コンポーネントの利用(メッセージボックス)(2006/02/03)
メッセージボックスの表示の例だ。"F2"ボタンを押すとメッセージボックスが表示される。表示メソッドshowの引数で全て指定してメッセージボックスを表示させることができる。とても便利だ。小型デバイスを考慮してメッセージがスライドできるようになっているところは作り手の温かみを感じる。このコンポーネントは結構いいひとが書いたのだろう。
ちなみに今までのUJMLサンプルの中でも何度も出てきているがおさらい。
_getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;)
はスクリーンの幅の値を取る。
_getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;)
はスクリーンの高さの値を取る。
_getIntProperty(日本語解説)は他にも以下のような値を取得することができる。
・デバイスが提供している色の数(単位:ビット)。
・デバイスがサポートしているファンクションキーの総数(F1 と F2など)。
・直近のonSelectイベントのX軸方向の位置。絶対座標。
・直近のonSelectイベントのY軸方向の位置。絶対座標。
・直近のonSelectイベントのX軸方向の位置。イベントを検出したビジュアル要素からの相対座標。
・直近のonSelectイベントのY軸方向の位置。イベントを検出したビジュアル要素からの相対座標。
似たようなメソッドに_getStringProperty()というものがあり、こちらもよく使う。
どちらもデバイス情報を取得するために使うことが多い。デバイス依存の回避に使えるのだ。
動作サンプル
※最初にF2を押すとメッセージボックスが表示される。
※動作にはJAVA Runtimeが必要
---コード
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN"
"http://www.uievolution.com/dtd/ujml-1.5.dtd" [
]>
<!-- http://uiengineda.blogs.com -->
<ujml>
<application>
<state-machines>
<include file="components/messagebox.ujms" state-machine="MessageBox" />
</state-machines>
<display>
<fn>
<text>MsgBOX</text>
<event name="onSelect">
<accelerators>
<key>F2</key>
</accelerators>
<script>
MessageBox.show(
0, <!-- 位置 X -->
0, <!-- 位置 Y -->
_getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;) / 2,<!-- 幅 -->
_getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;) / 2,<!-- 高さ -->
&_COLOR_BLUE;, <!-- 枠の色 -->
&_COLOR_SILVER;, <!-- 背景色 -->
&_COLOR_BLACK;, <!-- 文字の色 -->
&_COLOR_BLUE;, <!-- 選択されたときの枠の色 -->
&_COLOR_WHITE;, <!-- 選択されたときの背景色 -->
&_COLOR_BLUE;, <!-- 選択されたときの文字の色 -->
&_FONT_SIZE_SMALL;, <!-- フォントサイズ -->
&_FONT_STYLE_PLAIN;, <!-- フォントスタイル -->
&_FONT_FACE_SYSTEM;, <!-- フォント種類 -->
"Do you like baseball ?", <!-- メッセージの内容 -->
"YES", <!-- 第一ボタンの文字 -->
"NO", <!-- 第二ボタンの文字 -->
""<!-- 第三ボタンの文字 -->
);
</script>
</event>
</fn>
</display>
</application>
</ujml>
コメント