mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Make Rainmeter a singleton class
This change is part of making the Libray project more testable. The old g_Rainmeter global pointer has been replaced with a GetRainmeter() function to guarantee that the object exists in some state.
This commit is contained in:
parent
a80c905be9
commit
04090b232a
@ -29,8 +29,6 @@
|
||||
#include "TrayWindow.h"
|
||||
#include "resource.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
namespace {
|
||||
|
||||
typedef void (* BangHandlerFunc)(std::vector<std::wstring>& args, MeterWindow* skin);
|
||||
@ -160,7 +158,7 @@ void DoBang(const BangInfo& bangInfo, std::vector<std::wstring>& args, MeterWind
|
||||
const std::wstring& folderPath = args[bangInfo.argCount];
|
||||
if (!folderPath.empty() && (folderPath.length() != 1 || folderPath[0] != L'*'))
|
||||
{
|
||||
MeterWindow* skin = g_Rainmeter->GetMeterWindow(folderPath);
|
||||
MeterWindow* skin = GetRainmeter().GetMeterWindow(folderPath);
|
||||
if (skin)
|
||||
{
|
||||
skin->DoBang(bangInfo.bang, args);
|
||||
@ -174,7 +172,7 @@ void DoBang(const BangInfo& bangInfo, std::vector<std::wstring>& args, MeterWind
|
||||
}
|
||||
|
||||
// No skin defined -> apply to all.
|
||||
for (const auto& ip : g_Rainmeter->GetAllMeterWindows())
|
||||
for (const auto& ip : GetRainmeter().GetAllMeterWindows())
|
||||
{
|
||||
ip.second->DoBang(bangInfo.bang, args);
|
||||
}
|
||||
@ -208,7 +206,7 @@ void DoGroupBang(const BangInfo& bangInfo, std::vector<std::wstring>& args, Mete
|
||||
if (args.size() > bangInfo.argCount)
|
||||
{
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
g_Rainmeter->GetMeterWindowsByLoadOrder(windows, args[bangInfo.argCount]);
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows, args[bangInfo.argCount]);
|
||||
|
||||
// Remove extra parameters (including group).
|
||||
args.resize(bangInfo.argCount);
|
||||
@ -579,24 +577,24 @@ void CommandHandler::DoActivateSkinBang(std::vector<std::wstring>& args, MeterWi
|
||||
{
|
||||
if (args.size() == 1)
|
||||
{
|
||||
int index = g_Rainmeter->FindSkinFolderIndex(args[0]);
|
||||
int index = GetRainmeter().FindSkinFolderIndex(args[0]);
|
||||
if (index != -1)
|
||||
{
|
||||
const Rainmeter::SkinFolder& skinFolder = g_Rainmeter->m_SkinFolders[index];
|
||||
const Rainmeter::SkinFolder& skinFolder = GetRainmeter().m_SkinFolders[index];
|
||||
if (!(skinFolder.active == 1 && skinFolder.files.size() == 1))
|
||||
{
|
||||
// Activate the next index.
|
||||
g_Rainmeter->ActivateSkin(index, (skinFolder.active < skinFolder.files.size()) ? skinFolder.active : 0);
|
||||
GetRainmeter().ActivateSkin(index, (skinFolder.active < skinFolder.files.size()) ? skinFolder.active : 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (args.size() > 1)
|
||||
{
|
||||
std::pair<int, int> indexes = g_Rainmeter->GetMeterWindowIndex(args[0], args[1]);
|
||||
std::pair<int, int> indexes = GetRainmeter().GetMeterWindowIndex(args[0], args[1]);
|
||||
if (indexes.first != -1 && indexes.second != -1)
|
||||
{
|
||||
g_Rainmeter->ActivateSkin(indexes.first, indexes.second);
|
||||
GetRainmeter().ActivateSkin(indexes.first, indexes.second);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -608,7 +606,7 @@ void CommandHandler::DoDeactivateSkinBang(std::vector<std::wstring>& args, Meter
|
||||
{
|
||||
if (!args.empty())
|
||||
{
|
||||
skin = g_Rainmeter->GetMeterWindow(args[0]);
|
||||
skin = GetRainmeter().GetMeterWindow(args[0]);
|
||||
if (!skin)
|
||||
{
|
||||
LogWarningF(L"!DeactivateConfig: \"%s\" not active", args[0].c_str());
|
||||
@ -618,7 +616,7 @@ void CommandHandler::DoDeactivateSkinBang(std::vector<std::wstring>& args, Meter
|
||||
|
||||
if (skin)
|
||||
{
|
||||
g_Rainmeter->DeactivateSkin(skin, -1);
|
||||
GetRainmeter().DeactivateSkin(skin, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -630,10 +628,10 @@ void CommandHandler::DoToggleSkinBang(std::vector<std::wstring>& args, MeterWind
|
||||
{
|
||||
if (args.size() >= 2)
|
||||
{
|
||||
MeterWindow* skin = g_Rainmeter->GetMeterWindow(args[0]);
|
||||
MeterWindow* skin = GetRainmeter().GetMeterWindow(args[0]);
|
||||
if (skin)
|
||||
{
|
||||
g_Rainmeter->DeactivateSkin(skin, -1);
|
||||
GetRainmeter().DeactivateSkin(skin, -1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -651,10 +649,10 @@ void CommandHandler::DoDeactivateSkinGroupBang(std::vector<std::wstring>& args,
|
||||
if (!args.empty())
|
||||
{
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
g_Rainmeter->GetMeterWindowsByLoadOrder(windows, args[0]);
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows, args[0]);
|
||||
for (const auto& ip : windows)
|
||||
{
|
||||
g_Rainmeter->DeactivateSkin(ip.second, -1);
|
||||
GetRainmeter().DeactivateSkin(ip.second, -1);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -673,12 +671,12 @@ void CommandHandler::DoLoadLayoutBang(std::vector<std::wstring>& args, MeterWind
|
||||
std::wstring command = L"!LoadLayout \"";
|
||||
command += args[0];
|
||||
command += L'"';
|
||||
g_Rainmeter->DelayedExecuteCommand(command.c_str());
|
||||
GetRainmeter().DelayedExecuteCommand(command.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not called from a skin (or called with delay).
|
||||
g_Rainmeter->LoadLayout(args[0]);
|
||||
GetRainmeter().LoadLayout(args[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -730,7 +728,7 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
{
|
||||
if (!args.empty())
|
||||
{
|
||||
skin = g_Rainmeter->GetMeterWindow(args[0]);
|
||||
skin = GetRainmeter().GetMeterWindow(args[0]);
|
||||
if (!skin)
|
||||
{
|
||||
LogWarningF(L"!SkinMenu: \"%s\" not active", args[0].c_str());
|
||||
@ -741,7 +739,7 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
if (skin)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
g_Rainmeter->ShowContextMenu(pos, skin);
|
||||
GetRainmeter().ShowContextMenu(pos, skin);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -752,12 +750,12 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
void CommandHandler::DoTrayMenuBang(std::vector<std::wstring>& args, MeterWindow* skin)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
g_Rainmeter->ShowContextMenu(pos, nullptr);
|
||||
GetRainmeter().ShowContextMenu(pos, nullptr);
|
||||
}
|
||||
|
||||
void CommandHandler::DoResetStatsBang(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
{
|
||||
g_Rainmeter->ResetStats();
|
||||
GetRainmeter().ResetStats();
|
||||
}
|
||||
|
||||
void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterWindow* skin)
|
||||
@ -787,8 +785,8 @@ void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterW
|
||||
return;
|
||||
}
|
||||
|
||||
if (_wcsnicmp(iniFile, g_Rainmeter->m_SkinPath.c_str(), g_Rainmeter->m_SkinPath.size()) != 0 &&
|
||||
_wcsnicmp(iniFile, g_Rainmeter->m_SettingsPath.c_str(), g_Rainmeter->m_SettingsPath.size()) != 0)
|
||||
if (_wcsnicmp(iniFile, GetRainmeter().m_SkinPath.c_str(), GetRainmeter().m_SkinPath.size()) != 0 &&
|
||||
_wcsnicmp(iniFile, GetRainmeter().m_SettingsPath.c_str(), GetRainmeter().m_SettingsPath.size()) != 0)
|
||||
{
|
||||
LogErrorF(L"!WriteKeyValue: Illegal path: %s", iniFile);
|
||||
return;
|
||||
@ -821,14 +819,14 @@ void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterW
|
||||
|
||||
if (temporary)
|
||||
{
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebugF(L"!WriteKeyValue: Writing to: %s (Temp: %s)", iniFile, strIniWrite.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebugF(L"!WriteKeyValue: Writing to: %s", iniFile);
|
||||
}
|
||||
@ -925,13 +923,13 @@ void CommandHandler::DoLogBang(std::vector<std::wstring>& args, MeterWindow* ski
|
||||
void CommandHandler::DoRefreshApp(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
{
|
||||
// Refresh needs to be delayed since it crashes if done during Update().
|
||||
PostMessage(g_Rainmeter->m_Window, WM_RAINMETER_DELAYED_REFRESH_ALL, 0, 0);
|
||||
PostMessage(GetRainmeter().m_Window, WM_RAINMETER_DELAYED_REFRESH_ALL, 0, 0);
|
||||
}
|
||||
|
||||
void CommandHandler::DoQuitBang(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
{
|
||||
// Quit needs to be delayed since it crashes if done during Update().
|
||||
PostMessage(g_Rainmeter->GetTrayWindow()->GetWindow(), WM_COMMAND, MAKEWPARAM(IDM_QUIT, 0), 0);
|
||||
PostMessage(GetRainmeter().GetTrayWindow()->GetWindow(), WM_COMMAND, MAKEWPARAM(IDM_QUIT, 0), 0);
|
||||
}
|
||||
|
||||
void CommandHandler::DoLsBoxHookBang(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
|
@ -27,8 +27,6 @@
|
||||
#include "Meter.h"
|
||||
#include "resource.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
std::unordered_map<std::wstring, std::wstring> ConfigParser::c_MonitorVariables;
|
||||
@ -94,13 +92,13 @@ void ConfigParser::SetBuiltInVariables(const std::wstring& filename, const std::
|
||||
return m_BuiltInVariables.insert(std::make_pair(name, value));
|
||||
};
|
||||
|
||||
insertVariable(L"PROGRAMPATH", g_Rainmeter->GetPath());
|
||||
insertVariable(L"PROGRAMDRIVE", g_Rainmeter->GetDrive());
|
||||
insertVariable(L"SETTINGSPATH", g_Rainmeter->GetSettingsPath());
|
||||
insertVariable(L"SKINSPATH", g_Rainmeter->GetSkinPath());
|
||||
insertVariable(L"PLUGINSPATH", g_Rainmeter->GetPluginPath());
|
||||
insertVariable(L"PROGRAMPATH", GetRainmeter().GetPath());
|
||||
insertVariable(L"PROGRAMDRIVE", GetRainmeter().GetDrive());
|
||||
insertVariable(L"SETTINGSPATH", GetRainmeter().GetSettingsPath());
|
||||
insertVariable(L"SKINSPATH", GetRainmeter().GetSkinPath());
|
||||
insertVariable(L"PLUGINSPATH", GetRainmeter().GetPluginPath());
|
||||
insertVariable(L"CURRENTPATH", PathUtil::GetFolderFromFilePath(filename));
|
||||
insertVariable(L"ADDONSPATH", g_Rainmeter->GetAddonPath());
|
||||
insertVariable(L"ADDONSPATH", GetRainmeter().GetAddonPath());
|
||||
|
||||
if (meterWindow)
|
||||
{
|
||||
@ -1289,7 +1287,7 @@ void ConfigParser::ReadIniFile(const std::wstring& iniFile, LPCTSTR skinSection,
|
||||
{
|
||||
if (depth > 100) // Is 100 enough to assume the include loop never ends?
|
||||
{
|
||||
g_Rainmeter->ShowMessage(nullptr, GetString(ID_STR_INCLUDEINFINITELOOP), MB_OK | MB_ICONERROR);
|
||||
GetRainmeter().ShowMessage(nullptr, GetString(ID_STR_INCLUDEINFINITELOOP), MB_OK | MB_ICONERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1306,11 +1304,11 @@ void ConfigParser::ReadIniFile(const std::wstring& iniFile, LPCTSTR skinSection,
|
||||
|
||||
if (temporary)
|
||||
{
|
||||
if (g_Rainmeter->GetDebug()) LogDebugF(L"Reading file: %s (Temp: %s)", iniFile.c_str(), iniRead.c_str());
|
||||
if (GetRainmeter().GetDebug()) LogDebugF(L"Reading file: %s (Temp: %s)", iniFile.c_str(), iniRead.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_Rainmeter->GetDebug()) LogDebugF(L"Reading file: %s", iniFile.c_str());
|
||||
if (GetRainmeter().GetDebug()) LogDebugF(L"Reading file: %s", iniFile.c_str());
|
||||
iniRead = iniFile;
|
||||
}
|
||||
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include "DialogAbout.h"
|
||||
#include "../Version.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
WINDOWPLACEMENT DialogAbout::c_WindowPlacement = {0};
|
||||
DialogAbout* DialogAbout::c_Dialog = nullptr;
|
||||
|
||||
@ -63,7 +61,7 @@ void DialogAbout::Open(int tab)
|
||||
0, 0, 400, 210,
|
||||
DS_CENTER | WS_POPUP | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME,
|
||||
WS_EX_APPWINDOW | WS_EX_CONTROLPARENT | ((*GetString(ID_STR_ISRTL) == L'1') ? WS_EX_LAYOUTRTL : 0),
|
||||
g_Rainmeter->GetWindow());
|
||||
GetRainmeter().GetWindow());
|
||||
|
||||
// Fake WM_NOTIFY to change tab
|
||||
NMHDR nm;
|
||||
@ -702,7 +700,7 @@ void DialogAbout::TabSkins::UpdateSkinList()
|
||||
|
||||
// Add entries for each skin
|
||||
std::wstring::size_type maxLength = 0;
|
||||
const std::map<std::wstring, MeterWindow*>& windows = g_Rainmeter->GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = GetRainmeter().GetAllMeterWindows();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = windows.begin();
|
||||
bool found = false;
|
||||
for ( ; iter != windows.end(); ++iter)
|
||||
@ -756,7 +754,7 @@ void DialogAbout::TabSkins::UpdateMeasureList(MeterWindow* meterWindow)
|
||||
HWND item = GetControl(Id_SkinsListBox);
|
||||
int selected = (int)SendMessage(item, LB_GETCURSEL, 0, 0);
|
||||
|
||||
const std::map<std::wstring, MeterWindow*>& windows = g_Rainmeter->GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = GetRainmeter().GetAllMeterWindows();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = windows.begin();
|
||||
while (selected && iter != windows.end())
|
||||
{
|
||||
@ -1090,10 +1088,10 @@ void DialogAbout::TabPlugins::Initialize()
|
||||
FindClose(hSearch);
|
||||
};
|
||||
|
||||
findPlugins(g_Rainmeter->GetPluginPath());
|
||||
if (g_Rainmeter->HasUserPluginPath())
|
||||
findPlugins(GetRainmeter().GetPluginPath());
|
||||
if (GetRainmeter().HasUserPluginPath())
|
||||
{
|
||||
findPlugins(g_Rainmeter->GetUserPluginPath());
|
||||
findPlugins(GetRainmeter().GetUserPluginPath());
|
||||
}
|
||||
|
||||
m_Initialized = true;
|
||||
@ -1181,15 +1179,15 @@ void DialogAbout::TabVersion::Initialize()
|
||||
SetWindowText(item, tmpSz);
|
||||
|
||||
item = GetControl(Id_PathLabel);
|
||||
std::wstring text = L"Path: " + g_Rainmeter->GetPath();
|
||||
std::wstring text = L"Path: " + GetRainmeter().GetPath();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
item = GetControl(Id_IniFileLabel);
|
||||
text = L"IniFile: " + g_Rainmeter->GetIniFile();
|
||||
text = L"IniFile: " + GetRainmeter().GetIniFile();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
item = GetControl(Id_SkinPathLabel);
|
||||
text = L"SkinPath: " + g_Rainmeter->GetSkinPath();
|
||||
text = L"SkinPath: " + GetRainmeter().GetSkinPath();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
m_Initialized = true;
|
||||
@ -1228,11 +1226,11 @@ INT_PTR DialogAbout::TabVersion::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
int len = _snwprintf_s(tmpSz, _TRUNCATE, L"%s%s r%i %s (%s)", APPVERSION, revision_beta ? L" beta" : L"", revision_number, APPBITS, APPDATE);
|
||||
std::wstring text(tmpSz, len);
|
||||
text += L"\nPath: ";
|
||||
text += g_Rainmeter->GetPath();
|
||||
text += GetRainmeter().GetPath();
|
||||
text += L"\nIniFile: ";
|
||||
text += g_Rainmeter->GetIniFile();
|
||||
text += GetRainmeter().GetIniFile();
|
||||
text += L"\nSkinPath: ";
|
||||
text += g_Rainmeter->GetSkinPath();
|
||||
text += GetRainmeter().GetSkinPath();
|
||||
System::SetClipboardText(text);
|
||||
}
|
||||
break;
|
||||
|
@ -29,8 +29,6 @@
|
||||
#include "../Version.h"
|
||||
#include <Commdlg.h>
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
WINDOWPLACEMENT DialogManage::c_WindowPlacement = {0};
|
||||
DialogManage* DialogManage::c_Dialog = nullptr;
|
||||
|
||||
@ -90,7 +88,7 @@ void DialogManage::Open(int tab)
|
||||
0, 0, 500, 322,
|
||||
DS_CENTER | WS_POPUP | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME,
|
||||
WS_EX_APPWINDOW | WS_EX_CONTROLPARENT | ((*GetString(ID_STR_ISRTL) == L'1') ? WS_EX_LAYOUTRTL : 0),
|
||||
g_Rainmeter->GetWindow());
|
||||
GetRainmeter().GetWindow());
|
||||
|
||||
// Fake WM_NOTIFY to change tab
|
||||
NMHDR nm;
|
||||
@ -256,11 +254,11 @@ INT_PTR DialogManage::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case Id_RefreshAllButton:
|
||||
g_Rainmeter->RefreshAll();
|
||||
GetRainmeter().RefreshAll();
|
||||
break;
|
||||
|
||||
case Id_EditSettingsButton:
|
||||
g_Rainmeter->EditSettings();
|
||||
GetRainmeter().EditSettings();
|
||||
break;
|
||||
|
||||
case Id_OpenLogButton:
|
||||
@ -572,7 +570,7 @@ void DialogManage::TabSkins::Update(MeterWindow* meterWindow, bool deleted)
|
||||
tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
|
||||
tvi.item.iImage = tvi.item.iSelectedImage = 0;
|
||||
|
||||
if (!g_Rainmeter->m_SkinFolders.empty())
|
||||
if (!GetRainmeter().m_SkinFolders.empty())
|
||||
{
|
||||
PopulateTree(item, tvi);
|
||||
}
|
||||
@ -610,7 +608,7 @@ void DialogManage::TabSkins::SetControls()
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
item = GetControl(Id_DraggableCheckBox);
|
||||
if (g_Rainmeter->GetDisableDragging())
|
||||
if (GetRainmeter().GetDisableDragging())
|
||||
{
|
||||
EnableWindow(item, FALSE);
|
||||
Button_SetCheck(item, BST_UNCHECKED);
|
||||
@ -650,7 +648,7 @@ void DialogManage::TabSkins::SetControls()
|
||||
|
||||
item = GetControl(Id_LoadOrderEdit);
|
||||
EnableWindow(item, TRUE);
|
||||
_itow_s(g_Rainmeter->GetLoadOrder(m_SkinFolderPath), buffer, 10);
|
||||
_itow_s(GetRainmeter().GetLoadOrder(m_SkinFolderPath), buffer, 10);
|
||||
SetWindowText(item, buffer);
|
||||
|
||||
item = GetControl(Id_OnHoverDropDownList);
|
||||
@ -763,10 +761,10 @@ void DialogManage::TabSkins::ReadSkin()
|
||||
item = GetControl(Id_EditButton);
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
std::wstring file = g_Rainmeter->GetSkinPath() + m_SkinFolderPath;
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_SkinFolderPath;
|
||||
file += L'\\';
|
||||
file += m_SkinFileName;
|
||||
m_SkinWindow = g_Rainmeter->GetMeterWindowByINI(file);
|
||||
m_SkinWindow = GetRainmeter().GetMeterWindowByINI(file);
|
||||
if (!m_SkinWindow)
|
||||
{
|
||||
DisableControls();
|
||||
@ -883,12 +881,12 @@ std::wstring DialogManage::TabSkins::GetTreeSelectionPath(HWND tree)
|
||||
*/
|
||||
int DialogManage::TabSkins::PopulateTree(HWND tree, TVINSERTSTRUCT& tvi, int index)
|
||||
{
|
||||
int initialLevel = g_Rainmeter->m_SkinFolders[index].level;
|
||||
int initialLevel = GetRainmeter().m_SkinFolders[index].level;
|
||||
|
||||
const size_t max = g_Rainmeter->m_SkinFolders.size();
|
||||
const size_t max = GetRainmeter().m_SkinFolders.size();
|
||||
while (index < max)
|
||||
{
|
||||
const Rainmeter::SkinFolder& skinFolder = g_Rainmeter->m_SkinFolders[index];
|
||||
const Rainmeter::SkinFolder& skinFolder = GetRainmeter().m_SkinFolders[index];
|
||||
if (skinFolder.level != initialLevel)
|
||||
{
|
||||
return index - 1;
|
||||
@ -903,7 +901,7 @@ int DialogManage::TabSkins::PopulateTree(HWND tree, TVINSERTSTRUCT& tvi, int ind
|
||||
|
||||
// Add subfolders
|
||||
if ((index + 1) < max &&
|
||||
g_Rainmeter->m_SkinFolders[index + 1].level == initialLevel + 1)
|
||||
GetRainmeter().m_SkinFolders[index + 1].level == initialLevel + 1)
|
||||
{
|
||||
index = PopulateTree(tree, tvi, index + 1);
|
||||
}
|
||||
@ -1007,9 +1005,9 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
HMENU menu = CreatePopupMenu();
|
||||
|
||||
// Add active skins to menu
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = g_Rainmeter->GetAllMeterWindows().begin();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
int index = 0;
|
||||
for ( ; iter != g_Rainmeter->GetAllMeterWindows().end(); ++iter)
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
std::wstring name = ((*iter).second)->GetFolderPath() + L'\\';
|
||||
name += ((*iter).second)->GetFileName();
|
||||
@ -1040,7 +1038,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case Id_CreateSkinPackageButton:
|
||||
{
|
||||
std::wstring file = g_Rainmeter->GetPath() + L"SkinInstaller.exe";
|
||||
std::wstring file = GetRainmeter().GetPath() + L"SkinInstaller.exe";
|
||||
CommandHandler::RunFile(file.c_str(), L"/Packager");
|
||||
}
|
||||
break;
|
||||
@ -1050,11 +1048,11 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
if (!m_SkinWindow)
|
||||
{
|
||||
// Skin not active, load
|
||||
std::pair<int, int> indexes = g_Rainmeter->GetMeterWindowIndex(m_SkinFolderPath, m_SkinFileName);
|
||||
std::pair<int, int> indexes = GetRainmeter().GetMeterWindowIndex(m_SkinFolderPath, m_SkinFileName);
|
||||
if (indexes.first != -1 && indexes.second != -1)
|
||||
{
|
||||
m_HandleCommands = false;
|
||||
g_Rainmeter->ActivateSkin(indexes.first, indexes.second);
|
||||
GetRainmeter().ActivateSkin(indexes.first, indexes.second);
|
||||
m_HandleCommands = true;
|
||||
|
||||
// Fake selection change to update controls
|
||||
@ -1068,7 +1066,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
else
|
||||
{
|
||||
m_HandleCommands = false;
|
||||
g_Rainmeter->DeactivateSkin(m_SkinWindow, -1);
|
||||
GetRainmeter().DeactivateSkin(m_SkinWindow, -1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1081,7 +1079,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_EditButton:
|
||||
g_Rainmeter->EditSkinFile(m_SkinFolderPath, m_SkinFileName);
|
||||
GetRainmeter().EditSkinFile(m_SkinFolderPath, m_SkinFileName);
|
||||
break;
|
||||
|
||||
case Id_XPositionEdit:
|
||||
@ -1148,14 +1146,14 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
// Reset selection
|
||||
Edit_SetSel((HWND)lParam, LOWORD(sel), HIWORD(sel));
|
||||
|
||||
WritePrivateProfileString(m_SkinFolderPath.c_str(), L"LoadOrder", buffer, g_Rainmeter->GetIniFile().c_str());
|
||||
std::pair<int, int> indexes = g_Rainmeter->GetMeterWindowIndex(m_SkinWindow);
|
||||
WritePrivateProfileString(m_SkinFolderPath.c_str(), L"LoadOrder", buffer, GetRainmeter().GetIniFile().c_str());
|
||||
std::pair<int, int> indexes = GetRainmeter().GetMeterWindowIndex(m_SkinWindow);
|
||||
if (indexes.first != -1)
|
||||
{
|
||||
g_Rainmeter->SetLoadOrder(indexes.first, value);
|
||||
GetRainmeter().SetLoadOrder(indexes.first, value);
|
||||
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
g_Rainmeter->GetMeterWindowsByLoadOrder(windows);
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows);
|
||||
|
||||
System::PrepareHelperWindow();
|
||||
|
||||
@ -1185,7 +1183,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
HMENU menu = MenuTemplate::CreateMenu(s_Menu, _countof(s_Menu), GetString);
|
||||
if (menu)
|
||||
{
|
||||
g_Rainmeter->CreateMonitorMenu(menu, m_SkinWindow);
|
||||
GetRainmeter().CreateMonitorMenu(menu, m_SkinWindow);
|
||||
|
||||
RECT r;
|
||||
GetWindowRect((HWND)lParam, &r);
|
||||
@ -1269,17 +1267,17 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
case IDM_MANAGESKINSMENU_OPENFOLDER:
|
||||
{
|
||||
HWND tree = GetControl(Id_SkinsTreeView);
|
||||
g_Rainmeter->OpenSkinFolder(GetTreeSelectionPath(tree));
|
||||
GetRainmeter().OpenSkinFolder(GetTreeSelectionPath(tree));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if (wParam >= ID_CONFIG_FIRST && wParam <= ID_CONFIG_LAST)
|
||||
{
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = g_Rainmeter->GetAllMeterWindows().begin();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
int index = (int)wParam - ID_CONFIG_FIRST;
|
||||
int i = 0;
|
||||
for ( ; iter != g_Rainmeter->GetAllMeterWindows().end(); ++iter)
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
if (i == index)
|
||||
{
|
||||
@ -1319,7 +1317,7 @@ INT_PTR DialogManage::TabSkins::OnNotify(WPARAM wParam, LPARAM lParam)
|
||||
case NM_CLICK:
|
||||
if (nm->idFrom == Id_AddMetadataLink)
|
||||
{
|
||||
std::wstring file = g_Rainmeter->GetSkinPath() + m_SkinFolderPath;
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_SkinFolderPath;
|
||||
file += L'\\';
|
||||
file += m_SkinFileName;
|
||||
const WCHAR* str = L"\r\n" // Hack to add below [Rainmeter].
|
||||
@ -1548,7 +1546,7 @@ void DialogManage::TabLayouts::Create(HWND owner)
|
||||
void DialogManage::TabLayouts::Initialize()
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
const std::vector<std::wstring>& layouts = g_Rainmeter->GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
for (int i = 0, isize = layouts.size(); i < isize; ++i)
|
||||
{
|
||||
ListBox_AddString(item, layouts[i].c_str());
|
||||
@ -1611,7 +1609,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_EditButton);
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
const std::vector<std::wstring>& layouts = g_Rainmeter->GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
|
||||
@ -1628,7 +1626,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
Edit_GetText(item, buffer, MAX_PATH);
|
||||
|
||||
std::wstring layout = buffer;
|
||||
std::wstring path = g_Rainmeter->GetLayoutPath();
|
||||
std::wstring path = GetRainmeter().GetLayoutPath();
|
||||
CreateDirectory(path.c_str(), 0);
|
||||
|
||||
path += layout;
|
||||
@ -1636,7 +1634,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
if (alreadyExists)
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMEALREADYEXISTS, layout.c_str());
|
||||
if (g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
if (GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
{
|
||||
// Cancel
|
||||
break;
|
||||
@ -1653,10 +1651,10 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_SaveEmptyThemeCheckBox);
|
||||
if (Button_GetCheck(item) != BST_CHECKED)
|
||||
{
|
||||
if (!System::CopyFiles(g_Rainmeter->GetIniFile(), path))
|
||||
if (!System::CopyFiles(GetRainmeter().GetIniFile(), path))
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMESAVEFAIL, path.c_str());
|
||||
g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1698,7 +1696,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
if (file == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMESAVEFAIL, path.c_str());
|
||||
g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1710,7 +1708,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_List);
|
||||
ListBox_AddString(item, layout.c_str());
|
||||
|
||||
g_Rainmeter->ScanForLayouts();
|
||||
GetRainmeter().ScanForLayouts();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1719,7 +1717,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
g_Rainmeter->LoadLayout(g_Rainmeter->m_Layouts[sel]);
|
||||
GetRainmeter().LoadLayout(GetRainmeter().m_Layouts[sel]);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1727,13 +1725,13 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
const std::vector<std::wstring>& layouts = g_Rainmeter->GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
|
||||
std::wstring args = L"\"" + g_Rainmeter->GetLayoutPath();
|
||||
std::wstring args = L"\"" + GetRainmeter().GetLayoutPath();
|
||||
args += layouts[sel];
|
||||
args += L"\\Rainmeter.ini";
|
||||
args += L'"';
|
||||
CommandHandler::RunFile(g_Rainmeter->GetSkinEditor().c_str(), args.c_str());
|
||||
CommandHandler::RunFile(GetRainmeter().GetSkinEditor().c_str(), args.c_str());
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1741,16 +1739,16 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
std::vector<std::wstring>& layouts = const_cast<std::vector<std::wstring>&>(g_Rainmeter->GetAllLayouts());
|
||||
std::vector<std::wstring>& layouts = const_cast<std::vector<std::wstring>&>(GetRainmeter().GetAllLayouts());
|
||||
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMEDELETE, layouts[sel].c_str());
|
||||
if (g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_ICONQUESTION | MB_YESNO) != IDYES)
|
||||
if (GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_ICONQUESTION | MB_YESNO) != IDYES)
|
||||
{
|
||||
// Cancel
|
||||
break;
|
||||
}
|
||||
|
||||
std::wstring folder = g_Rainmeter->GetLayoutPath();
|
||||
std::wstring folder = GetRainmeter().GetLayoutPath();
|
||||
folder += layouts[sel];
|
||||
|
||||
if (System::RemoveFolder(folder))
|
||||
@ -1861,7 +1859,7 @@ void DialogManage::TabSettings::Initialize()
|
||||
// Scan for languages
|
||||
HWND item = GetControl(Id_LanguageDropDownList);
|
||||
|
||||
std::wstring files = g_Rainmeter->GetPath() + L"Languages\\*.dll";
|
||||
std::wstring files = GetRainmeter().GetPath() + L"Languages\\*.dll";
|
||||
WIN32_FIND_DATA fd;
|
||||
HANDLE hSearch = FindFirstFile(files.c_str(), &fd);
|
||||
if (hSearch != INVALID_HANDLE_VALUE)
|
||||
@ -1886,7 +1884,7 @@ void DialogManage::TabSettings::Initialize()
|
||||
int index = ComboBox_AddString(item, text.c_str());
|
||||
ComboBox_SetItemData(item, index, (LPARAM)lcid);
|
||||
|
||||
if (lcid == g_Rainmeter->GetResourceLCID())
|
||||
if (lcid == GetRainmeter().GetResourceLCID())
|
||||
{
|
||||
ComboBox_SetCurSel(item, index);
|
||||
}
|
||||
@ -1898,18 +1896,18 @@ void DialogManage::TabSettings::Initialize()
|
||||
FindClose(hSearch);
|
||||
}
|
||||
|
||||
Button_SetCheck(GetControl(Id_CheckForUpdatesCheckBox), !g_Rainmeter->GetDisableVersionCheck());
|
||||
Button_SetCheck(GetControl(Id_LockSkinsCheckBox), g_Rainmeter->GetDisableDragging());
|
||||
Button_SetCheck(GetControl(Id_CheckForUpdatesCheckBox), !GetRainmeter().GetDisableVersionCheck());
|
||||
Button_SetCheck(GetControl(Id_LockSkinsCheckBox), GetRainmeter().GetDisableDragging());
|
||||
Button_SetCheck(GetControl(Id_LogToFileCheckBox), Logger::GetInstance().IsLogToFile());
|
||||
Button_SetCheck(GetControl(Id_VerboseLoggingCheckbox), g_Rainmeter->GetDebug());
|
||||
Button_SetCheck(GetControl(Id_VerboseLoggingCheckbox), GetRainmeter().GetDebug());
|
||||
|
||||
BOOL isLogFile = (_waccess(Logger::GetInstance().GetLogFilePath().c_str(), 0) != -1);
|
||||
EnableWindow(GetControl(Id_ShowLogFileButton), isLogFile);
|
||||
EnableWindow(GetControl(Id_DeleteLogFileButton), isLogFile);
|
||||
|
||||
Edit_SetText(GetControl(Id_EditorEdit), g_Rainmeter->GetSkinEditor().c_str());
|
||||
Edit_SetText(GetControl(Id_EditorEdit), GetRainmeter().GetSkinEditor().c_str());
|
||||
|
||||
bool iconEnabled = g_Rainmeter->GetTrayWindow()->IsTrayIconEnabled();
|
||||
bool iconEnabled = GetRainmeter().GetTrayWindow()->IsTrayIconEnabled();
|
||||
Button_SetCheck(GetControl(Id_ShowTrayIconCheckBox), iconEnabled);
|
||||
|
||||
m_Initialized = true;
|
||||
@ -1940,18 +1938,18 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int sel = ComboBox_GetCurSel((HWND)lParam);
|
||||
LCID lcid = (LCID)ComboBox_GetItemData((HWND)lParam, sel);
|
||||
if (lcid != g_Rainmeter->m_ResourceLCID)
|
||||
if (lcid != GetRainmeter().m_ResourceLCID)
|
||||
{
|
||||
WCHAR buffer[16];
|
||||
_ultow(lcid, buffer, 10);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", buffer, g_Rainmeter->GetIniFile().c_str());
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", buffer, GetRainmeter().GetIniFile().c_str());
|
||||
|
||||
std::wstring resource = g_Rainmeter->GetPath() + L"Languages\\";
|
||||
std::wstring resource = GetRainmeter().GetPath() + L"Languages\\";
|
||||
resource += buffer;
|
||||
resource += L".dll";
|
||||
FreeLibrary(g_Rainmeter->m_ResourceInstance);
|
||||
g_Rainmeter->m_ResourceInstance = LoadLibraryEx(resource.c_str(), nullptr, DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
|
||||
g_Rainmeter->m_ResourceLCID = lcid;
|
||||
FreeLibrary(GetRainmeter().m_ResourceInstance);
|
||||
GetRainmeter().m_ResourceInstance = LoadLibraryEx(resource.c_str(), nullptr, DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
|
||||
GetRainmeter().m_ResourceLCID = lcid;
|
||||
|
||||
if (DialogAbout::GetDialog())
|
||||
{
|
||||
@ -1959,42 +1957,42 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(DialogAbout::GetDialog()->GetWindow(), WM_CLOSE, 0, 0);
|
||||
if (sel == 0)
|
||||
{
|
||||
g_Rainmeter->DelayedExecuteCommand(L"!About");
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About");
|
||||
}
|
||||
else if (sel == 1)
|
||||
{
|
||||
g_Rainmeter->DelayedExecuteCommand(L"!About Skins");
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Skins");
|
||||
}
|
||||
else if (sel == 2)
|
||||
{
|
||||
g_Rainmeter->DelayedExecuteCommand(L"!About Plugins");
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Plugins");
|
||||
}
|
||||
else //if (sel == 3)
|
||||
{
|
||||
g_Rainmeter->DelayedExecuteCommand(L"!About Version");
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Version");
|
||||
}
|
||||
}
|
||||
|
||||
SendMessage(c_Dialog->GetWindow(), WM_CLOSE, 0, 0);
|
||||
g_Rainmeter->DelayedExecuteCommand(L"!Manage Settings");
|
||||
GetRainmeter().DelayedExecuteCommand(L"!Manage Settings");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Id_CheckForUpdatesCheckBox:
|
||||
g_Rainmeter->SetDisableVersionCheck(!g_Rainmeter->GetDisableVersionCheck());
|
||||
GetRainmeter().SetDisableVersionCheck(!GetRainmeter().GetDisableVersionCheck());
|
||||
break;
|
||||
|
||||
case Id_LockSkinsCheckBox:
|
||||
g_Rainmeter->SetDisableDragging(!g_Rainmeter->GetDisableDragging());
|
||||
GetRainmeter().SetDisableDragging(!GetRainmeter().GetDisableDragging());
|
||||
break;
|
||||
|
||||
case Id_ResetStatisticsButton:
|
||||
g_Rainmeter->ResetStats();
|
||||
GetRainmeter().ResetStats();
|
||||
break;
|
||||
|
||||
case Id_ShowLogFileButton:
|
||||
g_Rainmeter->ShowLogFile();
|
||||
GetRainmeter().ShowLogFile();
|
||||
break;
|
||||
|
||||
case Id_DeleteLogFileButton:
|
||||
@ -2024,7 +2022,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_VerboseLoggingCheckbox:
|
||||
g_Rainmeter->SetDebug(!g_Rainmeter->GetDebug());
|
||||
GetRainmeter().SetDebug(!GetRainmeter().GetDebug());
|
||||
break;
|
||||
|
||||
case Id_EditorEdit:
|
||||
@ -2033,7 +2031,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
if (GetWindowText((HWND)lParam, buffer, _countof(buffer)) > 0)
|
||||
{
|
||||
g_Rainmeter->SetSkinEditor(buffer);
|
||||
GetRainmeter().SetSkinEditor(buffer);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2043,7 +2041,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
buffer[0] = L'\0';
|
||||
|
||||
std::wstring editor = g_Rainmeter->GetSkinEditor();
|
||||
std::wstring editor = GetRainmeter().GetSkinEditor();
|
||||
editor = editor.substr(0, editor.find_last_of(L"/\\")).c_str();
|
||||
|
||||
OPENFILENAME ofn = { sizeof(OPENFILENAME) };
|
||||
@ -2067,7 +2065,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_ShowTrayIconCheckBox:
|
||||
g_Rainmeter->GetTrayWindow()->SetTrayIcon(!g_Rainmeter->GetTrayWindow()->IsTrayIconEnabled());
|
||||
GetRainmeter().GetTrayWindow()->SetTrayIcon(!GetRainmeter().GetTrayWindow()->IsTrayIconEnabled());
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -25,8 +25,6 @@
|
||||
|
||||
#define NULLCHECK(str) { if ((str) == nullptr) { (str) = L""; } }
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
static std::wstring g_Buffer;
|
||||
|
||||
LPCWSTR __stdcall RmReadString(void* rm, LPCWSTR option, LPCWSTR defValue, BOOL replaceMeasures)
|
||||
@ -76,7 +74,7 @@ void* __stdcall RmGet(void* rm, int type)
|
||||
|
||||
case RMG_SETTINGSFILE:
|
||||
{
|
||||
return (void*)g_Rainmeter->GetDataFile().c_str();
|
||||
return (void*)GetRainmeter().GetDataFile().c_str();
|
||||
}
|
||||
|
||||
case RMG_SKINNAME:
|
||||
@ -103,7 +101,7 @@ void __stdcall RmExecute(void* skin, LPCWSTR command)
|
||||
if (command)
|
||||
{
|
||||
// WM_RAINMETER_EXECUTE used instead of ExecuteCommand for thread-safety
|
||||
SendMessage(g_Rainmeter->GetWindow(), WM_RAINMETER_EXECUTE, (WPARAM)mw, (LPARAM)command);
|
||||
SendMessage(GetRainmeter().GetWindow(), WM_RAINMETER_EXECUTE, (WPARAM)mw, (LPARAM)command);
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +110,7 @@ BOOL LSLog(int nLevel, LPCWSTR unused, LPCWSTR pszMessage)
|
||||
NULLCHECK(pszMessage);
|
||||
|
||||
// Ignore Level::Debug messages from plugins unless in debug mode
|
||||
if (nLevel != (int)Logger::Level::Debug || g_Rainmeter->GetDebug())
|
||||
if (nLevel != (int)Logger::Level::Debug || GetRainmeter().GetDebug())
|
||||
{
|
||||
Logger::GetInstance().Log((Logger::Level)nLevel, pszMessage);
|
||||
}
|
||||
@ -127,7 +125,7 @@ LPCWSTR ReadConfigString(LPCWSTR section, LPCWSTR option, LPCWSTR defValue)
|
||||
NULLCHECK(option);
|
||||
NULLCHECK(defValue);
|
||||
|
||||
ConfigParser* parser = g_Rainmeter->GetCurrentParser();
|
||||
ConfigParser* parser = GetRainmeter().GetCurrentParser();
|
||||
if (parser)
|
||||
{
|
||||
return parser->ReadString(section, option, defValue, false).c_str();
|
||||
@ -148,7 +146,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
|
||||
if (_wcsicmp(command, L"GetConfig") == 0)
|
||||
{
|
||||
MeterWindow* meterWindow = g_Rainmeter->GetMeterWindowByINI(data);
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindowByINI(data);
|
||||
if (meterWindow)
|
||||
{
|
||||
g_Buffer = L"\"";
|
||||
@ -167,7 +165,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
{
|
||||
const std::wstring& config = subStrings[0];
|
||||
|
||||
MeterWindow* meterWindow = g_Rainmeter->GetMeterWindow(config);
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config);
|
||||
if (meterWindow)
|
||||
{
|
||||
WCHAR buf1[64];
|
||||
@ -187,7 +185,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
{
|
||||
const std::wstring& config = subStrings[0];
|
||||
|
||||
MeterWindow* meterWindow = g_Rainmeter->GetMeterWindow(config);
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config);
|
||||
if (meterWindow)
|
||||
{
|
||||
const std::wstring& variable = subStrings[1];
|
||||
@ -208,7 +206,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
|
||||
if (subStrings.size() == 3)
|
||||
{
|
||||
MeterWindow* meterWindow = g_Rainmeter->GetMeterWindow(subStrings[0]);
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(subStrings[0]);
|
||||
if (meterWindow)
|
||||
{
|
||||
meterWindow->SetVariable(subStrings[1], subStrings[2]);
|
||||
|
@ -22,8 +22,6 @@
|
||||
#include "DialogAbout.h"
|
||||
#include "System.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
UINT GetUniqueID()
|
||||
{
|
||||
static UINT id = 0;
|
||||
@ -33,7 +31,7 @@ UINT GetUniqueID()
|
||||
WCHAR* GetString(UINT id)
|
||||
{
|
||||
LPWSTR pData;
|
||||
int len = LoadString(g_Rainmeter->GetResourceInstance(), id, (LPWSTR)&pData, 0);
|
||||
int len = LoadString(GetRainmeter().GetResourceInstance(), id, (LPWSTR)&pData, 0);
|
||||
return len ? pData : L"";
|
||||
}
|
||||
|
||||
|
@ -24,8 +24,6 @@
|
||||
#include "System.h"
|
||||
#include "resource.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
namespace {
|
||||
|
||||
const size_t MAX_LOG_ENTIRES = 20;
|
||||
@ -65,7 +63,7 @@ void Logger::StartLogFile()
|
||||
else
|
||||
{
|
||||
const std::wstring text = GetFormattedString(ID_STR_LOGFILECREATEFAIL, filePath);
|
||||
g_Rainmeter->ShowMessage(nullptr, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
GetRainmeter().ShowMessage(nullptr, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
SetLogToFile(false);
|
||||
return;
|
||||
}
|
||||
@ -85,7 +83,7 @@ void Logger::DeleteLogFile()
|
||||
if (_waccess(filePath, 0) != -1)
|
||||
{
|
||||
const std::wstring text = GetFormattedString(ID_STR_LOGFILEDELETE, filePath);
|
||||
const int res = g_Rainmeter->ShowMessage(nullptr, text.c_str(), MB_YESNO | MB_ICONQUESTION);
|
||||
const int res = GetRainmeter().ShowMessage(nullptr, text.c_str(), MB_YESNO | MB_ICONQUESTION);
|
||||
if (res == IDYES)
|
||||
{
|
||||
SetLogToFile(false);
|
||||
@ -98,7 +96,7 @@ void Logger::SetLogToFile(bool logToFile)
|
||||
{
|
||||
m_LogToFile = logToFile;
|
||||
WritePrivateProfileString(
|
||||
L"Rainmeter", L"Logging", logToFile ? L"1" : L"0", g_Rainmeter->GetIniFile().c_str());
|
||||
L"Rainmeter", L"Logging", logToFile ? L"1" : L"0", GetRainmeter().GetIniFile().c_str());
|
||||
}
|
||||
|
||||
void Logger::LogInternal(Level level, ULONGLONG timestamp, const WCHAR* msg)
|
||||
|
@ -63,8 +63,6 @@ static const double g_TblScale[2][4] = {
|
||||
|
||||
const int MEDIAN_SIZE = 3;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
@ -501,7 +499,7 @@ bool Measure::Update()
|
||||
if (!m_IfEqualCommitted)
|
||||
{
|
||||
m_IfEqualCommitted = true; // To avoid infinite loop from !Update
|
||||
g_Rainmeter->ExecuteCommand(m_IfEqualAction.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_IfEqualAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -517,7 +515,7 @@ bool Measure::Update()
|
||||
if (!m_IfAboveCommitted)
|
||||
{
|
||||
m_IfAboveCommitted = true; // To avoid infinite loop from !Update
|
||||
g_Rainmeter->ExecuteCommand(m_IfAboveAction.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_IfAboveAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -533,7 +531,7 @@ bool Measure::Update()
|
||||
if (!m_IfBelowCommitted)
|
||||
{
|
||||
m_IfBelowCommitted = true; // To avoid infinite loop from !Update
|
||||
g_Rainmeter->ExecuteCommand(m_IfBelowAction.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_IfBelowAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -771,7 +769,7 @@ void Measure::DoChangeAction(bool execute)
|
||||
{
|
||||
if (m_OldValue->IsChanged(newValue, newStringValue))
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnChangeAction.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_OnChangeAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -29,8 +29,6 @@ std::vector<ULONG64> MeasureNet::c_OldStatValues;
|
||||
FPGETIFTABLE2 MeasureNet::c_GetIfTable2 = nullptr;
|
||||
FPFREEMIBTABLE MeasureNet::c_FreeMibTable = nullptr;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor. This is the base class for the net-meters.
|
||||
**
|
||||
@ -78,7 +76,7 @@ void MeasureNet::UpdateIFTable()
|
||||
logging = true;
|
||||
}
|
||||
|
||||
if (g_Rainmeter->GetDebug() && logging)
|
||||
if (GetRainmeter().GetDebug() && logging)
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebugF(L"* NETWORK-INTERFACE: Count=%i", c_NumOfTables);
|
||||
@ -171,7 +169,7 @@ void MeasureNet::UpdateIFTable()
|
||||
logging = true;
|
||||
}
|
||||
|
||||
if (g_Rainmeter->GetDebug() && logging)
|
||||
if (GetRainmeter().GetDebug() && logging)
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebugF(L"* NETWORK-INTERFACE: Count=%i", c_NumOfTables);
|
||||
@ -465,17 +463,17 @@ void MeasureNet::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
if (m_Net == NET_IN)
|
||||
{
|
||||
netName = L"NetInSpeed";
|
||||
value = g_Rainmeter->GetGlobalOptions().netInSpeed;
|
||||
value = GetRainmeter().GetGlobalOptions().netInSpeed;
|
||||
}
|
||||
else if (m_Net == NET_OUT)
|
||||
{
|
||||
netName = L"NetOutSpeed";
|
||||
value = g_Rainmeter->GetGlobalOptions().netOutSpeed;
|
||||
value = GetRainmeter().GetGlobalOptions().netOutSpeed;
|
||||
}
|
||||
else // if (m_Net == NET_TOTAL)
|
||||
{
|
||||
netName = L"NetTotalSpeed";
|
||||
value = g_Rainmeter->GetGlobalOptions().netInSpeed + g_Rainmeter->GetGlobalOptions().netOutSpeed;
|
||||
value = GetRainmeter().GetGlobalOptions().netInSpeed + GetRainmeter().GetGlobalOptions().netOutSpeed;
|
||||
}
|
||||
|
||||
double maxValue = parser.ReadFloat(section, L"MaxValue", -1);
|
||||
@ -493,7 +491,7 @@ void MeasureNet::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
m_Cumulative = 0!=parser.ReadInt(section, L"Cumulative", 0);
|
||||
if (m_Cumulative)
|
||||
{
|
||||
g_Rainmeter->SetNetworkStatisticsTimer();
|
||||
GetRainmeter().SetNetworkStatisticsTimer();
|
||||
}
|
||||
|
||||
if (maxValue == 0.0)
|
||||
@ -707,7 +705,7 @@ void MeasureNet::InitializeStatic()
|
||||
}
|
||||
}
|
||||
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
UpdateIFTable();
|
||||
}
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include "System.h"
|
||||
#include "Error.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
@ -129,15 +127,15 @@ void MeasurePlugin::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
}
|
||||
|
||||
// First try from program path
|
||||
std::wstring pluginFile = g_Rainmeter->GetPluginPath();
|
||||
std::wstring pluginFile = GetRainmeter().GetPluginPath();
|
||||
pluginFile += pluginName;
|
||||
m_Plugin = System::RmLoadLibrary(pluginFile.c_str());
|
||||
if (!m_Plugin)
|
||||
{
|
||||
if (g_Rainmeter->HasUserPluginPath())
|
||||
if (GetRainmeter().HasUserPluginPath())
|
||||
{
|
||||
// Try from settings path
|
||||
pluginFile = g_Rainmeter->GetUserPluginPath();
|
||||
pluginFile = GetRainmeter().GetUserPluginPath();
|
||||
pluginFile += pluginName;
|
||||
m_Plugin = System::RmLoadLibrary(pluginFile.c_str());
|
||||
}
|
||||
|
@ -34,8 +34,6 @@
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
@ -528,7 +526,7 @@ bool Meter::ReplaceMeasures(std::wstring& str, AUTOSCALE autoScale, double scale
|
||||
void Meter::CreateToolTip(MeterWindow* meterWindow)
|
||||
{
|
||||
HWND hMeterWindow = m_MeterWindow->GetWindow();
|
||||
HINSTANCE hInstance = g_Rainmeter->GetInstance();
|
||||
HINSTANCE hInstance = GetRainmeter().GetModuleInstance();
|
||||
DWORD style = WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP;
|
||||
|
||||
if (m_ToolTipType)
|
||||
|
@ -26,8 +26,6 @@
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
|
@ -26,8 +26,6 @@
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include "Error.h"
|
||||
#include "../Common/Gfx/Canvas.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
enum BUTTON_STATE
|
||||
@ -257,7 +255,7 @@ bool MeterButton::MouseUp(POINT pos, bool execute)
|
||||
{
|
||||
if (execute && m_Clicked && m_Focus && HitTest2(pos.x, pos.y, true))
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_Command.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_Command.c_str(), m_MeterWindow);
|
||||
}
|
||||
m_State = BUTTON_STATE_NORMAL;
|
||||
m_Clicked = false;
|
||||
|
@ -25,8 +25,6 @@
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
TintedImageHelper_DefineOptionArray(MeterHistogram::c_PrimaryOptionArray, L"Primary");
|
||||
TintedImageHelper_DefineOptionArray(MeterHistogram::c_SecondaryOptionArray, L"Secondary");
|
||||
TintedImageHelper_DefineOptionArray(MeterHistogram::c_BothOptionArray, L"Both");
|
||||
|
@ -25,8 +25,6 @@
|
||||
#include "../Common/PathUtil.h"
|
||||
#include "../Common/Gfx/Canvas.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
/*
|
||||
|
@ -29,8 +29,6 @@ using namespace Gdiplus;
|
||||
#define PI (3.14159265358979323846)
|
||||
#define CONVERT_TO_DEGREES(X) ((X) * (180.0 / PI))
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
|
@ -28,8 +28,6 @@ using namespace Gdiplus;
|
||||
#define PI (3.14159265f)
|
||||
#define CONVERT_TO_DEGREES(X) ((X) * (180.0f / PI))
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
void StringToUpper(std::wstring& str)
|
||||
{
|
||||
WCHAR* srcAndDest = &str[0];
|
||||
@ -650,7 +648,7 @@ void MeterString::EnumerateInstalledFontFamilies()
|
||||
|
||||
void MeterString::InitializeStatic()
|
||||
{
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebug(L"* Font families:");
|
||||
|
@ -70,8 +70,6 @@ FPDWMGETCOLORIZATIONCOLOR MeterWindow::c_DwmGetColorizationColor = nullptr;
|
||||
FPDWMSETWINDOWATTRIBUTE MeterWindow::c_DwmSetWindowAttribute = nullptr;
|
||||
FPDWMISCOMPOSITIONENABLED MeterWindow::c_DwmIsCompositionEnabled = nullptr;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** Constructor
|
||||
**
|
||||
@ -144,7 +142,7 @@ MeterWindow::MeterWindow(const std::wstring& folderPath, const std::wstring& fil
|
||||
m_FontCollection(),
|
||||
m_ToolTipHidden(false)
|
||||
{
|
||||
m_Canvas = (Platform::IsAtLeastWinVista() && g_Rainmeter->CanUseD2D()) ?
|
||||
m_Canvas = (Platform::IsAtLeastWinVista() && GetRainmeter().CanUseD2D()) ?
|
||||
(Gfx::Canvas*)new Gfx::CanvasD2D() : (Gfx::Canvas*)new Gfx::CanvasGDIP();
|
||||
|
||||
if (!c_DwmInstance && Platform::IsAtLeastWinVista())
|
||||
@ -164,7 +162,7 @@ MeterWindow::MeterWindow(const std::wstring& folderPath, const std::wstring& fil
|
||||
WNDCLASSEX wc = {sizeof(WNDCLASSEX)};
|
||||
wc.style = CS_NOCLOSE | CS_DBLCLKS;
|
||||
wc.lpfnWndProc = InitialWndProc;
|
||||
wc.hInstance = g_Rainmeter->GetInstance();
|
||||
wc.hInstance = GetRainmeter().GetModuleInstance();
|
||||
wc.hCursor = nullptr; // The cursor should be controlled by using SetCursor() when needed.
|
||||
wc.lpszClassName = METERWINDOW_CLASS_NAME;
|
||||
RegisterClassEx(&wc);
|
||||
@ -181,7 +179,7 @@ MeterWindow::~MeterWindow()
|
||||
{
|
||||
if (!m_OnCloseAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnCloseAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnCloseAction.c_str(), this);
|
||||
}
|
||||
|
||||
Dispose(false);
|
||||
@ -190,7 +188,7 @@ MeterWindow::~MeterWindow()
|
||||
|
||||
if (c_InstanceCount == 0)
|
||||
{
|
||||
UnregisterClass(METERWINDOW_CLASS_NAME, g_Rainmeter->GetInstance());
|
||||
UnregisterClass(METERWINDOW_CLASS_NAME, GetRainmeter().GetModuleInstance());
|
||||
|
||||
if (c_DwmInstance)
|
||||
{
|
||||
@ -289,7 +287,7 @@ void MeterWindow::Initialize()
|
||||
CW_USEDEFAULT,
|
||||
nullptr,
|
||||
nullptr,
|
||||
g_Rainmeter->GetInstance(),
|
||||
GetRainmeter().GetModuleInstance(),
|
||||
this);
|
||||
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
@ -387,8 +385,8 @@ void MeterWindow::Deactivate()
|
||||
{
|
||||
m_State = STATE_CLOSING;
|
||||
|
||||
g_Rainmeter->RemoveMeterWindow(this);
|
||||
g_Rainmeter->AddUnmanagedMeterWindow(this);
|
||||
GetRainmeter().RemoveMeterWindow(this);
|
||||
GetRainmeter().AddUnmanagedMeterWindow(this);
|
||||
|
||||
HideFade();
|
||||
SetTimer(m_Window, TIMER_DEACTIVATE, m_FadeDuration + 50, nullptr);
|
||||
@ -403,7 +401,7 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
if (m_State == STATE_CLOSING) return;
|
||||
m_State = STATE_REFRESHING;
|
||||
|
||||
g_Rainmeter->SetCurrentParser(&m_Parser);
|
||||
GetRainmeter().SetCurrentParser(&m_Parser);
|
||||
|
||||
std::wstring notice = L"Refreshing skin \"" + m_FolderPath;
|
||||
notice += L'\\';
|
||||
@ -422,7 +420,7 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
|
||||
if (!ReadSkin())
|
||||
{
|
||||
g_Rainmeter->DeactivateSkin(this, -1);
|
||||
GetRainmeter().DeactivateSkin(this, -1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -470,13 +468,13 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
|
||||
SetTimer(m_Window, TIMER_MOUSE, INTERVAL_MOUSE, nullptr);
|
||||
|
||||
g_Rainmeter->SetCurrentParser(nullptr);
|
||||
GetRainmeter().SetCurrentParser(nullptr);
|
||||
|
||||
m_State = STATE_RUNNING;
|
||||
|
||||
if (!m_OnRefreshAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnRefreshAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnRefreshAction.c_str(), this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -634,7 +632,7 @@ void MeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
|
||||
break;
|
||||
|
||||
case ZPOSITION_NORMAL:
|
||||
if (all || !g_Rainmeter->IsNormalStayDesktop()) break;
|
||||
if (all || !GetRainmeter().IsNormalStayDesktop()) break;
|
||||
case ZPOSITION_ONDESKTOP:
|
||||
if (System::GetShowDesktop())
|
||||
{
|
||||
@ -685,7 +683,7 @@ void MeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
|
||||
*/
|
||||
void MeterWindow::ChangeSingleZPos(ZPOSITION zPos, bool all)
|
||||
{
|
||||
if (zPos == ZPOSITION_NORMAL && g_Rainmeter->IsNormalStayDesktop() && (!all || System::GetShowDesktop()))
|
||||
if (zPos == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop() && (!all || System::GetShowDesktop()))
|
||||
{
|
||||
m_WindowZPosition = zPos;
|
||||
|
||||
@ -1794,7 +1792,7 @@ void MeterWindow::ReadOptions()
|
||||
|
||||
const WCHAR* section = m_FolderPath.c_str();
|
||||
ConfigParser parser;
|
||||
parser.Initialize(g_Rainmeter->GetIniFile(), nullptr, section);
|
||||
parser.Initialize(GetRainmeter().GetIniFile(), nullptr, section);
|
||||
|
||||
INT writeFlags = 0;
|
||||
auto addWriteFlag = [&](INT flag)
|
||||
@ -1878,7 +1876,7 @@ void MeterWindow::ReadOptions()
|
||||
*/
|
||||
void MeterWindow::WriteOptions(INT setting)
|
||||
{
|
||||
const WCHAR* iniFile = g_Rainmeter->GetIniFile().c_str();
|
||||
const WCHAR* iniFile = GetRainmeter().GetIniFile().c_str();
|
||||
|
||||
if (*iniFile)
|
||||
{
|
||||
@ -1974,7 +1972,7 @@ bool MeterWindow::ReadSkin()
|
||||
if (_waccess(iniFile.c_str(), 0) == -1)
|
||||
{
|
||||
std::wstring message = GetFormattedString(ID_STR_UNABLETOREFRESHSKIN, m_FolderPath.c_str(), m_FileName.c_str());
|
||||
g_Rainmeter->ShowMessage(m_Window, message.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
GetRainmeter().ShowMessage(m_Window, message.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2000,7 +1998,7 @@ bool MeterWindow::ReadSkin()
|
||||
}
|
||||
|
||||
std::wstring text = GetFormattedString(ID_STR_NEWVERSIONREQUIRED, m_FolderPath.c_str(), m_FileName.c_str(), buffer);
|
||||
g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2131,7 +2129,7 @@ bool MeterWindow::ReadSkin()
|
||||
do
|
||||
{
|
||||
// Try program folder first
|
||||
std::wstring szFontFile = g_Rainmeter->GetPath() + L"Fonts\\";
|
||||
std::wstring szFontFile = GetRainmeter().GetPath() + L"Fonts\\";
|
||||
szFontFile += localFont;
|
||||
if (!m_FontCollection->AddFile(szFontFile.c_str()))
|
||||
{
|
||||
@ -2209,7 +2207,7 @@ bool MeterWindow::ReadSkin()
|
||||
if (m_Meters.empty())
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_NOMETERSINSKIN, m_FolderPath.c_str(), m_FileName.c_str());
|
||||
g_Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2697,7 +2695,7 @@ void MeterWindow::Update(bool refresh)
|
||||
|
||||
// If our option is to disable when in an RDP session, then check if in an RDP session.
|
||||
// Only redraw if we are not in a remote session
|
||||
if (g_Rainmeter->IsRedrawable())
|
||||
if (GetRainmeter().IsRedrawable())
|
||||
{
|
||||
Redraw();
|
||||
}
|
||||
@ -2708,7 +2706,7 @@ void MeterWindow::Update(bool refresh)
|
||||
|
||||
if (!m_OnUpdateAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnUpdateAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnUpdateAction.c_str(), this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2769,7 +2767,7 @@ LRESULT MeterWindow::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case TIMER_MOUSE:
|
||||
if (!g_Rainmeter->IsMenuActive() && !m_Dragging)
|
||||
if (!GetRainmeter().IsMenuActive() && !m_Dragging)
|
||||
{
|
||||
ShowWindowIfAppropriate();
|
||||
|
||||
@ -2874,7 +2872,7 @@ LRESULT MeterWindow::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
if (m_FadeStartTime == 0)
|
||||
{
|
||||
KillTimer(m_Window, TIMER_DEACTIVATE);
|
||||
g_Rainmeter->RemoveUnmanagedMeterWindow(this);
|
||||
GetRainmeter().RemoveUnmanagedMeterWindow(this);
|
||||
delete this;
|
||||
}
|
||||
break;
|
||||
@ -3287,7 +3285,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
switch (wParam)
|
||||
{
|
||||
case IDM_SKIN_EDITSKIN:
|
||||
g_Rainmeter->EditSkinFile(m_FolderPath, m_FileName);
|
||||
GetRainmeter().EditSkinFile(m_FolderPath, m_FileName);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_REFRESH:
|
||||
@ -3295,7 +3293,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case IDM_SKIN_OPENSKINSFOLDER:
|
||||
g_Rainmeter->OpenSkinFolder(m_FolderPath);
|
||||
GetRainmeter().OpenSkinFolder(m_FolderPath);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_MANAGESKIN:
|
||||
@ -3357,7 +3355,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_CLOSESKIN:
|
||||
if (m_State != STATE_CLOSING)
|
||||
{
|
||||
g_Rainmeter->DeactivateSkin(this, -1);
|
||||
GetRainmeter().DeactivateSkin(this, -1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3447,13 +3445,13 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (!action.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(action.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(action.c_str(), this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Forward to tray window, which handles all the other commands
|
||||
HWND tray = g_Rainmeter->GetTrayWindow()->GetWindow();
|
||||
HWND tray = GetRainmeter().GetTrayWindow()->GetWindow();
|
||||
|
||||
if (wParam == IDM_QUIT)
|
||||
{
|
||||
@ -3660,7 +3658,7 @@ LRESULT MeterWindow::OnExitSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
*/
|
||||
LRESULT MeterWindow::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (m_WindowDraggable && !g_Rainmeter->GetDisableDragging())
|
||||
if (m_WindowDraggable && !GetRainmeter().GetDisableDragging())
|
||||
{
|
||||
POINT pos;
|
||||
pos.x = GET_X_LPARAM(lParam);
|
||||
@ -3700,7 +3698,7 @@ LRESULT MeterWindow::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
|
||||
if (m_State != STATE_REFRESHING)
|
||||
{
|
||||
if (m_WindowZPosition == ZPOSITION_NORMAL && g_Rainmeter->IsNormalStayDesktop() && System::GetShowDesktop())
|
||||
if (m_WindowZPosition == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop() && System::GetShowDesktop())
|
||||
{
|
||||
if (!(wp->flags & (SWP_NOOWNERZORDER | SWP_NOACTIVATE)))
|
||||
{
|
||||
@ -3745,7 +3743,7 @@ LRESULT MeterWindow::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
}
|
||||
|
||||
// Snap to other windows
|
||||
for (auto iter = g_Rainmeter->GetAllMeterWindows().cbegin(); iter != g_Rainmeter->GetAllMeterWindows().cend(); ++iter)
|
||||
for (auto iter = GetRainmeter().GetAllMeterWindows().cbegin(); iter != GetRainmeter().GetAllMeterWindows().cend(); ++iter)
|
||||
{
|
||||
if ((*iter).second != this)
|
||||
{
|
||||
@ -4228,14 +4226,14 @@ LRESULT MeterWindow::OnSetWindowFocus(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
case WM_SETFOCUS:
|
||||
if (!m_OnFocusAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnFocusAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnFocusAction.c_str(), this);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KILLFOCUS:
|
||||
if (!m_OnUnfocusAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnUnfocusAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnUnfocusAction.c_str(), this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -4278,7 +4276,7 @@ LRESULT MeterWindow::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
}
|
||||
|
||||
g_Rainmeter->ShowContextMenu(pos, this);
|
||||
GetRainmeter().ShowContextMenu(pos, this);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -4319,7 +4317,7 @@ bool MeterWindow::DoAction(int x, int y, MOUSEACTION action, bool test)
|
||||
{
|
||||
if (!test)
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(command.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(command.c_str(), this);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -4355,7 +4353,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!m_Mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
g_Rainmeter->ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4392,7 +4390,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
g_Rainmeter->ExecuteCommand(mouse.GetOverAction().c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4418,7 +4416,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
const Mouse& mouse = (*j)->GetMouse();
|
||||
if (!mouse.GetLeaveAction().empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(mouse.GetLeaveAction().c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(mouse.GetLeaveAction().c_str(), this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -4441,7 +4439,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!m_Mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
g_Rainmeter->ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4461,7 +4459,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
|
||||
if (!m_Mouse.GetLeaveAction().empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_Mouse.GetLeaveAction().c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetLeaveAction().c_str(), this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -4536,7 +4534,7 @@ LRESULT MeterWindow::OnWake(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (wParam == PBT_APMRESUMEAUTOMATIC && !m_OnWakeAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnWakeAction.c_str(), this);
|
||||
GetRainmeter().ExecuteCommand(m_OnWakeAction.c_str(), this);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -4661,10 +4659,10 @@ LRESULT MeterWindow::OnCopyData(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (pCopyDataStruct && (pCopyDataStruct->dwData == 1) && (pCopyDataStruct->cbData > 0))
|
||||
{
|
||||
if (g_Rainmeter->HasMeterWindow(this))
|
||||
if (GetRainmeter().HasMeterWindow(this))
|
||||
{
|
||||
const WCHAR* command = (const WCHAR*)pCopyDataStruct->lpData;
|
||||
g_Rainmeter->ExecuteCommand(command, this);
|
||||
GetRainmeter().ExecuteCommand(command, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4719,8 +4717,8 @@ void MeterWindow::MakePathAbsolute(std::wstring& path)
|
||||
else
|
||||
{
|
||||
std::wstring absolute;
|
||||
absolute.reserve(g_Rainmeter->GetSkinPath().size() + m_FolderPath.size() + 1 + path.size());
|
||||
absolute = g_Rainmeter->GetSkinPath();
|
||||
absolute.reserve(GetRainmeter().GetSkinPath().size() + m_FolderPath.size() + 1 + path.size());
|
||||
absolute = GetRainmeter().GetSkinPath();
|
||||
absolute += m_FolderPath;
|
||||
absolute += L'\\';
|
||||
absolute += path;
|
||||
@ -4730,7 +4728,7 @@ void MeterWindow::MakePathAbsolute(std::wstring& path)
|
||||
|
||||
std::wstring MeterWindow::GetFilePath()
|
||||
{
|
||||
std::wstring file = g_Rainmeter->GetSkinPath() + m_FolderPath;
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_FolderPath;
|
||||
file += L'\\';
|
||||
file += m_FileName;
|
||||
return file;
|
||||
@ -4738,7 +4736,7 @@ std::wstring MeterWindow::GetFilePath()
|
||||
|
||||
std::wstring MeterWindow::GetRootPath()
|
||||
{
|
||||
std::wstring path = g_Rainmeter->GetSkinPath();
|
||||
std::wstring path = GetRainmeter().GetSkinPath();
|
||||
|
||||
std::wstring::size_type loc;
|
||||
if ((loc = m_FolderPath.find_first_of(L'\\')) != std::wstring::npos)
|
||||
|
@ -45,8 +45,6 @@ enum INTERVAL
|
||||
INTERVAL_NETSTATS = 120000
|
||||
};
|
||||
|
||||
Rainmeter* g_Rainmeter; // The module
|
||||
|
||||
/*
|
||||
** Initializes Rainmeter.
|
||||
**
|
||||
@ -95,16 +93,13 @@ int RainmeterMain(LPWSTR cmdLine)
|
||||
|
||||
const WCHAR* iniFile = (*cmdLine && !layout) ? cmdLine : nullptr;
|
||||
|
||||
g_Rainmeter = new Rainmeter;
|
||||
int ret = g_Rainmeter->Initialize(iniFile, layout);
|
||||
auto& rainmeter = GetRainmeter();
|
||||
int ret = rainmeter.Initialize(iniFile, layout);
|
||||
if (ret == 0)
|
||||
{
|
||||
ret = g_Rainmeter->MessagePump();
|
||||
ret = rainmeter.MessagePump();
|
||||
}
|
||||
|
||||
delete g_Rainmeter;
|
||||
g_Rainmeter = nullptr;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -179,6 +174,12 @@ Rainmeter::~Rainmeter()
|
||||
GdiplusShutdown(m_GDIplusToken);
|
||||
}
|
||||
|
||||
Rainmeter& Rainmeter::GetInstance()
|
||||
{
|
||||
static Rainmeter s_Rainmeter;
|
||||
return s_Rainmeter;
|
||||
}
|
||||
|
||||
/*
|
||||
** The main initialization function for the module.
|
||||
**
|
||||
@ -538,7 +539,7 @@ LRESULT CALLBACK Rainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA
|
||||
const WCHAR* data = (const WCHAR*)cds->lpData;
|
||||
if (cds->dwData == 1 && (cds->cbData > 0))
|
||||
{
|
||||
g_Rainmeter->DelayedExecuteCommand(data);
|
||||
GetRainmeter().DelayedExecuteCommand(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -549,12 +550,12 @@ LRESULT CALLBACK Rainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA
|
||||
{
|
||||
MeasureNet::UpdateIFTable();
|
||||
MeasureNet::UpdateStats();
|
||||
g_Rainmeter->WriteStats(false);
|
||||
GetRainmeter().WriteStats(false);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_DELAYED_REFRESH_ALL:
|
||||
g_Rainmeter->RefreshAll();
|
||||
GetRainmeter().RefreshAll();
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_DELAYED_EXECUTE:
|
||||
@ -562,15 +563,15 @@ LRESULT CALLBACK Rainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA
|
||||
{
|
||||
// Execute bang
|
||||
WCHAR* bang = (WCHAR*)lParam;
|
||||
g_Rainmeter->ExecuteCommand(bang, nullptr);
|
||||
GetRainmeter().ExecuteCommand(bang, nullptr);
|
||||
free(bang); // _wcsdup()
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_EXECUTE:
|
||||
if (g_Rainmeter->HasMeterWindow((MeterWindow*)wParam))
|
||||
if (GetRainmeter().HasMeterWindow((MeterWindow*)wParam))
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand((const WCHAR*)lParam, (MeterWindow*)wParam);
|
||||
GetRainmeter().ExecuteCommand((const WCHAR*)lParam, (MeterWindow*)wParam);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -883,7 +884,7 @@ void Rainmeter::ToggleSkin(int folderIndex, int fileIndex)
|
||||
{
|
||||
if (m_SkinFolders[folderIndex].active == fileIndex + 1)
|
||||
{
|
||||
MeterWindow* meterWindow = g_Rainmeter->GetMeterWindow(GetFolderPath(folderIndex));
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(GetFolderPath(folderIndex));
|
||||
DeactivateSkin(meterWindow, folderIndex);
|
||||
}
|
||||
else
|
||||
@ -2035,10 +2036,10 @@ int Rainmeter::CreateAllSkinsMenuRecursive(HMENU skinMenu, int index)
|
||||
int initialLevel = m_SkinFolders[index].level;
|
||||
int menuIndex = 0;
|
||||
|
||||
const size_t max = g_Rainmeter->m_SkinFolders.size();
|
||||
const size_t max = GetRainmeter().m_SkinFolders.size();
|
||||
while (index < max)
|
||||
{
|
||||
const SkinFolder& skinFolder = g_Rainmeter->m_SkinFolders[index];
|
||||
const SkinFolder& skinFolder = GetRainmeter().m_SkinFolders[index];
|
||||
if (skinFolder.level != initialLevel)
|
||||
{
|
||||
return index - 1;
|
||||
|
@ -90,8 +90,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
Rainmeter();
|
||||
~Rainmeter();
|
||||
static Rainmeter& GetInstance();
|
||||
|
||||
int Initialize(LPCWSTR iniPath, LPCWSTR layout);
|
||||
bool IsAlreadyRunning();
|
||||
@ -156,7 +155,7 @@ public:
|
||||
|
||||
HWND GetWindow() { return m_Window; }
|
||||
|
||||
HINSTANCE GetInstance() { return m_Instance; }
|
||||
HINSTANCE GetModuleInstance() { return m_Instance; }
|
||||
HINSTANCE GetResourceInstance() { return m_ResourceInstance; }
|
||||
LCID GetResourceLCID() { return m_ResourceLCID; }
|
||||
|
||||
@ -216,6 +215,9 @@ public:
|
||||
friend class DialogManage;
|
||||
|
||||
private:
|
||||
Rainmeter();
|
||||
~Rainmeter();
|
||||
|
||||
static LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
void ActivateActiveSkins();
|
||||
@ -305,6 +307,9 @@ private:
|
||||
GlobalOptions m_GlobalOptions;
|
||||
};
|
||||
|
||||
// Convenience function.
|
||||
inline Rainmeter& GetRainmeter() { return Rainmeter::GetInstance(); }
|
||||
|
||||
#ifdef LIBRARY_EXPORTS
|
||||
#define EXPORT_PLUGIN EXTERN_C
|
||||
#else
|
||||
|
@ -21,8 +21,6 @@
|
||||
#include "ConfigParser.h"
|
||||
#include "Rainmeter.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** The constructor
|
||||
**
|
||||
@ -84,6 +82,6 @@ void Section::DoUpdateAction()
|
||||
{
|
||||
if (!m_OnUpdateAction.empty())
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(m_OnUpdateAction.c_str(), m_MeterWindow);
|
||||
GetRainmeter().ExecuteCommand(m_OnUpdateAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
|
@ -56,8 +56,6 @@ std::wstring System::c_WorkingDirectory;
|
||||
|
||||
std::vector<std::wstring> System::c_IniFileMappings;
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
/*
|
||||
** Creates a helper window to detect changes in the system.
|
||||
**
|
||||
@ -160,7 +158,7 @@ BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonit
|
||||
info.cbSize = sizeof(MONITORINFOEX);
|
||||
GetMonitorInfo(hMonitor, &info);
|
||||
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebug(info.szDevice);
|
||||
LogDebugF(L" Flags : %s(0x%08X)", (info.dwFlags & MONITORINFOF_PRIMARY) ? L"PRIMARY " : L"", info.dwFlags);
|
||||
@ -242,7 +240,7 @@ size_t System::GetMonitorCount()
|
||||
void System::SetMultiMonitorInfo()
|
||||
{
|
||||
std::vector<MonitorInfo>& monitors = c_Monitors.monitors;
|
||||
bool logging = g_Rainmeter->GetDebug();
|
||||
bool logging = GetRainmeter().GetDebug();
|
||||
|
||||
c_Monitors.vsT = GetSystemMetrics(SM_YVIRTUALSCREEN);
|
||||
c_Monitors.vsL = GetSystemMetrics(SM_XVIRTUALSCREEN);
|
||||
@ -530,7 +528,7 @@ void System::UpdateWorkareaInfo()
|
||||
|
||||
(*iter).work = info.rcWork;
|
||||
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebugF(L"WorkArea@%i : L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)",
|
||||
i,
|
||||
@ -635,7 +633,7 @@ HWND System::GetBackmostTopWindow()
|
||||
// Skip all ZPOSITION_ONDESKTOP, ZPOSITION_BOTTOM, and ZPOSITION_NORMAL windows
|
||||
while (winPos = ::GetNextWindow(winPos, GW_HWNDPREV))
|
||||
{
|
||||
MeterWindow* wnd = g_Rainmeter->GetMeterWindow(winPos);
|
||||
MeterWindow* wnd = GetRainmeter().GetMeterWindow(winPos);
|
||||
if (!wnd ||
|
||||
(wnd->GetWindowZPosition() != ZPOSITION_NORMAL &&
|
||||
wnd->GetWindowZPosition() != ZPOSITION_ONDESKTOP &&
|
||||
@ -668,7 +666,7 @@ bool System::BelongToSameProcess(HWND hwndA, HWND hwndB)
|
||||
*/
|
||||
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
{
|
||||
bool logging = g_Rainmeter->GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
const int classLen = _countof(METERWINDOW_CLASS_NAME) + (DEBUG_VERBOSE ? 32 : 1);
|
||||
WCHAR className[classLen];
|
||||
MeterWindow* Window;
|
||||
@ -676,11 +674,11 @@ BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
|
||||
if (GetClassName(hwnd, className, classLen) > 0 &&
|
||||
wcscmp(className, METERWINDOW_CLASS_NAME) == 0 &&
|
||||
(Window = g_Rainmeter->GetMeterWindow(hwnd)))
|
||||
(Window = GetRainmeter().GetMeterWindow(hwnd)))
|
||||
{
|
||||
ZPOSITION zPos = Window->GetWindowZPosition();
|
||||
if (zPos == ZPOSITION_ONDESKTOP ||
|
||||
(zPos == ZPOSITION_NORMAL && g_Rainmeter->IsNormalStayDesktop()) ||
|
||||
(zPos == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop()) ||
|
||||
zPos == ZPOSITION_ONBOTTOM)
|
||||
{
|
||||
if (lParam)
|
||||
@ -719,7 +717,7 @@ BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
*/
|
||||
void System::ChangeZPosInOrder()
|
||||
{
|
||||
bool logging = g_Rainmeter->GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
std::vector<MeterWindow*> windowsInZOrder;
|
||||
|
||||
if (logging) LogDebug(L"1: ----- BEFORE -----");
|
||||
@ -740,7 +738,7 @@ void System::ChangeZPosInOrder()
|
||||
}
|
||||
};
|
||||
|
||||
if (g_Rainmeter->IsNormalStayDesktop())
|
||||
if (GetRainmeter().IsNormalStayDesktop())
|
||||
{
|
||||
resetZPos(ZPOSITION_NORMAL);
|
||||
}
|
||||
@ -767,7 +765,7 @@ void System::ChangeZPosInOrder()
|
||||
*/
|
||||
void System::PrepareHelperWindow(HWND WorkerW)
|
||||
{
|
||||
bool logging = g_Rainmeter->GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
|
||||
SetWindowPos(c_Window, HWND_BOTTOM, 0, 0, 0, 0, ZPOS_FLAGS); // always on bottom
|
||||
|
||||
@ -850,7 +848,7 @@ bool System::CheckDesktopState(HWND WorkerW)
|
||||
{
|
||||
c_ShowDesktop = !c_ShowDesktop;
|
||||
|
||||
if (g_Rainmeter->GetDebug())
|
||||
if (GetRainmeter().GetDebug())
|
||||
{
|
||||
LogDebugF(L"System: \"Show %s\" has been detected.",
|
||||
c_ShowDesktop ? L"desktop" : L"open windows");
|
||||
@ -945,10 +943,10 @@ LRESULT CALLBACK System::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
case TIMER_RESUME:
|
||||
KillTimer(hWnd, TIMER_RESUME);
|
||||
if (g_Rainmeter->IsRedrawable())
|
||||
if (GetRainmeter().IsRedrawable())
|
||||
{
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = g_Rainmeter->GetAllMeterWindows().begin();
|
||||
for ( ; iter != g_Rainmeter->GetAllMeterWindows().end(); ++iter)
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
(*iter).second->RedrawWindow();
|
||||
}
|
||||
@ -972,8 +970,8 @@ LRESULT CALLBACK System::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
}
|
||||
|
||||
// Deliver WM_DISPLAYCHANGE / WM_SETTINGCHANGE message to all meter windows
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = g_Rainmeter->GetAllMeterWindows().begin();
|
||||
for ( ; iter != g_Rainmeter->GetAllMeterWindows().end(); ++iter)
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
PostMessage((*iter).second->GetWindow(), WM_METERWINDOW_DELAYED_MOVE, (WPARAM)uMsg, (LPARAM)0);
|
||||
}
|
||||
@ -1152,7 +1150,7 @@ void System::SetWallpaper(const std::wstring& wallpaper, const std::wstring& sty
|
||||
Bitmap* bitmap = Bitmap::FromFile(wallpaper.c_str());
|
||||
if (bitmap && bitmap->GetLastStatus() == Ok)
|
||||
{
|
||||
std::wstring file = g_Rainmeter->GetSettingsPath() + L"Wallpaper.bmp";
|
||||
std::wstring file = GetRainmeter().GetSettingsPath() + L"Wallpaper.bmp";
|
||||
|
||||
const CLSID bmpClsid = { 0x557cf400, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x0, 0x0, 0xf8, 0x1e, 0xf3, 0x2e } };
|
||||
if (bitmap->Save(file.c_str(), &bmpClsid) == Ok)
|
||||
|
@ -48,8 +48,6 @@ enum INTERVAL
|
||||
|
||||
const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(L"TaskbarCreated");
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
using namespace Gdiplus;
|
||||
|
||||
TrayWindow::TrayWindow() :
|
||||
@ -89,7 +87,7 @@ void TrayWindow::Initialize()
|
||||
{
|
||||
WNDCLASS wc = {0};
|
||||
wc.lpfnWndProc = (WNDPROC)WndProc;
|
||||
wc.hInstance = g_Rainmeter->GetInstance();
|
||||
wc.hInstance = GetRainmeter().GetModuleInstance();
|
||||
wc.lpszClassName = L"RainmeterTrayClass";
|
||||
wc.hIcon = GetIcon(IDI_RAINMETER);
|
||||
|
||||
@ -339,7 +337,7 @@ void TrayWindow::SetTrayIcon(bool enabled)
|
||||
m_IconEnabled = enabled;
|
||||
|
||||
// Save to Rainmeter.ini.
|
||||
const std::wstring& iniFile = g_Rainmeter->GetIniFile();
|
||||
const std::wstring& iniFile = GetRainmeter().GetIniFile();
|
||||
WritePrivateProfileString(L"Rainmeter", L"TrayIcon", enabled ? nullptr : L"0", iniFile.c_str());
|
||||
}
|
||||
|
||||
@ -372,8 +370,8 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
|
||||
if (!measureName.empty())
|
||||
{
|
||||
ConfigParser* oldParser = g_Rainmeter->GetCurrentParser();
|
||||
g_Rainmeter->SetCurrentParser(&parser);
|
||||
ConfigParser* oldParser = GetRainmeter().GetCurrentParser();
|
||||
GetRainmeter().SetCurrentParser(&parser);
|
||||
|
||||
m_Measure = Measure::Create(measureName.c_str(), nullptr, L"TrayMeasure");
|
||||
if (m_Measure)
|
||||
@ -381,7 +379,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
m_Measure->ReadOptions(parser);
|
||||
}
|
||||
|
||||
g_Rainmeter->SetCurrentParser(oldParser);
|
||||
GetRainmeter().SetCurrentParser(oldParser);
|
||||
}
|
||||
|
||||
const WCHAR* type = parser.ReadString(L"TrayMeasure", L"TrayMeter", m_Measure ? L"HISTOGRAM" : L"NONE").c_str();
|
||||
@ -404,7 +402,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
// Load the bitmaps if defined
|
||||
if (!imageName.empty())
|
||||
{
|
||||
imageName.insert(0, g_Rainmeter->GetSkinPath());
|
||||
imageName.insert(0, GetRainmeter().GetSkinPath());
|
||||
const WCHAR* imagePath = imageName.c_str();
|
||||
if (_wcsicmp(imagePath + (imageName.size() - 4), L".ico") == 0)
|
||||
{
|
||||
@ -459,7 +457,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
|
||||
LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
TrayWindow* tray = g_Rainmeter->GetTrayWindow();
|
||||
TrayWindow* tray = GetRainmeter().GetTrayWindow();
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
@ -483,11 +481,11 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_REFRESH:
|
||||
PostMessage(g_Rainmeter->GetWindow(), WM_RAINMETER_DELAYED_REFRESH_ALL, (WPARAM)nullptr, (LPARAM)nullptr);
|
||||
PostMessage(GetRainmeter().GetWindow(), WM_RAINMETER_DELAYED_REFRESH_ALL, (WPARAM)nullptr, (LPARAM)nullptr);
|
||||
break;
|
||||
|
||||
case IDM_SHOWLOGFILE:
|
||||
g_Rainmeter->ShowLogFile();
|
||||
GetRainmeter().ShowLogFile();
|
||||
break;
|
||||
|
||||
case IDM_STARTLOG:
|
||||
@ -503,15 +501,15 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_DEBUGLOG:
|
||||
g_Rainmeter->SetDebug(!g_Rainmeter->GetDebug());
|
||||
GetRainmeter().SetDebug(!GetRainmeter().GetDebug());
|
||||
break;
|
||||
|
||||
case IDM_DISABLEDRAG:
|
||||
g_Rainmeter->SetDisableDragging(!g_Rainmeter->GetDisableDragging());
|
||||
GetRainmeter().SetDisableDragging(!GetRainmeter().GetDisableDragging());
|
||||
break;
|
||||
|
||||
case IDM_EDITCONFIG:
|
||||
g_Rainmeter->EditSettings();
|
||||
GetRainmeter().EditSettings();
|
||||
break;
|
||||
|
||||
case IDM_QUIT:
|
||||
@ -519,7 +517,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_OPENSKINSFOLDER:
|
||||
g_Rainmeter->OpenSkinFolder();
|
||||
GetRainmeter().OpenSkinFolder();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -530,25 +528,25 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
{
|
||||
int pos = mID - ID_THEME_FIRST;
|
||||
|
||||
const std::vector<std::wstring>& layouts = g_Rainmeter->GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
if (pos >= 0 && pos < (int)layouts.size())
|
||||
{
|
||||
g_Rainmeter->LoadLayout(layouts[pos]);
|
||||
GetRainmeter().LoadLayout(layouts[pos]);
|
||||
}
|
||||
}
|
||||
else if (mID >= ID_CONFIG_FIRST && mID <= ID_CONFIG_LAST)
|
||||
{
|
||||
std::pair<int, int> indexes = g_Rainmeter->GetMeterWindowIndex(mID);
|
||||
std::pair<int, int> indexes = GetRainmeter().GetMeterWindowIndex(mID);
|
||||
if (indexes.first != -1 && indexes.second != -1)
|
||||
{
|
||||
g_Rainmeter->ToggleSkin(indexes.first, indexes.second);
|
||||
GetRainmeter().ToggleSkin(indexes.first, indexes.second);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Forward the message to correct window
|
||||
int index = (int)(wParam >> 16);
|
||||
const std::map<std::wstring, MeterWindow*>& windows = g_Rainmeter->GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = GetRainmeter().GetAllMeterWindows();
|
||||
|
||||
if (index < (int)windows.size())
|
||||
{
|
||||
@ -579,19 +577,19 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
switch (uMouseMsg)
|
||||
{
|
||||
case WM_MBUTTONDOWN:
|
||||
bang = g_Rainmeter->GetTrayExecuteM().c_str();
|
||||
bang = GetRainmeter().GetTrayExecuteM().c_str();
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
bang = g_Rainmeter->GetTrayExecuteR().c_str();
|
||||
bang = GetRainmeter().GetTrayExecuteR().c_str();
|
||||
break;
|
||||
|
||||
case WM_MBUTTONDBLCLK:
|
||||
bang = g_Rainmeter->GetTrayExecuteDM().c_str();
|
||||
bang = GetRainmeter().GetTrayExecuteDM().c_str();
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDBLCLK:
|
||||
bang = g_Rainmeter->GetTrayExecuteDR().c_str();
|
||||
bang = GetRainmeter().GetTrayExecuteDR().c_str();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -602,7 +600,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
if (*bang &&
|
||||
!IsCtrlKeyDown()) // Ctrl is pressed, so only run default action
|
||||
{
|
||||
g_Rainmeter->ExecuteCommand(bang, nullptr);
|
||||
GetRainmeter().ExecuteCommand(bang, nullptr);
|
||||
tray->m_TrayContextMenuEnabled = (uMouseMsg != WM_RBUTTONDOWN);
|
||||
break;
|
||||
}
|
||||
@ -618,7 +616,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
if (tray->m_TrayContextMenuEnabled)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
g_Rainmeter->ShowContextMenu(pos, nullptr);
|
||||
GetRainmeter().ShowContextMenu(pos, nullptr);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -662,19 +660,19 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
switch (wParam)
|
||||
{
|
||||
case RAINMETER_QUERY_ID_SKINS_PATH:
|
||||
sendCopyData(g_Rainmeter->GetSkinPath());
|
||||
sendCopyData(GetRainmeter().GetSkinPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_SETTINGS_PATH:
|
||||
sendCopyData(g_Rainmeter->GetSettingsPath());
|
||||
sendCopyData(GetRainmeter().GetSettingsPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_PLUGINS_PATH:
|
||||
sendCopyData(g_Rainmeter->GetPluginPath());
|
||||
sendCopyData(GetRainmeter().GetPluginPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_PROGRAM_PATH:
|
||||
sendCopyData(g_Rainmeter->GetPath());
|
||||
sendCopyData(GetRainmeter().GetPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_LOG_PATH:
|
||||
@ -682,12 +680,12 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_CONFIG_EDITOR:
|
||||
sendCopyData(g_Rainmeter->GetSkinEditor());
|
||||
sendCopyData(GetRainmeter().GetSkinEditor());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_IS_DEBUGGING:
|
||||
{
|
||||
BOOL debug = g_Rainmeter->GetDebug();
|
||||
BOOL debug = GetRainmeter().GetDebug();
|
||||
SendMessage((HWND)lParam, WM_QUERY_RAINMETER_RETURN, (WPARAM)hWnd, (LPARAM)debug);
|
||||
}
|
||||
return 0;
|
||||
@ -701,7 +699,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
if (cds->dwData == RAINMETER_QUERY_ID_SKIN_WINDOWHANDLE)
|
||||
{
|
||||
LPCWSTR folderPath = (LPCWSTR)cds->lpData;
|
||||
MeterWindow* mw = g_Rainmeter->GetMeterWindow(folderPath);
|
||||
MeterWindow* mw = GetRainmeter().GetMeterWindow(folderPath);
|
||||
return (mw) ? (LRESULT)mw->GetWindow() : 0;
|
||||
}
|
||||
}
|
||||
|
@ -22,8 +22,6 @@
|
||||
#include "TrayWindow.h"
|
||||
#include "../Version.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
void CheckVersion(void* dummy)
|
||||
{
|
||||
HINTERNET hRootHandle = InternetOpen(
|
||||
@ -72,17 +70,17 @@ void CheckVersion(void* dummy)
|
||||
if (availableVersion > RAINMETER_VERSION ||
|
||||
(revision_beta && availableVersion == RAINMETER_VERSION))
|
||||
{
|
||||
g_Rainmeter->SetNewVersion();
|
||||
GetRainmeter().SetNewVersion();
|
||||
|
||||
WCHAR buffer[32];
|
||||
const WCHAR* dataFile = g_Rainmeter->GetDataFile().c_str();
|
||||
const WCHAR* dataFile = GetRainmeter().GetDataFile().c_str();
|
||||
GetPrivateProfileString(L"Rainmeter", L"LastCheck", L"0", buffer, _countof(buffer), dataFile);
|
||||
|
||||
// Show tray notification only once per new version
|
||||
int lastVersion = parseVersion(buffer);
|
||||
if (availableVersion > lastVersion)
|
||||
{
|
||||
g_Rainmeter->GetTrayWindow()->ShowUpdateNotification(version);
|
||||
GetRainmeter().GetTrayWindow()->ShowUpdateNotification(version);
|
||||
WritePrivateProfileString(L"Rainmeter", L"LastCheck", version, dataFile);
|
||||
}
|
||||
}
|
||||
|
@ -22,8 +22,6 @@
|
||||
#include "../../MeterWindow.h"
|
||||
#include "../../MeterString.h"
|
||||
|
||||
extern Rainmeter* g_Rainmeter;
|
||||
|
||||
#define DECLARE_SELF(L) \
|
||||
void* selfData = lua_touserdata(L, 1); \
|
||||
if (!selfData) return 0; \
|
||||
@ -40,7 +38,7 @@ static int Bang(lua_State* L)
|
||||
if (top == 2) // 1 argument
|
||||
{
|
||||
parser.ReplaceVariables(bang);
|
||||
g_Rainmeter->ExecuteCommand(bang.c_str(), self);
|
||||
GetRainmeter().ExecuteCommand(bang.c_str(), self);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -56,7 +54,7 @@ static int Bang(lua_State* L)
|
||||
args.push_back(tmpSz);
|
||||
}
|
||||
|
||||
g_Rainmeter->ExecuteBang(bangSz, args, self);
|
||||
GetRainmeter().ExecuteBang(bangSz, args, self);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user