- 追加された行はこの色です。
- 削除された行はこの色です。
[[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 で定義されている値を優先して展開される。