Added spx's meter/measure/config "Group" functionality.

Minor fix to installer script
This commit is contained in:
jsmorley 2010-07-17 13:02:34 +00:00
parent c287df17cc
commit 935852426a
8 changed files with 854 additions and 239 deletions

View File

@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,3,0,467 FILEVERSION 1,3,0,470
PRODUCTVERSION 1,3,0,467 PRODUCTVERSION 1,3,0,470
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -45,12 +45,12 @@ BEGIN
BLOCK "040b04b0" BLOCK "040b04b0"
BEGIN BEGIN
VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter" VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter"
VALUE "FileVersion", "1, 3, 0, 467" VALUE "FileVersion", "1, 3, 0, 470"
VALUE "InternalName", "Rainmeter" VALUE "InternalName", "Rainmeter"
VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy" VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy"
VALUE "OriginalFilename", "Rainmeter.exe" VALUE "OriginalFilename", "Rainmeter.exe"
VALUE "ProductName", "Rainmeter" VALUE "ProductName", "Rainmeter"
VALUE "ProductVersion", "1, 3, 0, 467" VALUE "ProductVersion", "1, 3, 0, 470"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -502,7 +502,6 @@ void CMeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
{ {
if(!m_ChildWindow) if(!m_ChildWindow)
{ {
HWND parent = GetAncestor(m_Window, GA_PARENT);
HWND winPos = HWND_NOTOPMOST; HWND winPos = HWND_NOTOPMOST;
m_WindowZPosition = zPos; m_WindowZPosition = zPos;
@ -1453,6 +1452,8 @@ void CMeterWindow::ReadConfig()
m_AlphaValue = 255; m_AlphaValue = 255;
m_FadeDuration = 250; m_FadeDuration = 250;
std::wstring group = L"";
CConfigParser parser; CConfigParser parser;
parser.Initialize(iniFile.c_str(), m_Rainmeter); parser.Initialize(iniFile.c_str(), m_Rainmeter);
@ -1532,6 +1533,9 @@ void CMeterWindow::ReadConfig()
m_FadeDuration = parser.ReadInt(section, L"FadeDuration", m_FadeDuration); m_FadeDuration = parser.ReadInt(section, L"FadeDuration", m_FadeDuration);
group = parser.ReadString(section, L"Group", group.c_str());
InitializeGroup(group);
// On the second loop override settings from the skin's section // On the second loop override settings from the skin's section
section = m_SkinName.c_str(); section = m_SkinName.c_str();
} }

View File

@ -27,6 +27,7 @@
#include <list> #include <list>
#include <vector> #include <vector>
#include "ConfigParser.h" #include "ConfigParser.h"
#include "Group.h"
#include "Export.h" #include "Export.h"
#define BEGIN_MESSAGEPROC switch(uMsg) { #define BEGIN_MESSAGEPROC switch(uMsg) {
@ -92,15 +93,10 @@ enum BANGCOMMAND
BANG_TOGGLEMETER, BANG_TOGGLEMETER,
BANG_SHOWMETER, BANG_SHOWMETER,
BANG_HIDEMETER, BANG_HIDEMETER,
BANG_MOVEMETER,
BANG_TOGGLEMEASURE, BANG_TOGGLEMEASURE,
BANG_ENABLEMEASURE, BANG_ENABLEMEASURE,
BANG_DISABLEMEASURE, BANG_DISABLEMEASURE,
BANG_TOGGLEMETERGROUP,
BANG_SHOWMETERGROUP,
BANG_HIDEMETERGROUP,
BANG_TOGGLEMEASUREGROUP,
BANG_ENABLEMEASUREGROUP,
BANG_DISABLEMEASUREGROUP,
BANG_SHOW, BANG_SHOW,
BANG_HIDE, BANG_HIDE,
BANG_TOGGLE, BANG_TOGGLE,
@ -110,9 +106,16 @@ enum BANGCOMMAND
BANG_MOVE, BANG_MOVE,
BANG_ZPOS, BANG_ZPOS,
BANG_SETTRANSPARENCY, BANG_SETTRANSPARENCY,
BANG_TOGGLEMETERGROUP,
BANG_SHOWMETERGROUP,
BANG_HIDEMETERGROUP,
BANG_TOGGLEMEASUREGROUP,
BANG_ENABLEMEASUREGROUP,
BANG_DISABLEMEASUREGROUP,
BANG_LSHOOK, BANG_LSHOOK,
BANG_ABOUT, BANG_ABOUT,
BANG_MOVEMETER,
BANG_PLUGIN, BANG_PLUGIN,
BANG_SETVARIABLE BANG_SETVARIABLE
}; };
@ -121,7 +124,7 @@ class CRainmeter;
class CMeasure; class CMeasure;
class CMeter; class CMeter;
class CMeterWindow class CMeterWindow : public CGroup
{ {
public: public:
CMeterWindow(std::wstring& path, std::wstring& config, std::wstring& iniFile); CMeterWindow(std::wstring& path, std::wstring& config, std::wstring& iniFile);

File diff suppressed because it is too large Load Diff

View File

@ -48,30 +48,56 @@ enum PLATFORM
PLATFORM_XP PLATFORM_XP
}; };
void RainmeterActivateConfig(HWND, const char* arg);
void RainmeterDeactivateConfig(HWND, const char* arg);
void RainmeterToggleConfig(HWND, const char* arg);
void RainmeterRefresh(HWND, const char* arg); void RainmeterRefresh(HWND, const char* arg);
void RainmeterRefreshApp(HWND, const char* arg); void RainmeterRefreshApp(HWND, const char* arg);
void RainmeterRedraw(HWND, const char* arg); void RainmeterRedraw(HWND, const char* arg);
void RainmeterToggleMeasure(HWND, const char* arg);
void RainmeterEnableMeasure(HWND, const char* arg);
void RainmeterDisableMeasure(HWND, const char* arg);
void RainmeterToggleMeter(HWND, const char* arg);
void RainmeterShowMeter(HWND, const char* arg);
void RainmeterHideMeter(HWND, const char* arg);
void RainmeterShow(HWND, const char* arg); void RainmeterShow(HWND, const char* arg);
void RainmeterHide(HWND, const char* arg); void RainmeterHide(HWND, const char* arg);
void RainmeterToggle(HWND, const char* arg); void RainmeterToggle(HWND, const char* arg);
void RainmeterShowFade(HWND, const char* arg);
void RainmeterHideFade(HWND, const char* arg);
void RainmeterToggleFade(HWND, const char* arg);
void RainmeterShowMeter(HWND, const char* arg);
void RainmeterHideMeter(HWND, const char* arg);
void RainmeterToggleMeter(HWND, const char* arg);
void RainmeterMoveMeter(HWND, const char* arg);
void RainmeterEnableMeasure(HWND, const char* arg);
void RainmeterDisableMeasure(HWND, const char* arg);
void RainmeterToggleMeasure(HWND, const char* arg);
void RainmeterActivateConfig(HWND, const char* arg);
void RainmeterDeactivateConfig(HWND, const char* arg);
void RainmeterToggleConfig(HWND, const char* arg);
void RainmeterMove(HWND, const char* arg); void RainmeterMove(HWND, const char* arg);
void RainmeterZPos(HWND, const char* arg); void RainmeterZPos(HWND, const char* arg);
void RainmeterSetTransparency(HWND, const char* arg);
void RainmeterSetVariable(HWND, const char* arg);
void RainmeterRefreshGroup(HWND, const char* arg);
void RainmeterRedrawGroup(HWND, const char* arg);
void RainmeterShowGroup(HWND, const char* arg);
void RainmeterHideGroup(HWND, const char* arg);
void RainmeterToggleGroup(HWND, const char* arg);
void RainmeterShowFadeGroup(HWND, const char* arg);
void RainmeterHideFadeGroup(HWND, const char* arg);
void RainmeterToggleFadeGroup(HWND, const char* arg);
void RainmeterShowMeterGroup(HWND, const char* arg);
void RainmeterHideMeterGroup(HWND, const char* arg);
void RainmeterToggleMeterGroup(HWND, const char* arg);
void RainmeterEnableMeasureGroup(HWND, const char* arg);
void RainmeterDisableMeasureGroup(HWND, const char* arg);
void RainmeterToggleMeasureGroup(HWND, const char* arg);
void RainmeterDeactivateConfigGroup(HWND, const char* arg);
void RainmeterZPosGroup(HWND, const char* arg);
void RainmeterSetTransparencyGroup(HWND, const char* arg);
void RainmeterSetVariableGroup(HWND, const char* arg);
void RainmeterLsHook(HWND, const char* arg); void RainmeterLsHook(HWND, const char* arg);
void RainmeterAbout(HWND, const char* arg); void RainmeterAbout(HWND, const char* arg);
void RainmeterSkinMenu(HWND, const char* arg);
void RainmeterTrayMenu(HWND, const char* arg);
void RainmeterResetStats(HWND, const char* arg); void RainmeterResetStats(HWND, const char* arg);
void RainmeterMoveMeter(HWND, const char* arg);
void RainmeterPluginBang(HWND, const char* arg); void RainmeterPluginBang(HWND, const char* arg);
void RainmeterQuit(HWND, const char* arg); void RainmeterQuit(HWND, const char* arg);
void RainmeterSetVariable(HWND, const char* arg);
void BangWithArgs(BANGCOMMAND bang, const WCHAR* arg, size_t numOfArgs); void BangWithArgs(BANGCOMMAND bang, const WCHAR* arg, size_t numOfArgs);
@ -93,13 +119,6 @@ public:
int active; int active;
}; };
struct CONFIGORDER
{
std::wstring config;
int id;
int active;
};
struct CONFIGMENU struct CONFIGMENU
{ {
std::wstring name; std::wstring name;
@ -121,9 +140,9 @@ public:
CMeterWindow* GetMeterWindow(const std::wstring& config); CMeterWindow* GetMeterWindow(const std::wstring& config);
CMeterWindow* GetMeterWindow(HWND hwnd); CMeterWindow* GetMeterWindow(HWND hwnd);
void GetMeterWindowsByLoadOrder(std::multimap<int, CMeterWindow*>& windows, const std::wstring& group = L"");
std::map<std::wstring, CMeterWindow*>& GetAllMeterWindows() { return m_Meters; }; std::map<std::wstring, CMeterWindow*>& GetAllMeterWindows() { return m_Meters; };
const std::vector<CONFIG>& GetAllConfigs() { return m_ConfigStrings; }; const std::vector<CONFIG>& GetAllConfigs() { return m_ConfigStrings; };
const std::multimap<int, CONFIGORDER>& GetAllConfigOrders() { return m_ConfigOrders; }
const std::vector<std::wstring>& GetAllThemes() { return m_Themes; }; const std::vector<std::wstring>& GetAllThemes() { return m_Themes; };
void ActivateConfig(int configIndex, int iniIndex); void ActivateConfig(int configIndex, int iniIndex);
@ -198,7 +217,7 @@ private:
void ScanForConfigs(std::wstring& path); void ScanForConfigs(std::wstring& path);
void ScanForThemes(std::wstring& path); void ScanForThemes(std::wstring& path);
void ReadGeneralSettings(std::wstring& path); void ReadGeneralSettings(std::wstring& path);
void SetConfigOrder(const std::wstring& config, int index, int active); void SetConfigOrder(int configIndex);
int GetLoadOrder(const std::wstring& config); int GetLoadOrder(const std::wstring& config);
bool SetActiveConfig(std::wstring& skinName, std::wstring& skinIni); bool SetActiveConfig(std::wstring& skinName, std::wstring& skinIni);
void UpdateDesktopWorkArea(bool reset); void UpdateDesktopWorkArea(bool reset);
@ -218,7 +237,7 @@ private:
std::vector<CONFIG> m_ConfigStrings; // All configs found in the given folder std::vector<CONFIG> m_ConfigStrings; // All configs found in the given folder
std::vector<CONFIGMENU> m_ConfigMenu; std::vector<CONFIGMENU> m_ConfigMenu;
std::multimap<int, CONFIGORDER> m_ConfigOrders; std::multimap<int, int> m_ConfigOrders;
std::map<std::wstring, CMeterWindow*> m_Meters; // The meter windows std::map<std::wstring, CMeterWindow*> m_Meters; // The meter windows
std::vector<std::wstring> m_Themes; std::vector<std::wstring> m_Themes;
@ -240,7 +259,8 @@ private:
BOOL m_DisableVersionCheck; BOOL m_DisableVersionCheck;
BOOL m_NewVersion; BOOL m_NewVersion;
BOOL m_DesktopWorkAreaChanged; bool m_DesktopWorkAreaChanged;
bool m_DesktopWorkAreaType; // If true, DesktopWorkArea is treated as "margin"
std::map<UINT, RECT> m_DesktopWorkAreas; std::map<UINT, RECT> m_DesktopWorkAreas;
std::vector<RECT> m_OldDesktopWorkAreas; std::vector<RECT> m_OldDesktopWorkAreas;

View File

@ -134,10 +134,23 @@ void CSystem::Finalize()
KillTimer(c_Window, TIMER_NETSTATS); KillTimer(c_Window, TIMER_NETSTATS);
KillTimer(c_Window, TIMER_DELETELATER); KillTimer(c_Window, TIMER_DELETELATER);
if (c_WinEventHook) UnhookWinEvent(c_WinEventHook); if (c_WinEventHook)
{
UnhookWinEvent(c_WinEventHook);
c_WinEventHook = NULL;
}
if (c_HelperWindow) DestroyWindow(c_HelperWindow); if (c_HelperWindow)
if (c_Window) DestroyWindow(c_Window); {
DestroyWindow(c_HelperWindow);
c_HelperWindow = NULL;
}
if (c_Window)
{
DestroyWindow(c_Window);
c_Window = NULL;
}
} }
/* MyInfoEnumProc /* MyInfoEnumProc

View File

@ -50,6 +50,8 @@ public:
static void Initialize(HINSTANCE instance); static void Initialize(HINSTANCE instance);
static void Finalize(); static void Finalize();
static HWND GetWindow() { return c_Window; }
static const MULTIMONITOR_INFO& GetMultiMonitorInfo() { return c_Monitors; } static const MULTIMONITOR_INFO& GetMultiMonitorInfo() { return c_Monitors; }
static size_t GetMonitorCount(); static size_t GetMonitorCount();

View File

@ -1,2 +1,2 @@
#pragma once #pragma once
const int revision_number = 467; const int revision_number = 470;