mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Script: Added support for multiple parameters to SKIN:Bang()
For example: 'SKIN:Bang("Bang", var, "str", 2)' can now be used instead of 'SKIN:Bang("!Bang \"" .. var .. "\" str \"" .. 2 .. "\"")'
This commit is contained in:
parent
854b925ce9
commit
9db39b72bc
@ -216,6 +216,7 @@ public:
|
||||
const std::wstring& GetTrayExecuteDR() { return m_TrayExecuteDR; }
|
||||
const std::wstring& GetTrayExecuteDM() { return m_TrayExecuteDM; }
|
||||
|
||||
void ExecuteBang(const WCHAR* bang, std::vector<std::wstring>& args, CMeterWindow* meterWindow);
|
||||
void ExecuteCommand(const WCHAR* command, CMeterWindow* meterWindow);
|
||||
void DelayedExecuteCommand(const WCHAR* command);
|
||||
|
||||
@ -246,8 +247,6 @@ private:
|
||||
void Bang_WriteKeyValue(std::vector<std::wstring>& args, CMeterWindow* meterWindow);
|
||||
void Bang_Log(std::vector<std::wstring>& args);
|
||||
|
||||
void ExecuteBang(const WCHAR* bang, std::vector<std::wstring>& args, CMeterWindow* meterWindow);
|
||||
|
||||
void ActivateActiveConfigs();
|
||||
void CreateMeterWindow(const std::wstring& config, const std::wstring& iniFile);
|
||||
void WriteActive(const std::wstring& config, int iniIndex);
|
||||
|
@ -32,11 +32,28 @@ inline CMeterWindow* GetSelf(lua_State* L)
|
||||
static int Bang(lua_State* L)
|
||||
{
|
||||
CMeterWindow* self = GetSelf(L);
|
||||
std::wstring strTmp = LuaManager::ToWide(L, 2);
|
||||
|
||||
CConfigParser& parser = self->GetParser();
|
||||
parser.ReplaceVariables(strTmp);
|
||||
Rainmeter->ExecuteCommand(strTmp.c_str(), self);
|
||||
|
||||
std::wstring bang = LuaManager::ToWide(L, 2);
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top == 2) // 1 argument
|
||||
{
|
||||
parser.ReplaceVariables(bang);
|
||||
Rainmeter->ExecuteCommand(bang.c_str(), self);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<std::wstring> args;
|
||||
for (int i = 3; i <= top; ++i)
|
||||
{
|
||||
std::wstring tmpSz = LuaManager::ToWide(L, i);
|
||||
parser.ReplaceVariables(tmpSz);
|
||||
args.push_back(tmpSz);
|
||||
}
|
||||
|
||||
Rainmeter->ExecuteBang(bang.c_str(), args, self);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user