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)
13 /* Update all the controls with the current values for the selected screen element */
15 UpdateControls(HWND hwndDlg
, GLOBALS
*g
)
18 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_GETCHECK
, 0, 0);
19 g
->SchemeAdv
.Effects
.bMenuAnimation
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
20 EnableWindow(GetDlgItem(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
), g
->SchemeAdv
.Effects
.bMenuAnimation
);
22 // A boolean as an index for a 2-value list:
23 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_SETCURSEL
, (WPARAM
)g
->SchemeAdv
.Effects
.bMenuFade
, 0);
25 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_GETCHECK
, 0, 0);
26 g
->SchemeAdv
.Effects
.bKeyboardCues
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
27 state
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_GETCHECK
, 0, 0);
28 g
->SchemeAdv
.Effects
.bDragFullWindows
= (state
== BST_CHECKED
) ? TRUE
: FALSE
;
29 g
->bSchemeChanged
= TRUE
;
34 SaveCurrentValues(HWND hwndDlg
, GLOBALS
*g
)
39 AddToCombo(HWND hwndDlg
, INT From
, INT To
, INT Combo
)
41 INT iElement
, iListIndex
, i
=0;
44 for (iElement
= From
; iElement
<=To
; iElement
++)
46 LoadString(hApplet
, iElement
, (LPTSTR
)tstrText
, 80);
47 iListIndex
= SendDlgItemMessage(hwndDlg
, Combo
, CB_ADDSTRING
, 0, (LPARAM
)tstrText
);
48 SendDlgItemMessage(hwndDlg
, Combo
, CB_SETITEMDATA
, (WPARAM
)iListIndex
, (LPARAM
)i
++ );
52 /* Initialize the effects appearance dialog */
54 EffAppearanceDlg_Init(HWND hwndDlg
, GLOBALS
*g
)
58 /* Copy the current theme values */
59 g
->SchemeAdv
= g
->Scheme
;
61 AddToCombo(hwndDlg
, IDS_SLIDEEFFECT
, IDS_FADEEFFECT
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
);
63 state
= g
->SchemeAdv
.Effects
.bMenuAnimation
? BST_CHECKED
: BST_UNCHECKED
;
64 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATION
, BM_SETCHECK
, state
, 0);
66 state
= g
->SchemeAdv
.Effects
.bKeyboardCues
? BST_CHECKED
: BST_UNCHECKED
;
67 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_KEYBOARDCUES
, BM_SETCHECK
, state
, 0);
69 state
= g
->SchemeAdv
.Effects
.bDragFullWindows
? BST_CHECKED
: BST_UNCHECKED
;
70 SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
, BM_SETCHECK
, state
, 0);
72 /* Update the controls */
73 UpdateControls(hwndDlg
, g
);
78 EffAppearanceDlg_CleanUp(HWND hwndDlg
, GLOBALS
* g
)
83 EffAppearanceDlgProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
)
87 g
= (GLOBALS
*)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
93 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (LONG_PTR
)g
);
94 EffAppearanceDlg_Init(hwndDlg
, g
);
98 EffAppearanceDlg_CleanUp(hwndDlg
, g
);
102 switch(LOWORD(wParam
))
105 SaveCurrentValues(hwndDlg
, g
);
106 EndDialog(hwndDlg
, IDOK
);
110 g
->SchemeAdv
= g
->Scheme
;
111 EndDialog(hwndDlg
, IDCANCEL
);
114 case IDC_EFFAPPEARANCE_ANIMATION
:
115 case IDC_EFFAPPEARANCE_KEYBOARDCUES
:
116 case IDC_EFFAPPEARANCE_DRAGFULLWINDOWS
:
117 if (HIWORD(wParam
) == BN_CLICKED
)
119 UpdateControls(hwndDlg
, g
);
123 case IDC_EFFAPPEARANCE_ANIMATIONTYPE
:
124 if (HIWORD(wParam
) == CBN_SELCHANGE
)
126 SaveCurrentValues(hwndDlg
, g
);
127 g
->SchemeAdv
.Effects
.bMenuFade
= SendDlgItemMessage(hwndDlg
, IDC_EFFAPPEARANCE_ANIMATIONTYPE
, CB_GETCURSEL
, 0, 0);
128 UpdateControls(hwndDlg
, g
);