自分がお気に入りの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は最後の引数が入ってきます。

まとめ

とりあえず今回はこんなもんで。 次はタイマーあたりやりましょうか。 次回へ続く。 第五回はこちら