mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	1) JamesAC / spx change to Windows Messages / Dexpot support, with fix for copy / paste error in previous commit.
2) Change to version checking: * CheckVersion= setting depreciated. Removed from "About" dialog and automatically ignored and removed from Rainmeter.ini at Rainmeter start. * New DisableVersionCheck= (1/0) setting added, which now changes the default from "don't check version" to "do check version" unless this is set to "1"
This commit is contained in:
		| @@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT | ||||
| // | ||||
|  | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 1,3,0,440 | ||||
|  PRODUCTVERSION 1,3,0,440 | ||||
|  FILEVERSION 1,3,0,443 | ||||
|  PRODUCTVERSION 1,3,0,443 | ||||
|  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, 440" | ||||
|             VALUE "FileVersion", "1, 3, 0, 442" | ||||
|             VALUE "InternalName", "Rainmeter" | ||||
|             VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy" | ||||
|             VALUE "OriginalFilename", "Rainmeter.exe" | ||||
|             VALUE "ProductName", "Rainmeter" | ||||
|             VALUE "ProductVersion", "1, 3, 0, 440" | ||||
|             VALUE "ProductVersion", "1, 3, 0, 442" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|   | ||||
| @@ -273,7 +273,7 @@ void RepositionControls(HWND hwndDlg) | ||||
| 	widget = GetDlgItem(hwndDlg, IDC_URL_STRING); | ||||
| 	SetWindowPos(widget, NULL, 0, 0, r.right - 44, sr.bottom, SWP_NOMOVE | SWP_NOZORDER); | ||||
|  | ||||
| 	widget = GetDlgItem(hwndDlg, IDC_CHECK_FOR_UPDATE); | ||||
| 	widget = GetDlgItem(hwndDlg, IDC_DISABLE_VERSION_CHECK); | ||||
| 	GetClientRect(widget, &wr); | ||||
| 	MapWindowPoints(widget, hwndDlg, (LPPOINT)&wr, 2); | ||||
| 	SetWindowPos(widget, NULL, (r.right - (wr.right - wr.left)) / 2, wr.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER); | ||||
| @@ -337,7 +337,7 @@ BOOL OnInitAboutDialog(HWND window) | ||||
|     lvc.pszText = L"Range";	 | ||||
|     ListView_InsertColumn(widget, 2, &lvc); | ||||
|  | ||||
| 	CheckDlgButton(window, IDC_CHECK_FOR_UPDATE, Rainmeter->GetCheckUpdate() ? BST_CHECKED : BST_UNCHECKED); | ||||
| 	CheckDlgButton(window, IDC_DISABLE_VERSION_CHECK, Rainmeter->GetDisableVersionCheck() ? BST_CHECKED : BST_UNCHECKED); | ||||
|  | ||||
| 	ScanPlugins(); | ||||
| 	UpdateWidgets(window); | ||||
| @@ -388,14 +388,14 @@ INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPa | ||||
| 		case WM_COMMAND: | ||||
| 			switch (LOWORD(wParam)) | ||||
| 			{ | ||||
| 			case IDC_CHECK_FOR_UPDATE: | ||||
| 				if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_FOR_UPDATE)) | ||||
| 			case IDC_DISABLE_VERSION_CHECK: | ||||
| 				if (IsDlgButtonChecked(hwndDlg, IDC_DISABLE_VERSION_CHECK)) | ||||
| 				{ | ||||
| 					Rainmeter->SetCheckUpdate(TRUE);	 | ||||
| 					Rainmeter->SetDisableVersionCheck(TRUE);	 | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					Rainmeter->SetCheckUpdate(FALSE); | ||||
| 					Rainmeter->SetDisableVersionCheck(FALSE); | ||||
| 				} | ||||
| 				break; | ||||
|  | ||||
|   | ||||
| @@ -167,7 +167,7 @@ BEGIN | ||||
|     GROUPBOX        "About",IDC_STATIC_ABOUT,7,7,220,69 | ||||
|     CTEXT           "(build on ??? ?? ????)",IDC_BUILD_STRING,19,30,201,8 | ||||
|     DEFPUSHBUTTON   "OK",IDOK,91,204,50,14 | ||||
|     CONTROL         "Check for update on startup",IDC_CHECK_FOR_UPDATE, | ||||
|     CONTROL         "Disable check for updates",IDC_DISABLE_VERSION_CHECK, | ||||
|                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,67,56,104,10 | ||||
| END | ||||
|  | ||||
|   | ||||
| @@ -680,7 +680,8 @@ CRainmeter::CRainmeter() | ||||
| 	m_DesktopWorkAreaChanged = false; | ||||
| 	m_DesktopWorkArea.left = m_DesktopWorkArea.top = m_DesktopWorkArea.right = m_DesktopWorkArea.bottom = 0; | ||||
|  | ||||
| 	m_CheckUpdate = FALSE; | ||||
| 	m_DisableVersionCheck = FALSE; | ||||
| 	m_NewVersion = FALSE; | ||||
|  | ||||
| 	m_Instance = NULL; | ||||
| 	m_CurrentParser = NULL; | ||||
| @@ -959,7 +960,9 @@ int CRainmeter::Initialize(HWND Parent, HINSTANCE Instance, LPCSTR szPath) | ||||
|  | ||||
| 	ReadGeneralSettings(m_IniFile); | ||||
|  | ||||
| 	if (m_CheckUpdate) | ||||
| 	WritePrivateProfileString(L"Rainmeter", L"CheckUpdate", NULL , m_IniFile.c_str()); | ||||
|  | ||||
| 	if (!m_DisableVersionCheck) | ||||
| 	{ | ||||
| 		CheckUpdate(); | ||||
| 	} | ||||
| @@ -1664,7 +1667,8 @@ void CRainmeter::ScanForThemes(std::wstring& path) | ||||
| void CRainmeter::SaveSettings() | ||||
| { | ||||
| 	// Just one setting for writing at the moment | ||||
| 	WritePrivateProfileString(L"Rainmeter", L"CheckUpdate", m_CheckUpdate ? L"1" : L"0" , m_IniFile.c_str()); | ||||
| 	WritePrivateProfileString(L"Rainmeter", L"CheckUpdate", NULL , m_IniFile.c_str()); | ||||
| 	WritePrivateProfileString(L"Rainmeter", L"DisableVersionCheck", m_DisableVersionCheck ? L"1" : L"0" , m_IniFile.c_str()); | ||||
| } | ||||
|  | ||||
| BOOL CRainmeter::ExecuteBang(const std::wstring& bang, const std::wstring& arg, CMeterWindow* meterWindow) | ||||
| @@ -1996,8 +2000,8 @@ void CRainmeter::ReadGeneralSettings(std::wstring& iniFile) | ||||
| 	m_TrayExecuteDR = parser.ReadString(L"Rainmeter", L"TrayExecuteDR", L"", false); | ||||
| 	m_TrayExecuteDM = parser.ReadString(L"Rainmeter", L"TrayExecuteDM", L"", false); | ||||
|  | ||||
| 	m_CheckUpdate = parser.ReadInt(L"Rainmeter", L"CheckUpdate", 0); | ||||
|  | ||||
| 	m_DisableVersionCheck = parser.ReadInt(L"Rainmeter", L"DisableVersionCheck", 0); | ||||
| 	 | ||||
| 	std::wstring area = parser.ReadString(L"Rainmeter", L"DesktopWorkArea", L""); | ||||
| 	if (!area.empty()) | ||||
| 	{ | ||||
| @@ -2239,7 +2243,7 @@ void CRainmeter::ShowContextMenu(POINT pos, CMeterWindow* meterWindow) | ||||
| 		if(subMenu) | ||||
| 		{ | ||||
| 			if (!GetDummyLitestep()) | ||||
| 			{ | ||||
| 			{  | ||||
| 				// Disable Quit if ran as a Litestep plugin | ||||
| 				EnableMenuItem(subMenu, ID_CONTEXT_QUIT, MF_BYCOMMAND | MF_GRAYED); | ||||
| 				EnableMenuItem(subMenu, ID_CONTEXT_SHOWLOGFILE, MF_BYCOMMAND | MF_GRAYED); | ||||
| @@ -2269,6 +2273,14 @@ void CRainmeter::ShowContextMenu(POINT pos, CMeterWindow* meterWindow) | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				UINT configPos = 10; | ||||
| 				//Put Update notifications in the Tray menu | ||||
| 				if (m_NewVersion) | ||||
| 				{ | ||||
| 					configPos += 1; | ||||
| 					InsertMenu(subMenu, 2, MF_BYPOSITION | MF_ENABLED, ID_CONTEXT_NEW_VERSION, L"Update Available"); | ||||
| 				} | ||||
|  | ||||
| 				// Create a menu for all active configs | ||||
| 				std::map<std::wstring, CMeterWindow*>::const_iterator iter = Rainmeter->GetAllMeterWindows().begin(); | ||||
|  | ||||
| @@ -2277,7 +2289,7 @@ void CRainmeter::ShowContextMenu(POINT pos, CMeterWindow* meterWindow) | ||||
| 				{ | ||||
| 					CMeterWindow* mw = ((*iter).second); | ||||
| 					HMENU skinMenu = CreateSkinMenu(mw, index); | ||||
| 					InsertMenu(subMenu, 10, MF_BYPOSITION | MF_POPUP, (UINT_PTR)skinMenu, mw->GetSkinName().c_str()); | ||||
| 					InsertMenu(subMenu, configPos, MF_BYPOSITION | MF_POPUP, (UINT_PTR)skinMenu, mw->GetSkinName().c_str()); | ||||
| 					++index; | ||||
| 				} | ||||
| 			} | ||||
|   | ||||
| @@ -32,13 +32,13 @@ | ||||
| #define MAKE_VER(major, minor1, minor2) major * 1000000 + minor1 * 1000 + minor2 | ||||
|  | ||||
| #define APPNAME L"Rainmeter" | ||||
| #define APPVERSION L"1.3" | ||||
| #define APPVERSION L"1.2" | ||||
| #ifdef _WIN64 | ||||
| #define APPBITS L"(64-bit)" | ||||
| #else | ||||
| #define APPBITS L"(32-bit)" | ||||
| #endif | ||||
| #define RAINMETER_VERSION MAKE_VER(1, 3, 0) | ||||
| #define RAINMETER_VERSION MAKE_VER(1, 2, 0) //newvercheck | ||||
|  | ||||
| enum PLATFORM | ||||
| { | ||||
| @@ -156,8 +156,11 @@ public: | ||||
| 	void WriteStats(bool bForce); | ||||
| 	void ResetStats(); | ||||
|  | ||||
| 	BOOL GetCheckUpdate() { return m_CheckUpdate; }; | ||||
| 	void SetCheckUpdate(BOOL check) { m_CheckUpdate = check; }; | ||||
| 	BOOL GetDisableVersionCheck() { return m_DisableVersionCheck; }; | ||||
| 	BOOL GetNewVersion() { return m_NewVersion; }; | ||||
| 	void SetDisableVersionCheck(BOOL check) { m_DisableVersionCheck = check; }; | ||||
| 	void SetNewVersion(BOOL NewVer) { m_NewVersion = NewVer; }; | ||||
| 	 | ||||
|  | ||||
| 	void ShowContextMenu(POINT pos, CMeterWindow* meterWindow); | ||||
|  | ||||
| @@ -224,8 +227,9 @@ private: | ||||
| 	std::wstring m_TrayExecuteDR; | ||||
| 	std::wstring m_TrayExecuteDM; | ||||
|  | ||||
| 	BOOL m_CheckUpdate; | ||||
|  | ||||
| 	BOOL m_DisableVersionCheck; | ||||
| 	BOOL m_NewVersion; | ||||
| 	 | ||||
| 	BOOL m_DesktopWorkAreaChanged; | ||||
| 	RECT m_DesktopWorkArea; | ||||
|  | ||||
|   | ||||
| @@ -467,6 +467,10 @@ LRESULT CALLBACK CTrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA | ||||
| 				command += L"\\Addons\\RainThemes\\RainThemes.exe\""; | ||||
| 				LSExecute(tray->GetWindow(), command.c_str(), SW_SHOWNORMAL); | ||||
| 			} | ||||
| 			else if(wParam == ID_CONTEXT_NEW_VERSION)	//newvercheck | ||||
| 			{ | ||||
| 				LSExecute(NULL, L"http://rainmeter.net/RainCMS/", SW_SHOWNORMAL); | ||||
| 			} | ||||
| 			else if(wParam == ID_CONTEXT_MANAGESKINS) | ||||
| 			{ | ||||
| 				std::wstring command = L"\"" + Rainmeter->GetPath(); | ||||
| @@ -639,7 +643,7 @@ LRESULT CALLBACK CTrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA | ||||
|  | ||||
| 				COPYDATASTRUCT cds; | ||||
| 			 | ||||
| 				cds.dwData = RAINMETER_QUERY_ID_SKINS_PATH; | ||||
| 				cds.dwData = RAINMETER_QUERY_ID_SETTINGS_PATH; | ||||
| 				cds.cbData = (path.size() + 1) * 2; | ||||
| 				cds.lpData = (LPVOID) path.c_str(); | ||||
|  | ||||
| @@ -653,7 +657,7 @@ LRESULT CALLBACK CTrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA | ||||
|  | ||||
| 				COPYDATASTRUCT cds; | ||||
| 			 | ||||
| 				cds.dwData = RAINMETER_QUERY_ID_SKINS_PATH; | ||||
| 				cds.dwData = RAINMETER_QUERY_ID_PLUGINS_PATH; | ||||
| 				cds.cbData = (path.size() + 1) * 2; | ||||
| 				cds.lpData = (LPVOID) path.c_str(); | ||||
|  | ||||
| @@ -663,7 +667,7 @@ LRESULT CALLBACK CTrayWindow::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA | ||||
| 			} | ||||
| 		} | ||||
| 		return 1; | ||||
| 		 | ||||
|  | ||||
| 	case WM_TIMER: | ||||
| 		if (tray && tray->m_Measure) | ||||
| 		{ | ||||
|   | ||||
| @@ -24,9 +24,11 @@ | ||||
| #include <Wininet.h> | ||||
| #include <process.h> | ||||
|  | ||||
| extern CRainmeter* Rainmeter; | ||||
|  | ||||
| void CheckVersion(void* dummy) | ||||
| { | ||||
| 	int version = 0; | ||||
| 	double version = 0.0; | ||||
|  | ||||
| 	HINTERNET hRootHandle = InternetOpen(L"Rainmeter", | ||||
| 									INTERNET_OPEN_TYPE_PRECONFIG, | ||||
| @@ -63,22 +65,21 @@ void CheckVersion(void* dummy) | ||||
|  | ||||
| 					version += atoi(verMinor1.c_str()) * 1000; | ||||
| 					version += atoi(verMinor2.c_str()); | ||||
|  | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					version += atoi(verMinor.c_str()) * 1000; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 				 | ||||
| 			if (version > RAINMETER_VERSION) | ||||
| 			{ | ||||
| 				if (IDYES == MessageBox(NULL, L"A new version of Rainmeter is available.\nDo you want to open the web page now?", APPNAME, MB_YESNO | MB_ICONQUESTION)) | ||||
| 				{ | ||||
| 					LSExecute(NULL, L"http://code.google.com/p/rainmeter/", SW_SHOWNORMAL); | ||||
| 				} | ||||
| 				Rainmeter->SetNewVersion(TRUE); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				Rainmeter->SetNewVersion(FALSE); | ||||
| 				DebugLog(L"CheckUpdate: No new version available."); | ||||
| 			} | ||||
| 		} | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
| #define IDC_URL_STRING                  1005 | ||||
| #define IDC_CONFIG_TAB                  1006 | ||||
| #define IDC_AUTHOR_STRING               1007 | ||||
| #define IDC_CHECK_FOR_UPDATE            1009 | ||||
| #define IDC_DISABLE_VERSION_CHECK		1008 | ||||
| #define ID_CONTEXT_REFRESH              4001 | ||||
| #define ID_CONTEXT_QUIT                 4002 | ||||
| #define ID_CONTEXT_ABOUT                4004 | ||||
| @@ -58,6 +58,7 @@ | ||||
| #define ID_CONTEXT_MANAGESKINS          4047 | ||||
| #define ID_CONTEXT_SKINMENU_MONITOR_PRIMARY	4048 | ||||
| #define ID_CONTEXT_SKINMENU_MONITOR_AUTOSELECT	4049 | ||||
| #define ID_CONTEXT_NEW_VERSION				4050 //newvercheck | ||||
|  | ||||
| #define WM_QUERY_RAINMETER				WM_APP + 1000 | ||||
|  | ||||
|   | ||||
| @@ -1,2 +1,2 @@ | ||||
| #pragma once | ||||
| const int revision_number = 440; | ||||
| const int revision_number = 443; | ||||
		Reference in New Issue
	
	Block a user
	 jsmorley
					jsmorley