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
) ? FALSE
: TRUE
;
33 SaveCurrentValues(HWND hwndDlg
, GLOBALS
*g
)
38 AddToCombo(HWND hwndDlg
, INT From
, INT To
, INT Combo
)
40 INT iElement
, iListIndex
, i
=0;
43 for (iElement
= From
; iElement
<=To
; iElement
++)
45 LoadString(hApplet
, iElement
, (LPTSTR
)tstrText
, 80);
46 iListIndex
= SendDlgItemMessage(hwndDlg
, Combo
, CB_ADDSTRING
, 0, (LPARAM
)tstrText
);
47 SendDlgItemMessage(hwndDlg
, Combo
, CB_SETITEMDATA
, (WPARAM
)iListIndex
, (LPARAM
)i
++ );
51 /* Initialize the effects appearance dialog */
53 EffAppearanceDlg_Init(HWND hwndDlg
, GLOBALS
*g
)
57 /* Copy the current theme values */
58 g
->ThemeAdv
= g
->Theme
;
60 AddToCombo(hwndDlg
, IDS_SLIDEEFFECT
, IDS_FADEEFFECT
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
);
62 state
= g
->ThemeAdv
.Effects
.bMenuAnimation
? BST_CHECKED
: BST_UNCHECKED
;
63 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_SETCHECK
, state
, 0);
65 state
= g
->ThemeAdv
.Effects
.bKeyboardCues
? BST_UNCHECKED
: BST_CHECKED
;
66 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_SETCHECK
, state
, 0);
68 /* Update the controls */
69 UpdateControls(hwndDlg
, g
);
74 EffAppearanceDlg_CleanUp(HWND hwndDlg
, GLOBALS
* g
)
79 EffAppearanceDlgProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
)
83 g
= (GLOBALS
*)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
89 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)g
);
90 EffAppearanceDlg_Init(hwndDlg
, g
);
94 EffAppearanceDlg_CleanUp(hwndDlg
, g
);
98 switch(LOWORD(wParam
))
101 SaveCurrentValues(hwndDlg
, g
);
102 EndDialog(hwndDlg
, 0);
106 g
->ThemeAdv
= g
->Theme
;
107 EndDialog(hwndDlg
, 0);
110 case IDC_EFFAPPEARANCE_ANIMATION
:
111 case IDC_EFFAPPEARANCE_KEYBOARDCUES
:
112 if (HIWORD(wParam
) == BN_CLICKED
)
114 UpdateControls(hwndDlg
, g
);
118 case IDC_EFFAPPEARANCE_ANIMATIONTYPE
:
119 if (HIWORD(wParam
) == CBN_SELCHANGE
)
121 SaveCurrentValues(hwndDlg
, g
);
122 g
->ThemeAdv
.Effects
.bMenuFade
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_GETCURSEL
, 0, 0);
123 UpdateControls(hwndDlg
, g
);