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__);ってな感じで作成するんだってさ.まぁ,これは,おまじないだと思って使うしかないね.