[[PSSdev/FreeDesign]]

#contents

オプション画面でユーザが変更できる変数

* 概要
* 概要 [#d9637dab]

オプション画面でユーザが変更できる変数です。

定義できるのは 30 個までです。

* 設定可能な項目
* 設定可能な項目 [#i09f84f1]

以下の項目が変更可能です。

また、オプション画面では、デフォルト値を使うかどうかを指定できます。

| '''項目名''' | '''変数のタイプ''' | '''オプション画面での設定項目''' | '''備考''' |
|フォント関連項目|font|フォント選択ダイアログ||
|カラー|color|カラーピッカー||
|背景色|-|カラーピッカー|スキンでは定義しなくてよい(デフォルト値の指定にはBackgroundColorを用いる)|
|背景イメージ|-|参照ボタン|スキンでは定義しなくてよい(デフォルト値の指定にはBackgroundImageFileを用いる)|

* Notation
* Notation [#i62238ef]

userXX によって定義される。(XXは二桁の数値)

item 系や font 項目と同様に、複数の項目を , で区切った形で記述する。

:第1項:変数の解説文(オプション画面で変更する際に利用者に提示される情報)
:第2項:変数のタイプ
:第3項:変数名($hogeの形で記述する)
:第1項|変数の解説文(オプション画面で変更する際に利用者に提示される情報)
:第2項|変数のタイプ
:第3項|変数名($hogeの形で記述する)

 user00        = "'区切りの色', color, $bordercolor"

 $bordercolor  = "7070ff"
 item40	      = "border, (85, 20+20*0, 85+67, 20+20*0+20), $bordercolor"

* 注意事項
* 注意事項 [#d19bf976]

user〜 で指定された変数が上書きされる。

言い換えれば「この変数はユーザで変更してもいいですよ」という指定をすることになる。

ユーザが(オプション画面で)その変数を変更した場合は、スキンファイルで指定した値は無視され、
その変数値は全てユーザが変更した値で置き換えられる。

逆に、ユーザがその変数を変更していない場合は、スキンファイルで指定した値が利用される。
(user〜で何が書いてあっても全く関係ない。「変数のタイプ」すら関係ない。
(ローカル変数に“型”が存在しないため))

* 例
* 例 [#v2b80d79]

** font の例
** font の例 [#x095e753]

 user00        = "'数値のフォント', font, $font_num"
 $font_num     = "16, 1, 0, 0, 0, MS Pゴシック"
 font09	      = "$font_num"

* 実装(開発者向け)
* 実装(開発者向け) [#le64cbbf]

** ユーザ設定の保存
** ユーザ設定の保存 [#g30d0ea1]

ユーザがオプションで設定すると、skin/user.ini の [hoge] セクション(hoge はユーザ名)に

''ahi''00=30

のような記法で記述される。''ahi'' はスキンの名称(DesignName)、右辺はユーザが設定した変数値。

** Pss 本体の実装
** Pss 本体の実装 [#gc8c78d2]

- CFreeDesign::UserVar
-- スキンファイル上のユーザ変数を管理する
- CFreeDesign::UserVarMangaer
-- ユーザが変更したユーザ変数を管理する。

学習画面起動時は、スキン読み込み前に UserVarManager によって
skin/user.ini のユーザ変数定義が読み込まれる。

その後、UserVarManager が渡され、CFreeDesign によってスキンが読み込まれる。
''変数展開''の際には UserVarList にその値が存在するかどうかを確かめ、
UserVarList 上にその変数値が存在すれば、スキンで定義されている変数値よりも
UserVarList で定義されている値を優先して展開される。
潟若若菴遵

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS