自分がお気に入りのLinux mint cinnamon Editionにはdeskletというガジェット機能があります。
こいつの開発手法が国内国外問わず殆どないため、試行錯誤しながら現在学んでいるのですが。
ある程度分かってきたのでメモを残していこうと思います。
第四回は設定画面。コンフィグですね。
第一回はこちら
第二回はこちら
第三回はこちら
settings-schema.json
設定情報はjsonで管理します。
{
"head1": {
"type": "header",
"description": "User"
},
"user": {
"type": "entry",
"default": "Tom",
"description": "User"
}
}
いわゆるラベルが左、設定が右にあるレイアウトですね。
type: headerというものがラベル情報になります。
type: entryというものはテキストボックス。
defaultとdescriptionはまあいいでしょ。
詳細は
wikiに書かれてます。
Binding
desklet.jsにはbindingを書きます。
this.settings = new Settings.DeskletSettings(this, this.metadata.uuid, desklet_id);
this.settings.bindProperty(Settings.BindingDirection.IN, "user", "user", this.setUser, "param");
DeskletSettingsをnewしている場所はテンプレですね。何も変える必要はありません。
二行目の引数は以下のような感じ。
Settings.BindingDirection.IN : Settingsを変えるとdesklet.jsの変数に反映されます。
Settings.BindingDirection.OUT : desklet.jsの変数を変えるとSettingsに反映されます。
Settings.BindingDirection.BIDIRECTIONAL : 双方向バインディングとなります。
で、最初のuserはsettings-schema.jsonに書かれた変数。
次のuserはdesklet.js側の変数。this.userでアクセスできます。
んで、コールバックですね。
callback(value, param)という形です。
valueには今回変えた値が、paramは最後の引数が入ってきます。
まとめ
とりあえず今回はこんなもんで。
次はタイマーあたりやりましょうか。
次回へ続く。
第五回はこちら