Adding Rainmeter.exe.config file to root to support dependent .dll files for C@ plugins
Adding Dependencies folder in \Plugins to support dependent .dll files for C@ plugins
Changes to server core Rainmeter codes to better export variables for C# plugins
Changes to Build.py
Changes to installer
Also adding file: TextFuncUF16.nsh to Rainstaller folder for UNICODE support.
If you download Build.py, be sure to set the paths to executables to your paths before using.
- Added some codes to avoid loading a dll from current directory.
[Library]
- Added new functions to avoid loading a dll from current directory. (CSystem::RmSetDllDirectory(), CSystem::RmLoadLibrary())
!RainmeterDraggable/!RainmeterDraggableGroup
!RainmeterKeepOnScreen/!RainmeterKeepOnScreenGroup
!RainmeterClickThrough/!RainmeterClickThroughGroup
!RainmeterSnapEdges/!RainmeterSnapEdgesGroup
!RainmeterSnapEdges [parm1] (Config | *)
!RainmeterSnapEdgesGroup [parm1] [GroupName]
Parm1:
-1 toggles the setting.
0 forces the setting to off.
1 forces to setting to on.
!RainmeterWriteKeyValue "Section" "Key" "Value" ("FileSpec"), where "FileSpec" is an optional parameter. If FileSpec is not present, the change is automatically done in the currently running skin file. If the bang is executed from command line, FileSpec is required.
- Some improvements of MouseOver/Leave detection.
- Fixed the issue that window dragging brings on MouseLeave if "Show window contents while dragging" is not set.
- Fixed the issue that window dragging can't be begun by dragging the Button.
- Fixed the issue that a reaction of the upper Button penetrates to the lower Buttons or the other window.
- Fixed the issue that %APPDATA% isn't replaced if Rainmeter runs as different user.
- Some stability improvements for activating/deactivating configs.
Usage:
Group=group1 | group2 | group3
* Concatenate group with the "|" if you'd like to assign multiple groups.
- Added !Bangs for Group. (!RainmeterShowMeterGroup, !RainmeterHideMeterGroup, !RainmeterToggleMeterGroup, !RainmeterEnableMeasureGroup, !RainmeterDisableMeasureGroup, !RainmeterToggleMeasureGroup)
Usage:
!RainmeterShowMeterGroup [group] (Config)
!RainmeterHideMeterGroup [group] (Config)
!RainmeterToggleMeterGroup [group] (Config)
!RainmeterEnableMeasureGroup [group] (Config)
!RainmeterDisableMeasureGroup [group] (Config)
!RainmeterToggleMeasureGroup [group] (Config)
- Modified logging feature. Added new "Logging" menu to the context menu.
- Added the manifest to Rainmeter.exe to apply visual style to button etc.
2) Change to version checking:
* CheckVersion= setting depreciated. Removed from "About" dialog and automatically ignored and removed from Rainmeter.ini at Rainmeter start.
* New DisableVersionCheck= (1/0) setting added, which now changes the default from "don't check version" to "do check version" unless this is set to "1"
Changes to multiple files to change version number
Changes by JamesAC / spx to improve management of Windows Mssages, mostly to support working with the DexPot folks
Addition of the Win7AudioPlugin plugin by reiswaffle. This includes plugin code and changes to the Rainmeter.sln project file.
- Fixed a problem that StyleTemplate affects to Meters which have no relation.
- Added a workaround to avoid the "IniFileMapping" function when reading skins.
- Some small code cosmetics.
- 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.
For instance:
[MeasureCPU]
Measure=CPU
[MeasureCPU1]
Measure=CPU
Processor=1
[MeasureCPU2]
Measure=CPU
Processor=2
MeasureCPU returns the average of the CPU usage across all core/processors. This is same as Processor=0.
MeasureCPU1/2 returns the CPU usage of each core/processor.
-----
- Fixed the problem that the correct value is not returned if the Interface=0 in NetIn/NetOut/NetTotal measure. The cause of this problem is because the value of all filter devices is summed in Vista or newer.
-----
- Added the option (Debug) for debug logging. This must be put under [Rainmeter]-section in Rainmeter.ini.
This option specifies whether extra debugging log from Rainmeter.dll is output to Rainmeter.log.
[Rainmeter]
Debug=1
Default is 0.
-----
- Application: Fixed a wrong return value type from MainWndProc.
This change brings the order of monitors close to the order of "Display Properties" due to using EnumDisplayDevices and EnumDisplaySettings instead of EnumDisplayMonitors. (If EnumDisplayDevices failed, EnumDisplayMonitors is used as before.)
-----
* Added the "Display Monitor" submenu in [Skins Menu]-[Position].
These menus convert the present position to the relative position from the specified monitor.
(But the meter window doesn't move to the specified monitor area immediately. Only converts.)
- "Use default: Primary monitor" removes the @-directive from WindowX/Y.
- @0(@1, @2, ...) adds the specified monitor number to WindowX/Y. @0 means "The Virtual Screen". (http://msdn.microsoft.com/en-us/library/dd145136%28VS.85%29.aspx)
- If "Auto-select based on window position" is checked, the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window. If a monitor is selected directly using "Display Monitor" in the Rainmeter / skin context menu, this menu is unchecked. This setting can be manually made in either the [Rainmeter] (all configs) or individual config sections of Rainmeter.ini.
AutoSelectScreen
If set to 1, the WindowX and WindowY "@n" settings are made automatically based on the position of the meter's window. If a monitor is selected directly using "Display Monitor" in the Rainmeter / skin context menu, this setting is reset to 0.
-----
* Added the variables for multiple display monitors and the virtual screen.
All X/Y positions are represented in the virtual screen coordinates.
The following variables are for the virtual screen.
#VSCREENAREAX# is the X-position of the left-side of the virtual screen.
#VSCREENAREAY# is the Y-position of the top-side of the virtual screen.
#VSCREENAREAWIDTH# is the width of the virtual screen.
#VSCREENAREAHEIGHT# is the height of the virtual screen.
The following variables are for the PRESENT monitor.
Note that these variables automatically change by the WindowX and WindowY "@n" settings. If "@n" is not set, these variables return the value of the primary monitor.
#WORKAREAX# is the X-position of the left-side of the work area.
#WORKAREAY# is the Y-position of the top-side of the work area.
#WORKAREAWIDTH# is the width of the work area.
#WORKAREAHEIGHT# is the height of the work area.
#SCREENAREAX# is the X-position of the left-side of the monitor screen.
#SCREENAREAY# is the Y-position of the top-side of the monitor screen.
#SCREENAREAWIDTH# is the width of the display resolution.
#SCREENAREAHEIGHT# is the height of the display resolution.
The following variables are for the PRIMARY monitor.
#PWORKAREAX# is the X-position of the left-side of the work area.
#PWORKAREAY# is the Y-position of the top-side of the work area.
#PWORKAREAWIDTH# is the width of the work area.
#PWORKAREAHEIGHT# is the height of the work area.
#PSCREENAREAX# is the X-position of the left-side of the monitor screen. (maybe, always 0)
#PSCREENAREAY# is the Y-position of the top-side of the monitor screen. (maybe, always 0)
#PSCREENAREAWIDTH# is the width of the display resolution.
#PSCREENAREAHEIGHT# is the height of the display resolution.
The following variables are for the SPECIFIED monitor. (@n = @1, @2, ...)
#WORKAREAX@n# is the X-position of the left-side of the work area.
#WORKAREAY@n# is the Y-position of the top-side of the work area.
#WORKAREAWIDTH@n# is the width of the work area.
#WORKAREAHEIGHT@n# is the height of the work area.
#SCREENAREAX@n# is the X-position of the left-side of the monitor screen.
#SCREENAREAY@n# is the Y-position of the top-side of the monitor screen.
#SCREENAREAWIDTH@n# is the width of the display resolution.
#SCREENAREAHEIGHT@n# is the height of the display resolution.
-----
* Other related changes:
- Fixed the problem that the primary monitor isn't recognized correctly.
- Fixed the problem that the information of the multiple display monitors is refreshed excessively.
- For DynamicVariables, when display setting or workarea size has been changed, all variables are now updated to apply changed WORKAREA/SCREENAREA variables.
- Fixed the problem that the "On Desktop" window isn't dragged correctly when the top-left corner of the virtual screen has negative coordinates.
- Changed the way to stick the "On Desktop" window. ("SysListView32/FolderView" is used instead of "Progman/Program Manager".)
-----
* Other changes:
- When the meter window is draggable and isn't dragged, LeftMouseUpAction is now executed.
- Added MouseDoubleClickAction (LeftMouseDoubleClickAction, RightMouseDoubleClickAction, MiddleMouseDoubleClickAction). If MouseDoubleClickAction is empty when mouse button is double-clicked, MouseDownAction is executed instead.
- Fixed the problem that the Meter's hit-test code checks outside the area.
- Changed the way to set the #CURRENTCONFIG#. (CMeterWindow::GetSkinName() is now used instead of parsing the path.)