1 /* $Id: effappdlg.c 24836 2007-02-12 03:12:56Z tkreuzer $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Display Control Panel
5 * FILE: dll/cpl/desk/effappdlg.c
6 * PURPOSE: Effects appearance dialog
8 * PROGRAMMER: Jan Roeloffzen (jroeloffzen[at]hotmail[dot]com)
13 #include "appearance.h"
15 /* Update all the controls with the current values for the selected screen element */
17 UpdateControls(HWND hwndDlg
, GLOBALS
*g
)
20 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_GETCHECK
, 0, 0);
21 g
->ThemeAdv
.Effects
.bMenuAnimation
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
22 EnableWindow(GetDlgItem(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
), g
->ThemeAdv
.Effects
.bMenuAnimation
);
24 //A boolean as an index for a 2-value list:
25 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_SETCURSEL
, (WPARAM
)g
->ThemeAdv
.Effects
.bMenuFade
, 0);
27 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_GETCHECK
, 0, 0);
28 g
->ThemeAdv
.Effects
.bKeyboardCues
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
29 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_GETCHECK
, 0, 0);
30 g
->ThemeAdv
.Effects
.bDragFullWindows
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
36 SaveCurrentValues(HWND hwndDlg
, GLOBALS
*g
)
41 AddToCombo(HWND hwndDlg
, INT From
, INT To
, INT Combo
)
43 INT iElement
, iListIndex
, i
=0;
46 for (iElement
= From
; iElement
<=To
; iElement
++)
48 LoadString(hApplet
, iElement
, (LPTSTR
)tstrText
, 80);
49 iListIndex
= SendDlgItemMessage(hwndDlg
, Combo
, CB_ADDSTRING
, 0, (LPARAM
)tstrText
);
50 SendDlgItemMessage(hwndDlg
, Combo
, CB_SETITEMDATA
, (WPARAM
)iListIndex
, (LPARAM
)i
++ );
54 /* Initialize the effects appearance dialog */
56 EffAppearanceDlg_Init(HWND hwndDlg
, GLOBALS
*g
)
60 /* Copy the current theme values */
61 g
->ThemeAdv
= g
->Theme
;
63 AddToCombo(hwndDlg
, IDS_SLIDEEFFECT
, IDS_FADEEFFECT
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
);
65 state
= g
->ThemeAdv
.Effects
.bMenuAnimation
? BST_CHECKED
: BST_UNCHECKED
;
66 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_SETCHECK
, state
, 0);
68 state
= g
->ThemeAdv
.Effects
.bKeyboardCues
? BST_CHECKED
: BST_UNCHECKED
;
69 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_SETCHECK
, state
, 0);
71 state
= g
->ThemeAdv
.Effects
.bDragFullWindows
? BST_CHECKED
: BST_UNCHECKED
;
72 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_SETCHECK
, state
, 0);
74 /* Update the controls */
75 UpdateControls(hwndDlg
, g
);
80 EffAppearanceDlg_CleanUp(HWND hwndDlg
, GLOBALS
* g
)
85 EffAppearanceDlgProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
)
89 g
= (GLOBALS
*)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
95 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)g
);
96 EffAppearanceDlg_Init(hwndDlg
, g
);
100 EffAppearanceDlg_CleanUp(hwndDlg
, g
);
104 switch(LOWORD(wParam
))
107 SaveCurrentValues(hwndDlg
, g
);
108 EndDialog(hwndDlg
, 0);
112 g
->ThemeAdv
= g
->Theme
;
113 EndDialog(hwndDlg
, 0);
116 case IDC_EFFAPPEARANCE_ANIMATION
:
117 case IDC_EFFAPPEARANCE_KEYBOARDCUES
:
118 case IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
:
119 if (HIWORD(wParam
) == BN_CLICKED
)
121 UpdateControls(hwndDlg
, g
);
125 case IDC_EFFAPPEARANCE_ANIMATIONTYPE
:
126 if (HIWORD(wParam
) == CBN_SELCHANGE
)
128 SaveCurrentValues(hwndDlg
, g
);
129 g
->ThemeAdv
.Effects
.bMenuFade
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_GETCURSEL
, 0, 0);
130 UpdateControls(hwndDlg
, g
);