From 6eed4dbe0841b169080dfbf7e1997cb9417b36d2 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Wed, 20 Dec 2006 23:03:08 +0000 Subject: [PATCH] Update the display resolution text while the slider is being moved. svn path=/trunk/; revision=25196 --- reactos/dll/cpl/desk/settings.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/reactos/dll/cpl/desk/settings.c b/reactos/dll/cpl/desk/settings.c index 670b4a68811..9fd8b158de7 100644 --- a/reactos/dll/cpl/desk/settings.c +++ b/reactos/dll/cpl/desk/settings.c @@ -51,7 +51,7 @@ typedef struct _GLOBAL_DATA } GLOBAL_DATA, *PGLOBAL_DATA; static VOID -UpdateDisplay(IN HWND hwndDlg, PGLOBAL_DATA pGlobalData) +UpdateDisplay(IN HWND hwndDlg, PGLOBAL_DATA pGlobalData, IN BOOL bUpdateThumb) { TCHAR Buffer[64]; TCHAR Pixel[64]; @@ -67,7 +67,8 @@ UpdateDisplay(IN HWND hwndDlg, PGLOBAL_DATA pGlobalData) if (pGlobalData->CurrentDisplayDevice->Resolutions[index].dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth && pGlobalData->CurrentDisplayDevice->Resolutions[index].dmPelsHeight == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight) { - SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_SETPOS, TRUE, index); + if (bUpdateThumb) + SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_SETPOS, TRUE, index); break; } } @@ -260,7 +261,7 @@ OnDisplayDeviceChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN PDISPLAY SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_CLEARTICS, TRUE, 0); SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_SETRANGE, TRUE, MAKELONG(0, pDeviceEntry->ResolutionsCount - 1)); - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, TRUE); } static VOID @@ -355,7 +356,7 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData) && Current->dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, TRUE); return; } Current = Current->Blink; @@ -371,7 +372,7 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData) && Current->dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, TRUE); return; } Current = Current->Flink; @@ -385,7 +386,7 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData) if (Current->dmBitsPerPel == dmNewBitsPerPel) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, TRUE); return; } Current = Current->Blink; @@ -398,7 +399,7 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData) if (Current->dmBitsPerPel == dmNewBitsPerPel) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, TRUE); return; } Current = Current->Flink; @@ -408,7 +409,8 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData) } static VOID -OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPosition) +OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPosition, + IN BOOL bUpdateThumb) { /* if new resolution is not compatible with color depth: * 1) try to find the nearest bigger matching color depth @@ -438,7 +440,7 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo && Current->dmBitsPerPel == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb); return; } Current = Current->Blink; @@ -454,7 +456,7 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo && Current->dmBitsPerPel == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb); return; } Current = Current->Flink; @@ -468,7 +470,7 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo if (dmNewPelsHeight == Current->dmPelsHeight && dmNewPelsWidth == Current->dmPelsWidth) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb); return; } Current = Current->Flink; @@ -481,7 +483,7 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo if (dmNewPelsHeight == Current->dmPelsHeight && dmNewPelsWidth == Current->dmPelsWidth) { pGlobalData->CurrentDisplayDevice->CurrentSettings = Current; - UpdateDisplay(hwndDlg, pGlobalData); + UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb); return; } Current = Current->Blink; @@ -533,8 +535,13 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar case TB_ENDTRACK: { DWORD newPosition = (DWORD) SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_GETPOS, 0, 0); - OnResolutionChanged(hwndDlg, pGlobalData, newPosition); + OnResolutionChanged(hwndDlg, pGlobalData, newPosition, TRUE); + break; } + + case TB_THUMBTRACK: + OnResolutionChanged(hwndDlg, pGlobalData, HIWORD(wParam), FALSE); + break; } break; }