right now a user has to apply settings as colors, passwords etc. either directly in the skin or in a variables.inc file. there have been great efforts by skinners providing settings skins with really sophisticated interfaces and even third party apps to make this easier.
still, this is a workaround and not really how it should be. in my opinion this should be done by Rainmeter itself. here's my idea how this could look like:
first of all: leave the variables as they are. no need to break compatibility. i am thinking of a second set of variables that can be altered by a gui.
a skin has two new entries in it's context menu. "Theme Settings" and "Skin Settings". these entries are available when the corresponding settings files are provided by the skinner. else they are greyed out. let's call these files "theme.set" in the skin's root directory and "skin.set" in the skin's directory.
here's how such a file could look like:
Code: Select all
[SettingA]
Setting=Color
SettingTitle="Headline Color"
SettingDescription="Choose the color of the skin's headline here."
SettingDefault=FF00AA
SettingValue=BECCCC
; so here we have a color picker (provided by the Windows api)
; there is a SettingDefault value. it's there because the gui does not only have "Apply" and "Cancel" but also "Restore defaults".
; SettingValue finally is the value the user has chosen. this is the part that is changed by the gui, before it refreshes the skin. or refreshes all, if the user is working on the theme settings.
[SettingB]
Setting=File
SettingTitle="User Portrait"
SettingDescription="Choose a picture of your face here."
SettingDefault=#@#images\defaultportrait.png
SettingValue="c:\users\alex\pictures\portrait.png"
; here we have a file picker provided by the Windows api.
[SettingC]
Setting=Folder
SettingTitle="Your Gallery Folder"
SettingDescription="Choose a folder with pictures that should be displayed randomly."
SettingDefault="c:\users\%username%\pictures\"
SettingValue="c:\users\alex\pictures\India 2012\"
; here we have a folder picker provided by the Windows api.
[SettingD]
Setting=List
SettingTitle="Skin Background"
SettingDescription="Which background would you like to use?"
SettingOptions="wood","metal","plastic bag"
SettingDefault="wood"
SettingValue="wood"
; here we have a dropdown menu.
[SettingE]
Setting=List
SettingTitle="Month"
SettingDescription=""
SettingOptions="January","February","March", ....
SettingDefault="April"
SettingValue="May"
Substitute="January":"1","February":"2", ....
; here we have another dropdown menu.
; maybe we need numbers in the skin instead of names. that's why we have Substitute.
[SettingF]
Setting=Numbers
SettingTitle="Year"
SettingDescription=""
SettingOptions=1980,2040
SettingDefault="2012"
SettingValue="2012"
; here we have a third dropdown menu, but this time with numbers.
; as we are lazy and do not want to type down all the available numbers we have the range of available choices defined in SettingsOptions. first is the lowest, second is the highest number.
[SettingG]
Setting=String
SettingTitle="Twitter Password"
SettingDescription="Your Twitter password goes here."
SettingDefault="password"
SettingValue="qwert"
; here the user has to enter a string.
we use settings in the skin the same way as we use variables. (#SettingA").