- Note: DebugLog() is still in the code as I was not sure whether it is required to maintain Litestep interoperability
- Replaced instances of LOG_DEBUG where other log levels would be more appropriate
- Replace swprintf/wsprintf/wcscpy/wcscat to _snwprintf_s/wcsncpy_s/wcsncat_s.
- Changed printf format parameter strictly for supporting both 32bit and 64bit.
- Fixed an issue that !RainmeterWriteKeyValue doesn't accept %APPDATA%\Rainmeter path.
- Code cleanup.
- Added tinting functions for Background.
- Added "ImageCrop" option to Meter=IMAGE/BAR/HISTOGRAM/ROTATOR and Background.
- Added "Tile" option to Meter=IMAGE.
- Some code cleanups.
- Added !RainmeterSetTransparency, !RainmeterShowFade, !RainmeterHideFade, !RainmeterToggleFade.
- Added the function to log the installed font families to the log file when Debug=1 is set.
- Added the workaround for issue 145. The wrong drawing position was fixed when AntiAlias=0 is set.
1) New feature of Meter=String
StringCase= [NONE | LOWER | UPPER | PROPER]
2) Changes to SetVariable to allow mathematical formulas and functions to be used in setting a variable.
reading of various skin setting values.
For instance:
- OK
FontSize=10
FontSize=0
- NG (uses default value instead)
FontSize=
FontSize=ABC
FontSize=20ABC (has been parsed as "FontSize=20" until now.)
- CHANGED: FontSize=0(invisible) is now able to use in Meter=STRING.
- Fixed the problem that the window doesn't move into the screen correctly when KeepOnScreen is 1.
FIXED: Virtual Bytes usage for an x64 process with perfmon plugin does not display value greater than 4 GB (issue 113)
The numerical value greater than 32bit can be now displayed when NumOfDecimals is 0 in Meter=STRING.
Fixed the broken compatibility in Windows 2000. (AboutDialog, SysInfo)
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 changes to RANDOM function based on Rainy's input. If there were multiple RANDOM statements in multiple CALC measure, they would all get the same random number. Fixed.
Added new RANDOM function and LocalFont to the help files and History.htm