From 1133667ad14b712031264d2da85e318fc4e4f3a4 Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Sat, 30 Jul 2011 19:28:06 +0200 Subject: [PATCH] Readding the taskbar progress display. --- .../LoadingWindow/LoadingWindow_Win32.cpp | 33 +++++++------------ src/arch/LoadingWindow/LoadingWindow_Win32.h | 8 +++-- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/arch/LoadingWindow/LoadingWindow_Win32.cpp b/src/arch/LoadingWindow/LoadingWindow_Win32.cpp index 613f293262..700620d41f 100644 --- a/src/arch/LoadingWindow/LoadingWindow_Win32.cpp +++ b/src/arch/LoadingWindow/LoadingWindow_Win32.cpp @@ -92,8 +92,7 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara self=(LoadingWindow_Win32 *)GetWindowLong(hWnd,DWL_USER); } -/* -#if WINVER >= 0x0601 +#ifdef PROGRESS_IN_TASKBUTTON if (self && msg == self->taskbarCreatedEvent && !self->pTaskbarList) { HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&self->pTaskbarList)); if (SUCCEEDED(hr)) { @@ -116,7 +115,6 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara } #endif -*/ switch( msg ) { @@ -144,14 +142,12 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara case WM_DESTROY: -/* -#if(WINVER >= 0x0601) +#ifdef PROGRESS_IN_TASKBUTTON if (self->pTaskbarList) { self->pTaskbarList->Release(); self->pTaskbarList = NULL; } #endif -*/ DeleteObject( g_hBitmap ); g_hBitmap = NULL; @@ -209,13 +205,11 @@ LoadingWindow_Win32::LoadingWindow_Win32() cceData.dwICC=ICC_PROGRESS_CLASS; InitCommonControlsEx(&cceData); -/* -#if(WINVER >= 0x0601) +#ifdef PROGRESS_IN_TASKBUTTON pTaskbarList=NULL; taskbarCreatedEvent=RegisterWindowMessage("TaskbarButtonCreated"); #endif -*/ m_hIcon = NULL; @@ -287,13 +281,13 @@ void LoadingWindow_Win32::SetProgress(const int progress) m_progress=progress; HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); ::SendMessage(hwndItem,PBM_SETPOS,progress,0); -/* -#if(WINVER >= 0x0601) + +#ifdef PROGRESS_IN_TASKBUTTON if(pTaskbarList) { pTaskbarList->SetProgressValue(hwnd, m_progress, m_totalWork); } #endif -*/ + } void LoadingWindow_Win32::SetTotalWork(const int totalWork) @@ -301,13 +295,13 @@ void LoadingWindow_Win32::SetTotalWork(const int totalWork) m_totalWork=totalWork; HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); SendMessage(hwndItem,PBM_SETRANGE32,0,totalWork); -/* -#if(WINVER >= 0x0601) + +#ifdef PROGRESS_IN_TASKBUTTON if(pTaskbarList) { pTaskbarList->SetProgressValue(hwnd, m_progress, m_totalWork); } #endif -*/ + } void LoadingWindow_Win32::SetIndeterminate(bool indeterminate) { @@ -316,25 +310,22 @@ void LoadingWindow_Win32::SetIndeterminate(bool indeterminate) { HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); if(indeterminate) { -/* -#if(WINVER >= 0x0601) + +#ifdef PROGRESS_IN_TASKBUTTON if(pTaskbarList) { pTaskbarList->SetProgressState(hwnd, TBPF_INDETERMINATE); } #endif -*/ SetWindowLong(hwndItem,GWL_STYLE, PBS_MARQUEE | GetWindowLong(hwndItem,GWL_STYLE)); SendMessage(hwndItem,PBM_SETMARQUEE,1,0); } else { SendMessage(hwndItem,PBM_SETMARQUEE,0,0); SetWindowLong(hwndItem,GWL_STYLE, (~PBS_MARQUEE) & GetWindowLong(hwndItem,GWL_STYLE)); -/* -#if(WINVER >= 0x0601) +#ifdef PROGRESS_IN_TASKBUTTON if(pTaskbarList) { pTaskbarList->SetProgressState(hwnd, TBPF_NORMAL); } #endif -*/ } } diff --git a/src/arch/LoadingWindow/LoadingWindow_Win32.h b/src/arch/LoadingWindow/LoadingWindow_Win32.h index cac230bfcb..a825c5c86d 100644 --- a/src/arch/LoadingWindow/LoadingWindow_Win32.h +++ b/src/arch/LoadingWindow/LoadingWindow_Win32.h @@ -10,6 +10,10 @@ #include "archutils/Win32/AppInstance.h" #if(WINVER >= 0x0601) +#define PROGRESS_IN_TASKBUTTON +#endif + +#ifdef PROGRESS_IN_TASKBUTTON #include "Shobjidl.h" #endif @@ -35,12 +39,10 @@ private: DWORD pumpThreadId; HANDLE guiReadyEvent; -/* -#if WINVER >= 0x0601 +#ifdef PROGRESS_IN_TASKBUTTON UINT taskbarCreatedEvent; ITaskbarList3 *pTaskbarList; #endif -*/ volatile bool runMessageLoop;