[[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 で定義されている値を優先して展開される。