mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Added JamesAC's new bangs to change "settings" in Rainmeter.ini for one / group / all skins at once.
!RainmeterDraggable/!RainmeterDraggableGroup !RainmeterKeepOnScreen/!RainmeterKeepOnScreenGroup !RainmeterClickThrough/!RainmeterClickThroughGroup !RainmeterSnapEdges/!RainmeterSnapEdgesGroup !RainmeterSnapEdges [parm1] (Config | *) !RainmeterSnapEdgesGroup [parm1] [GroupName] Parm1: -1 toggles the setting. 0 forces the setting to off. 1 forces to setting to on.
This commit is contained in:
		| @@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT | ||||
| // | ||||
|  | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 1,3,0,507 | ||||
|  PRODUCTVERSION 1,3,0,507 | ||||
|  FILEVERSION 1,3,0,513 | ||||
|  PRODUCTVERSION 1,3,0,513 | ||||
|  FILEFLAGSMASK 0x17L | ||||
| #ifdef _DEBUG | ||||
|  FILEFLAGS 0x1L | ||||
| @@ -45,12 +45,12 @@ BEGIN | ||||
|         BLOCK "040b04b0" | ||||
|         BEGIN | ||||
|             VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter" | ||||
|             VALUE "FileVersion", "1, 3, 0, 507" | ||||
|             VALUE "FileVersion", "1, 3, 0, 513" | ||||
|             VALUE "InternalName", "Rainmeter" | ||||
|             VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy" | ||||
|             VALUE "OriginalFilename", "Rainmeter.exe" | ||||
|             VALUE "ProductName", "Rainmeter" | ||||
|             VALUE "ProductVersion", "1, 3, 0, 507" | ||||
|             VALUE "ProductVersion", "1, 3, 0, 513" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|   | ||||
| @@ -771,6 +771,76 @@ void CMeterWindow::RunBang(BANGCOMMAND bang, const WCHAR* arg) | ||||
| 		ChangeZPos((ZPOSITION)_wtoi(arg)); | ||||
| 		break; | ||||
|  | ||||
| 	case BANG_CLICKTHROUGH: | ||||
| 		if (_wtoi(arg) == -1) | ||||
| 		{ | ||||
| 			m_ClickThrough = !m_ClickThrough; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			m_ClickThrough = _wtoi(arg); | ||||
| 		} | ||||
| 		WriteConfig(); | ||||
|  | ||||
| 		if (!m_ClickThrough) | ||||
| 		{ | ||||
| 			// Remove transparent flag | ||||
| 			LONG style = GetWindowLong(m_Window, GWL_EXSTYLE); | ||||
| 			if ((style & WS_EX_TRANSPARENT) != 0) | ||||
| 			{ | ||||
| 				SetWindowLong(m_Window, GWL_EXSTYLE, style & ~WS_EX_TRANSPARENT); | ||||
| 			} | ||||
| 		} | ||||
| 		break; | ||||
|  | ||||
| 	case BANG_DRAGGABLE: | ||||
| 		if (_wtoi(arg) == -1) | ||||
| 		{ | ||||
| 			m_WindowDraggable = !m_WindowDraggable; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			m_WindowDraggable = _wtoi(arg); | ||||
| 		} | ||||
| 		WriteConfig(); | ||||
| 		break; | ||||
|  | ||||
| 	case BANG_SNAPEDGES: | ||||
| 		if (_wtoi(arg) == -1) | ||||
| 		{ | ||||
| 			m_SnapEdges = !m_SnapEdges; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			m_SnapEdges = _wtoi(arg); | ||||
| 		} | ||||
| 		WriteConfig(); | ||||
| 		break; | ||||
|  | ||||
| 	case BANG_KEEPONSCREEN: | ||||
| 		if (_wtoi(arg) == -1) | ||||
| 		{ | ||||
| 			m_KeepOnScreen = !m_KeepOnScreen; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			m_KeepOnScreen = _wtoi(arg); | ||||
| 		} | ||||
| 		 | ||||
| 		WriteConfig(); | ||||
|  | ||||
| 		if (m_KeepOnScreen)  | ||||
| 		{ | ||||
| 			int x = m_ScreenX; | ||||
| 			int y = m_ScreenY; | ||||
| 			MapCoordsToScreen(x, y, m_WindowW, m_WindowH); | ||||
| 			if (x != m_ScreenX || y != m_ScreenY) | ||||
| 			{ | ||||
| 				MoveWindow(x, y); | ||||
| 			} | ||||
| 		} | ||||
| 		break; | ||||
|  | ||||
| 	case BANG_SETTRANSPARENCY: | ||||
| 		if (arg != NULL) | ||||
| 		{ | ||||
|   | ||||
| @@ -113,6 +113,10 @@ enum BANGCOMMAND | ||||
| 	BANG_MOVE, | ||||
| 	BANG_ZPOS, | ||||
| 	BANG_SETTRANSPARENCY, | ||||
| 	BANG_CLICKTHROUGH, | ||||
| 	BANG_DRAGGABLE, | ||||
| 	BANG_SNAPEDGES, | ||||
| 	BANG_KEEPONSCREEN, | ||||
|  | ||||
| 	BANG_TOGGLEMETERGROUP, | ||||
| 	BANG_SHOWMETERGROUP, | ||||
|   | ||||
| @@ -591,6 +591,50 @@ void RainmeterZPos(HWND, const char* arg) | ||||
| 	BangWithArgs(BANG_ZPOS, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterClickThrough | ||||
| ** | ||||
| ** Callback for the !RainmeterClickThrough bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterClickThrough(HWND, const char* arg) | ||||
| { | ||||
| 	BangWithArgs(BANG_CLICKTHROUGH, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterDraggable | ||||
| ** | ||||
| ** Callback for the !RainmeterDraggable bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterDraggable(HWND, const char* arg) | ||||
| { | ||||
| 	BangWithArgs(BANG_DRAGGABLE, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterSnapEdges | ||||
| ** | ||||
| ** Callback for the !RainmeterSnapEdges bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterSnapEdges(HWND, const char* arg) | ||||
| { | ||||
| 	BangWithArgs(BANG_SNAPEDGES, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterKeepOnScreen | ||||
| ** | ||||
| ** Callback for the !RainmeterKeepOnScreen bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterKeepOnScreen(HWND, const char* arg) | ||||
| { | ||||
| 	BangWithArgs(BANG_KEEPONSCREEN, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterSetTransparency | ||||
| ** | ||||
| @@ -808,6 +852,50 @@ void RainmeterZPosGroup(HWND, const char* arg) | ||||
| 	BangGroupWithArgs(BANG_ZPOS, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterClickThroughGroup | ||||
| ** | ||||
| ** Callback for the !RainmeterClickThroughGroup bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterClickThroughGroup(HWND, const char* arg) | ||||
| { | ||||
| 	BangGroupWithArgs(BANG_CLICKTHROUGH, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterDraggableGroup | ||||
| ** | ||||
| ** Callback for the !RainmeterDraggableGroup bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterDraggableGroup(HWND, const char* arg) | ||||
| { | ||||
| 	BangGroupWithArgs(BANG_DRAGGABLE, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterSnapEdgesGroup | ||||
| ** | ||||
| ** Callback for the !RainmeterSnapEdgesGroup bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterSnapEdgesGroup(HWND, const char* arg) | ||||
| { | ||||
| 	BangGroupWithArgs(BANG_SNAPEDGES, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterKeepOnScreenGroup | ||||
| ** | ||||
| ** Callback for the !RainmeterKeepOnScreenGroup bang | ||||
| ** | ||||
| */ | ||||
| void RainmeterKeepOnScreenGroup(HWND, const char* arg) | ||||
| { | ||||
| 	BangGroupWithArgs(BANG_KEEPONSCREEN, ConvertToWide(arg).c_str(), 1); | ||||
| } | ||||
|  | ||||
| /* | ||||
| ** RainmeterSetTransparencyGroup | ||||
| ** | ||||
| @@ -1463,6 +1551,10 @@ int CRainmeter::Initialize(HWND Parent, HINSTANCE Instance, LPCSTR szPath) | ||||
| 		AddBangCommand("!RainmeterToggleConfig", RainmeterToggleConfig); | ||||
| 		AddBangCommand("!RainmeterMove", RainmeterMove); | ||||
| 		AddBangCommand("!RainmeterZPos", RainmeterZPos); | ||||
| 		AddBangCommand("!RainmeterClickThrough", RainmeterClickThrough); | ||||
| 		AddBangCommand("!RainmeterDraggable", RainmeterDraggable); | ||||
| 		AddBangCommand("!RainmeterSnapEdges", RainmeterSnapEdges); | ||||
| 		AddBangCommand("!RainmeterKeepOnScreen", RainmeterKeepOnScreen); | ||||
| 		AddBangCommand("!RainmeterSetTransparency", RainmeterSetTransparency); | ||||
| 		AddBangCommand("!RainmeterSetVariable", RainmeterSetVariable); | ||||
|  | ||||
| @@ -1482,6 +1574,10 @@ int CRainmeter::Initialize(HWND Parent, HINSTANCE Instance, LPCSTR szPath) | ||||
| 		AddBangCommand("!RainmeterToggleMeasureGroup", RainmeterToggleMeasureGroup); | ||||
| 		AddBangCommand("!RainmeterDeactivateConfigGroup", RainmeterDeactivateConfigGroup); | ||||
| 		AddBangCommand("!RainmeterZPosGroup", RainmeterZPosGroup); | ||||
| 		AddBangCommand("!RainmeterClickThroughGroup", RainmeterClickThroughGroup); | ||||
| 		AddBangCommand("!RainmeterDraggableGroup", RainmeterDraggableGroup); | ||||
| 		AddBangCommand("!RainmeterSnapEdgesGroup", RainmeterSnapEdgesGroup); | ||||
| 		AddBangCommand("!RainmeterKeepOnScreenGroup", RainmeterKeepOnScreenGroup); | ||||
| 		AddBangCommand("!RainmeterSetTransparencyGroup", RainmeterSetTransparencyGroup); | ||||
| 		AddBangCommand("!RainmeterSetVariableGroup", RainmeterSetVariableGroup); | ||||
|  | ||||
| @@ -2013,6 +2109,10 @@ void CRainmeter::Quit(HINSTANCE dllInst) | ||||
| 		RemoveBangCommand("!RainmeterToggleConfig"); | ||||
| 		RemoveBangCommand("!RainmeterMove"); | ||||
| 		RemoveBangCommand("!RainmeterZPos"); | ||||
| 		RemoveBangCommand("!RainmeterClickThrough"); | ||||
| 		RemoveBangCommand("!RainmeterDraggable"); | ||||
| 		RemoveBangCommand("!RainmeterSnapEdges"); | ||||
| 		RemoveBangCommand("!RainmeterKeepOnScreen"); | ||||
| 		RemoveBangCommand("!RainmeterSetTransparency"); | ||||
| 		RemoveBangCommand("!RainmeterSetVariable"); | ||||
|  | ||||
| @@ -2032,6 +2132,10 @@ void CRainmeter::Quit(HINSTANCE dllInst) | ||||
| 		RemoveBangCommand("!RainmeterToggleMeasureGroup"); | ||||
| 		RemoveBangCommand("!RainmeterDeactivateConfigGroup"); | ||||
| 		RemoveBangCommand("!RainmeterZPosGroup"); | ||||
| 		RemoveBangCommand("!RainmeterClickThroughGroup"); | ||||
| 		RemoveBangCommand("!RainmeterDraggableGroup"); | ||||
| 		RemoveBangCommand("!RainmeterSnapEdgesGroup"); | ||||
| 		RemoveBangCommand("!RainmeterKeepOnScreenGroup"); | ||||
| 		RemoveBangCommand("!RainmeterSetTransparencyGroup"); | ||||
| 		RemoveBangCommand("!RainmeterSetVariableGroup"); | ||||
|  | ||||
| @@ -2269,6 +2373,22 @@ BOOL CRainmeter::ExecuteBang(const std::wstring& bang, const std::wstring& arg, | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_ZPOS, arg.c_str(), 1); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterClickThrough") == 0) | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_CLICKTHROUGH, arg.c_str(), 1); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterDraggable") == 0) | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_DRAGGABLE, arg.c_str(), 1); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterSnapEdges") == 0) | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_SNAPEDGES, arg.c_str(), 1); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterKeepOnScreen") == 0) | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_KEEPONSCREEN, arg.c_str(), 1); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterSetTransparency") == 0) | ||||
| 	{ | ||||
| 		BangWithArgs(BANG_SETTRANSPARENCY, arg.c_str(), 1); | ||||
| @@ -2341,6 +2461,22 @@ BOOL CRainmeter::ExecuteBang(const std::wstring& bang, const std::wstring& arg, | ||||
| 	{ | ||||
| 		RainmeterZPosGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterClickThroughGroup") == 0) | ||||
| 	{ | ||||
| 		RainmeterClickThroughGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterDraggableGroup") == 0) | ||||
| 	{ | ||||
| 		RainmeterDraggableGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterSnapEdgesGroup") == 0) | ||||
| 	{ | ||||
| 		RainmeterSnapEdgesGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterKeepOnScreenGroup") == 0) | ||||
| 	{ | ||||
| 		RainmeterKeepOnScreenGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| 	} | ||||
| 	else if (wcsicmp(bang.c_str(), L"!RainmeterSetTransparencyGroup") == 0) | ||||
| 	{ | ||||
| 		RainmeterSetTransparencyGroup(NULL, ConvertToAscii(arg.c_str()).c_str()); | ||||
| @@ -3642,7 +3778,7 @@ void CRainmeter::TestSettingsFile(bool bDefaultIniLocation) | ||||
| 			error += L"\n\nto\n\n"; | ||||
| 			error += strTarget; | ||||
| 			error += L"\n\nAlternatively you can also just remove the file and\n"; | ||||
| 			error += L"it will be automatically recreated to the correct location\n"; | ||||
| 			error += L"it will be automatically recreated in the correct location\n"; | ||||
| 			error += L"when Rainmeter is restarted the next time (you\'ll lose your\n"; | ||||
| 			error += L"current settings though).\n"; | ||||
| 		} | ||||
|   | ||||
| @@ -69,6 +69,10 @@ void RainmeterDeactivateConfig(HWND, const char* arg); | ||||
| void RainmeterToggleConfig(HWND, const char* arg); | ||||
| void RainmeterMove(HWND, const char* arg); | ||||
| void RainmeterZPos(HWND, const char* arg); | ||||
| void RainmeterClickThrough(HWND, const char* arg); | ||||
| void RainmeterDraggable(HWND, const char* arg); | ||||
| void RainmeterSnapEdges(HWND, const char* arg); | ||||
| void RainmeterKeepOnScreen(HWND, const char* arg); | ||||
| void RainmeterSetTransparency(HWND, const char* arg); | ||||
| void RainmeterSetVariable(HWND, const char* arg); | ||||
|  | ||||
| @@ -88,6 +92,10 @@ void RainmeterDisableMeasureGroup(HWND, const char* arg); | ||||
| void RainmeterToggleMeasureGroup(HWND, const char* arg); | ||||
| void RainmeterDeactivateConfigGroup(HWND, const char* arg); | ||||
| void RainmeterZPosGroup(HWND, const char* arg); | ||||
| void RainmeterClickThroughGroup(HWND, const char* arg); | ||||
| void RainmeterDraggableGroup(HWND, const char* arg); | ||||
| void RainmeterSnapEdgesGroup(HWND, const char* arg); | ||||
| void RainmeterKeepOnScreenGroup(HWND, const char* arg); | ||||
| void RainmeterSetTransparencyGroup(HWND, const char* arg); | ||||
| void RainmeterSetVariableGroup(HWND, const char* arg); | ||||
|  | ||||
|   | ||||
| @@ -1,3 +1,3 @@ | ||||
| #pragma once | ||||
| const int revision_number = 507; | ||||
| const int revision_number = 513; | ||||
| const bool revision_beta = true; | ||||
		Reference in New Issue
	
	Block a user
	 jsmorley
					jsmorley