Commit Graph

256 Commits

Author SHA1 Message Date
spx
8867c94482 Cosmetic changes. 2011-07-07 23:25:45 +00:00
Birunthan Mohanathas
b99b275f44 Script:
- Added support for calling Lua functions with !PluginBang
- Removed old (undocumented) implementation for handling mouse actions
- Lua errors now contain the script file name only (instead of full path)
2011-07-07 16:18:39 +00:00
Birunthan Mohanathas
bd7d787d93 - Renamed !RainmeterBangName to !BangName in log messages
- Removed SkinAuthor method from PluginBridge (not used anywhere, read Author from [Rainmeter] instead)
2011-07-06 20:31:20 +00:00
Birunthan Mohanathas
95fe545cc5 Script:
- Added GetVariable function [usage: GetVariable("VariableName")]
- Removed several unneeded exposed functions
- r853 broke Substitute on the Script measure, fixed
2011-07-06 20:12:05 +00:00
spx
4389edb8c1 Optimized ConfigParser. Reduced processing time on startup and on refreshing. 2011-07-06 09:00:44 +00:00
Birunthan Mohanathas
ef65225dde Made "Rainmeter" optional in a bang. For example, !RainmeterShowMeter and !ShowMeter are now treated equally. 2011-07-03 08:58:53 +00:00
spx
341e9d2bd0 Removed trailing zeros when DynamicVariables=1 even if a value is such as "1.01000".
E.g.
 1.00000 -> 1
 1.01000 -> 1.01
 1.01001 -> 1.01001
2011-07-02 10:16:38 +00:00
spx
b9cdc53430 Added a workaround for the system that the window size is changed incorrectly when the window is dragged over the upper side of the virtual screen. 2011-06-22 06:39:07 +00:00
spx
a2396a7d0f Tweaks. 2011-06-08 23:56:27 +00:00
spx
3a7d937021 - Uptime now shows over 49.7 days correctly in Vista or later.
- Some related tweaks.
2011-06-05 12:32:18 +00:00
spx
0841328ea0 Tweaks. 2011-06-02 01:54:05 +00:00
spx
31e3091e34 Reverted r815 and stopped changing the working directory for the plugins. 2011-05-23 20:21:19 +00:00
spx
3356448dbe Minor optimizations & fixes. 2011-05-22 16:02:43 +00:00
Birunthan Mohanathas
a9c0b76c2c Added Aero blur support. Documentation available at: http://rainmeter.net/RainCMS/?q=Skins_AeroBlur_beta 2011-04-08 18:14:32 +00:00
Birunthan Mohanathas
a92bdd9b18 Cosmetic changes to code. 2011-03-29 19:21:57 +00:00
spx
0e0eb66cff Improved drawing performance. Now uses DIBSection bitmap for UpdateLayeredWindow. 2011-03-23 21:19:55 +00:00
spx
8ddc383ed1 - Added image caching system internally.
It would reduce memory usage in case that you use the same image file repeatedly on some meters. (Eg. Crop a part from same image by using ImageCrop.)
- Fixed an issue that Background image isn't drawn correctly when BackgroundMode=0 and tint option is set.
2011-03-08 19:39:04 +00:00
spx
9f152e0076 Removed unneeded codes, for VC2010. 2011-02-20 23:03:15 +00:00
spx
fe9fd9f476 Code cleanup. 2011-02-15 16:26:54 +00:00
spx
1ba57f2adf Fixed some Lua related issues.
Removed some internal functions from exposed functions for Lua.
Code cleanup and optimizing for VC2010.
2011-02-15 13:22:19 +00:00
spx
1228e243cc Reduced resource usage. 2011-02-07 09:38:27 +00:00
spx
b0af82a25d Cleaned up header dependencies to avoid unnecessary compiling. 2011-02-07 08:02:12 +00:00
spx
1115764ce4 Fixed minor access violation when exiting Rainmeter. 2011-02-05 05:55:01 +00:00
spx
7ea3a762ac - Fixed that r716 (precompiled header) doesn't work on x64.
- Now uses constructor initialization list in each class.
- TintedImage: Code cleanup.
2011-01-29 00:11:01 +00:00
spx
0ad2ef9414 Code cleanup. 2011-01-24 10:15:05 +00:00
spx
84dba0c65a Code cleanup. 2011-01-23 06:16:18 +00:00
spx
235841e01f Added AutoScale=2 and "k" postfix to Meter=STRING.
----
For instance:
A=2800000000, B=0

- AutoScale=0
AutoScale is disabled. Uses Scale value. (Same as before.)
A="2800000000", B="0"

- AutoScale=1
Scales value by 1024. (Same as before.)
A="2.6 G", B="0.0 "

- AutoScale=2
Scales value by 1000.
A="2.8 G", B="0.0 "

- AutoScale=1k
Scales value by 1024, and uses kilo as the lowest unit.
A="2.6 G", B="0.0 k"

- AutoScale=2k
Scales value by 1000, and uses kilo as the lowest unit.
A="2.8 G", B="0.0 k"
----
2011-01-19 15:31:45 +00:00
spx
7ae8f298f8 - Modified font caching. (Fixed an issue that LocalFont file is locked until exiting Rainmeter.)
- Disabled checked iterators in release mode. (_SECURE_SCL=0)
http://msdn.microsoft.com/en-us/library/aa985965.aspx
Note: _SECURE_SCL defaults to 0 in release mode in VC10(=VC2010).
2011-01-17 22:39:40 +00:00
spx
f0e2084c42 - Added skin related variables.
#CURRENTCONFIGX#
#CURRENTCONFIGY#
#CURRENTCONFIGWIDTH#
#CURRENTCONFIGHEIGHT#

- Code cleanup.
2011-01-16 15:51:23 +00:00
spx
9c4f488d90 - Fixed an issue that the hand-cursor flickers frequently during moving the cursor.
- Code cleanup.
2011-01-08 07:28:48 +00:00
spx
89ea706055 Improved the drawing performance by using PixelFormat32bppPARGB instead of PixelFormat32bppARGB. (PARGB is faster than ARGB.) 2011-01-06 01:44:09 +00:00
spx
2fafb5dcdc - Added !RainmeterUpdate/!RainmeterUpdateMeter(Group)/!RainmeterUpdateMeasure(Group).
- Changed Update= and UpdateDivider= behaviors. If you specify < 0 to them, measures/meters are not updated automatically.
2010-12-28 13:31:17 +00:00
spx
2e173b69d7 Code cleanup. 2010-12-25 08:51:44 +00:00
spx
34160d4038 Modified. (Added the workaround for MessageBox loops on MouseOverAction.) 2010-12-24 10:47:31 +00:00
spx
35174f0f4a Reverted r680. 2010-12-24 10:06:25 +00:00
spx
c2b16bd47d Added the workaround for MessageBox loops on MouseOverAction. 2010-12-24 09:57:32 +00:00
spx
9c75cf3423 Code cleanup. 2010-12-21 04:49:01 +00:00
spx
f4bfe8f4fc - Added #CURRENTSECTION# variable.
For instance:
-----
[Variables]
Var=#CURRENTSECTION#

[StyleString]
Text=#CURRENTSECTION#

[MeterString]
Meter=String
MeterStyle=StyleString
Prefix="#CURRENTSECTION# / "
Postfix=" / #Var#"
-----
Displays:
MeterString / MeterString / Variables

- Additional changes for r677.
* Obsoleted DebugLog(). Use LogWithArgs() with LOG_DEBUG instead.
* Added Log().
2010-12-20 08:57:37 +00:00
JamesAC
c50f1c27f2 - Replace DebugLog() with LogWithArgs(int nLevel, const WCHAR* format, ... ), so that variable strings can be logged but the log level can be set to those other than LOG_DEBUG
- 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
2010-12-19 23:06:13 +00:00
spx
d1a7b604df Core dll:
- 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.
2010-12-16 20:35:44 +00:00
spx
3fc3566937 - MeterImage: Added ScaleMargins option.
- MeterWindow: Changed !RainmeterPluginBang to allow specifying only MeasureName. If Arguments is not specified, "" (empty string) is given as args to plugin.
!RainmeterPluginBang "[MeasureName] (Arguments)"
2010-12-13 08:19:45 +00:00
mapeki
c516bf8310 Added Lua Stuff
There are a few changes to the core Rainmeter code.
2010-12-12 17:08:36 +00:00
spx
9c24727749 - Reduced memory usage on BackgroundMode=2.
- Code cleanup.
2010-12-08 09:04:36 +00:00
spx
1d5490aa98 Code cleanup. 2010-12-08 06:10:22 +00:00
spx
bf861acbcc Fixed an issue that skin window isn't redrawn when calling !RainmeterShowMeter/HideMeter bangs. 2010-12-07 06:07:42 +00:00
spx
f0eb6d5da0 - Improved error handling for creating TrayMeasure.
- Code cleanup.
2010-12-06 08:59:55 +00:00
spx
96c81ac516 - Added BackgroundMode=4 for tiling background image.
- 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.
2010-12-04 15:07:28 +00:00
Birunthan Mohanathas
559b5ae05f About dialog now opens with Log selected as default. Changed DisableDrag=1/0 to DisableDragging=1/0. 2010-11-27 10:57:59 +00:00
spx
78cb8b2543 Fixed an issue that AlwaysOnTop=-1/-2 fails on startup. 2010-11-26 16:17:23 +00:00
spx
2186b2eb2a Fixed an issue that ReadConfig() is called unnecessarily when DynamicVariables=1 and UpdateDivider=* are set. 2010-11-25 23:57:10 +00:00
spx
999ab0bd18 Code optimization. 2010-11-25 22:00:34 +00:00
spx
0e1486f0be Code optimization. 2010-11-25 15:34:49 +00:00
spx
d299d89ede Fixed an issue that !RainmeterZPos (1/2) fails in some cases. 2010-11-24 22:30:18 +00:00
spx
8722009407 Small fixes for r623. 2010-11-24 18:08:11 +00:00
Birunthan Mohanathas
b63f92f127 Groups can now be defined under the skins [Rainmeter] section as well (in addition to Rainmeter.ini).
Also fixed small typo in r622.
2010-11-24 16:41:50 +00:00
Birunthan Mohanathas
1f3a04e54e Added DisableDrag=1/0 to lock skins into position.
Added DisableRDP=1/0 to disable redraw during RDP session (thanks to FUR10N for the code).
Minor changes to the installer and Rainstaller.
2010-11-24 15:34:07 +00:00
spx
d302aa675a Code cleanups. 2010-11-22 19:52:10 +00:00
spx
b2967b2814 Small code optimization. 2010-11-16 22:14:00 +00:00
spx
35d0eeea11 Fixed an issue that UpdateDivider is ignored if DynamicVariables=1 is set. 2010-11-13 19:45:50 +00:00
spx
cab258a7e5 Code optimization and removed unused part for reducing core dll size. 2010-11-11 20:24:59 +00:00
spx
dbc021d299 Minor code tweaks & cleanups. 2010-11-05 03:25:21 +00:00
spx
02be3ed29c Additional fix for r581. 2010-11-04 22:34:14 +00:00
spx
bfdc8d2d74 Fixed an issue that skin window doesn't work correctly if DynamicWindowSize=1 is set and window width or height is 0.
http://www.rainmeter.net/forum/viewtopic.php?f=5&t=5895&sid=3a35544c846def97be471944c564e12d
2010-11-04 22:17:08 +00:00
spx
32d81e9343 Fixed an issue that meter window flickers when "Hide on Mouse Over" and "Click Through" are set. 2010-11-04 01:45:58 +00:00
spx
1668de5a3b Code cleanup & cosmetics. 2010-10-31 20:13:32 +00:00
spx
db4fac0877 Code cleanup & cosmetics. 2010-10-19 22:03:32 +00:00
Birunthan Mohanathas
b53f0d9f6b - Moving to NSIS Unicode
- Partial rewrite of Rainstaller
- Fixed a small problem with !RainmeterShowMeter and ToolTipHidden=1.
- ToolTipHidden can now be used under [Rainmeter].
2010-10-12 14:14:32 +00:00
spx
54362780c3 Fixed a issue that MouseOver/LeaveAction loops infinitely.
http://www.rainmeter.net/forum/viewtopic.php?f=14&t=5560
2010-10-02 04:13:50 +00:00
jsmorley
c1fda93526 Change by JamesAC to detect skins with no meters OR measures to reduce issues with people loading Rainlendar skins and such. 2010-09-22 14:04:00 +00:00
spx
15992c2dc3 Cosmetic changes. 2010-09-21 22:47:53 +00:00
Birunthan Mohanathas
e618ad1777 Cosmetic changes here and there. 2010-09-21 11:09:36 +00:00
Birunthan Mohanathas
4ccb0aa40b Changes to some Rainmeter messageboxes to make them more descriptive. Minor changes to Rainstaller as well. 2010-09-21 08:32:41 +00:00
spx
df146e4eb4 Code cleanup & cosmetic. 2010-09-17 08:47:22 +00:00
spx
2cb88b0733 Shrunk some string buffer size. 2010-09-13 20:06:52 +00:00
spx
3da0aa3f4c [Application]
- 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())
2010-09-11 19:39:45 +00:00
jsmorley
eee8d9bb1c Changed ToolTip function to allow using %1, %2 etc. as appropriate for various meter types:
Line, String: %1, %2, %3, ...
Histogram: %1, %2
Others: %1
2010-09-10 17:29:30 +00:00
spx
979117f623 Additional fix for r528. 2010-09-04 08:04:13 +00:00
spx
07d5671707 Fixed an issue that ClickThrough mode is broken since r486.
Fixed an issue that cached window message is incorrect in some cases.
2010-09-03 11:05:28 +00:00
spx
7f2c47a956 - Fixed an issue that audio commands fail in some cases.
Following cases are now available:

ButtonCommand=PLAY #SKINSPATH#Beeper\Sounds\beep.wav
ButtonCommand=PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"
ButtonCommand=!execute [PLAY #SKINSPATH#Beeper\Sounds\beep.wav]
ButtonCommand=!execute [PLAY "#SKINSPATH#Beeper\Sounds\beep.wav"]
2010-09-02 16:03:15 +00:00
spx
c14cd5491b [AboutDialog]
- Fixed the issue that the statistics are updated many times if many active skins are working. "Log" is now updated once every 1 second. Config is now updated once on its Update=.
- Fixed the issue that the statistics show by incorrect order in some conditions.
- Fixed the issue that the entries aren't updated if the skin is activated/deactivated.
2010-08-30 22:51:58 +00:00
spx
bea3b2821a Modified for icons on About dialog box. 2010-08-25 14:36:20 +00:00
spx
dbdebfd1f1 Overhauled Variables part. Fixed the issue that all variables are reset when the screen resolution (or work area) is changed. 2010-08-24 01:07:29 +00:00
jsmorley
10f0640298 Added JamesAC's new bangs to change "settings" in Rainmeter.ini for one / group / all skins at once.
!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.
2010-08-22 12:08:38 +00:00
spx
bf026cc248 some minor tweaks & cleanups 2010-08-17 07:19:48 +00:00
spx
20c3702501 Fixed the compatibility issue for the skins that are using MouseOverAction/MouseLeaveAction in Meters. 2010-08-13 23:20:20 +00:00
spx
2e32b0f5c1 Some minor fixes. 2010-08-06 07:40:43 +00:00
spx
64888434c9 - Added !RainmeterWriteKeyValue. (based on MattKing's code)
!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.
2010-08-03 15:10:42 +00:00
spx
0d26b72bbe Stability improvement for refreshing config. 2010-07-22 02:37:51 +00:00
spx
3f2268b6b2 Minor fix for multiple %APPDATA%. 2010-07-22 01:50:22 +00:00
spx
dc7ccdd7ed Fixed the issue that all grouping functions for Config are broken since r473. 2010-07-21 23:11:12 +00:00
jsmorley
b3507f6f8e Tooltips: Added ToolTipWidth= key | Fix for using [MeasureName] as ToolTipText alone. 2010-07-20 21:20:14 +00:00
jsmorley
ab272307a4 Minor fix by JamesAC to ToolTip routines
Many changes to Help files for 1.3 beta
Minor fix for Installer script
2010-07-17 19:11:05 +00:00
jsmorley
935852426a Added spx's meter/measure/config "Group" functionality.
Minor fix to installer script
2010-07-17 13:02:34 +00:00
jsmorley
ff153f3f86 Adding JamesAC's new ToolTips functionality.
Minor fix to the Rainmeter installer
Minor changes to RainBrowser and RainThemes
2010-07-17 00:06:24 +00:00
spx
f61a35a64d - Added "Group" option to Measure/Meter to operate Measures/Meters in bulk.
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.
2010-07-07 23:46:44 +00:00
spx
f2682eaee0 Changed the behavior of DynamicVariables. The fixed value definition of the following settings is handled as the starting value. If the value definition of these settings contains variables or measures, related !bangs are ignored.
[Measure]
Disabled

[Meter]
Hidden
X
Y

In case of "Hidden":
- Hidden not added or Hidden=0/1 (=fixed value specified) and DynamicVariables=1
The specified value is handled as the starting value. After that the value is not re-read on every update. !RainmeterShowMeter etc. are enabled.

- Hidden=#VAR# or Hidden=[Measure] and DynamicVariables=1
The value is re-read on every update. !RainmeterShowMeter etc. are disabled by re-reading value.
2010-06-01 14:55:52 +00:00
spx
b675265606 Fixed incomplete fix in r420 and r422.
Fixed the issue that the result of some bangs is overwritten with the default value if DynamicVariables=1 is added to Measure/Meter. (Issue 125) Note that this fix is effective only when the setting is not defined in skin configuration file. The result of !RainmeterHideMeter(or Show/Toggle) is overwritten if Hidden=0/1 is added.
Some minor changes.
2010-05-31 21:02:04 +00:00
spx
1393d52f43 Fixed the issue that the default value isn't reflected correctly when refreshing the skin. (Issue 155) 2010-05-30 07:02:46 +00:00
spx
56f1c6a38d Enabled @include to use variables.
Fixed the issue that the window becomes invalid when both window width and height are 0.
2010-05-27 22:03:09 +00:00
jsmorley
ef0a984544 Reversing previous change to "On Desktop" as default for new skins. 2010-05-14 02:49:53 +00:00
jsmorley
70ae84faca Changed the default for "AlwaysOnTop" (ZPos) from "Normal" (0) to "On Desktop" (-2) now that On Desktop is working right with Vista / Win7.
Some minor changes to images for RainBackup and RainThemes. Using new background pattern from poiru.
2010-05-11 17:09:39 +00:00
spx
32db892e2c Fixed a problem that "Random" is case-sensitive in CALC measure.
Fixed a problem that a deletion of the meter window encounters enormous delays when the meter window has enormous Update=.

Some small cosmetics.
2010-04-08 23:16:43 +00:00
spx
54fe29a062 Removed unused codes.
Some small changes on create Measures and Meters.
2010-04-07 19:56:53 +00:00
spx
6551a62fba Fixed a problem that an UNC path isn't recognized as an absolute path. 2010-04-06 17:46:17 +00:00
spx
415c905d0a - Fixed a problem that !RainmeterQuit isn't executed when no meter window is running.
- 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.
2010-04-02 01:35:53 +00:00
spx
a6f2f01036 Some code changes for optimization 2010-03-30 22:37:05 +00:00
spx
b769a7a360 - Modified the way to handle the "On Desktop". This affects all of Windows versions.
- Added "LoadOrder" to handle the skins' loading order.

- Changed the way to update and save the network statistics.
2010-03-29 21:50:05 +00:00
spx
06ec730bfd - Added the workaround to pin the window to desktop in Vista/7 with Aero.
- 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.
2010-03-20 19:40:30 +00:00
jsmorley
3166c5d5f2 MattKings Changes:
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.
2010-03-18 19:48:14 +00:00
spx
be3b4114bb - Added the function that measures the CPU usage for multi core/processors.
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.
2010-02-13 03:07:34 +00:00
spx
6088470157 - CHANGED: ConfigParser now reads value strictly. Note that this change affects the
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.
2010-02-08 14:12:47 +00:00
spx
cc3ad487a7 * Changed the way to get the information of the multiple display monitors.
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.)
2009-12-18 05:58:37 +00:00
spx
794d3c8c77 Fixed the abnormal termination on startup caused by r313. 2009-11-20 10:39:41 +00:00
spx
c5acb8c954 Fixed the problem that the skin window is unable to be located in negative coordinates. 2009-11-12 20:03:17 +00:00
jsmorley
fd9cac7add Change by MattKing to the MouseActionCursor feature. The user can now set MouseActionCursor=0 in the [Rainmeter] section of the skin, and the change of the cursor to the hand when over mouse action meters will be disabled for the entire skin. This can be overridden on a meter-by-meter basis with MouseActionCursor=1.
Added this change to the Meters.htm help file.
2009-10-30 18:15:13 +00:00
Kimmo Pekkola
2c6c43c652 The window deletion is now delayed when !RainmeterDeactivateConfig is used. This fixes the problem: Issue 116: Crash when skin tries to deactivate self by measure action. 2009-10-17 06:43:18 +00:00
Kimmo Pekkola
0b4ba32924 Added cache for the fonts.
Fixed a memory leak in the string meter.
Changed the library project to use precompiled headers.
2009-10-07 16:45:14 +00:00
spx
48fdf42bb2 Reverted the changes from r229 (dragging problem). 2009-09-26 16:29:22 +00:00
spx
f6f293cc57 Minor tweaks of "hand pointer". 2009-09-26 07:16:55 +00:00
jsmorley
5560d6e72a Added MattKing's code to enable the standard "hand pointer" mouse cursor when you hover over a meter with any "MouseAction" on it or a button.
This behavior is ON by default.  If you do not want the cursor change on a meter or button, set MouseActionCursor=0 on the Meter or button.

Example of disabling mouse cursor change:

[Meter]
Meter=Image
W=100
H=100
SolidColor=0,0,0,255
LeftMouseUpAction=!Execute ["http://rainmeter.net"]
MouseActionCursor=0

Note: If you have a button with a meter (either image or text) on TOP of it, you will need to set MouseActionCursor=0 on the image/text meter even if it doesn't have a mouse action, or the button will not change cursors.
2009-09-25 22:20:07 +00:00
spx
4771fafe87 Minor fixes 2009-09-25 12:30:50 +00:00
jsmorley
d493e8d2e9 Fix to Middle Mouse functionality. It was not detecting mouse actions in the [Rainmeter] section, only in [MeterName] 2009-09-23 13:45:39 +00:00
Kimmo Pekkola
71c1d052a7 The relative coordinates got broken by the previous changes. They should be fixed now.
Changed the meter bangs to case insensitive.
2009-09-19 07:15:28 +00:00
Kimmo Pekkola
1de7706678 If native transparency is enabled the windows are not refreshed anymore when settings change but they are just moved to the correct location. 2009-09-18 16:05:10 +00:00
Kimmo Pekkola
e84e7d534d The skin files can read other files with @include statement. 2009-09-18 15:30:51 +00:00
spx
9d96ec61c1 - Fixed: Multibang [] not assumed when [Measure] is replaced in CConfigParser::ReadString().
- 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)
2009-09-12 11:11:40 +00:00
jsmorley
48bee2c6fe 1) Added MattKing's code for supporting the middle mouse button in [Rainmeter] and [MeasureName].
MiddleMouseUpAction | MiddleMouseDownAction

2) Updated the manual entries for the middle mouse functionality

3) Added  spx268's code to fix a problem with BUTTON and dynamic variables addressed in:

http://code.google.com/p/rainmeter/issues/detail?id=108
2009-09-07 16:37:58 +00:00
Kimmo Pekkola
8eccc8ddec Got rid of the "Not a meter or measure" error.
The handling of the MeterStyle is now done in the CConfigParser.
2009-09-04 17:40:02 +00:00
Kimmo Pekkola
4274397806 The m_FontCollection wasn't initialized so it could cause a crash on exit.
Some code cleanup.
2009-09-04 17:18:15 +00:00
Kimmo Pekkola
4bf4e51126 Reverted the changes from r209. 2009-09-04 16:37:51 +00:00
jsmorley
8239919333 Added MeterStyle functionality:
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.
2009-09-04 14:48:28 +00:00
jsmorley
dc365cfb6e Reconciled all changes by Rainy and the branch with MattKing's LocalFont function. The trunk now contains all current code changes.
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
2009-09-03 00:33:46 +00:00
Kimmo Pekkola
9b949a12e0 Fixed: Rainmeter drops commands in !Execute series that are too long. (http://code.google.com/p/rainmeter/issues/detail?id=103) 2009-09-02 18:05:07 +00:00
Kimmo Pekkola
c6fdbf7b60 Dynamic variables can be used to change the font in the string Meter.cpp.
Removed the error message if the meter's dimensions are 0.
2009-08-27 17:05:10 +00:00
Kimmo Pekkola
ffdec7be65 Some of the plugins don't work with the dynamic variables so the feature is now disabled for them. 2009-08-26 19:29:49 +00:00
Kimmo Pekkola
9246161739 Skin information and instructions can be added to [Metadata] section. 2009-08-26 17:48:12 +00:00
Kimmo Pekkola
dc3c767efa It's now possible to use the measures as if they were variables (use [MeasureName] instead #VariableName#). Set DynamicVariables=1 for all meters and measures which refer to other measures.
New bang !RainmeterSetVariable can be used to change the value of a variable (DynamicVariables must be 1 in places where the variable is used).
2009-08-26 17:37:15 +00:00
Kimmo Pekkola
7b22d717a3 The windows stay visible with Aero Peek on Windows 7. 2009-08-23 12:09:17 +00:00
Kimmo Pekkola
40f11d3934 !RainmeterRefresh and !RainmeterQuit are now handled only during the event loop since they can crash the application if executed during Update(). 2009-08-19 17:57:09 +00:00
Kimmo Pekkola
e73d35e220 New !bang: !RainmeterQuit 2009-08-04 09:48:03 +00:00
Kimmo Pekkola
848cd361e3 Removed unnecessary UAC prompt when editing skins in My Documents. 2009-08-04 09:35:56 +00:00
Kimmo Pekkola
7fbb09d4ca Updated the version number for the upcoming release candidate. 2009-08-02 11:32:12 +00:00
Kimmo Pekkola
7440667743 New build-in variables: #WORKAREAWIDTH#, #WORKAREAHEIGHT#, #SCREENAREAWIDTH#, #SCREENAREAHEIGHT#
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.
2009-07-30 15:19:47 +00:00
Kimmo Pekkola
978988d41b The DefWindowProc is not called anymore on WM_SETTINGCHANGE since it can cause crashes. 2009-07-28 09:16:07 +00:00
Kimmo Pekkola
1dbfc85b01 The stats are now written once per minute to the settings file. 2009-07-27 12:30:28 +00:00
Kimmo Pekkola
dd9ab1dc04 Added support for transformation matrix in meters. 2009-07-27 11:48:57 +00:00
Kimmo Pekkola
bded6e6fc7 New build in variables: #PROGRAMPATH#, #SETTINGSPATH#, #SKINSPATH#, #PLUGINSPATH#, #ADDONSPATH# and #CURRENTPATH# (this is the path where the ini file that is currently read is located).
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.
2009-07-26 21:08:46 +00:00
Kimmo Pekkola
a7c6c939ac Skins are now read from the My Documents by default.
Added the revision number to the about dialog (use UpdateRevision.py to update it).
Added a check to the startup which verifies that the rainmeter.ini is writable.
The skin folder can be opened from the context menu.
2009-07-24 07:56:37 +00:00
Kimmo Pekkola
e2448f42b1 Added 64-bit compilation configuration.
The bitmap meter supports transition frames now.
Few Vista/Win7 fixes (the rainmeter.ini is now in %APPDATA%).
2009-07-21 12:26:50 +00:00
Brian Todoroff
62c9249076 -Fixed bug reported in Issue 29 '"Y as a percentage" in menu operation is not reflected in a Rainmeter.ini'. Copy and paste error was linking both X and Y menus to X as a percentage. 2009-04-06 05:50:37 +00:00