mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Refactor command and bang logic into new CCommandHandler class
This also improves bang log messages, which now include the bang name.
This commit is contained in:
@ -706,20 +706,20 @@ void CMeterWindow::ChangeSingleZPos(ZPOSITION zPos, bool all)
|
||||
** Runs the bang command with the given arguments.
|
||||
** Correct number of arguments must be passed (or use CRainmeter::ExecuteBang).
|
||||
*/
|
||||
void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& args)
|
||||
void CMeterWindow::DoBang(Bang bang, const std::vector<std::wstring>& args)
|
||||
{
|
||||
switch (bang)
|
||||
{
|
||||
case BANG_REFRESH:
|
||||
case Bang::Refresh:
|
||||
// Refresh needs to be delayed since it crashes if done during Update()
|
||||
PostMessage(m_Window, WM_METERWINDOW_DELAYED_REFRESH, (WPARAM)NULL, (LPARAM)NULL);
|
||||
break;
|
||||
|
||||
case BANG_REDRAW:
|
||||
case Bang::Redraw:
|
||||
Redraw();
|
||||
break;
|
||||
|
||||
case BANG_UPDATE:
|
||||
case Bang::Update:
|
||||
KillTimer(m_Window, TIMER_METER); // Kill timer temporarily
|
||||
Update(false);
|
||||
if (m_WindowUpdate >= 0)
|
||||
@ -728,122 +728,122 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_SHOWBLUR:
|
||||
case Bang::ShowBlur:
|
||||
ShowBlur();
|
||||
break;
|
||||
|
||||
case BANG_HIDEBLUR:
|
||||
case Bang::HideBlur:
|
||||
HideBlur();
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEBLUR:
|
||||
RunBang(IsBlur() ? BANG_HIDEBLUR : BANG_SHOWBLUR, args);
|
||||
case Bang::ToggleBlur:
|
||||
DoBang(IsBlur() ? Bang::HideBlur : Bang::ShowBlur, args);
|
||||
break;
|
||||
|
||||
case BANG_ADDBLUR:
|
||||
case Bang::AddBlur:
|
||||
ResizeBlur(args[0], RGN_OR);
|
||||
if (IsBlur()) ShowBlur();
|
||||
break;
|
||||
|
||||
case BANG_REMOVEBLUR:
|
||||
case Bang::RemoveBlur:
|
||||
ResizeBlur(args[0], RGN_DIFF);
|
||||
if (IsBlur()) ShowBlur();
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEMETER:
|
||||
case Bang::ToggleMeter:
|
||||
ToggleMeter(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_SHOWMETER:
|
||||
case Bang::ShowMeter:
|
||||
ShowMeter(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_HIDEMETER:
|
||||
case Bang::HideMeter:
|
||||
HideMeter(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_UPDATEMETER:
|
||||
case Bang::UpdateMeter:
|
||||
UpdateMeter(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEMETERGROUP:
|
||||
case Bang::ToggleMeterGroup:
|
||||
ToggleMeter(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_SHOWMETERGROUP:
|
||||
case Bang::ShowMeterGroup:
|
||||
ShowMeter(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_HIDEMETERGROUP:
|
||||
case Bang::HideMeterGroup:
|
||||
HideMeter(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_UPDATEMETERGROUP:
|
||||
case Bang::UpdateMeterGroup:
|
||||
UpdateMeter(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEMEASURE:
|
||||
case Bang::ToggleMeasure:
|
||||
ToggleMeasure(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_ENABLEMEASURE:
|
||||
case Bang::EnableMeasure:
|
||||
EnableMeasure(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_DISABLEMEASURE:
|
||||
case Bang::DisableMeasure:
|
||||
DisableMeasure(args[0]);
|
||||
break;
|
||||
|
||||
case BANG_UPDATEMEASURE:
|
||||
case Bang::UpdateMeasure:
|
||||
UpdateMeasure(args[0]);
|
||||
CDialogAbout::UpdateMeasures(this);
|
||||
break;
|
||||
|
||||
case BANG_DISABLEMEASUREGROUP:
|
||||
case Bang::DisableMeasureGroup:
|
||||
DisableMeasure(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEMEASUREGROUP:
|
||||
case Bang::ToggleMeasureGroup:
|
||||
ToggleMeasure(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_ENABLEMEASUREGROUP:
|
||||
case Bang::EnableMeasureGroup:
|
||||
EnableMeasure(args[0], true);
|
||||
break;
|
||||
|
||||
case BANG_UPDATEMEASUREGROUP:
|
||||
case Bang::UpdateMeasureGroup:
|
||||
UpdateMeasure(args[0], true);
|
||||
CDialogAbout::UpdateMeasures(this);
|
||||
break;
|
||||
|
||||
case BANG_SHOW:
|
||||
case Bang::Show:
|
||||
m_Hidden = false;
|
||||
ShowWindow(m_Window, SW_SHOWNOACTIVATE);
|
||||
UpdateWindowTransparency((m_WindowHide == HIDEMODE_FADEOUT) ? 255 : m_AlphaValue);
|
||||
break;
|
||||
|
||||
case BANG_HIDE:
|
||||
case Bang::Hide:
|
||||
m_Hidden = true;
|
||||
ShowWindow(m_Window, SW_HIDE);
|
||||
break;
|
||||
|
||||
case BANG_TOGGLE:
|
||||
RunBang(m_Hidden ? BANG_SHOW : BANG_HIDE, args);
|
||||
case Bang::Toggle:
|
||||
DoBang(m_Hidden ? Bang::Show : Bang::Toggle, args);
|
||||
break;
|
||||
|
||||
case BANG_SHOWFADE:
|
||||
case Bang::ShowFade:
|
||||
ShowFade();
|
||||
break;
|
||||
|
||||
case BANG_HIDEFADE:
|
||||
case Bang::HideFade:
|
||||
HideFade();
|
||||
break;
|
||||
|
||||
case BANG_TOGGLEFADE:
|
||||
RunBang(m_Hidden ? BANG_SHOWFADE : BANG_HIDEFADE, args);
|
||||
case Bang::ToggleFade:
|
||||
DoBang(m_Hidden ? Bang::ShowFade : Bang::HideFade, args);
|
||||
break;
|
||||
|
||||
case BANG_MOVE:
|
||||
case Bang::Move:
|
||||
{
|
||||
int x = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
int y = m_Parser.ParseInt(args[1].c_str(), 0);
|
||||
@ -851,39 +851,39 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_ZPOS:
|
||||
case Bang::ZPos:
|
||||
SetWindowZPosition((ZPOSITION)m_Parser.ParseInt(args[0].c_str(), 0));
|
||||
break;
|
||||
|
||||
case BANG_CLICKTHROUGH:
|
||||
case Bang::ClickThrough:
|
||||
{
|
||||
int f = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
SetClickThrough((f == -1) ? !m_ClickThrough : f);
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_DRAGGABLE:
|
||||
case Bang::Draggable:
|
||||
{
|
||||
int f = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
SetWindowDraggable((f == -1) ? !m_WindowDraggable : f);
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_SNAPEDGES:
|
||||
case Bang::SnapEdges:
|
||||
{
|
||||
int f = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
SetSnapEdges((f == -1) ? !m_SnapEdges : f);
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_KEEPONSCREEN:
|
||||
case Bang::KeepOnScreen:
|
||||
{
|
||||
int f = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
SetKeepOnScreen((f == -1) ? !m_KeepOnScreen : f);
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_SETTRANSPARENCY:
|
||||
case Bang::SetTransparency:
|
||||
{
|
||||
const std::wstring& arg = args[0];
|
||||
m_AlphaValue = CConfigParser::ParseInt(arg.c_str(), 255);
|
||||
@ -893,7 +893,7 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_MOVEMETER:
|
||||
case Bang::MoveMeter:
|
||||
{
|
||||
int x = m_Parser.ParseInt(args[0].c_str(), 0);
|
||||
int y = m_Parser.ParseInt(args[1].c_str(), 0);
|
||||
@ -901,7 +901,7 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_COMMANDMEASURE:
|
||||
case Bang::CommandMeasure:
|
||||
{
|
||||
const std::wstring& measure = args[0];
|
||||
CMeasure* m = GetMeasure(measure);
|
||||
@ -916,7 +916,7 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_PLUGIN:
|
||||
case Bang::PluginBang:
|
||||
{
|
||||
std::wstring arg = args[0];
|
||||
std::wstring::size_type pos;
|
||||
@ -956,15 +956,15 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const std::vector<std::wstring>& ar
|
||||
}
|
||||
break;
|
||||
|
||||
case BANG_SETVARIABLE:
|
||||
case Bang::SetVariable:
|
||||
SetVariable(args[0], args[1]);
|
||||
break;
|
||||
|
||||
case BANG_SETOPTION:
|
||||
case Bang::SetOption:
|
||||
SetOption(args[0], args[1], args[2], false);
|
||||
break;
|
||||
|
||||
case BANG_SETOPTIONGROUP:
|
||||
case Bang::SetOptionGroup:
|
||||
SetOption(args[0], args[1], args[2], true);
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user