Linux mint cinnamonのdesklet開発奮闘記 第四回 settings

Author:

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

まとめ

とりあえず今回はこんなもんで。
次はタイマーあたりやりましょうか。

次回へ続く。
第五回はこちら

Facebook にシェア
Pocket