Google Gadget API part6
続きまして...
Defining User Preferences :
つづいては,<UserPref>タグで囲まれている部分の説明で,何が出来るかというと,ユーザが設定することでgadgetの見せ方をさせることが出来るということですね.ここでの設定は,永続化されるので,ユーザが次に開いたときもデータとしては残るわけですね.サンプルでは,greeting(挨拶) gadgetということで,名前,写真,バックグラウンドの色をユーザが変更できるようになってます.で,編集中の図.
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePfrefs
title="Preferences for __UP_myname__"
height="250" />
<UserPref name="myname"
display_name="Name"
required="true"/>
<UserPref name="myphoto"
display_name="Photo"/>
<UserPref name="mychoice"
display_name="Show Photo?"
datatype="bool"/>
<UserPref name="mycolor"
display_name="Color"
default_value="Yellow"
datatype="enum" >
<EnumValue value="Red" />
<EnumValue value="Aqua" />
<EnumValue value="Lime" />
<EnumValue value="Yellow" />
<EnumValue value="Pink" />
<EnumValue value="Orange" />
<EnumValue value="White" />
</UserPref>
ってな感じに,xmlを定義してあげるだけです.
- まず,__UP_myname__ は,動的に値を設定してくれます.mynameという名前のUserPrefで設定された値が入るわけですね.
- required 属性がtrueの場合には,必須のものになります.
- mychoiceでは,datatypeにboolが指定されていて,この場合にはチェックボックスが表示されます.
- mycolorでは,enumが指定されています.こうするとドロップダウンリストが表示されるわけですね.
続いて,その設定値を利用したjavascriptだけど,例えば,
document.bgColor = prefs.getString("mycolor");
なんてふうに値をゲットできるわけだねぇ.簡単だねぇ.とはいえ,prefsって何だ?ってことになるんだけど,
var prefs = new _IG_Prefs(__MODULE_ID__);
var someStringPref = prefs.getString("StringPrefName");
var someIntPref = prefs.getInt("IntPrefName");
var someBoolPref = prefs.getBool("BoolPrefName");
new _IG_Prefs(__MODULE_ID__);ってな感じで作成するんだってさ.まぁ,これは,おまじないだと思って使うしかないね.