mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Additional changes to f2b52b4
This commit is contained in:
parent
f2b52b4204
commit
4dbf7932ab
@ -299,8 +299,7 @@ void CMeterString::Initialize()
|
|||||||
|
|
||||||
if (m_FontSize != 0)
|
if (m_FontSize != 0)
|
||||||
{
|
{
|
||||||
std::wstring error = L"String: Unable to create font: " + m_FontFace;
|
LogWithArgs(LOG_ERROR, L"String: Invalid font: %s", m_FontFace.c_str());
|
||||||
throw CError(error);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ CMeterWindow::~CMeterWindow()
|
|||||||
** Initializes the window, creates the class and the window.
|
** Initializes the window, creates the class and the window.
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
int CMeterWindow::Initialize()
|
void CMeterWindow::Initialize()
|
||||||
{
|
{
|
||||||
m_Window = CreateWindowEx(
|
m_Window = CreateWindowEx(
|
||||||
WS_EX_TOOLWINDOW,
|
WS_EX_TOOLWINDOW,
|
||||||
@ -252,11 +252,6 @@ int CMeterWindow::Initialize()
|
|||||||
Rainmeter->GetInstance(),
|
Rainmeter->GetInstance(),
|
||||||
this);
|
this);
|
||||||
|
|
||||||
if (m_Window == NULL)
|
|
||||||
{
|
|
||||||
throw CError(L"Unable to register window");
|
|
||||||
}
|
|
||||||
|
|
||||||
setlocale(LC_NUMERIC, "C");
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
// Mark the window to ignore the Aero peek
|
// Mark the window to ignore the Aero peek
|
||||||
@ -277,10 +272,6 @@ int CMeterWindow::Initialize()
|
|||||||
FadeWindow(0, m_AlphaValue);
|
FadeWindow(0, m_AlphaValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log(LOG_NOTICE, L"Initialization successful");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -396,9 +387,6 @@ void CMeterWindow::Refresh(bool init, bool all)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InitializeMeasures();
|
|
||||||
InitializeMeters();
|
|
||||||
|
|
||||||
// Remove transparent flag
|
// Remove transparent flag
|
||||||
RemoveWindowExStyle(WS_EX_TRANSPARENT);
|
RemoveWindowExStyle(WS_EX_TRANSPARENT);
|
||||||
|
|
||||||
@ -2172,51 +2160,47 @@ bool CMeterWindow::ReadSkin()
|
|||||||
m_HasNetMeasures = false;
|
m_HasNetMeasures = false;
|
||||||
m_HasButtons = false;
|
m_HasButtons = false;
|
||||||
|
|
||||||
// Measures must be created first to avoid errors in meters referencing measures.
|
// Add measures to containers.
|
||||||
m_Measures.reserve(measures.size());
|
m_Measures.reserve(measures.size());
|
||||||
for (auto iter = measures.cbegin(); iter != measures.cend(); ++iter)
|
for (auto iter = measures.cbegin(); iter != measures.cend(); ++iter)
|
||||||
{
|
{
|
||||||
CMeasure* measure = *iter;
|
CMeasure* measure = *iter;
|
||||||
|
m_Measures.push_back(measure);
|
||||||
|
m_Parser.AddMeasure(measure);
|
||||||
|
|
||||||
try
|
if (measure->GetTypeID() == TypeID<CMeasureNet>())
|
||||||
{
|
{
|
||||||
measure->ReadOptions(m_Parser);
|
m_HasNetMeasures = true;
|
||||||
m_Measures.push_back(measure);
|
|
||||||
m_Parser.AddMeasure(measure);
|
|
||||||
|
|
||||||
if (measure->GetTypeID() == TypeID<CMeasureNet>())
|
|
||||||
{
|
|
||||||
m_HasNetMeasures = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (CError& error)
|
|
||||||
{
|
|
||||||
delete measure;
|
|
||||||
measure = NULL;
|
|
||||||
LogError(error);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialize measures. This is a separate loop to avoid errors caused by
|
||||||
|
// referencing not-yet-existent [measures] referencing in the options.
|
||||||
|
for (auto iter = measures.cbegin(); iter != measures.cend(); ++iter)
|
||||||
|
{
|
||||||
|
CMeasure* measure = *iter;
|
||||||
|
measure->ReadOptions(m_Parser);
|
||||||
|
measure->Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize meters.
|
||||||
m_Meters.reserve(meters.size());
|
m_Meters.reserve(meters.size());
|
||||||
for (auto iter = meters.cbegin(); iter != meters.cend(); ++iter)
|
for (auto iter = meters.cbegin(); iter != meters.cend(); ++iter)
|
||||||
{
|
{
|
||||||
CMeter* meter = *iter;
|
CMeter* meter = *iter;
|
||||||
|
m_Meters.push_back(meter);
|
||||||
|
|
||||||
try
|
meter->ReadOptions(m_Parser);
|
||||||
|
meter->Initialize();
|
||||||
|
|
||||||
|
if (!meter->GetToolTipText().empty())
|
||||||
{
|
{
|
||||||
meter->ReadOptions(m_Parser);
|
meter->CreateToolTip(this);
|
||||||
m_Meters.push_back(meter);
|
|
||||||
|
|
||||||
if (!m_HasButtons && meter->GetTypeID() == TypeID<CMeterButton>())
|
|
||||||
{
|
|
||||||
m_HasButtons = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (CError& error)
|
|
||||||
|
if (!m_HasButtons && meter->GetTypeID() == TypeID<CMeterButton>())
|
||||||
{
|
{
|
||||||
delete meter;
|
m_HasButtons = true;
|
||||||
meter = NULL;
|
|
||||||
LogError(error);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2230,53 +2214,6 @@ bool CMeterWindow::ReadSkin()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
** Initializes all the measures
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
void CMeterWindow::InitializeMeasures()
|
|
||||||
{
|
|
||||||
// Initalize all measures
|
|
||||||
std::vector<CMeasure*>::const_iterator i = m_Measures.begin();
|
|
||||||
for ( ; i != m_Measures.end(); ++i)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
(*i)->Initialize();
|
|
||||||
}
|
|
||||||
catch (CError& error)
|
|
||||||
{
|
|
||||||
LogError(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Initializes all the meters
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
void CMeterWindow::InitializeMeters()
|
|
||||||
{
|
|
||||||
// Initalize all meters
|
|
||||||
std::vector<CMeter*>::const_iterator j = m_Meters.begin();
|
|
||||||
for ( ; j != m_Meters.end(); ++j)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
(*j)->Initialize();
|
|
||||||
}
|
|
||||||
catch (CError& error)
|
|
||||||
{
|
|
||||||
LogError(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(*j)->GetToolTipText().empty())
|
|
||||||
{
|
|
||||||
(*j)->CreateToolTip(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Changes the size of the window and re-adjusts the background
|
** Changes the size of the window and re-adjusts the background
|
||||||
*/
|
*/
|
||||||
|
@ -156,7 +156,7 @@ public:
|
|||||||
CMeterWindow(const std::wstring& folderPath, const std::wstring& file);
|
CMeterWindow(const std::wstring& folderPath, const std::wstring& file);
|
||||||
~CMeterWindow();
|
~CMeterWindow();
|
||||||
|
|
||||||
int Initialize();
|
void Initialize();
|
||||||
|
|
||||||
void RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& args);
|
void RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& args);
|
||||||
|
|
||||||
@ -311,8 +311,6 @@ private:
|
|||||||
void ReadOptions();
|
void ReadOptions();
|
||||||
void WriteOptions(INT setting = OPTION_ALL);
|
void WriteOptions(INT setting = OPTION_ALL);
|
||||||
bool ReadSkin();
|
bool ReadSkin();
|
||||||
void InitializeMeasures();
|
|
||||||
void InitializeMeters();
|
|
||||||
void ShowWindowIfAppropriate();
|
void ShowWindowIfAppropriate();
|
||||||
HWND GetWindowFromPoint(POINT pos);
|
HWND GetWindowFromPoint(POINT pos);
|
||||||
void HandleButtons(POINT pos, BUTTONPROC proc, bool execute = true);
|
void HandleButtons(POINT pos, BUTTONPROC proc, bool execute = true);
|
||||||
|
@ -83,18 +83,15 @@ int RainmeterMain(LPWSTR cmdLine)
|
|||||||
int ret = 1;
|
int ret = 1;
|
||||||
|
|
||||||
Rainmeter = new CRainmeter;
|
Rainmeter = new CRainmeter;
|
||||||
if (Rainmeter)
|
ret = Rainmeter->Initialize(cmdLine);
|
||||||
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
ret = Rainmeter->Initialize(cmdLine);
|
ret = Rainmeter->MessagePump();
|
||||||
if (ret == 0)
|
|
||||||
{
|
|
||||||
ret = Rainmeter->MessagePump();
|
|
||||||
}
|
|
||||||
|
|
||||||
delete Rainmeter;
|
|
||||||
Rainmeter = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete Rainmeter;
|
||||||
|
Rainmeter = NULL;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1406,24 +1403,13 @@ void CRainmeter::CreateMeterWindow(const std::wstring& folderPath, const std::ws
|
|||||||
{
|
{
|
||||||
CMeterWindow* mw = new CMeterWindow(folderPath, file);
|
CMeterWindow* mw = new CMeterWindow(folderPath, file);
|
||||||
|
|
||||||
if (mw)
|
// Note: May modify existing key
|
||||||
{
|
m_MeterWindows[folderPath] = mw;
|
||||||
// Note: May modify existing key
|
|
||||||
m_MeterWindows[folderPath] = mw;
|
|
||||||
|
|
||||||
try
|
mw->Initialize();
|
||||||
{
|
|
||||||
mw->Initialize();
|
|
||||||
|
|
||||||
CDialogAbout::UpdateSkins();
|
CDialogAbout::UpdateSkins();
|
||||||
CDialogManage::UpdateSkins(mw);
|
CDialogManage::UpdateSkins(mw);
|
||||||
}
|
|
||||||
catch (CError& error)
|
|
||||||
{
|
|
||||||
DeactivateSkin(mw, -1);
|
|
||||||
LogError(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRainmeter::DeleteMeterWindow(CMeterWindow* meterWindow, bool force)
|
void CRainmeter::DeleteMeterWindow(CMeterWindow* meterWindow, bool force)
|
||||||
|
Loading…
Reference in New Issue
Block a user