Purpose. To allow Rainmeter to send the current config name (basically the current path but starting under "\Skins" and with no trailing "\") to external programs with !Execute. This will allow external programs to know the config name if they need to take some action and then send "Rainmeter.exe !RainmeterDeactivate" or "Rainmeter.exe!RainmeterRefresh" or other bangs that require a config name when sent to Rainmeter via the command line.
- Minor changes of ConvertToXXX(): Get an appropriate buffer size to convert the string. And using [] when deleting arrays.
- Fixed a few memory leaks.
- It's now possible to send the !BANG command when all windows are "On Desktop". (Rainmeter.exe and WebParser)
Rainy, given the "issues" listed at the bottom of this comment, I leave it to you whether to create a build using this revision or use r208 for the build. I would like to start testing MeterStyle, but there are a few more things it needs work on.
What is MeterStyle?
MeterStyle
This will allow users to create CSS-like "Styles" for meters. This means that all the parameters of a meter can be defined in the style, and then many meters can use the style to eliminate copy / pasting the same parameters over and over on multiple meters. (Examples: FontColor=, FontSize= etc.)
How do I use it?
You will create a new [Section] (as many as you want) in the .ini. The section(s) can have any name.
[MyStringStyle]
Then you will tell Rainmeter that this is a "MeterStyle" and not a measure or meter
Style=Meter
Note: The "value" of the key "Style" can be anything. It can be used to add a description of the style if you like. Style=This style is for the AccuWeather part of this skin
It is however required, both to tell Rainmeter it is not a meter or measure and to have the MeterStyle routines parse it.
Then you define parameters you want to use in the style
FontColor=#FontColor#
FontFace=TheSansBold-Caps
FontSize=11
StringEffect=SHADOW
StringStyle=BOLD
StringAlign=LEFT
AntiAlias=1
Then in any or all meters, you just use
[MeterName]
Meter=STRING (or any other meter type)
MeterStyle=MyStringStyle
None of the parameters in the style are then required to be actually in the meter(s). They are "inherited" from the MeterStyle.
Note: This works and has had preliminary testing with dynamic variables like FontColor=[MeasureName] and regular variables like FontColor=#FontColor#. It doesn't matter if the [Variables] section or the [MeasureName] measure is before or after the [StyleName] in the .ini file.
What if I want to override a MeterStyle parameter on a meter?
Sure. Just put in any parameter with a value different from the one defined in the MeterStyle and the one in the meter will take presidence. All non-defined parameters will still use the MeterStyle value.
[MeterName]
Meter=STRING
MeterStyle=MyStringStyle
FontColor=100,100,100,50
What are these "known issues" you are on about?
This is still a bit of a work in progress. Right now you cannot define X or Y in a style. You can define W and H, but NOT for a STRING meter. You cannot define a "Transformation Matrix" in a style. MattKing will be looking into these tomorrow. W and H in a string meter is our top priority. We will also look at X and Y and hope for an easy solution. Transformation Matrix may have to come later.
Added support for math formulas for the X, Y, W, H, WindowX and WindowY (e.g. "WindowX=(#WORKAREAWIDTH# / 2)"). The formula must be surrounded by parenthesis.
If there is a file called Default.ini in the program folder it will be used as the default settings file for new users.
The location of the settings file (rainmeter.ini) can be defined as a command line argument.