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
FILEVERSION 1,3,0,467
PRODUCTVERSION 1,3,0,467
FILEVERSION 1,3,0,470
PRODUCTVERSION 1,3,0,470
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -45,12 +45,12 @@ BEGIN
BLOCK "040b04b0"
BEGIN
VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter"
VALUE "FileVersion", "1, 3, 0, 467"
VALUE "FileVersion", "1, 3, 0, 470"
VALUE "InternalName", "Rainmeter"
VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy"
VALUE "OriginalFilename", "Rainmeter.exe"
VALUE "ProductName", "Rainmeter"
VALUE "ProductVersion", "1, 3, 0, 467"
VALUE "ProductVersion", "1, 3, 0, 470"
END
END
BLOCK "VarFileInfo"

View File

@ -502,7 +502,6 @@ void CMeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
{
if(!m_ChildWindow)
{
HWND parent = GetAncestor(m_Window, GA_PARENT);
HWND winPos = HWND_NOTOPMOST;
m_WindowZPosition = zPos;
@ -1453,6 +1452,8 @@ void CMeterWindow::ReadConfig()
m_AlphaValue = 255;
m_FadeDuration = 250;
std::wstring group = L"";
CConfigParser parser;
parser.Initialize(iniFile.c_str(), m_Rainmeter);
@ -1532,6 +1533,9 @@ void CMeterWindow::ReadConfig()
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
section = m_SkinName.c_str();
}

View File

@ -27,6 +27,7 @@
#include <list>
#include <vector>
#include "ConfigParser.h"
#include "Group.h"
#include "Export.h"
#define BEGIN_MESSAGEPROC switch(uMsg) {
@ -92,15 +93,10 @@ enum BANGCOMMAND
BANG_TOGGLEMETER,
BANG_SHOWMETER,
BANG_HIDEMETER,
BANG_MOVEMETER,
BANG_TOGGLEMEASURE,
BANG_ENABLEMEASURE,
BANG_DISABLEMEASURE,
BANG_TOGGLEMETERGROUP,
BANG_SHOWMETERGROUP,
BANG_HIDEMETERGROUP,
BANG_TOGGLEMEASUREGROUP,
BANG_ENABLEMEASUREGROUP,
BANG_DISABLEMEASUREGROUP,
BANG_SHOW,
BANG_HIDE,
BANG_TOGGLE,
@ -110,9 +106,16 @@ enum BANGCOMMAND
BANG_MOVE,
BANG_ZPOS,
BANG_SETTRANSPARENCY,
BANG_TOGGLEMETERGROUP,
BANG_SHOWMETERGROUP,
BANG_HIDEMETERGROUP,
BANG_TOGGLEMEASUREGROUP,
BANG_ENABLEMEASUREGROUP,
BANG_DISABLEMEASUREGROUP,
BANG_LSHOOK,
BANG_ABOUT,
BANG_MOVEMETER,
BANG_PLUGIN,
BANG_SETVARIABLE
};
@ -121,7 +124,7 @@ class CRainmeter;
class CMeasure;
class CMeter;
class CMeterWindow
class CMeterWindow : public CGroup
{
public:
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
};
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 RainmeterRefreshApp(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 RainmeterHide(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 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 RainmeterAbout(HWND, const char* arg);
void RainmeterSkinMenu(HWND, const char* arg);
void RainmeterTrayMenu(HWND, const char* arg);
void RainmeterResetStats(HWND, const char* arg);
void RainmeterMoveMeter(HWND, const char* arg);
void RainmeterPluginBang(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);
@ -93,13 +119,6 @@ public:
int active;
};
struct CONFIGORDER
{
std::wstring config;
int id;
int active;
};
struct CONFIGMENU
{
std::wstring name;
@ -121,9 +140,9 @@ public:
CMeterWindow* GetMeterWindow(const std::wstring& config);
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; };
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; };
void ActivateConfig(int configIndex, int iniIndex);
@ -198,7 +217,7 @@ private:
void ScanForConfigs(std::wstring& path);
void ScanForThemes(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);
bool SetActiveConfig(std::wstring& skinName, std::wstring& skinIni);
void UpdateDesktopWorkArea(bool reset);
@ -218,7 +237,7 @@ private:
std::vector<CONFIG> m_ConfigStrings; // All configs found in the given folder
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::vector<std::wstring> m_Themes;
@ -240,7 +259,8 @@ private:
BOOL m_DisableVersionCheck;
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::vector<RECT> m_OldDesktopWorkAreas;

View File

@ -134,10 +134,23 @@ void CSystem::Finalize()
KillTimer(c_Window, TIMER_NETSTATS);
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_Window) DestroyWindow(c_Window);
if (c_HelperWindow)
{
DestroyWindow(c_HelperWindow);
c_HelperWindow = NULL;
}
if (c_Window)
{
DestroyWindow(c_Window);
c_Window = NULL;
}
}
/* MyInfoEnumProc
@ -522,7 +535,7 @@ void CSystem::UpdateWorkareaInfo()
if (CRainmeter::GetDebug())
{
DebugLog(L"WorkArea @%i : L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)",
DebugLog(L"WorkArea@%i : L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)",
i + 1,
info.rcWork.left, info.rcWork.top, info.rcWork.right, info.rcWork.bottom,
info.rcWork.right - info.rcWork.left, info.rcWork.bottom - info.rcWork.top);

View File

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

View File

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