2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Display Control Panel
4 * FILE: dll/cpl/desk/effappdlg.c
5 * PURPOSE: Effects appearance dialog
7 * PROGRAMMER: Jan Roeloffzen (jroeloffzen[at]hotmail[dot]com)
12 #include "appearance.h"
14 /* Update all the controls with the current values for the selected screen element */
16 UpdateControls(HWND hwndDlg
, GLOBALS
*g
)
19 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_GETCHECK
, 0, 0);
20 g
->ThemeAdv
.Effects
.bMenuAnimation
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
21 EnableWindow(GetDlgItem(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
), g
->ThemeAdv
.Effects
.bMenuAnimation
);
23 //A boolean as an index for a 2-value list:
24 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_SETCURSEL
, (WPARAM
)g
->ThemeAdv
.Effects
.bMenuFade
, 0);
26 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_GETCHECK
, 0, 0);
27 g
->ThemeAdv
.Effects
.bKeyboardCues
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
28 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_GETCHECK
, 0, 0);
29 g
->ThemeAdv
.Effects
.bDragFullWindows
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
35 SaveCurrentValues(HWND hwndDlg
, GLOBALS
*g
)
40 AddToCombo(HWND hwndDlg
, INT From
, INT To
, INT Combo
)
42 INT iElement
, iListIndex
, i
=0;
45 for (iElement
= From
; iElement
<=To
; iElement
++)
47 LoadString(hApplet
, iElement
, (LPTSTR
)tstrText
, 80);
48 iListIndex
= SendDlgItemMessage(hwndDlg
, Combo
, CB_ADDSTRING
, 0, (LPARAM
)tstrText
);
49 SendDlgItemMessage(hwndDlg
, Combo
, CB_SETITEMDATA
, (WPARAM
)iListIndex
, (LPARAM
)i
++ );
53 /* Initialize the effects appearance dialog */
55 EffAppearanceDlg_Init(HWND hwndDlg
, GLOBALS
*g
)
59 /* Copy the current theme values */
60 g
->ThemeAdv
= g
->Theme
;
62 AddToCombo(hwndDlg
, IDS_SLIDEEFFECT
, IDS_FADEEFFECT
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
);
64 state
= g
->ThemeAdv
.Effects
.bMenuAnimation
? BST_CHECKED
: BST_UNCHECKED
;
65 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_SETCHECK
, state
, 0);
67 state
= g
->ThemeAdv
.Effects
.bKeyboardCues
? BST_CHECKED
: BST_UNCHECKED
;
68 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_SETCHECK
, state
, 0);
70 state
= g
->ThemeAdv
.Effects
.bDragFullWindows
? BST_CHECKED
: BST_UNCHECKED
;
71 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_SETCHECK
, state
, 0);
73 /* Update the controls */
74 UpdateControls(hwndDlg
, g
);
79 EffAppearanceDlg_CleanUp(HWND hwndDlg
, GLOBALS
* g
)
84 EffAppearanceDlgProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
)
88 g
= (GLOBALS
*)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
94 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)g
);
95 EffAppearanceDlg_Init(hwndDlg
, g
);
99 EffAppearanceDlg_CleanUp(hwndDlg
, g
);
103 switch(LOWORD(wParam
))
106 SaveCurrentValues(hwndDlg
, g
);
107 EndDialog(hwndDlg
, 0);
111 g
->ThemeAdv
= g
->Theme
;
112 EndDialog(hwndDlg
, 0);
115 case IDC_EFFAPPEARANCE_ANIMATION
:
116 case IDC_EFFAPPEARANCE_KEYBOARDCUES
:
117 case IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
:
118 if (HIWORD(wParam
) == BN_CLICKED
)
120 UpdateControls(hwndDlg
, g
);
124 case IDC_EFFAPPEARANCE_ANIMATIONTYPE
:
125 if (HIWORD(wParam
) == CBN_SELCHANGE
)
127 SaveCurrentValues(hwndDlg
, g
);
128 g
->ThemeAdv
.Effects
.bMenuFade
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_GETCURSEL
, 0, 0);
129 UpdateControls(hwndDlg
, g
);