mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
A bit of work on app's UI and integration between .net and native.
This commit is contained in:
parent
731475f8c8
commit
8541cce5f4
@ -165,7 +165,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* meterWindow = GetRainmeter().GetMeterWindow(folderPath);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindow(folderPath);
|
||||
if (meterWindow)
|
||||
{
|
||||
meterWindow->DoBang(bangInfo.bang, args);
|
||||
@ -179,7 +179,7 @@ void DoBang(const BangInfo& bangInfo, std::vector<std::wstring>& args, MeterWind
|
||||
}
|
||||
|
||||
// No skin defined -> apply to all.
|
||||
for (const auto& ip : GetRainmeter().GetAllMeterWindows())
|
||||
for (const auto& ip : Rainmeter::GetInstance().GetAllMeterWindows())
|
||||
{
|
||||
ip.second->DoBang(bangInfo.bang, args);
|
||||
}
|
||||
@ -213,7 +213,7 @@ void DoGroupBang(const BangInfo& bangInfo, std::vector<std::wstring>& args, Mete
|
||||
if (args.size() > bangInfo.argCount)
|
||||
{
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows, args[bangInfo.argCount]);
|
||||
Rainmeter::GetInstance().GetMeterWindowsByLoadOrder(windows, args[bangInfo.argCount]);
|
||||
|
||||
// Remove extra parameters (including group).
|
||||
args.resize(bangInfo.argCount);
|
||||
@ -584,11 +584,11 @@ void CommandHandler::DoActivateSkinBang(std::vector<std::wstring>& args, MeterWi
|
||||
{
|
||||
if (args.size() == 1)
|
||||
{
|
||||
if (GetRainmeter().ActivateSkin(args[0])) return;
|
||||
if (Rainmeter::GetInstance().ActivateSkin(args[0])) return;
|
||||
}
|
||||
else if (args.size() > 1)
|
||||
{
|
||||
if (GetRainmeter().ActivateSkin(args[0], args[1])) return;
|
||||
if (Rainmeter::GetInstance().ActivateSkin(args[0], args[1])) return;
|
||||
}
|
||||
|
||||
LogErrorF(skin, L"!ActivateConfig: Invalid parameters");
|
||||
@ -598,7 +598,7 @@ void CommandHandler::DoDeactivateSkinBang(std::vector<std::wstring>& args, Meter
|
||||
{
|
||||
if (!args.empty())
|
||||
{
|
||||
skin = GetRainmeter().GetMeterWindow(args[0]);
|
||||
skin = Rainmeter::GetInstance().GetMeterWindow(args[0]);
|
||||
if (!skin)
|
||||
{
|
||||
LogWarningF(L"!DeactivateConfig: \"%s\" not active", args[0].c_str());
|
||||
@ -608,7 +608,7 @@ void CommandHandler::DoDeactivateSkinBang(std::vector<std::wstring>& args, Meter
|
||||
|
||||
if (skin)
|
||||
{
|
||||
GetRainmeter().DeactivateSkin(skin, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(skin, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -620,10 +620,10 @@ void CommandHandler::DoToggleSkinBang(std::vector<std::wstring>& args, MeterWind
|
||||
{
|
||||
if (args.size() >= 2)
|
||||
{
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(args[0]);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindow(args[0]);
|
||||
if (meterWindow)
|
||||
{
|
||||
GetRainmeter().DeactivateSkin(meterWindow, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(meterWindow, -1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -641,10 +641,10 @@ void CommandHandler::DoDeactivateSkinGroupBang(std::vector<std::wstring>& args,
|
||||
if (!args.empty())
|
||||
{
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows, args[0]);
|
||||
Rainmeter::GetInstance().GetMeterWindowsByLoadOrder(windows, args[0]);
|
||||
for (const auto& ip : windows)
|
||||
{
|
||||
GetRainmeter().DeactivateSkin(ip.second, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(ip.second, -1);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -663,12 +663,12 @@ void CommandHandler::DoLoadLayoutBang(std::vector<std::wstring>& args, MeterWind
|
||||
std::wstring command = L"!LoadLayout \"";
|
||||
command += args[0];
|
||||
command += L'"';
|
||||
GetRainmeter().DelayedExecuteCommand(command.c_str());
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(command.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not called from a skin (or called with delay).
|
||||
GetRainmeter().LoadLayout(args[0]);
|
||||
Rainmeter::GetInstance().LoadLayout(args[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -734,7 +734,7 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
{
|
||||
if (!args.empty())
|
||||
{
|
||||
skin = GetRainmeter().GetMeterWindow(args[0]);
|
||||
skin = Rainmeter::GetInstance().GetMeterWindow(args[0]);
|
||||
if (!skin)
|
||||
{
|
||||
LogWarningF(L"!SkinMenu: \"%s\" not active", args[0].c_str());
|
||||
@ -745,7 +745,7 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
if (skin)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
GetRainmeter().ShowContextMenu(pos, skin);
|
||||
Rainmeter::GetInstance().ShowContextMenu(pos, skin);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -756,12 +756,12 @@ void CommandHandler::DoSkinMenuBang(std::vector<std::wstring>& args, MeterWindow
|
||||
void CommandHandler::DoTrayMenuBang(std::vector<std::wstring>& args, MeterWindow* skin)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
GetRainmeter().ShowContextMenu(pos, nullptr);
|
||||
Rainmeter::GetInstance().ShowContextMenu(pos, nullptr);
|
||||
}
|
||||
|
||||
void CommandHandler::DoResetStatsBang(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
{
|
||||
GetRainmeter().ResetStats();
|
||||
Rainmeter::GetInstance().ResetStats();
|
||||
}
|
||||
|
||||
void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterWindow* skin)
|
||||
@ -791,8 +791,8 @@ void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterW
|
||||
return;
|
||||
}
|
||||
|
||||
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)
|
||||
if (_wcsnicmp(iniFile, Rainmeter::GetInstance().m_SkinPath.c_str(), Rainmeter::GetInstance().m_SkinPath.size()) != 0 &&
|
||||
_wcsnicmp(iniFile, Rainmeter::GetInstance().m_SettingsPath.c_str(), Rainmeter::GetInstance().m_SettingsPath.size()) != 0)
|
||||
{
|
||||
LogErrorF(skin, L"!WriteKeyValue: Illegal path: %s", iniFile);
|
||||
return;
|
||||
@ -825,14 +825,14 @@ void CommandHandler::DoWriteKeyValueBang(std::vector<std::wstring>& args, MeterW
|
||||
|
||||
if (temporary)
|
||||
{
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebugF(skin, L"!WriteKeyValue: Writing to: %s (Temp: %s)", iniFile, strIniWrite.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebugF(skin, L"!WriteKeyValue: Writing to: %s", iniFile);
|
||||
}
|
||||
@ -935,13 +935,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(GetRainmeter().m_Window, WM_RAINMETER_DELAYED_REFRESH_ALL, 0, 0);
|
||||
PostMessage(Rainmeter::GetInstance().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(GetRainmeter().GetTrayWindow()->GetWindow(), WM_COMMAND, MAKEWPARAM(IDM_QUIT, 0), 0);
|
||||
PostMessage(Rainmeter::GetInstance().GetTrayWindow()->GetWindow(), WM_COMMAND, MAKEWPARAM(IDM_QUIT, 0), 0);
|
||||
}
|
||||
|
||||
void CommandHandler::DoLsBoxHookBang(std::vector<std::wstring>& args, MeterWindow* meterWindow)
|
||||
|
@ -92,13 +92,13 @@ void ConfigParser::SetBuiltInVariables(const std::wstring& filename, const std::
|
||||
return m_BuiltInVariables.insert(std::make_pair(name, value));
|
||||
};
|
||||
|
||||
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"PROGRAMPATH", Rainmeter::GetInstance().GetPath());
|
||||
insertVariable(L"PROGRAMDRIVE", Rainmeter::GetInstance().GetDrive());
|
||||
insertVariable(L"SETTINGSPATH", Rainmeter::GetInstance().GetSettingsPath());
|
||||
insertVariable(L"SKINSPATH", Rainmeter::GetInstance().GetSkinPath());
|
||||
insertVariable(L"PLUGINSPATH", Rainmeter::GetInstance().GetPluginPath());
|
||||
insertVariable(L"CURRENTPATH", PathUtil::GetFolderFromFilePath(filename));
|
||||
insertVariable(L"ADDONSPATH", GetRainmeter().GetAddonPath());
|
||||
insertVariable(L"ADDONSPATH", Rainmeter::GetInstance().GetAddonPath());
|
||||
|
||||
if (meterWindow)
|
||||
{
|
||||
@ -1314,7 +1314,7 @@ void ConfigParser::ReadIniFile(const std::wstring& iniFile, LPCTSTR skinSection,
|
||||
{
|
||||
if (depth > 100) // Is 100 enough to assume the include loop never ends?
|
||||
{
|
||||
GetRainmeter().ShowMessage(nullptr, GetString(ID_STR_INCLUDEINFINITELOOP), MB_OK | MB_ICONERROR);
|
||||
Rainmeter::GetInstance().ShowMessage(nullptr, GetString(ID_STR_INCLUDEINFINITELOOP), MB_OK | MB_ICONERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1331,11 +1331,11 @@ void ConfigParser::ReadIniFile(const std::wstring& iniFile, LPCTSTR skinSection,
|
||||
|
||||
if (temporary)
|
||||
{
|
||||
if (GetRainmeter().GetDebug()) LogDebugF(m_MeterWindow, L"Reading file: %s (Temp: %s)", iniFile.c_str(), iniRead.c_str());
|
||||
if (Rainmeter::GetInstance().GetDebug()) LogDebugF(m_MeterWindow, L"Reading file: %s (Temp: %s)", iniFile.c_str(), iniRead.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetRainmeter().GetDebug()) LogDebugF(m_MeterWindow, L"Reading file: %s", iniFile.c_str());
|
||||
if (Rainmeter::GetInstance().GetDebug()) LogDebugF(m_MeterWindow, L"Reading file: %s", iniFile.c_str());
|
||||
iniRead = iniFile;
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ void ContextMenu::ShowMenu(POINT pos, MeterWindow* meterWindow)
|
||||
if (!menu) return;
|
||||
|
||||
m_MenuActive = true;
|
||||
Rainmeter& rainmeter = GetRainmeter();
|
||||
Rainmeter& rainmeter = Rainmeter::GetInstance();
|
||||
|
||||
SetMenuDefaultItem(menu, IDM_MANAGE, MF_BYCOMMAND);
|
||||
|
||||
@ -343,7 +343,7 @@ HMENU ContextMenu::CreateSkinMenu(MeterWindow* meterWindow, int index, HMENU men
|
||||
CheckMenuItem(settingsMenu, IDM_SKIN_REMEMBERPOSITION, MF_BYCOMMAND | MF_CHECKED);
|
||||
}
|
||||
|
||||
if (GetRainmeter().m_DisableDragging)
|
||||
if (Rainmeter::GetInstance().m_DisableDragging)
|
||||
{
|
||||
EnableMenuItem(settingsMenu, IDM_SKIN_DRAGGABLE, MF_BYCOMMAND | MF_GRAYED);
|
||||
}
|
||||
@ -398,7 +398,7 @@ HMENU ContextMenu::CreateSkinMenu(MeterWindow* meterWindow, int index, HMENU men
|
||||
// Add the variants menu
|
||||
if (variantsMenu)
|
||||
{
|
||||
const SkinRegistry::Folder& skinFolder = *GetRainmeter().m_SkinRegistry.FindFolder(skinName);
|
||||
const SkinRegistry::Folder& skinFolder = *Rainmeter::GetInstance().m_SkinRegistry.FindFolder(skinName);
|
||||
for (int i = 0, isize = (int)skinFolder.files.size(); i < isize; ++i)
|
||||
{
|
||||
InsertMenu(variantsMenu, i, MF_BYPOSITION, skinFolder.baseID + i, skinFolder.files[i].c_str());
|
||||
@ -549,7 +549,7 @@ void ContextMenu::AppendSkinCustomMenu(
|
||||
|
||||
int ContextMenu::CreateAllSkinsMenuRecursive(HMENU skinMenu, int index)
|
||||
{
|
||||
SkinRegistry& skinRegistry = GetRainmeter().m_SkinRegistry;
|
||||
SkinRegistry& skinRegistry = Rainmeter::GetInstance().m_SkinRegistry;
|
||||
const int initialLevel = skinRegistry.GetFolder(index).level;
|
||||
int menuIndex = 0;
|
||||
|
||||
@ -604,7 +604,7 @@ int ContextMenu::CreateAllSkinsMenuRecursive(HMENU skinMenu, int index)
|
||||
|
||||
void ContextMenu::CreateLayoutMenu(HMENU layoutMenu)
|
||||
{
|
||||
const auto& layouts = GetRainmeter().m_Layouts;
|
||||
const auto& layouts = Rainmeter::GetInstance().m_Layouts;
|
||||
for (size_t i = 0, isize = layouts.size(); i < isize; ++i)
|
||||
{
|
||||
InsertMenu(layoutMenu, (UINT)i, MF_BYPOSITION, ID_THEME_FIRST + i, layouts[i].c_str());
|
||||
|
@ -62,7 +62,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),
|
||||
GetRainmeter().GetWindow());
|
||||
Rainmeter::GetInstance().GetWindow());
|
||||
|
||||
// Fake WM_NOTIFY to change tab
|
||||
NMHDR nm;
|
||||
@ -752,7 +752,7 @@ void DialogAbout::TabSkins::UpdateSkinList()
|
||||
|
||||
// Add entries for each skin
|
||||
std::wstring::size_type maxLength = 0;
|
||||
const std::map<std::wstring, MeterWindow*>& windows = GetRainmeter().GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = Rainmeter::GetInstance().GetAllMeterWindows();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = windows.begin();
|
||||
bool found = false;
|
||||
for ( ; iter != windows.end(); ++iter)
|
||||
@ -806,7 +806,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 = GetRainmeter().GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = Rainmeter::GetInstance().GetAllMeterWindows();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = windows.begin();
|
||||
while (selected && iter != windows.end())
|
||||
{
|
||||
@ -1143,10 +1143,10 @@ void DialogAbout::TabPlugins::Initialize()
|
||||
FindClose(hSearch);
|
||||
};
|
||||
|
||||
findPlugins(GetRainmeter().GetPluginPath());
|
||||
if (GetRainmeter().HasUserPluginPath())
|
||||
findPlugins(Rainmeter::GetInstance().GetPluginPath());
|
||||
if (Rainmeter::GetInstance().HasUserPluginPath())
|
||||
{
|
||||
findPlugins(GetRainmeter().GetUserPluginPath());
|
||||
findPlugins(Rainmeter::GetInstance().GetUserPluginPath());
|
||||
}
|
||||
|
||||
m_Initialized = true;
|
||||
@ -1242,15 +1242,15 @@ void DialogAbout::TabVersion::Initialize()
|
||||
SetWindowText(item, Platform::GetPlatformFriendlyName().c_str());
|
||||
|
||||
item = GetControl(Id_PathLabel);
|
||||
std::wstring text = L"Path: " + GetRainmeter().GetPath();
|
||||
std::wstring text = L"Path: " + Rainmeter::GetInstance().GetPath();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
item = GetControl(Id_IniFileLabel);
|
||||
text = L"IniFile: " + GetRainmeter().GetIniFile();
|
||||
text = L"IniFile: " + Rainmeter::GetInstance().GetIniFile();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
item = GetControl(Id_SkinPathLabel);
|
||||
text = L"SkinPath: " + GetRainmeter().GetSkinPath();
|
||||
text = L"SkinPath: " + Rainmeter::GetInstance().GetSkinPath();
|
||||
SetWindowText(item, text.c_str());
|
||||
|
||||
m_Initialized = true;
|
||||
@ -1291,11 +1291,11 @@ INT_PTR DialogAbout::TabVersion::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
text += L'\n';
|
||||
text += Platform::GetPlatformFriendlyName();
|
||||
text += L"\nPath: ";
|
||||
text += GetRainmeter().GetPath();
|
||||
text += Rainmeter::GetInstance().GetPath();
|
||||
text += L"\nIniFile: ";
|
||||
text += GetRainmeter().GetIniFile();
|
||||
text += Rainmeter::GetInstance().GetIniFile();
|
||||
text += L"\nSkinPath: ";
|
||||
text += GetRainmeter().GetSkinPath();
|
||||
text += Rainmeter::GetInstance().GetSkinPath();
|
||||
System::SetClipboardText(text);
|
||||
}
|
||||
break;
|
||||
|
@ -88,7 +88,7 @@ void DialogManage::Open(int tab)
|
||||
0, 0, 500, 322,
|
||||
DS_CENTER | WS_POPUP | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU,
|
||||
WS_EX_APPWINDOW | WS_EX_CONTROLPARENT | ((*GetString(ID_STR_ISRTL) == L'1') ? WS_EX_LAYOUTRTL : 0),
|
||||
GetRainmeter().GetWindow());
|
||||
Rainmeter::GetInstance().GetWindow());
|
||||
|
||||
// Fake WM_NOTIFY to change tab
|
||||
NMHDR nm;
|
||||
@ -290,11 +290,11 @@ INT_PTR DialogManage::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case Id_RefreshAllButton:
|
||||
GetRainmeter().RefreshAll();
|
||||
Rainmeter::GetInstance().RefreshAll();
|
||||
break;
|
||||
|
||||
case Id_EditSettingsButton:
|
||||
GetRainmeter().EditSettings();
|
||||
Rainmeter::GetInstance().EditSettings();
|
||||
break;
|
||||
|
||||
case Id_OpenLogButton:
|
||||
@ -606,7 +606,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 (!GetRainmeter().m_SkinRegistry.IsEmpty())
|
||||
if (!Rainmeter::GetInstance().m_SkinRegistry.IsEmpty())
|
||||
{
|
||||
PopulateTree(item, tvi);
|
||||
}
|
||||
@ -644,7 +644,7 @@ void DialogManage::TabSkins::SetControls()
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
item = GetControl(Id_DraggableCheckBox);
|
||||
if (GetRainmeter().GetDisableDragging())
|
||||
if (Rainmeter::GetInstance().GetDisableDragging())
|
||||
{
|
||||
EnableWindow(item, FALSE);
|
||||
Button_SetCheck(item, BST_UNCHECKED);
|
||||
@ -684,7 +684,7 @@ void DialogManage::TabSkins::SetControls()
|
||||
|
||||
item = GetControl(Id_LoadOrderEdit);
|
||||
EnableWindow(item, TRUE);
|
||||
_itow_s(GetRainmeter().GetLoadOrder(m_SkinFolderPath), buffer, 10);
|
||||
_itow_s(Rainmeter::GetInstance().GetLoadOrder(m_SkinFolderPath), buffer, 10);
|
||||
SetWindowText(item, buffer);
|
||||
|
||||
item = GetControl(Id_OnHoverDropDownList);
|
||||
@ -797,10 +797,10 @@ void DialogManage::TabSkins::ReadSkin()
|
||||
item = GetControl(Id_EditButton);
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_SkinFolderPath;
|
||||
std::wstring file = Rainmeter::GetInstance().GetSkinPath() + m_SkinFolderPath;
|
||||
file += L'\\';
|
||||
file += m_SkinFileName;
|
||||
m_SkinWindow = GetRainmeter().GetMeterWindowByINI(file);
|
||||
m_SkinWindow = Rainmeter::GetInstance().GetMeterWindowByINI(file);
|
||||
if (!m_SkinWindow)
|
||||
{
|
||||
DisableControls();
|
||||
@ -917,12 +917,12 @@ std::wstring DialogManage::TabSkins::GetTreeSelectionPath(HWND tree)
|
||||
*/
|
||||
int DialogManage::TabSkins::PopulateTree(HWND tree, TVINSERTSTRUCT& tvi, int index)
|
||||
{
|
||||
int initialLevel = GetRainmeter().m_SkinRegistry.GetFolder(index).level;
|
||||
int initialLevel = Rainmeter::GetInstance().m_SkinRegistry.GetFolder(index).level;
|
||||
|
||||
const size_t max = GetRainmeter().m_SkinRegistry.GetFolderCount();
|
||||
const size_t max = Rainmeter::GetInstance().m_SkinRegistry.GetFolderCount();
|
||||
while (index < max)
|
||||
{
|
||||
const auto& skinFolder = GetRainmeter().m_SkinRegistry.GetFolder(index);
|
||||
const auto& skinFolder = Rainmeter::GetInstance().m_SkinRegistry.GetFolder(index);
|
||||
if (skinFolder.level != initialLevel)
|
||||
{
|
||||
return index - 1;
|
||||
@ -937,7 +937,7 @@ int DialogManage::TabSkins::PopulateTree(HWND tree, TVINSERTSTRUCT& tvi, int ind
|
||||
|
||||
// Add subfolders
|
||||
if ((index + 1) < max &&
|
||||
GetRainmeter().m_SkinRegistry.GetFolder(index + 1).level == initialLevel + 1)
|
||||
Rainmeter::GetInstance().m_SkinRegistry.GetFolder(index + 1).level == initialLevel + 1)
|
||||
{
|
||||
index = PopulateTree(tree, tvi, index + 1);
|
||||
}
|
||||
@ -1042,9 +1042,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 = GetRainmeter().GetAllMeterWindows().begin();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = Rainmeter::GetInstance().GetAllMeterWindows().begin();
|
||||
int index = 0;
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
for ( ; iter != Rainmeter::GetInstance().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
std::wstring name = ((*iter).second)->GetFolderPath() + L'\\';
|
||||
name += ((*iter).second)->GetFileName();
|
||||
@ -1075,7 +1075,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case Id_CreateSkinPackageButton:
|
||||
{
|
||||
std::wstring file = GetRainmeter().GetPath() + L"SkinInstaller.exe";
|
||||
std::wstring file = Rainmeter::GetInstance().GetPath() + L"SkinInstaller.exe";
|
||||
CommandHandler::RunFile(file.c_str(), L"/Packager");
|
||||
}
|
||||
break;
|
||||
@ -1086,11 +1086,11 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// Skin not active, load
|
||||
const SkinRegistry::Indexes indexes =
|
||||
GetRainmeter().m_SkinRegistry.FindIndexes(m_SkinFolderPath, m_SkinFileName);
|
||||
Rainmeter::GetInstance().m_SkinRegistry.FindIndexes(m_SkinFolderPath, m_SkinFileName);
|
||||
if (indexes.IsValid())
|
||||
{
|
||||
m_HandleCommands = false;
|
||||
GetRainmeter().ActivateSkin(indexes.folder, indexes.file);
|
||||
Rainmeter::GetInstance().ActivateSkin(indexes.folder, indexes.file);
|
||||
m_HandleCommands = true;
|
||||
|
||||
// Fake selection change to update controls
|
||||
@ -1104,7 +1104,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
else
|
||||
{
|
||||
m_HandleCommands = false;
|
||||
GetRainmeter().DeactivateSkin(m_SkinWindow, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(m_SkinWindow, -1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1117,7 +1117,7 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_EditButton:
|
||||
GetRainmeter().EditSkinFile(m_SkinFolderPath, m_SkinFileName);
|
||||
Rainmeter::GetInstance().EditSkinFile(m_SkinFolderPath, m_SkinFileName);
|
||||
break;
|
||||
|
||||
case Id_XPositionEdit:
|
||||
@ -1184,15 +1184,15 @@ 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, GetRainmeter().GetIniFile().c_str());
|
||||
const SkinRegistry::Indexes indexes = GetRainmeter().m_SkinRegistry.FindIndexes(
|
||||
WritePrivateProfileString(m_SkinFolderPath.c_str(), L"LoadOrder", buffer, Rainmeter::GetInstance().GetIniFile().c_str());
|
||||
const SkinRegistry::Indexes indexes = Rainmeter::GetInstance().m_SkinRegistry.FindIndexes(
|
||||
m_SkinWindow->GetFolderPath(), m_SkinWindow->GetFileName());
|
||||
if (indexes.IsValid())
|
||||
{
|
||||
GetRainmeter().SetLoadOrder(indexes.folder, value);
|
||||
Rainmeter::GetInstance().SetLoadOrder(indexes.folder, value);
|
||||
|
||||
std::multimap<int, MeterWindow*> windows;
|
||||
GetRainmeter().GetMeterWindowsByLoadOrder(windows);
|
||||
Rainmeter::GetInstance().GetMeterWindowsByLoadOrder(windows);
|
||||
|
||||
System::PrepareHelperWindow();
|
||||
|
||||
@ -1306,17 +1306,17 @@ INT_PTR DialogManage::TabSkins::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
case IDM_MANAGESKINSMENU_OPENFOLDER:
|
||||
{
|
||||
HWND tree = GetControl(Id_SkinsTreeView);
|
||||
GetRainmeter().OpenSkinFolder(GetTreeSelectionPath(tree));
|
||||
Rainmeter::GetInstance().OpenSkinFolder(GetTreeSelectionPath(tree));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if (wParam >= ID_CONFIG_FIRST && wParam <= ID_CONFIG_LAST)
|
||||
{
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = Rainmeter::GetInstance().GetAllMeterWindows().begin();
|
||||
int index = (int)wParam - ID_CONFIG_FIRST;
|
||||
int i = 0;
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
for ( ; iter != Rainmeter::GetInstance().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
if (i == index)
|
||||
{
|
||||
@ -1356,7 +1356,7 @@ INT_PTR DialogManage::TabSkins::OnNotify(WPARAM wParam, LPARAM lParam)
|
||||
case NM_CLICK:
|
||||
if (nm->idFrom == Id_AddMetadataLink)
|
||||
{
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_SkinFolderPath;
|
||||
std::wstring file = Rainmeter::GetInstance().GetSkinPath() + m_SkinFolderPath;
|
||||
file += L'\\';
|
||||
file += m_SkinFileName;
|
||||
const WCHAR* str = L"\r\n" // Hack to add below [Rainmeter].
|
||||
@ -1586,7 +1586,7 @@ void DialogManage::TabLayouts::Initialize()
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
ListBox_ResetContent(item);
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = Rainmeter::GetInstance().GetAllLayouts();
|
||||
for (size_t i = 0, isize = layouts.size(); i < isize; ++i)
|
||||
{
|
||||
ListBox_AddString(item, layouts[i].c_str());
|
||||
@ -1654,7 +1654,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_EditButton);
|
||||
EnableWindow(item, TRUE);
|
||||
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = Rainmeter::GetInstance().GetAllLayouts();
|
||||
item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
|
||||
@ -1671,7 +1671,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
Edit_GetText(item, buffer, MAX_PATH);
|
||||
|
||||
std::wstring layout = buffer;
|
||||
std::wstring path = GetRainmeter().GetLayoutPath();
|
||||
std::wstring path = Rainmeter::GetInstance().GetLayoutPath();
|
||||
CreateDirectory(path.c_str(), 0);
|
||||
|
||||
path += layout;
|
||||
@ -1679,7 +1679,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
if (alreadyExists)
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMEALREADYEXISTS, layout.c_str());
|
||||
if (GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
if (Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_ICONWARNING | MB_YESNO) != IDYES)
|
||||
{
|
||||
// Cancel
|
||||
break;
|
||||
@ -1696,10 +1696,10 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_SaveEmptyThemeCheckBox);
|
||||
if (Button_GetCheck(item) != BST_CHECKED)
|
||||
{
|
||||
if (!System::CopyFiles(GetRainmeter().GetIniFile(), path))
|
||||
if (!System::CopyFiles(Rainmeter::GetInstance().GetIniFile(), path))
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMESAVEFAIL, path.c_str());
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1741,7 +1741,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());
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1753,7 +1753,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
item = GetControl(Id_List);
|
||||
ListBox_AddString(item, layout.c_str());
|
||||
|
||||
GetRainmeter().ScanForLayouts();
|
||||
Rainmeter::GetInstance().ScanForLayouts();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1762,7 +1762,7 @@ INT_PTR DialogManage::TabLayouts::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND item = GetControl(Id_List);
|
||||
int sel = ListBox_GetCurSel(item);
|
||||
GetRainmeter().LoadLayout(GetRainmeter().m_Layouts[sel]);
|
||||
Rainmeter::GetInstance().LoadLayout(Rainmeter::GetInstance().m_Layouts[sel]);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1770,13 +1770,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 = GetRainmeter().GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = Rainmeter::GetInstance().GetAllLayouts();
|
||||
|
||||
std::wstring args = L"\"" + GetRainmeter().GetLayoutPath();
|
||||
std::wstring args = L"\"" + Rainmeter::GetInstance().GetLayoutPath();
|
||||
args += layouts[sel];
|
||||
args += L"\\Rainmeter.ini";
|
||||
args += L'"';
|
||||
CommandHandler::RunFile(GetRainmeter().GetSkinEditor().c_str(), args.c_str());
|
||||
CommandHandler::RunFile(Rainmeter::GetInstance().GetSkinEditor().c_str(), args.c_str());
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1784,16 +1784,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>&>(GetRainmeter().GetAllLayouts());
|
||||
std::vector<std::wstring>& layouts = const_cast<std::vector<std::wstring>&>(Rainmeter::GetInstance().GetAllLayouts());
|
||||
|
||||
std::wstring text = GetFormattedString(ID_STR_THEMEDELETE, layouts[sel].c_str());
|
||||
if (GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_ICONQUESTION | MB_YESNO) != IDYES)
|
||||
if (Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_ICONQUESTION | MB_YESNO) != IDYES)
|
||||
{
|
||||
// Cancel
|
||||
break;
|
||||
}
|
||||
|
||||
std::wstring folder = GetRainmeter().GetLayoutPath();
|
||||
std::wstring folder = Rainmeter::GetInstance().GetLayoutPath();
|
||||
folder += layouts[sel];
|
||||
|
||||
if (System::RemoveFolder(folder))
|
||||
@ -1907,7 +1907,7 @@ void DialogManage::TabSettings::Initialize()
|
||||
// Scan for languages
|
||||
HWND item = GetControl(Id_LanguageDropDownList);
|
||||
|
||||
std::wstring files = GetRainmeter().GetPath() + L"Languages\\*.dll";
|
||||
std::wstring files = Rainmeter::GetInstance().GetPath() + L"Languages\\*.dll";
|
||||
WIN32_FIND_DATA fd;
|
||||
HANDLE hSearch = FindFirstFile(files.c_str(), &fd);
|
||||
if (hSearch != INVALID_HANDLE_VALUE)
|
||||
@ -1932,7 +1932,7 @@ void DialogManage::TabSettings::Initialize()
|
||||
int index = ComboBox_AddString(item, text.c_str());
|
||||
ComboBox_SetItemData(item, index, (LPARAM)lcid);
|
||||
|
||||
if (lcid == GetRainmeter().GetResourceLCID())
|
||||
if (lcid == Rainmeter::GetInstance().GetResourceLCID())
|
||||
{
|
||||
ComboBox_SetCurSel(item, index);
|
||||
}
|
||||
@ -1944,23 +1944,23 @@ void DialogManage::TabSettings::Initialize()
|
||||
FindClose(hSearch);
|
||||
}
|
||||
|
||||
Button_SetCheck(GetControl(Id_CheckForUpdatesCheckBox), !GetRainmeter().GetDisableVersionCheck());
|
||||
Button_SetCheck(GetControl(Id_LockSkinsCheckBox), GetRainmeter().GetDisableDragging());
|
||||
Button_SetCheck(GetControl(Id_CheckForUpdatesCheckBox), !Rainmeter::GetInstance().GetDisableVersionCheck());
|
||||
Button_SetCheck(GetControl(Id_LockSkinsCheckBox), Rainmeter::GetInstance().GetDisableDragging());
|
||||
Button_SetCheck(GetControl(Id_LogToFileCheckBox), GetLogger().IsLogToFile());
|
||||
Button_SetCheck(GetControl(Id_VerboseLoggingCheckbox), GetRainmeter().GetDebug());
|
||||
Button_SetCheck(GetControl(Id_VerboseLoggingCheckbox), Rainmeter::GetInstance().GetDebug());
|
||||
|
||||
BOOL isLogFile = (_waccess(GetLogger().GetLogFilePath().c_str(), 0) != -1);
|
||||
EnableWindow(GetControl(Id_ShowLogFileButton), isLogFile);
|
||||
EnableWindow(GetControl(Id_DeleteLogFileButton), isLogFile);
|
||||
|
||||
Edit_SetText(GetControl(Id_EditorEdit), GetRainmeter().GetSkinEditor().c_str());
|
||||
Edit_SetText(GetControl(Id_EditorEdit), Rainmeter::GetInstance().GetSkinEditor().c_str());
|
||||
|
||||
bool iconEnabled = GetRainmeter().GetTrayWindow()->IsTrayIconEnabled();
|
||||
bool iconEnabled = Rainmeter::GetInstance().GetTrayWindow()->IsTrayIconEnabled();
|
||||
Button_SetCheck(GetControl(Id_ShowTrayIconCheckBox), iconEnabled);
|
||||
|
||||
if (IsWindowsVistaOrGreater())
|
||||
{
|
||||
Button_SetCheck(GetControl(Id_UseD2DCheckBox), GetRainmeter().GetUseD2D());
|
||||
Button_SetCheck(GetControl(Id_UseD2DCheckBox), Rainmeter::GetInstance().GetUseD2D());
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1995,18 +1995,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 != GetRainmeter().m_ResourceLCID)
|
||||
if (lcid != Rainmeter::GetInstance().m_ResourceLCID)
|
||||
{
|
||||
WCHAR buffer[16];
|
||||
_ultow(lcid, buffer, 10);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", buffer, GetRainmeter().GetIniFile().c_str());
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", buffer, Rainmeter::GetInstance().GetIniFile().c_str());
|
||||
|
||||
std::wstring resource = GetRainmeter().GetPath() + L"Languages\\";
|
||||
std::wstring resource = Rainmeter::GetInstance().GetPath() + L"Languages\\";
|
||||
resource += buffer;
|
||||
resource += L".dll";
|
||||
FreeLibrary(GetRainmeter().m_ResourceInstance);
|
||||
GetRainmeter().m_ResourceInstance = LoadLibraryEx(resource.c_str(), nullptr, DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
|
||||
GetRainmeter().m_ResourceLCID = lcid;
|
||||
FreeLibrary(Rainmeter::GetInstance().m_ResourceInstance);
|
||||
Rainmeter::GetInstance().m_ResourceInstance = LoadLibraryEx(resource.c_str(), nullptr, DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
|
||||
Rainmeter::GetInstance().m_ResourceLCID = lcid;
|
||||
|
||||
if (DialogAbout::GetDialog())
|
||||
{
|
||||
@ -2014,42 +2014,42 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
SendMessage(DialogAbout::GetDialog()->GetWindow(), WM_CLOSE, 0, 0);
|
||||
if (sel == 0)
|
||||
{
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About");
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(L"!About");
|
||||
}
|
||||
else if (sel == 1)
|
||||
{
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Skins");
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(L"!About Skins");
|
||||
}
|
||||
else if (sel == 2)
|
||||
{
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Plugins");
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(L"!About Plugins");
|
||||
}
|
||||
else //if (sel == 3)
|
||||
{
|
||||
GetRainmeter().DelayedExecuteCommand(L"!About Version");
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(L"!About Version");
|
||||
}
|
||||
}
|
||||
|
||||
SendMessage(c_Dialog->GetWindow(), WM_CLOSE, 0, 0);
|
||||
GetRainmeter().DelayedExecuteCommand(L"!Manage Settings");
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(L"!Manage Settings");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Id_CheckForUpdatesCheckBox:
|
||||
GetRainmeter().SetDisableVersionCheck(!GetRainmeter().GetDisableVersionCheck());
|
||||
Rainmeter::GetInstance().SetDisableVersionCheck(!Rainmeter::GetInstance().GetDisableVersionCheck());
|
||||
break;
|
||||
|
||||
case Id_LockSkinsCheckBox:
|
||||
GetRainmeter().SetDisableDragging(!GetRainmeter().GetDisableDragging());
|
||||
Rainmeter::GetInstance().SetDisableDragging(!Rainmeter::GetInstance().GetDisableDragging());
|
||||
break;
|
||||
|
||||
case Id_ResetStatisticsButton:
|
||||
GetRainmeter().ResetStats();
|
||||
Rainmeter::GetInstance().ResetStats();
|
||||
break;
|
||||
|
||||
case Id_ShowLogFileButton:
|
||||
GetRainmeter().ShowLogFile();
|
||||
Rainmeter::GetInstance().ShowLogFile();
|
||||
break;
|
||||
|
||||
case Id_DeleteLogFileButton:
|
||||
@ -2079,7 +2079,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_VerboseLoggingCheckbox:
|
||||
GetRainmeter().SetDebug(!GetRainmeter().GetDebug());
|
||||
Rainmeter::GetInstance().SetDebug(!Rainmeter::GetInstance().GetDebug());
|
||||
break;
|
||||
|
||||
case Id_EditorEdit:
|
||||
@ -2088,7 +2088,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
if (GetWindowText((HWND)lParam, buffer, _countof(buffer)) > 0)
|
||||
{
|
||||
GetRainmeter().SetSkinEditor(buffer);
|
||||
Rainmeter::GetInstance().SetSkinEditor(buffer);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2098,7 +2098,7 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
buffer[0] = L'\0';
|
||||
|
||||
std::wstring editor = GetRainmeter().GetSkinEditor();
|
||||
std::wstring editor = Rainmeter::GetInstance().GetSkinEditor();
|
||||
editor = editor.substr(0, editor.find_last_of(L"/\\")).c_str();
|
||||
|
||||
OPENFILENAME ofn = { sizeof(OPENFILENAME) };
|
||||
@ -2122,11 +2122,11 @@ INT_PTR DialogManage::TabSettings::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case Id_ShowTrayIconCheckBox:
|
||||
GetRainmeter().GetTrayWindow()->SetTrayIcon(!GetRainmeter().GetTrayWindow()->IsTrayIconEnabled());
|
||||
Rainmeter::GetInstance().GetTrayWindow()->SetTrayIcon(!Rainmeter::GetInstance().GetTrayWindow()->IsTrayIconEnabled());
|
||||
break;
|
||||
|
||||
case Id_UseD2DCheckBox:
|
||||
GetRainmeter().SetUseD2D(!GetRainmeter().GetUseD2D());
|
||||
Rainmeter::GetInstance().SetUseD2D(!Rainmeter::GetInstance().GetUseD2D());
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -86,7 +86,7 @@ void* __stdcall RmGet(void* rm, int type)
|
||||
|
||||
case RMG_SETTINGSFILE:
|
||||
{
|
||||
return (void*)GetRainmeter().GetDataFile().c_str();
|
||||
return (void*)Rainmeter::GetInstance().GetDataFile().c_str();
|
||||
}
|
||||
|
||||
case RMG_SKINNAME:
|
||||
@ -113,7 +113,7 @@ void __stdcall RmExecute(void* skin, LPCWSTR command)
|
||||
if (command)
|
||||
{
|
||||
// WM_RAINMETER_EXECUTE used instead of ExecuteCommand for thread-safety
|
||||
SendMessage(GetRainmeter().GetWindow(), WM_RAINMETER_EXECUTE, (WPARAM)mw, (LPARAM)command);
|
||||
SendMessage(Rainmeter::GetInstance().GetWindow(), WM_RAINMETER_EXECUTE, (WPARAM)mw, (LPARAM)command);
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ BOOL LSLog(int level, LPCWSTR unused, LPCWSTR message)
|
||||
NULLCHECK(message);
|
||||
|
||||
// Ignore Debug messages from plugins unless in debug mode.
|
||||
if (level != (int)Logger::Level::Debug || GetRainmeter().GetDebug())
|
||||
if (level != (int)Logger::Level::Debug || Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
GetLogger().Log((Logger::Level)level, L"", message);
|
||||
}
|
||||
@ -137,7 +137,7 @@ void __stdcall RmLog(void* rm, int level, LPCWSTR message)
|
||||
MeasurePlugin* measure = (MeasurePlugin*)rm;
|
||||
|
||||
// Ignore Debug messages from plugins unless in debug mode.
|
||||
if (level != (int)Logger::Level::Debug || GetRainmeter().GetDebug())
|
||||
if (level != (int)Logger::Level::Debug || Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
GetLogger().LogSection((Logger::Level)level, measure, message);
|
||||
}
|
||||
@ -150,7 +150,7 @@ void RmLogF(void* rm, int level, LPCWSTR format, ...)
|
||||
MeasurePlugin* measure = (MeasurePlugin*)rm;
|
||||
|
||||
// Ignore Debug messages from plugins unless in debug mode.
|
||||
if (level != (int)Logger::Level::Debug || GetRainmeter().GetDebug())
|
||||
if (level != (int)Logger::Level::Debug || Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
@ -166,7 +166,7 @@ LPCWSTR ReadConfigString(LPCWSTR section, LPCWSTR option, LPCWSTR defValue)
|
||||
NULLCHECK(option);
|
||||
NULLCHECK(defValue);
|
||||
|
||||
ConfigParser* parser = GetRainmeter().GetCurrentParser();
|
||||
ConfigParser* parser = Rainmeter::GetInstance().GetCurrentParser();
|
||||
if (parser)
|
||||
{
|
||||
return parser->ReadString(section, option, defValue, false).c_str();
|
||||
@ -187,7 +187,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
|
||||
if (_wcsicmp(command, L"GetConfig") == 0)
|
||||
{
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindowByINI(data);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindowByINI(data);
|
||||
if (meterWindow)
|
||||
{
|
||||
g_Buffer = L"\"";
|
||||
@ -206,7 +206,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
{
|
||||
const std::wstring& config = subStrings[0];
|
||||
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindow(config);
|
||||
if (meterWindow)
|
||||
{
|
||||
WCHAR buf1[64];
|
||||
@ -226,7 +226,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
{
|
||||
const std::wstring& config = subStrings[0];
|
||||
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(config);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindow(config);
|
||||
if (meterWindow)
|
||||
{
|
||||
const std::wstring& variable = subStrings[1];
|
||||
@ -247,7 +247,7 @@ LPCWSTR PluginBridge(LPCWSTR command, LPCWSTR data)
|
||||
|
||||
if (subStrings.size() == 3)
|
||||
{
|
||||
MeterWindow* meterWindow = GetRainmeter().GetMeterWindow(subStrings[0]);
|
||||
MeterWindow* meterWindow = Rainmeter::GetInstance().GetMeterWindow(subStrings[0]);
|
||||
if (meterWindow)
|
||||
{
|
||||
meterWindow->SetVariable(subStrings[1], subStrings[2]);
|
||||
|
@ -161,7 +161,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (!m_EqualCommitted)
|
||||
{
|
||||
m_EqualCommitted = true; // To avoid infinite loop from !Update
|
||||
GetRainmeter().ExecuteCommand(m_EqualAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_EqualAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -178,7 +178,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (!m_AboveCommitted)
|
||||
{
|
||||
m_AboveCommitted = true; // To avoid infinite loop from !Update
|
||||
GetRainmeter().ExecuteCommand(m_AboveAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_AboveAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -195,7 +195,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (!m_BelowCommitted)
|
||||
{
|
||||
m_BelowCommitted = true; // To avoid infinite loop from !Update
|
||||
GetRainmeter().ExecuteCommand(m_BelowAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_BelowAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -240,7 +240,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (m_ConditionMode || !item.tCommitted)
|
||||
{
|
||||
item.tCommitted = true;
|
||||
GetRainmeter().ExecuteCommand(item.tAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(item.tAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
else if (result == 0.0f) // "False"
|
||||
@ -250,7 +250,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (m_ConditionMode || !item.fCommitted)
|
||||
{
|
||||
item.fCommitted = true;
|
||||
GetRainmeter().ExecuteCommand(item.fAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(item.fAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -314,7 +314,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (m_MatchMode || !item.tCommitted)
|
||||
{
|
||||
item.tCommitted = true;
|
||||
GetRainmeter().ExecuteCommand(item.tAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(item.tAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
else // Not Match
|
||||
@ -324,7 +324,7 @@ void IfActions::DoIfActions(Measure& measure, double value)
|
||||
if (m_MatchMode || !item.fCommitted)
|
||||
{
|
||||
item.fCommitted = true;
|
||||
GetRainmeter().ExecuteCommand(item.fAction.c_str(), measure.GetMeterWindow());
|
||||
Rainmeter::GetInstance().ExecuteCommand(item.fAction.c_str(), measure.GetMeterWindow());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,8 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>comctl32.lib;Wininet.lib;UxTheme.lib;Winmm.lib;gdiplus.lib;Iphlpapi.lib;shlwapi.lib;d2d1.lib;dwrite.lib;windowscodecs.lib;Version.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<DelayLoadDLLs>Winmm.dll;Version.dll;d2d1.dll;dwrite.dll;$(DelayLoadTestDLL)</DelayLoadDLLs>
|
||||
<ModuleDefinitionFile>Exports.def</ModuleDefinitionFile>
|
||||
<ModuleDefinitionFile>
|
||||
</ModuleDefinitionFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
@ -31,7 +31,7 @@ UINT GetUniqueID()
|
||||
WCHAR* GetString(UINT id)
|
||||
{
|
||||
LPWSTR pData;
|
||||
int len = LoadString(GetRainmeter().GetResourceInstance(), id, (LPWSTR)&pData, 0);
|
||||
int len = LoadString(Rainmeter::GetInstance().GetResourceInstance(), id, (LPWSTR)&pData, 0);
|
||||
return len ? pData : L"";
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ void Logger::StartLogFile()
|
||||
else
|
||||
{
|
||||
const std::wstring text = GetFormattedString(ID_STR_LOGFILECREATEFAIL, filePath);
|
||||
GetRainmeter().ShowMessage(nullptr, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
Rainmeter::GetInstance().ShowMessage(nullptr, text.c_str(), MB_OK | MB_ICONERROR);
|
||||
SetLogToFile(false);
|
||||
return;
|
||||
}
|
||||
@ -85,7 +85,7 @@ void Logger::DeleteLogFile()
|
||||
if (_waccess(filePath, 0) != -1)
|
||||
{
|
||||
const std::wstring text = GetFormattedString(ID_STR_LOGFILEDELETE, filePath);
|
||||
const int res = GetRainmeter().ShowMessage(nullptr, text.c_str(), MB_YESNO | MB_ICONQUESTION);
|
||||
const int res = Rainmeter::GetInstance().ShowMessage(nullptr, text.c_str(), MB_YESNO | MB_ICONQUESTION);
|
||||
if (res == IDYES)
|
||||
{
|
||||
SetLogToFile(false);
|
||||
@ -98,7 +98,7 @@ void Logger::SetLogToFile(bool logToFile)
|
||||
{
|
||||
m_LogToFile = logToFile;
|
||||
WritePrivateProfileString(
|
||||
L"Rainmeter", L"Logging", logToFile ? L"1" : L"0", GetRainmeter().GetIniFile().c_str());
|
||||
L"Rainmeter", L"Logging", logToFile ? L"1" : L"0", Rainmeter::GetInstance().GetIniFile().c_str());
|
||||
}
|
||||
|
||||
void Logger::LogInternal(Level level, ULONGLONG timestamp, const WCHAR* source, const WCHAR* msg)
|
||||
|
@ -721,7 +721,7 @@ void Measure::DoChangeAction(bool execute)
|
||||
{
|
||||
if (m_OldValue->IsChanged(newValue, newStringValue))
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnChangeAction.c_str(), m_MeterWindow);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnChangeAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -76,7 +76,7 @@ void MeasureNet::UpdateIFTable()
|
||||
logging = true;
|
||||
}
|
||||
|
||||
if (GetRainmeter().GetDebug() && logging)
|
||||
if (Rainmeter::GetInstance().GetDebug() && logging)
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebugF(L"* NETWORK-INTERFACE: Count=%i", c_NumOfTables);
|
||||
@ -169,7 +169,7 @@ void MeasureNet::UpdateIFTable()
|
||||
logging = true;
|
||||
}
|
||||
|
||||
if (GetRainmeter().GetDebug() && logging)
|
||||
if (Rainmeter::GetInstance().GetDebug() && logging)
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebugF(L"* NETWORK-INTERFACE: Count=%i", c_NumOfTables);
|
||||
@ -463,17 +463,17 @@ void MeasureNet::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
if (m_Net == NET_IN)
|
||||
{
|
||||
netName = L"NetInSpeed";
|
||||
value = GetRainmeter().GetGlobalOptions().netInSpeed;
|
||||
value = Rainmeter::GetInstance().GetGlobalOptions().netInSpeed;
|
||||
}
|
||||
else if (m_Net == NET_OUT)
|
||||
{
|
||||
netName = L"NetOutSpeed";
|
||||
value = GetRainmeter().GetGlobalOptions().netOutSpeed;
|
||||
value = Rainmeter::GetInstance().GetGlobalOptions().netOutSpeed;
|
||||
}
|
||||
else // if (m_Net == NET_TOTAL)
|
||||
{
|
||||
netName = L"NetTotalSpeed";
|
||||
value = GetRainmeter().GetGlobalOptions().netInSpeed + GetRainmeter().GetGlobalOptions().netOutSpeed;
|
||||
value = Rainmeter::GetInstance().GetGlobalOptions().netInSpeed + Rainmeter::GetInstance().GetGlobalOptions().netOutSpeed;
|
||||
}
|
||||
|
||||
double maxValue = parser.ReadFloat(section, L"MaxValue", -1);
|
||||
@ -491,7 +491,7 @@ void MeasureNet::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
m_Cumulative = parser.ReadBool(section, L"Cumulative", false);
|
||||
if (m_Cumulative)
|
||||
{
|
||||
GetRainmeter().SetNetworkStatisticsTimer();
|
||||
Rainmeter::GetInstance().SetNetworkStatisticsTimer();
|
||||
}
|
||||
|
||||
if (maxValue == 0.0)
|
||||
@ -705,7 +705,7 @@ void MeasureNet::InitializeStatic()
|
||||
}
|
||||
}
|
||||
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
UpdateIFTable();
|
||||
}
|
||||
|
@ -127,15 +127,15 @@ void MeasurePlugin::ReadOptions(ConfigParser& parser, const WCHAR* section)
|
||||
}
|
||||
|
||||
// First try from program path
|
||||
std::wstring pluginFile = GetRainmeter().GetPluginPath();
|
||||
std::wstring pluginFile = Rainmeter::GetInstance().GetPluginPath();
|
||||
pluginFile += pluginName;
|
||||
m_Plugin = System::RmLoadLibrary(pluginFile.c_str());
|
||||
if (!m_Plugin)
|
||||
{
|
||||
if (GetRainmeter().HasUserPluginPath())
|
||||
if (Rainmeter::GetInstance().HasUserPluginPath())
|
||||
{
|
||||
// Try from settings path
|
||||
pluginFile = GetRainmeter().GetUserPluginPath();
|
||||
pluginFile = Rainmeter::GetInstance().GetUserPluginPath();
|
||||
pluginFile += pluginName;
|
||||
m_Plugin = System::RmLoadLibrary(pluginFile.c_str());
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ bool Meter::ReplaceMeasures(std::wstring& str, AUTOSCALE autoScale, double scale
|
||||
void Meter::CreateToolTip(MeterWindow* meterWindow)
|
||||
{
|
||||
HWND hMeterWindow = m_MeterWindow->GetWindow();
|
||||
HINSTANCE hInstance = GetRainmeter().GetModuleInstance();
|
||||
HINSTANCE hInstance = Rainmeter::GetInstance().GetModuleInstance();
|
||||
DWORD style = WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP;
|
||||
|
||||
if (m_ToolTipType)
|
||||
|
@ -258,7 +258,7 @@ bool MeterButton::MouseUp(POINT pos, bool execute)
|
||||
{
|
||||
if (execute && m_Clicked && m_Focus && HitTest2(pos.x, pos.y))
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_Command.c_str(), m_MeterWindow);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_Command.c_str(), m_MeterWindow);
|
||||
}
|
||||
m_State = BUTTON_STATE_NORMAL;
|
||||
m_Clicked = false;
|
||||
|
@ -668,7 +668,7 @@ void MeterString::EnumerateInstalledFontFamilies()
|
||||
|
||||
void MeterString::InitializeStatic()
|
||||
{
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebug(L"------------------------------");
|
||||
LogDebug(L"* Font families:");
|
||||
|
@ -160,7 +160,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 = GetRainmeter().GetModuleInstance();
|
||||
wc.hInstance = Rainmeter::GetInstance().GetModuleInstance();
|
||||
wc.hCursor = nullptr; // The cursor should be controlled by using SetCursor() when needed.
|
||||
wc.lpszClassName = METERWINDOW_CLASS_NAME;
|
||||
RegisterClassEx(&wc);
|
||||
@ -179,7 +179,7 @@ MeterWindow::~MeterWindow()
|
||||
|
||||
if (!m_OnCloseAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnCloseAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnCloseAction.c_str(), this);
|
||||
}
|
||||
|
||||
Dispose(false);
|
||||
@ -188,7 +188,7 @@ MeterWindow::~MeterWindow()
|
||||
|
||||
if (c_InstanceCount == 0)
|
||||
{
|
||||
UnregisterClass(METERWINDOW_CLASS_NAME, GetRainmeter().GetModuleInstance());
|
||||
UnregisterClass(METERWINDOW_CLASS_NAME, Rainmeter::GetInstance().GetModuleInstance());
|
||||
|
||||
if (c_DwmInstance)
|
||||
{
|
||||
@ -287,7 +287,7 @@ void MeterWindow::Initialize()
|
||||
CW_USEDEFAULT,
|
||||
nullptr,
|
||||
nullptr,
|
||||
GetRainmeter().GetModuleInstance(),
|
||||
Rainmeter::GetInstance().GetModuleInstance(),
|
||||
this);
|
||||
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
@ -383,8 +383,8 @@ void MeterWindow::Deactivate()
|
||||
if (m_State == STATE_CLOSING) return;
|
||||
m_State = STATE_CLOSING;
|
||||
|
||||
GetRainmeter().RemoveMeterWindow(this);
|
||||
GetRainmeter().AddUnmanagedMeterWindow(this);
|
||||
Rainmeter::GetInstance().RemoveMeterWindow(this);
|
||||
Rainmeter::GetInstance().AddUnmanagedMeterWindow(this);
|
||||
|
||||
HideFade();
|
||||
SetTimer(m_Window, TIMER_DEACTIVATE, m_FadeDuration + 50, nullptr);
|
||||
@ -399,7 +399,7 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
if (m_State == STATE_CLOSING) return;
|
||||
m_State = STATE_REFRESHING;
|
||||
|
||||
GetRainmeter().SetCurrentParser(&m_Parser);
|
||||
Rainmeter::GetInstance().SetCurrentParser(&m_Parser);
|
||||
|
||||
LogNoticeF(this, L"Refreshing skin");
|
||||
|
||||
@ -414,7 +414,7 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
|
||||
if (!ReadSkin())
|
||||
{
|
||||
GetRainmeter().DeactivateSkin(this, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(this, -1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -461,13 +461,13 @@ void MeterWindow::Refresh(bool init, bool all)
|
||||
|
||||
SetTimer(m_Window, TIMER_MOUSE, INTERVAL_MOUSE, nullptr);
|
||||
|
||||
GetRainmeter().SetCurrentParser(nullptr);
|
||||
Rainmeter::GetInstance().SetCurrentParser(nullptr);
|
||||
|
||||
m_State = STATE_RUNNING;
|
||||
|
||||
if (!m_OnRefreshAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnRefreshAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnRefreshAction.c_str(), this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -625,7 +625,7 @@ void MeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
|
||||
break;
|
||||
|
||||
case ZPOSITION_NORMAL:
|
||||
if (all || !GetRainmeter().IsNormalStayDesktop()) break;
|
||||
if (all || !Rainmeter::GetInstance().IsNormalStayDesktop()) break;
|
||||
case ZPOSITION_ONDESKTOP:
|
||||
if (System::GetShowDesktop())
|
||||
{
|
||||
@ -676,7 +676,7 @@ void MeterWindow::ChangeZPos(ZPOSITION zPos, bool all)
|
||||
*/
|
||||
void MeterWindow::ChangeSingleZPos(ZPOSITION zPos, bool all)
|
||||
{
|
||||
if (zPos == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop() && (!all || System::GetShowDesktop()))
|
||||
if (zPos == ZPOSITION_NORMAL && Rainmeter::GetInstance().IsNormalStayDesktop() && (!all || System::GetShowDesktop()))
|
||||
{
|
||||
m_WindowZPosition = zPos;
|
||||
|
||||
@ -1884,7 +1884,7 @@ void MeterWindow::ReadOptions()
|
||||
|
||||
const WCHAR* section = m_FolderPath.c_str();
|
||||
ConfigParser parser;
|
||||
parser.Initialize(GetRainmeter().GetIniFile(), nullptr, section);
|
||||
parser.Initialize(Rainmeter::GetInstance().GetIniFile(), nullptr, section);
|
||||
|
||||
INT writeFlags = 0;
|
||||
auto addWriteFlag = [&](INT flag)
|
||||
@ -1962,7 +1962,7 @@ void MeterWindow::ReadOptions()
|
||||
*/
|
||||
void MeterWindow::WriteOptions(INT setting)
|
||||
{
|
||||
const WCHAR* iniFile = GetRainmeter().GetIniFile().c_str();
|
||||
const WCHAR* iniFile = Rainmeter::GetInstance().GetIniFile().c_str();
|
||||
|
||||
if (*iniFile)
|
||||
{
|
||||
@ -2063,7 +2063,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());
|
||||
GetRainmeter().ShowMessage(m_Window, message.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
Rainmeter::GetInstance().ShowMessage(m_Window, message.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2076,7 +2076,7 @@ bool MeterWindow::ReadSkin()
|
||||
m_Parser.Initialize(iniFile, this, nullptr, &resourcePath);
|
||||
|
||||
m_Canvas = Gfx::Canvas::Create(
|
||||
m_UseD2D && GetRainmeter().GetUseD2D() ? Gfx::Renderer::PreferD2D : Gfx::Renderer::GDIP);
|
||||
m_UseD2D && Rainmeter::GetInstance().GetUseD2D() ? Gfx::Renderer::PreferD2D : Gfx::Renderer::GDIP);
|
||||
m_Canvas->SetAccurateText(m_Parser.ReadBool(L"Rainmeter", L"AccurateText", false));
|
||||
|
||||
// Gotta have some kind of buffer during initialization
|
||||
@ -2096,7 +2096,7 @@ bool MeterWindow::ReadSkin()
|
||||
}
|
||||
|
||||
std::wstring text = GetFormattedString(ID_STR_NEWVERSIONREQUIRED, m_FolderPath.c_str(), m_FileName.c_str(), buffer);
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2234,7 +2234,7 @@ bool MeterWindow::ReadSkin()
|
||||
do
|
||||
{
|
||||
// Try program folder first
|
||||
std::wstring szFontFile = GetRainmeter().GetPath() + L"Fonts\\";
|
||||
std::wstring szFontFile = Rainmeter::GetInstance().GetPath() + L"Fonts\\";
|
||||
szFontFile += localFont;
|
||||
if (!m_FontCollection->AddFile(szFontFile.c_str()))
|
||||
{
|
||||
@ -2310,7 +2310,7 @@ bool MeterWindow::ReadSkin()
|
||||
if (m_Meters.empty())
|
||||
{
|
||||
std::wstring text = GetFormattedString(ID_STR_NOMETERSINSKIN, m_FolderPath.c_str(), m_FileName.c_str());
|
||||
GetRainmeter().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
Rainmeter::GetInstance().ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONEXCLAMATION);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2794,7 +2794,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 (GetRainmeter().IsRedrawable())
|
||||
if (Rainmeter::GetInstance().IsRedrawable())
|
||||
{
|
||||
Redraw();
|
||||
}
|
||||
@ -2805,7 +2805,7 @@ void MeterWindow::Update(bool refresh)
|
||||
|
||||
if (!m_OnUpdateAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnUpdateAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnUpdateAction.c_str(), this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2862,7 +2862,7 @@ LRESULT MeterWindow::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case TIMER_MOUSE:
|
||||
if (!GetRainmeter().IsMenuActive() && !m_Dragging)
|
||||
if (!Rainmeter::GetInstance().IsMenuActive() && !m_Dragging)
|
||||
{
|
||||
ShowWindowIfAppropriate();
|
||||
|
||||
@ -2967,7 +2967,7 @@ LRESULT MeterWindow::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
if (m_FadeStartTime == 0)
|
||||
{
|
||||
KillTimer(m_Window, TIMER_DEACTIVATE);
|
||||
GetRainmeter().RemoveUnmanagedMeterWindow(this);
|
||||
Rainmeter::GetInstance().RemoveUnmanagedMeterWindow(this);
|
||||
delete this;
|
||||
}
|
||||
break;
|
||||
@ -3392,7 +3392,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
switch (wParam)
|
||||
{
|
||||
case IDM_SKIN_EDITSKIN:
|
||||
GetRainmeter().EditSkinFile(m_FolderPath, m_FileName);
|
||||
Rainmeter::GetInstance().EditSkinFile(m_FolderPath, m_FileName);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_REFRESH:
|
||||
@ -3400,7 +3400,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case IDM_SKIN_OPENSKINSFOLDER:
|
||||
GetRainmeter().OpenSkinFolder(m_FolderPath);
|
||||
Rainmeter::GetInstance().OpenSkinFolder(m_FolderPath);
|
||||
break;
|
||||
|
||||
case IDM_SKIN_MANAGESKIN:
|
||||
@ -3466,7 +3466,7 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
case IDM_CLOSESKIN:
|
||||
if (m_State != STATE_CLOSING)
|
||||
{
|
||||
GetRainmeter().DeactivateSkin(this, -1);
|
||||
Rainmeter::GetInstance().DeactivateSkin(this, -1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3556,13 +3556,13 @@ LRESULT MeterWindow::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (!action.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(action.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(action.c_str(), this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Forward to tray window, which handles all the other commands
|
||||
HWND tray = GetRainmeter().GetTrayWindow()->GetWindow();
|
||||
HWND tray = Rainmeter::GetInstance().GetTrayWindow()->GetWindow();
|
||||
|
||||
if (wParam == IDM_QUIT)
|
||||
{
|
||||
@ -3780,7 +3780,7 @@ LRESULT MeterWindow::OnExitSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
*/
|
||||
LRESULT MeterWindow::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (m_WindowDraggable && !GetRainmeter().GetDisableDragging())
|
||||
if (m_WindowDraggable && !Rainmeter::GetInstance().GetDisableDragging())
|
||||
{
|
||||
POINT pos;
|
||||
pos.x = GET_X_LPARAM(lParam);
|
||||
@ -3820,7 +3820,7 @@ LRESULT MeterWindow::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
|
||||
if (m_State != STATE_REFRESHING)
|
||||
{
|
||||
if (m_WindowZPosition == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop() && System::GetShowDesktop())
|
||||
if (m_WindowZPosition == ZPOSITION_NORMAL && Rainmeter::GetInstance().IsNormalStayDesktop() && System::GetShowDesktop())
|
||||
{
|
||||
if (!(wp->flags & (SWP_NOOWNERZORDER | SWP_NOACTIVATE)))
|
||||
{
|
||||
@ -3865,7 +3865,7 @@ LRESULT MeterWindow::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
}
|
||||
|
||||
// Snap to other windows
|
||||
for (auto iter = GetRainmeter().GetAllMeterWindows().cbegin(); iter != GetRainmeter().GetAllMeterWindows().cend(); ++iter)
|
||||
for (auto iter = Rainmeter::GetInstance().GetAllMeterWindows().cbegin(); iter != Rainmeter::GetInstance().GetAllMeterWindows().cend(); ++iter)
|
||||
{
|
||||
if ((*iter).second != this)
|
||||
{
|
||||
@ -4348,14 +4348,14 @@ LRESULT MeterWindow::OnSetWindowFocus(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
case WM_SETFOCUS:
|
||||
if (!m_OnFocusAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnFocusAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnFocusAction.c_str(), this);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_KILLFOCUS:
|
||||
if (!m_OnUnfocusAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnUnfocusAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnUnfocusAction.c_str(), this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -4398,7 +4398,7 @@ LRESULT MeterWindow::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
}
|
||||
|
||||
GetRainmeter().ShowContextMenu(pos, this);
|
||||
Rainmeter::GetInstance().ShowContextMenu(pos, this);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -4439,7 +4439,7 @@ bool MeterWindow::DoAction(int x, int y, MOUSEACTION action, bool test)
|
||||
{
|
||||
if (!test)
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(command.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(command.c_str(), this);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -4475,7 +4475,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!m_Mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4512,7 +4512,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
GetRainmeter().ExecuteCommand(mouse.GetOverAction().c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4538,7 +4538,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
const Mouse& mouse = (*j)->GetMouse();
|
||||
if (!mouse.GetLeaveAction().empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(mouse.GetLeaveAction().c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(mouse.GetLeaveAction().c_str(), this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -4561,7 +4561,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
if (!m_Mouse.GetOverAction().empty())
|
||||
{
|
||||
UINT currCounter = m_MouseMoveCounter;
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_Mouse.GetOverAction().c_str(), this);
|
||||
return (currCounter == m_MouseMoveCounter);
|
||||
}
|
||||
}
|
||||
@ -4581,7 +4581,7 @@ bool MeterWindow::DoMoveAction(int x, int y, MOUSEACTION action)
|
||||
|
||||
if (!m_Mouse.GetLeaveAction().empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_Mouse.GetLeaveAction().c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_Mouse.GetLeaveAction().c_str(), this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -4658,7 +4658,7 @@ LRESULT MeterWindow::OnWake(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (wParam == PBT_APMRESUMEAUTOMATIC && !m_OnWakeAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnWakeAction.c_str(), this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnWakeAction.c_str(), this);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -4783,10 +4783,10 @@ LRESULT MeterWindow::OnCopyData(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (pCopyDataStruct && (pCopyDataStruct->dwData == 1) && (pCopyDataStruct->cbData > 0))
|
||||
{
|
||||
if (GetRainmeter().HasMeterWindow(this))
|
||||
if (Rainmeter::GetInstance().HasMeterWindow(this))
|
||||
{
|
||||
const WCHAR* command = (const WCHAR*)pCopyDataStruct->lpData;
|
||||
GetRainmeter().ExecuteCommand(command, this);
|
||||
Rainmeter::GetInstance().ExecuteCommand(command, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4841,8 +4841,8 @@ void MeterWindow::MakePathAbsolute(std::wstring& path)
|
||||
else
|
||||
{
|
||||
std::wstring absolute;
|
||||
absolute.reserve(GetRainmeter().GetSkinPath().size() + m_FolderPath.size() + 1 + path.size());
|
||||
absolute = GetRainmeter().GetSkinPath();
|
||||
absolute.reserve(Rainmeter::GetInstance().GetSkinPath().size() + m_FolderPath.size() + 1 + path.size());
|
||||
absolute = Rainmeter::GetInstance().GetSkinPath();
|
||||
absolute += m_FolderPath;
|
||||
absolute += L'\\';
|
||||
absolute += path;
|
||||
@ -4852,7 +4852,7 @@ void MeterWindow::MakePathAbsolute(std::wstring& path)
|
||||
|
||||
std::wstring MeterWindow::GetFilePath()
|
||||
{
|
||||
std::wstring file = GetRainmeter().GetSkinPath() + m_FolderPath;
|
||||
std::wstring file = Rainmeter::GetInstance().GetSkinPath() + m_FolderPath;
|
||||
file += L'\\';
|
||||
file += m_FileName;
|
||||
return file;
|
||||
@ -4871,7 +4871,7 @@ std::wstring MeterWindow::GetRootName()
|
||||
|
||||
std::wstring MeterWindow::GetRootPath()
|
||||
{
|
||||
std::wstring path = GetRainmeter().GetSkinPath();
|
||||
std::wstring path = Rainmeter::GetInstance().GetSkinPath();
|
||||
|
||||
std::wstring::size_type loc;
|
||||
if ((loc = m_FolderPath.find_first_of(L'\\')) != std::wstring::npos)
|
||||
|
@ -47,50 +47,8 @@ enum INTERVAL
|
||||
*/
|
||||
int RainmeterMain(LPWSTR cmdLine)
|
||||
{
|
||||
// Avoid loading a dll from current directory
|
||||
SetDllDirectory(L"");
|
||||
|
||||
const WCHAR* layout = nullptr;
|
||||
|
||||
if (cmdLine[0] == L'!' || cmdLine[0] == L'[')
|
||||
{
|
||||
HWND wnd = FindWindow(RAINMETER_CLASS_NAME, RAINMETER_WINDOW_NAME);
|
||||
if (wnd)
|
||||
{
|
||||
// Deliver bang to existing Rainmeter instance
|
||||
COPYDATASTRUCT cds;
|
||||
cds.dwData = 1;
|
||||
cds.cbData = (DWORD)((wcslen(cmdLine) + 1) * sizeof(WCHAR));
|
||||
cds.lpData = (PVOID)cmdLine;
|
||||
SendMessage(wnd, WM_COPYDATA, 0, (LPARAM)&cds);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Disallow everything except !LoadLayout.
|
||||
if (_wcsnicmp(cmdLine, L"!LoadLayout ", 12) == 0)
|
||||
{
|
||||
layout = cmdLine + 12; // Skip "!LoadLayout ".
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (cmdLine[0] == L'"')
|
||||
{
|
||||
// Strip quotes
|
||||
++cmdLine;
|
||||
WCHAR* pos = wcsrchr(cmdLine, L'"');
|
||||
if (pos)
|
||||
{
|
||||
*pos = L'\0';
|
||||
}
|
||||
}
|
||||
|
||||
const WCHAR* iniFile = (*cmdLine && !layout) ? cmdLine : nullptr;
|
||||
|
||||
auto& rainmeter = GetRainmeter();
|
||||
int ret = rainmeter.Initialize(iniFile, layout);
|
||||
auto& rainmeter = Rainmeter::GetInstance();
|
||||
int ret = rainmeter.Initialize(nullptr, nullptr);
|
||||
if (ret == 0)
|
||||
{
|
||||
ret = rainmeter.MessagePump();
|
||||
@ -100,6 +58,31 @@ int RainmeterMain(LPWSTR cmdLine)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
** Initializes Rainmeter.
|
||||
**
|
||||
*/
|
||||
void* Rainmeter_Initialize()
|
||||
{
|
||||
int res = Rainmeter::GetInstance().Initialize(nullptr, nullptr);
|
||||
|
||||
// Success?
|
||||
if (res == 0)
|
||||
return &Rainmeter::GetInstance();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/*
|
||||
** Finalizes Rainmeter.
|
||||
**
|
||||
*/
|
||||
void Rainmeter_Finalize(void* ptr)
|
||||
{
|
||||
Rainmeter* rainmeter = (Rainmeter*)ptr;
|
||||
rainmeter->Finalize();
|
||||
}
|
||||
|
||||
/*
|
||||
** Constructor
|
||||
**
|
||||
@ -205,12 +188,6 @@ int Rainmeter::Initialize(LPCWSTR iniPath, LPCWSTR layout)
|
||||
}
|
||||
}
|
||||
|
||||
if (IsAlreadyRunning())
|
||||
{
|
||||
// Instance already running with same .ini file
|
||||
return 1;
|
||||
}
|
||||
|
||||
WNDCLASS wc = {0};
|
||||
wc.lpfnWndProc = (WNDPROC)MainWndProc;
|
||||
wc.hInstance = m_Instance;
|
||||
@ -441,65 +418,6 @@ void Rainmeter::Finalize()
|
||||
if (m_Mutex) ReleaseMutex(m_Mutex);
|
||||
}
|
||||
|
||||
bool Rainmeter::IsAlreadyRunning()
|
||||
{
|
||||
typedef struct
|
||||
{
|
||||
ULONG i[2];
|
||||
ULONG buf[4];
|
||||
unsigned char in[64];
|
||||
unsigned char digest[16];
|
||||
} MD5_CTX;
|
||||
|
||||
typedef void (WINAPI * FPMD5INIT)(MD5_CTX* context);
|
||||
typedef void (WINAPI * FPMD5UPDATE)(MD5_CTX* context, const unsigned char* input, unsigned int inlen);
|
||||
typedef void (WINAPI * FPMD5FINAL)(MD5_CTX* context);
|
||||
|
||||
bool alreadyRunning = false;
|
||||
|
||||
// Create MD5 digest from command line
|
||||
HMODULE cryptDll = System::RmLoadLibrary(L"cryptdll.dll");
|
||||
if (cryptDll)
|
||||
{
|
||||
FPMD5INIT MD5Init = (FPMD5INIT)GetProcAddress(cryptDll, "MD5Init");
|
||||
FPMD5UPDATE MD5Update = (FPMD5UPDATE)GetProcAddress(cryptDll, "MD5Update");
|
||||
FPMD5FINAL MD5Final = (FPMD5FINAL)GetProcAddress(cryptDll, "MD5Final");
|
||||
if (MD5Init && MD5Update && MD5Final)
|
||||
{
|
||||
std::wstring data = m_IniFile;
|
||||
_wcsupr(&data[0]);
|
||||
|
||||
MD5_CTX ctx = {0};
|
||||
MD5Init(&ctx);
|
||||
MD5Update(&ctx, (LPBYTE)&data[0], (UINT)data.length() * sizeof(WCHAR));
|
||||
MD5Final(&ctx);
|
||||
FreeLibrary(cryptDll);
|
||||
|
||||
// Convert MD5 digest to mutex string (e.g. "Rainmeter0123456789abcdef0123456789abcdef")
|
||||
const WCHAR hexChars[] = L"0123456789abcdef";
|
||||
WCHAR mutexName[64] = L"Rainmeter";
|
||||
WCHAR* pos = mutexName + (_countof(L"Rainmeter") - 1);
|
||||
for (size_t i = 0; i < 16; ++i)
|
||||
{
|
||||
*(pos++) = hexChars[ctx.digest[i] >> 4];
|
||||
*(pos++) = hexChars[ctx.digest[i] & 0xF];
|
||||
}
|
||||
*pos = L'\0';
|
||||
|
||||
m_Mutex = CreateMutex(nullptr, FALSE, mutexName);
|
||||
if (GetLastError() == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
alreadyRunning = true;
|
||||
m_Mutex = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
FreeLibrary(cryptDll);
|
||||
}
|
||||
|
||||
return alreadyRunning;
|
||||
}
|
||||
|
||||
int Rainmeter::MessagePump()
|
||||
{
|
||||
MSG msg;
|
||||
@ -539,7 +457,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))
|
||||
{
|
||||
GetRainmeter().DelayedExecuteCommand(data);
|
||||
Rainmeter::GetInstance().DelayedExecuteCommand(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -550,12 +468,12 @@ LRESULT CALLBACK Rainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA
|
||||
{
|
||||
MeasureNet::UpdateIFTable();
|
||||
MeasureNet::UpdateStats();
|
||||
GetRainmeter().WriteStats(false);
|
||||
Rainmeter::GetInstance().WriteStats(false);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_DELAYED_REFRESH_ALL:
|
||||
GetRainmeter().RefreshAll();
|
||||
Rainmeter::GetInstance().RefreshAll();
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_DELAYED_EXECUTE:
|
||||
@ -563,15 +481,15 @@ LRESULT CALLBACK Rainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA
|
||||
{
|
||||
// Execute bang
|
||||
WCHAR* bang = (WCHAR*)lParam;
|
||||
GetRainmeter().ExecuteCommand(bang, nullptr);
|
||||
Rainmeter::GetInstance().ExecuteCommand(bang, nullptr);
|
||||
free(bang); // _wcsdup()
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_RAINMETER_EXECUTE:
|
||||
if (GetRainmeter().HasMeterWindow((MeterWindow*)wParam))
|
||||
if (Rainmeter::GetInstance().HasMeterWindow((MeterWindow*)wParam))
|
||||
{
|
||||
GetRainmeter().ExecuteCommand((const WCHAR*)lParam, (MeterWindow*)wParam);
|
||||
Rainmeter::GetInstance().ExecuteCommand((const WCHAR*)lParam, (MeterWindow*)wParam);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -66,7 +66,6 @@ public:
|
||||
int Initialize(LPCWSTR iniPath, LPCWSTR layout);
|
||||
void Finalize();
|
||||
|
||||
bool IsAlreadyRunning();
|
||||
int MessagePump();
|
||||
|
||||
void SetNetworkStatisticsTimer();
|
||||
@ -273,15 +272,14 @@ private:
|
||||
GlobalOptions m_GlobalOptions;
|
||||
};
|
||||
|
||||
// Convenience function.
|
||||
inline Rainmeter& GetRainmeter() { return Rainmeter::GetInstance(); }
|
||||
|
||||
#ifdef LIBRARY_EXPORTS
|
||||
#define EXPORT_PLUGIN EXTERN_C
|
||||
#define EXPORT_PLUGIN EXTERN_C __declspec(dllexport)
|
||||
#else
|
||||
#define EXPORT_PLUGIN EXTERN_C __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
EXPORT_PLUGIN int RainmeterMain(LPWSTR cmdLine);
|
||||
EXPORT_PLUGIN void* Rainmeter_Initialize();
|
||||
EXPORT_PLUGIN void Rainmeter_Finalize(void* ptr);
|
||||
|
||||
#endif
|
||||
|
@ -82,6 +82,6 @@ void Section::DoUpdateAction()
|
||||
{
|
||||
if (!m_OnUpdateAction.empty())
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(m_OnUpdateAction.c_str(), m_MeterWindow);
|
||||
Rainmeter::GetInstance().ExecuteCommand(m_OnUpdateAction.c_str(), m_MeterWindow);
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonit
|
||||
info.cbSize = sizeof(MONITORINFOEX);
|
||||
GetMonitorInfo(hMonitor, &info);
|
||||
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebug(info.szDevice);
|
||||
LogDebugF(L" Flags : %s(0x%08X)", (info.dwFlags & MONITORINFOF_PRIMARY) ? L"PRIMARY " : L"", info.dwFlags);
|
||||
@ -240,7 +240,7 @@ size_t System::GetMonitorCount()
|
||||
void System::SetMultiMonitorInfo()
|
||||
{
|
||||
std::vector<MonitorInfo>& monitors = c_Monitors.monitors;
|
||||
bool logging = GetRainmeter().GetDebug();
|
||||
bool logging = Rainmeter::GetInstance().GetDebug();
|
||||
|
||||
c_Monitors.vsT = GetSystemMetrics(SM_YVIRTUALSCREEN);
|
||||
c_Monitors.vsL = GetSystemMetrics(SM_XVIRTUALSCREEN);
|
||||
@ -528,7 +528,7 @@ void System::UpdateWorkareaInfo()
|
||||
|
||||
(*iter).work = info.rcWork;
|
||||
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebugF(L"WorkArea@%i : L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)",
|
||||
i,
|
||||
@ -633,7 +633,7 @@ HWND System::GetBackmostTopWindow()
|
||||
// Skip all ZPOSITION_ONDESKTOP, ZPOSITION_BOTTOM, and ZPOSITION_NORMAL windows
|
||||
while (winPos = ::GetNextWindow(winPos, GW_HWNDPREV))
|
||||
{
|
||||
MeterWindow* wnd = GetRainmeter().GetMeterWindow(winPos);
|
||||
MeterWindow* wnd = Rainmeter::GetInstance().GetMeterWindow(winPos);
|
||||
if (!wnd ||
|
||||
(wnd->GetWindowZPosition() != ZPOSITION_NORMAL &&
|
||||
wnd->GetWindowZPosition() != ZPOSITION_ONDESKTOP &&
|
||||
@ -666,7 +666,7 @@ bool System::BelongToSameProcess(HWND hwndA, HWND hwndB)
|
||||
*/
|
||||
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
{
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = Rainmeter::GetInstance().GetDebug() && DEBUG_VERBOSE;
|
||||
const int classLen = _countof(METERWINDOW_CLASS_NAME) + (DEBUG_VERBOSE ? 32 : 1);
|
||||
WCHAR className[classLen];
|
||||
MeterWindow* Window;
|
||||
@ -674,11 +674,11 @@ BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
|
||||
if (GetClassName(hwnd, className, classLen) > 0 &&
|
||||
wcscmp(className, METERWINDOW_CLASS_NAME) == 0 &&
|
||||
(Window = GetRainmeter().GetMeterWindow(hwnd)))
|
||||
(Window = Rainmeter::GetInstance().GetMeterWindow(hwnd)))
|
||||
{
|
||||
ZPOSITION zPos = Window->GetWindowZPosition();
|
||||
if (zPos == ZPOSITION_ONDESKTOP ||
|
||||
(zPos == ZPOSITION_NORMAL && GetRainmeter().IsNormalStayDesktop()) ||
|
||||
(zPos == ZPOSITION_NORMAL && Rainmeter::GetInstance().IsNormalStayDesktop()) ||
|
||||
zPos == ZPOSITION_ONBOTTOM)
|
||||
{
|
||||
if (lParam)
|
||||
@ -717,7 +717,7 @@ BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
|
||||
*/
|
||||
void System::ChangeZPosInOrder()
|
||||
{
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = Rainmeter::GetInstance().GetDebug() && DEBUG_VERBOSE;
|
||||
std::vector<MeterWindow*> windowsInZOrder;
|
||||
|
||||
if (logging) LogDebug(L"1: ----- BEFORE -----");
|
||||
@ -738,7 +738,7 @@ void System::ChangeZPosInOrder()
|
||||
}
|
||||
};
|
||||
|
||||
if (GetRainmeter().IsNormalStayDesktop())
|
||||
if (Rainmeter::GetInstance().IsNormalStayDesktop())
|
||||
{
|
||||
resetZPos(ZPOSITION_NORMAL);
|
||||
}
|
||||
@ -765,7 +765,7 @@ void System::ChangeZPosInOrder()
|
||||
*/
|
||||
void System::PrepareHelperWindow(HWND WorkerW)
|
||||
{
|
||||
bool logging = GetRainmeter().GetDebug() && DEBUG_VERBOSE;
|
||||
bool logging = Rainmeter::GetInstance().GetDebug() && DEBUG_VERBOSE;
|
||||
|
||||
SetWindowPos(c_Window, HWND_BOTTOM, 0, 0, 0, 0, ZPOS_FLAGS); // always on bottom
|
||||
|
||||
@ -848,7 +848,7 @@ bool System::CheckDesktopState(HWND WorkerW)
|
||||
{
|
||||
c_ShowDesktop = !c_ShowDesktop;
|
||||
|
||||
if (GetRainmeter().GetDebug())
|
||||
if (Rainmeter::GetInstance().GetDebug())
|
||||
{
|
||||
LogDebugF(L"System: \"Show %s\" has been detected.",
|
||||
c_ShowDesktop ? L"desktop" : L"open windows");
|
||||
@ -943,10 +943,10 @@ LRESULT CALLBACK System::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
case TIMER_RESUME:
|
||||
KillTimer(hWnd, TIMER_RESUME);
|
||||
if (GetRainmeter().IsRedrawable())
|
||||
if (Rainmeter::GetInstance().IsRedrawable())
|
||||
{
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = GetRainmeter().GetAllMeterWindows().begin();
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = Rainmeter::GetInstance().GetAllMeterWindows().begin();
|
||||
for ( ; iter != Rainmeter::GetInstance().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
(*iter).second->RedrawWindow();
|
||||
}
|
||||
@ -970,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 = GetRainmeter().GetAllMeterWindows().begin();
|
||||
for ( ; iter != GetRainmeter().GetAllMeterWindows().end(); ++iter)
|
||||
std::map<std::wstring, MeterWindow*>::const_iterator iter = Rainmeter::GetInstance().GetAllMeterWindows().begin();
|
||||
for ( ; iter != Rainmeter::GetInstance().GetAllMeterWindows().end(); ++iter)
|
||||
{
|
||||
PostMessage((*iter).second->GetWindow(), WM_METERWINDOW_DELAYED_MOVE, (WPARAM)uMsg, (LPARAM)0);
|
||||
}
|
||||
@ -1147,7 +1147,7 @@ void System::SetWallpaper(const std::wstring& wallpaper, const std::wstring& sty
|
||||
Bitmap bitmap(wallpaper.c_str());
|
||||
if (bitmap.GetLastStatus() == Ok)
|
||||
{
|
||||
std::wstring file = GetRainmeter().GetSettingsPath() + L"Wallpaper.bmp";
|
||||
std::wstring file = Rainmeter::GetInstance().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)
|
||||
|
@ -87,7 +87,7 @@ void TrayWindow::Initialize()
|
||||
{
|
||||
WNDCLASS wc = {0};
|
||||
wc.lpfnWndProc = (WNDPROC)WndProc;
|
||||
wc.hInstance = GetRainmeter().GetModuleInstance();
|
||||
wc.hInstance = Rainmeter::GetInstance().GetModuleInstance();
|
||||
wc.lpszClassName = L"RainmeterTrayClass";
|
||||
wc.hIcon = GetIcon(IDI_RAINMETER);
|
||||
|
||||
@ -337,7 +337,7 @@ void TrayWindow::SetTrayIcon(bool enabled)
|
||||
m_IconEnabled = enabled;
|
||||
|
||||
// Save to Rainmeter.ini.
|
||||
const std::wstring& iniFile = GetRainmeter().GetIniFile();
|
||||
const std::wstring& iniFile = Rainmeter::GetInstance().GetIniFile();
|
||||
WritePrivateProfileString(L"Rainmeter", L"TrayIcon", enabled ? nullptr : L"0", iniFile.c_str());
|
||||
}
|
||||
|
||||
@ -370,8 +370,8 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
|
||||
if (!measureName.empty())
|
||||
{
|
||||
ConfigParser* oldParser = GetRainmeter().GetCurrentParser();
|
||||
GetRainmeter().SetCurrentParser(&parser);
|
||||
ConfigParser* oldParser = Rainmeter::GetInstance().GetCurrentParser();
|
||||
Rainmeter::GetInstance().SetCurrentParser(&parser);
|
||||
|
||||
m_Measure = Measure::Create(measureName.c_str(), nullptr, L"TrayMeasure");
|
||||
if (m_Measure)
|
||||
@ -379,7 +379,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
m_Measure->ReadOptions(parser);
|
||||
}
|
||||
|
||||
GetRainmeter().SetCurrentParser(oldParser);
|
||||
Rainmeter::GetInstance().SetCurrentParser(oldParser);
|
||||
}
|
||||
|
||||
const WCHAR* type = parser.ReadString(L"TrayMeasure", L"TrayMeter", m_Measure ? L"HISTOGRAM" : L"NONE").c_str();
|
||||
@ -402,7 +402,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
// Load the bitmaps if defined
|
||||
if (!imageName.empty())
|
||||
{
|
||||
imageName.insert(0, GetRainmeter().GetSkinPath());
|
||||
imageName.insert(0, Rainmeter::GetInstance().GetSkinPath());
|
||||
const WCHAR* imagePath = imageName.c_str();
|
||||
if (_wcsicmp(imagePath + (imageName.size() - 4), L".ico") == 0)
|
||||
{
|
||||
@ -457,7 +457,7 @@ void TrayWindow::ReadOptions(ConfigParser& parser)
|
||||
|
||||
LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
TrayWindow* tray = GetRainmeter().GetTrayWindow();
|
||||
TrayWindow* tray = Rainmeter::GetInstance().GetTrayWindow();
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
@ -481,11 +481,11 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_REFRESH:
|
||||
PostMessage(GetRainmeter().GetWindow(), WM_RAINMETER_DELAYED_REFRESH_ALL, (WPARAM)nullptr, (LPARAM)nullptr);
|
||||
PostMessage(Rainmeter::GetInstance().GetWindow(), WM_RAINMETER_DELAYED_REFRESH_ALL, (WPARAM)nullptr, (LPARAM)nullptr);
|
||||
break;
|
||||
|
||||
case IDM_SHOWLOGFILE:
|
||||
GetRainmeter().ShowLogFile();
|
||||
Rainmeter::GetInstance().ShowLogFile();
|
||||
break;
|
||||
|
||||
case IDM_STARTLOG:
|
||||
@ -501,15 +501,15 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_DEBUGLOG:
|
||||
GetRainmeter().SetDebug(!GetRainmeter().GetDebug());
|
||||
Rainmeter::GetInstance().SetDebug(!Rainmeter::GetInstance().GetDebug());
|
||||
break;
|
||||
|
||||
case IDM_DISABLEDRAG:
|
||||
GetRainmeter().SetDisableDragging(!GetRainmeter().GetDisableDragging());
|
||||
Rainmeter::GetInstance().SetDisableDragging(!Rainmeter::GetInstance().GetDisableDragging());
|
||||
break;
|
||||
|
||||
case IDM_EDITCONFIG:
|
||||
GetRainmeter().EditSettings();
|
||||
Rainmeter::GetInstance().EditSettings();
|
||||
break;
|
||||
|
||||
case IDM_QUIT:
|
||||
@ -517,7 +517,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
break;
|
||||
|
||||
case IDM_OPENSKINSFOLDER:
|
||||
GetRainmeter().OpenSkinFolder();
|
||||
Rainmeter::GetInstance().OpenSkinFolder();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -528,21 +528,21 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
{
|
||||
int pos = mID - ID_THEME_FIRST;
|
||||
|
||||
const std::vector<std::wstring>& layouts = GetRainmeter().GetAllLayouts();
|
||||
const std::vector<std::wstring>& layouts = Rainmeter::GetInstance().GetAllLayouts();
|
||||
if (pos >= 0 && pos < (int)layouts.size())
|
||||
{
|
||||
GetRainmeter().LoadLayout(layouts[pos]);
|
||||
Rainmeter::GetInstance().LoadLayout(layouts[pos]);
|
||||
}
|
||||
}
|
||||
else if (mID >= ID_CONFIG_FIRST && mID <= ID_CONFIG_LAST)
|
||||
{
|
||||
GetRainmeter().ToggleSkinWithID(mID);
|
||||
Rainmeter::GetInstance().ToggleSkinWithID(mID);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Forward the message to correct window
|
||||
int index = (int)(wParam >> 16);
|
||||
const std::map<std::wstring, MeterWindow*>& windows = GetRainmeter().GetAllMeterWindows();
|
||||
const std::map<std::wstring, MeterWindow*>& windows = Rainmeter::GetInstance().GetAllMeterWindows();
|
||||
|
||||
if (index < (int)windows.size())
|
||||
{
|
||||
@ -573,19 +573,19 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
switch (uMouseMsg)
|
||||
{
|
||||
case WM_MBUTTONDOWN:
|
||||
bang = GetRainmeter().GetTrayExecuteM().c_str();
|
||||
bang = Rainmeter::GetInstance().GetTrayExecuteM().c_str();
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
bang = GetRainmeter().GetTrayExecuteR().c_str();
|
||||
bang = Rainmeter::GetInstance().GetTrayExecuteR().c_str();
|
||||
break;
|
||||
|
||||
case WM_MBUTTONDBLCLK:
|
||||
bang = GetRainmeter().GetTrayExecuteDM().c_str();
|
||||
bang = Rainmeter::GetInstance().GetTrayExecuteDM().c_str();
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDBLCLK:
|
||||
bang = GetRainmeter().GetTrayExecuteDR().c_str();
|
||||
bang = Rainmeter::GetInstance().GetTrayExecuteDR().c_str();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -596,7 +596,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
if (*bang &&
|
||||
!IsCtrlKeyDown()) // Ctrl is pressed, so only run default action
|
||||
{
|
||||
GetRainmeter().ExecuteCommand(bang, nullptr);
|
||||
Rainmeter::GetInstance().ExecuteCommand(bang, nullptr);
|
||||
tray->m_TrayContextMenuEnabled = (uMouseMsg != WM_RBUTTONDOWN);
|
||||
break;
|
||||
}
|
||||
@ -612,7 +612,7 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
if (tray->m_TrayContextMenuEnabled)
|
||||
{
|
||||
POINT pos = System::GetCursorPosition();
|
||||
GetRainmeter().ShowContextMenu(pos, nullptr);
|
||||
Rainmeter::GetInstance().ShowContextMenu(pos, nullptr);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -656,19 +656,19 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
switch (wParam)
|
||||
{
|
||||
case RAINMETER_QUERY_ID_SKINS_PATH:
|
||||
sendCopyData(GetRainmeter().GetSkinPath());
|
||||
sendCopyData(Rainmeter::GetInstance().GetSkinPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_SETTINGS_PATH:
|
||||
sendCopyData(GetRainmeter().GetSettingsPath());
|
||||
sendCopyData(Rainmeter::GetInstance().GetSettingsPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_PLUGINS_PATH:
|
||||
sendCopyData(GetRainmeter().GetPluginPath());
|
||||
sendCopyData(Rainmeter::GetInstance().GetPluginPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_PROGRAM_PATH:
|
||||
sendCopyData(GetRainmeter().GetPath());
|
||||
sendCopyData(Rainmeter::GetInstance().GetPath());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_LOG_PATH:
|
||||
@ -676,12 +676,12 @@ LRESULT CALLBACK TrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_CONFIG_EDITOR:
|
||||
sendCopyData(GetRainmeter().GetSkinEditor());
|
||||
sendCopyData(Rainmeter::GetInstance().GetSkinEditor());
|
||||
return 0;
|
||||
|
||||
case RAINMETER_QUERY_ID_IS_DEBUGGING:
|
||||
{
|
||||
BOOL debug = GetRainmeter().GetDebug();
|
||||
BOOL debug = Rainmeter::GetInstance().GetDebug();
|
||||
SendMessage((HWND)lParam, WM_QUERY_RAINMETER_RETURN, (WPARAM)hWnd, (LPARAM)debug);
|
||||
}
|
||||
return 0;
|
||||
@ -695,7 +695,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 = GetRainmeter().GetMeterWindow(folderPath);
|
||||
MeterWindow* mw = Rainmeter::GetInstance().GetMeterWindow(folderPath);
|
||||
return (mw) ? (LRESULT)mw->GetWindow() : 0;
|
||||
}
|
||||
}
|
||||
|
@ -70,17 +70,17 @@ void CheckVersion(void* dummy)
|
||||
if (availableVersion > RAINMETER_VERSION ||
|
||||
(revision_beta && availableVersion == RAINMETER_VERSION))
|
||||
{
|
||||
GetRainmeter().SetNewVersion();
|
||||
Rainmeter::GetInstance().SetNewVersion();
|
||||
|
||||
WCHAR buffer[32];
|
||||
const WCHAR* dataFile = GetRainmeter().GetDataFile().c_str();
|
||||
const WCHAR* dataFile = Rainmeter::GetInstance().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)
|
||||
{
|
||||
GetRainmeter().GetTrayWindow()->ShowUpdateNotification(version);
|
||||
Rainmeter::GetInstance().GetTrayWindow()->ShowUpdateNotification(version);
|
||||
WritePrivateProfileString(L"Rainmeter", L"LastCheck", version, dataFile);
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ static int Bang(lua_State* L)
|
||||
if (top == 2) // 1 argument
|
||||
{
|
||||
parser.ReplaceVariables(bang);
|
||||
GetRainmeter().ExecuteCommand(bang.c_str(), self);
|
||||
Rainmeter::GetInstance().ExecuteCommand(bang.c_str(), self);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -54,7 +54,7 @@ static int Bang(lua_State* L)
|
||||
args.push_back(tmpSz);
|
||||
}
|
||||
|
||||
GetRainmeter().ExecuteBang(bangSz, args, self);
|
||||
Rainmeter::GetInstance().ExecuteBang(bangSz, args, self);
|
||||
}
|
||||
}
|
||||
|
||||
|
3
RainmeterEditor.exe.config
Normal file
3
RainmeterEditor.exe.config
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
@ -1,16 +1,10 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.21005.1
|
||||
VisualStudioVersion = 12.0.30110.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Application", "Application\Application.vcxproj", "{D2A0903C-E760-4134-AE61-3D55BF8F760C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "Common\Common.vcxproj", "{19312085-AA51-4BD6-BE92-4B6098CCA539}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common_Test", "Common\Common_Test.vcxproj", "{442084A6-2069-4927-B0C9-51525A720CB2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DllExporter", "Build\DllExporter\DllExporter.csproj", "{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Installer", "Installer\Installer.vcxproj", "{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Language", "Language\Language.vcxproj", "{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}"
|
||||
@ -43,9 +37,6 @@ EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PluginFolderInfo", "Plugins\PluginFolderInfo\PluginFolderInfo.vcxproj", "{A221819D-4263-42AA-B22A-C022924842A7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginInputText", "Plugins\PluginInputText\PluginInputText.csproj", "{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1} = {49D56CA5-54AB-45C9-A245-EAE588FCBFE1}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PluginiTunes", "Plugins\PluginiTunes\PluginiTunes.vcxproj", "{A2DD3CBE-B140-4892-A875-24107FA52518}"
|
||||
EndProject
|
||||
@ -81,272 +72,448 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PluginWin7Audio", "Plugins\
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PluginWindowMessage", "Plugins\PluginWindowMessage\PluginWindowMessage.vcxproj", "{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RainmeterEditor", "RainmeterEditor\RainmeterEditor.csproj", "{438D0136-4A27-4E4D-A617-FFACE4554236}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Debug|x64.Build.0 = Debug|x64
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Release|Win32.Build.0 = Release|Win32
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Release|x64.ActiveCfg = Release|x64
|
||||
{D2A0903C-E760-4134-AE61-3D55BF8F760C}.Release|x64.Build.0 = Release|x64
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Debug|x64.Build.0 = Debug|x64
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|Win32.Build.0 = Release|Win32
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|x64.ActiveCfg = Release|x64
|
||||
{19312085-AA51-4BD6-BE92-4B6098CCA539}.Release|x64.Build.0 = Release|x64
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2FCFBFD2-2720-4BDD-B620-4BDD3DBB8D3D}.Release|x64.ActiveCfg = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Debug|x64.Build.0 = Debug|x64
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|Win32.Build.0 = Release|Win32
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.ActiveCfg = Release|x64
|
||||
{6BE6F228-B741-4DA9-9FBC-E9F2A7BD483A}.Release|x64.Build.0 = Release|x64
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Debug|x64.Build.0 = Debug|x64
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|Win32.Build.0 = Release|Win32
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|x64.ActiveCfg = Release|x64
|
||||
{BE9D2400-7F1C-49D6-8498-5CE495491AD6}.Release|x64.Build.0 = Release|x64
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Debug|x64.Build.0 = Debug|x64
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|Win32.Build.0 = Release|Win32
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|x64.ActiveCfg = Release|x64
|
||||
{BC25C5DC-AEFB-49F9-8188-3C1B8C8929E6}.Release|x64.Build.0 = Release|x64
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D61FBE9-6913-4885-A95D-1A8C0C223D82}.Release|x64.Build.0 = Release|x64
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|x64.Build.0 = Debug|x64
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Win32.Build.0 = Release|Win32
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|x64.ActiveCfg = Release|x64
|
||||
{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|x64.Build.0 = Release|x64
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|x64.Build.0 = Debug|x64
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|Win32.Build.0 = Release|Win32
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|x64.ActiveCfg = Release|x64
|
||||
{2D8F1DDB-6470-45A1-B95A-3E2960641314}.Release|x64.Build.0 = Release|x64
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Debug|Win32.Build.0 = Debug|x86
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Debug|x64.Build.0 = Debug|x64
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Release|Win32.ActiveCfg = Release|x86
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Release|Win32.Build.0 = Release|x86
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Release|x64.ActiveCfg = Release|x64
|
||||
{49D56CA5-54AB-45C9-A245-EAE588FCBFE1}.Release|x64.Build.0 = Release|x64
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Debug|x64.Build.0 = Debug|x64
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|Win32.Build.0 = Release|Win32
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|x64.ActiveCfg = Release|x64
|
||||
{EE8EC522-8430-4B46-86A3-D943D77F9E4B}.Release|x64.Build.0 = Release|x64
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Debug|x64.Build.0 = Debug|x64
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|Win32.Build.0 = Release|Win32
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|x64.ActiveCfg = Release|x64
|
||||
{F32FA418-8DF4-4E94-B92B-EBD502F5DC07}.Release|x64.Build.0 = Release|x64
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Debug|x64.Build.0 = Debug|x64
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|Win32.Build.0 = Release|Win32
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|x64.ActiveCfg = Release|x64
|
||||
{64FDEE97-6B7E-40E5-A489-ECA322825BC8}.Release|x64.Build.0 = Release|x64
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Debug|x64.Build.0 = Debug|x64
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|Win32.Build.0 = Release|Win32
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|x64.ActiveCfg = Release|x64
|
||||
{A221819D-4263-42AA-B22A-C022924842A7}.Release|x64.Build.0 = Release|x64
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|Win32.Build.0 = Debug|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Debug|x64.Build.0 = Debug|x64
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|Win32.ActiveCfg = Release|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|Win32.Build.0 = Release|x86
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|x64.ActiveCfg = Release|x64
|
||||
{2CFEC79A-E39E-4FFD-ABC2-C4A69DD1E44D}.Release|x64.Build.0 = Release|x64
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Debug|x64.Build.0 = Debug|x64
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|Win32.Build.0 = Release|Win32
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|x64.ActiveCfg = Release|x64
|
||||
{A2DD3CBE-B140-4892-A875-24107FA52518}.Release|x64.Build.0 = Release|x64
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Debug|x64.Build.0 = Debug|x64
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|Win32.Build.0 = Release|Win32
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|x64.ActiveCfg = Release|x64
|
||||
{EB48A04A-657E-41B8-B2F5-D47F8C30B2B4}.Release|x64.Build.0 = Release|x64
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Debug|x64.Build.0 = Debug|x64
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|Win32.Build.0 = Release|Win32
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|x64.ActiveCfg = Release|x64
|
||||
{C7FECFCD-E6C6-4F95-BB9A-E1762B043969}.Release|x64.Build.0 = Release|x64
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Debug|x64.Build.0 = Debug|x64
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|Win32.Build.0 = Release|Win32
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|x64.ActiveCfg = Release|x64
|
||||
{5344B52B-BAC3-479C-B41D-D465B8BDA1AD}.Release|x64.Build.0 = Release|x64
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Debug|x64.Build.0 = Debug|x64
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|Win32.Build.0 = Release|Win32
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|x64.ActiveCfg = Release|x64
|
||||
{C862B662-5CC6-4E79-B1B3-905E0B98D627}.Release|x64.Build.0 = Release|x64
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Debug|x64.Build.0 = Debug|x64
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|Win32.Build.0 = Release|Win32
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|x64.ActiveCfg = Release|x64
|
||||
{C30E7EB6-9655-4AF4-98AE-D6E6B14631AF}.Release|x64.Build.0 = Release|x64
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Debug|x64.Build.0 = Debug|x64
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|Win32.Build.0 = Release|Win32
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|x64.ActiveCfg = Release|x64
|
||||
{05203741-CD80-4060-8218-EC5D1120FE3E}.Release|x64.Build.0 = Release|x64
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Debug|x64.Build.0 = Debug|x64
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|Win32.Build.0 = Release|Win32
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|x64.ActiveCfg = Release|x64
|
||||
{C029E0CF-F203-41D0-9608-A3EA2CF0ED1F}.Release|x64.Build.0 = Release|x64
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Debug|x64.Build.0 = Debug|x64
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|Win32.Build.0 = Release|Win32
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|x64.ActiveCfg = Release|x64
|
||||
{4F8C4C09-431C-45C4-830B-32006E783C3A}.Release|x64.Build.0 = Release|x64
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Debug|x64.Build.0 = Debug|x64
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|Win32.Build.0 = Release|Win32
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|x64.ActiveCfg = Release|x64
|
||||
{17D3BD92-6F5D-438C-A89B-88F4CE06DB94}.Release|x64.Build.0 = Release|x64
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Debug|x64.Build.0 = Debug|x64
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|Win32.Build.0 = Release|Win32
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|x64.ActiveCfg = Release|x64
|
||||
{D10AB316-0F7A-4551-BE4F-385E04CCF1E8}.Release|x64.Build.0 = Release|x64
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Debug|x64.Build.0 = Debug|x64
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|Win32.Build.0 = Release|Win32
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|x64.ActiveCfg = Release|x64
|
||||
{6EBCA4DA-8CC7-42FE-8F45-878ABE165078}.Release|x64.Build.0 = Release|x64
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Debug|x64.Build.0 = Debug|x64
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|Win32.Build.0 = Release|Win32
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|x64.ActiveCfg = Release|x64
|
||||
{4640AB3A-5A8B-2DA0-980C-A70BCAB3A7F1}.Release|x64.Build.0 = Release|x64
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Debug|x64.Build.0 = Debug|x64
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|Win32.Build.0 = Release|Win32
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|x64.ActiveCfg = Release|x64
|
||||
{8B820B9F-C154-417C-A090-42198F2AF496}.Release|x64.Build.0 = Release|x64
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Debug|x64.Build.0 = Debug|x64
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|Win32.Build.0 = Release|Win32
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|x64.ActiveCfg = Release|x64
|
||||
{45A34285-56DD-4521-912B-3F884D36FA35}.Release|x64.Build.0 = Release|x64
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|Win32.Build.0 = Release|Win32
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D032D6B-7656-4743-B454-3388E2921EB0}.Release|x64.Build.0 = Release|x64
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Debug|x64.Build.0 = Debug|x64
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|Win32.Build.0 = Release|Win32
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|x64.ActiveCfg = Release|x64
|
||||
{B9184DBA-C6B7-44FE-8BBD-0852DB22D2E4}.Release|x64.Build.0 = Release|x64
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Debug|x64.Build.0 = Debug|x64
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{442084A6-2069-4927-B0C9-51525A720CB2}.Release|x64.ActiveCfg = Release|x64
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{438D0136-4A27-4E4D-A617-FFACE4554236}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
3
RainmeterEditor.vshost.exe.config
Normal file
3
RainmeterEditor.vshost.exe.config
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
8
RainmeterEditor/App.xaml
Normal file
8
RainmeterEditor/App.xaml
Normal file
@ -0,0 +1,8 @@
|
||||
<Application x:Class="RainmeterEditor.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
StartupUri="UI/MainWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
16
RainmeterEditor/App.xaml.cs
Normal file
16
RainmeterEditor/App.xaml.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace RainmeterEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
}
|
||||
}
|
53
RainmeterEditor/Interop/NativeLibrary.cs
Normal file
53
RainmeterEditor/Interop/NativeLibrary.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Interop
|
||||
{
|
||||
public class NativeLibrary : IDisposable
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern IntPtr LoadLibrary(string libname);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern bool FreeLibrary(IntPtr hModule);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
|
||||
|
||||
#endregion
|
||||
|
||||
public string DllName { get; private set; }
|
||||
private IntPtr _handle;
|
||||
|
||||
public NativeLibrary(string dllName)
|
||||
{
|
||||
// Set properties
|
||||
DllName = dllName;
|
||||
|
||||
// Load library
|
||||
_handle = LoadLibrary(DllName);
|
||||
if (_handle == IntPtr.Zero)
|
||||
{
|
||||
int errorCode = Marshal.GetLastWin32Error();
|
||||
throw new BadImageFormatException(string.Format("Failed to load library (ErrorCode: {0})", errorCode));
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_handle != IntPtr.Zero)
|
||||
FreeLibrary(_handle);
|
||||
}
|
||||
|
||||
public Delegate GetFunctionByName(string name, Type delegateType)
|
||||
{
|
||||
IntPtr addr = GetProcAddress(_handle, name);
|
||||
return Marshal.GetDelegateForFunctionPointer(addr, delegateType);
|
||||
}
|
||||
}
|
||||
}
|
20
RainmeterEditor/LICENSE
Normal file
20
RainmeterEditor/LICENSE
Normal file
@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2008 Ricardo Amores Hernández
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
11
RainmeterEditor/Model/RainmeterConfig.cs
Normal file
11
RainmeterEditor/Model/RainmeterConfig.cs
Normal file
@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class RainmeterConfig
|
||||
{
|
||||
}
|
||||
}
|
55
RainmeterEditor/Properties/AssemblyInfo.cs
Normal file
55
RainmeterEditor/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,55 @@
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RainmeterEditor")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RainmeterEditor")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
//In order to begin building localizable applications, set
|
||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
||||
//inside a <PropertyGroup>. For example, if you are using US english
|
||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
||||
//the line below to match the UICulture setting in the project file.
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
||||
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
RainmeterEditor/Properties/Resources.Designer.cs
generated
Normal file
63
RainmeterEditor/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterEditor.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterEditor.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
117
RainmeterEditor/Properties/Resources.resx
Normal file
117
RainmeterEditor/Properties/Resources.resx
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
26
RainmeterEditor/Properties/Settings.Designer.cs
generated
Normal file
26
RainmeterEditor/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterEditor.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
RainmeterEditor/Properties/Settings.settings
Normal file
7
RainmeterEditor/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
59
RainmeterEditor/Rainmeter.cs
Normal file
59
RainmeterEditor/Rainmeter.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Interop;
|
||||
|
||||
namespace RainmeterEditor
|
||||
{
|
||||
class Rainmeter
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern IntPtr Rainmeter_Initialize();
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern void Rainmeter_Finalize(IntPtr handle);
|
||||
|
||||
#endregion
|
||||
|
||||
private static Rainmeter _instance = null;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the single instance of this class
|
||||
/// </summary>
|
||||
public static Rainmeter Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
_instance = new Rainmeter();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
private IntPtr _handle;
|
||||
|
||||
#region Constructor, finalizer
|
||||
|
||||
private Rainmeter()
|
||||
{
|
||||
_handle = Rainmeter_Initialize();
|
||||
|
||||
if (_handle == IntPtr.Zero)
|
||||
throw new Exception("Failed to initialize native library.");
|
||||
}
|
||||
|
||||
~Rainmeter()
|
||||
{
|
||||
Rainmeter_Finalize(_handle);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public IntPtr Handle { get { return _handle; } }
|
||||
}
|
||||
}
|
131
RainmeterEditor/RainmeterEditor.csproj
Normal file
131
RainmeterEditor/RainmeterEditor.csproj
Normal file
@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{438D0136-4A27-4E4D-A617-FFACE4554236}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RainmeterEditor</RootNamespace>
|
||||
<AssemblyName>RainmeterEditor</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\x32-Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="INIFileParser">
|
||||
<HintPath>..\packages\ini-parser.2.1.1\lib\INIFileParser.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="Xceed.Wpf.AvalonDock">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Interop\NativeLibrary.cs" />
|
||||
<Compile Include="Model\RainmeterConfig.cs" />
|
||||
<Compile Include="Rainmeter.cs" />
|
||||
<Compile Include="Storage\SkinDirectory.cs" />
|
||||
<Compile Include="UI\SkinsPanel.xaml.cs">
|
||||
<DependentUpon>SkinsPanel.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Page Include="UI\MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="UI\SkinsPanel.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="LICENSE" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
25
RainmeterEditor/Storage/SkinDirectory.cs
Normal file
25
RainmeterEditor/Storage/SkinDirectory.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Storage
|
||||
{
|
||||
public static class SkinDirectory
|
||||
{
|
||||
private static string _path = null;
|
||||
|
||||
public static string Path
|
||||
{
|
||||
get
|
||||
{
|
||||
return "";
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
82
RainmeterEditor/UI/MainWindow.xaml
Normal file
82
RainmeterEditor/UI/MainWindow.xaml
Normal file
@ -0,0 +1,82 @@
|
||||
<Window x:Class="RainmeterEditor.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:ui="clr-namespace:RainmeterEditor.UI"
|
||||
xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock"
|
||||
xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock"
|
||||
Title="MainWindow" Height="350" Width="525">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Menu bar -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Toolbar -->
|
||||
<RowDefinition />
|
||||
<!-- Dock area -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Status bar -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Menu bar -->
|
||||
<Menu Grid.Row="0" Grid.ColumnSpan="10">
|
||||
<MenuItem Header="_File">
|
||||
<MenuItem Header="_New Item..." />
|
||||
<MenuItem Header="_Open..." />
|
||||
<Separator />
|
||||
<MenuItem Header="_Close" />
|
||||
<MenuItem Header="E_xit" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Edit" />
|
||||
<MenuItem Header="_Help" />
|
||||
</Menu>
|
||||
|
||||
<!-- Toolbar -->
|
||||
|
||||
<!-- Grid splitter -->
|
||||
<GridSplitter Grid.Row="2" Grid.Column="1"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
|
||||
|
||||
<!-- Document panel -->
|
||||
<ad:DockingManager
|
||||
x:Name="dockingManager"
|
||||
Grid.Row="2">
|
||||
<adlayout:LayoutRoot>
|
||||
|
||||
<adlayout:LayoutRoot.LeftSide>
|
||||
<adlayout:LayoutAnchorSide>
|
||||
<adlayout:LayoutAnchorGroup>
|
||||
<adlayout:LayoutAnchorable Title="Toolbox" />
|
||||
</adlayout:LayoutAnchorGroup>
|
||||
</adlayout:LayoutAnchorSide>
|
||||
</adlayout:LayoutRoot.LeftSide>
|
||||
|
||||
<adlayout:LayoutPanel Orientation="Horizontal">
|
||||
<adlayout:LayoutDocumentPane x:Name="documentPane" />
|
||||
|
||||
<adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Skins">
|
||||
<ui:SkinsPanel />
|
||||
</adlayout:LayoutAnchorable>
|
||||
<adlayout:LayoutAnchorable Title="Outline" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Properties" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
</adlayout:LayoutAnchorablePaneGroup>
|
||||
</adlayout:LayoutPanel>
|
||||
</adlayout:LayoutRoot>
|
||||
</ad:DockingManager>
|
||||
|
||||
<!-- Status bar -->
|
||||
<StatusBar Grid.Row="3" Grid.ColumnSpan="10">
|
||||
|
||||
<ProgressBar Name="statusProgress"
|
||||
Width="64" Height="8"
|
||||
IsIndeterminate="True"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
<TextBlock Name="statusMessage">Ready</TextBlock>
|
||||
</StatusBar>
|
||||
</Grid>
|
||||
</Window>
|
27
RainmeterEditor/UI/MainWindow.xaml.cs
Normal file
27
RainmeterEditor/UI/MainWindow.xaml.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RainmeterEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
16
RainmeterEditor/UI/SkinsPanel.xaml
Normal file
16
RainmeterEditor/UI/SkinsPanel.xaml
Normal file
@ -0,0 +1,16 @@
|
||||
<UserControl x:Class="RainmeterEditor.UI.SkinsPanel"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TreeView>
|
||||
<TreeViewItem Header="Sample item">
|
||||
<TreeViewItem Header="Sample subitem" />
|
||||
</TreeViewItem>
|
||||
<TreeViewItem Header="Sample item 2" />
|
||||
</TreeView>
|
||||
</Grid>
|
||||
</UserControl>
|
31
RainmeterEditor/UI/SkinsPanel.xaml.cs
Normal file
31
RainmeterEditor/UI/SkinsPanel.xaml.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterEditor.Interop;
|
||||
using RainmeterEditor.Storage;
|
||||
|
||||
namespace RainmeterEditor.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for SkinsPanel.xaml
|
||||
/// </summary>
|
||||
public partial class SkinsPanel : UserControl
|
||||
{
|
||||
public SkinsPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var x = Rainmeter.Instance.Handle;
|
||||
}
|
||||
}
|
||||
}
|
3
RainmeterEditor/app.config
Normal file
3
RainmeterEditor/app.config
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
5
RainmeterEditor/packages.config
Normal file
5
RainmeterEditor/packages.config
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AvalonDock" version="2.0.2000" targetFramework="net40" />
|
||||
<package id="ini-parser" version="2.1.1" targetFramework="net40" />
|
||||
</packages>
|
BIN
packages/AvalonDock.2.0.2000/AvalonDock.2.0.2000.nupkg
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/AvalonDock.2.0.2000.nupkg
vendored
Normal file
Binary file not shown.
19
packages/AvalonDock.2.0.2000/AvalonDock.2.0.2000.nuspec
vendored
Normal file
19
packages/AvalonDock.2.0.2000/AvalonDock.2.0.2000.nuspec
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>AvalonDock</id>
|
||||
<version>2.0.2000</version>
|
||||
<title>AvalonDock</title>
|
||||
<authors>Xceed Software Inc.</authors>
|
||||
<owners>Xceed Software Inc.</owners>
|
||||
<licenseUrl>http://avalondock.codeplex.com/license</licenseUrl>
|
||||
<projectUrl>http://avalondock.codeplex.com/</projectUrl>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<description>AvalonDock is a docking windows control for WPF that lets you create customizable layouts using a full featured window docking system similar to what is found in many popular integrated development environements (IDEs) such as Visual Studio. It includes themes and samples to get you started.</description>
|
||||
<summary>Powerful and free WPF docking windows control.</summary>
|
||||
<releaseNotes>v2.0.2000 is a bug-fix release</releaseNotes>
|
||||
<copyright>Copyright (c) 2007-2013 Xceed Software Inc.</copyright>
|
||||
<language>en-US</language>
|
||||
<tags>WPF Docking</tags>
|
||||
</metadata>
|
||||
</package>
|
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.pdb
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Expression.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Expression.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Expression.pdb
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Expression.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.pdb
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.pdb
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.pdb
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.pdb
vendored
Normal file
Binary file not shown.
4044
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.xml
vendored
Normal file
4044
packages/AvalonDock.2.0.2000/lib/net40/Xceed.Wpf.AvalonDock.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/AvalonDock.2.0.2000/lib/net40/de/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/de/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/es/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/es/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/fr/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/fr/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/hu/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/hu/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/it/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/it/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/pt-BR/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/pt-BR/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/ro/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/ro/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/ru/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/ru/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/sv/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/sv/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
BIN
packages/AvalonDock.2.0.2000/lib/net40/zh-Hans/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
BIN
packages/AvalonDock.2.0.2000/lib/net40/zh-Hans/Xceed.Wpf.AvalonDock.resources.dll
vendored
Normal file
Binary file not shown.
56
packages/ini-parser.2.1.1/README.md
vendored
Normal file
56
packages/ini-parser.2.1.1/README.md
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
# INI File Parser
|
||||
|
||||
A Mono-compatible .NET library for reading/writing INI data from IO streams, file streams, and strings.
|
||||
|
||||
[![Build Status](https://travis-ci.org/rickyah/ini-parser.png?branch=master)](https://travis-ci.org/rickyah/ini-parser)
|
||||
|
||||
## Installation
|
||||
|
||||
The library is published to [NuGet](https://www.nuget.org/packages/ini-parser/) and can be installed on the command-line from the directory containing your solution.
|
||||
|
||||
```bat
|
||||
> nuget install ini-parser
|
||||
```
|
||||
|
||||
Or, from the [Package Manager Console](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) in Visual Studio
|
||||
|
||||
```powershell
|
||||
PM> Install-Package ini-parser
|
||||
```
|
||||
|
||||
Or from the [NuGet Package Manager](http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c) extension built available for most flavors of Visual Studio!
|
||||
|
||||
## Getting Started
|
||||
|
||||
INI data is stored in nested dictionaries, so accessing the value associated to a key in a section is straightforward. Load the data using one of the provided methods.
|
||||
|
||||
```csharp
|
||||
var data = parser.ReadFile("Configuration.ini");
|
||||
```
|
||||
|
||||
Retrieve the value for a key inside of a named section. Values are always retrieved as `string`s.
|
||||
|
||||
```csharp
|
||||
var useFullScreen = data["UI"]["fullscreen"];
|
||||
```
|
||||
|
||||
Modify the value in the dictionary, not the value retrieved, and save to a new file or overwrite.
|
||||
|
||||
```csharp
|
||||
data["UI"]["fullscreen"] = "true";
|
||||
parser.WriteFile("Configuration.ini", data);
|
||||
```
|
||||
|
||||
See the [wiki](https://github.com/rickyah/ini-parser/wiki) for more usage examples.
|
||||
|
||||
## Contributing
|
||||
|
||||
Do you have an idea to improve this library, or did you happen to run into a bug. Please share your idea or the bug you found in the issues page, or even better: feel free to fork and [contribute](https://github.com/rickyah/ini-parser/wiki/Contributing) to this project!
|
||||
|
||||
## Version 2.0!
|
||||
Since the INI format isn't really a "standard", this version introduces a simpler way to customize INI parsing:
|
||||
|
||||
* Pass a configuration object to an `IniParser`, specifying the behaviour of the parser. A default implementation is used if none is provided.
|
||||
|
||||
* Derive from `IniDataParser` and override the fine-grained parsing methods.
|
||||
|
20
packages/ini-parser.2.1.1/content/LICENSE
vendored
Normal file
20
packages/ini-parser.2.1.1/content/LICENSE
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2008 Ricardo Amores Hernández
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
BIN
packages/ini-parser.2.1.1/ini-parser.2.1.1.nupkg
vendored
Normal file
BIN
packages/ini-parser.2.1.1/ini-parser.2.1.1.nupkg
vendored
Normal file
Binary file not shown.
17
packages/ini-parser.2.1.1/ini-parser.2.1.1.nuspec
vendored
Normal file
17
packages/ini-parser.2.1.1/ini-parser.2.1.1.nuspec
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>ini-parser</id>
|
||||
<version>2.1.1</version>
|
||||
<title>INI Parser</title>
|
||||
<authors>Ricardo Amores Hernández</authors>
|
||||
<owners>Ricardo Amores Hernández</owners>
|
||||
<licenseUrl>https://github.com/rickyah/ini-parser/master/blob/LICENSE.txt</licenseUrl>
|
||||
<projectUrl>https://github.com/rickyah/ini-parser</projectUrl>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<description>A Mono compatible .NET open source library for managing data from an INI file format. Allows reading/writing INI data to and from I/O streams, file streams, and/or plain strings.</description>
|
||||
<summary>A simple C# library for reading and writing INI files</summary>
|
||||
<releaseNotes />
|
||||
<tags>ini</tags>
|
||||
</metadata>
|
||||
</package>
|
BIN
packages/ini-parser.2.1.1/lib/INIFileParser.dll
vendored
Normal file
BIN
packages/ini-parser.2.1.1/lib/INIFileParser.dll
vendored
Normal file
Binary file not shown.
BIN
packages/ini-parser.2.1.1/lib/INIFileParser.pdb
vendored
Normal file
BIN
packages/ini-parser.2.1.1/lib/INIFileParser.pdb
vendored
Normal file
Binary file not shown.
4
packages/repositories.config
Normal file
4
packages/repositories.config
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<repositories>
|
||||
<repository path="..\RainmeterEditor\packages.config" />
|
||||
</repositories>
|
Loading…
Reference in New Issue
Block a user