Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygeneffappdlg.c
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS Display Control Panel 00004 * FILE: dll/cpl/desk/effappdlg.c 00005 * PURPOSE: Effects appearance dialog 00006 * 00007 * PROGRAMMER: Jan Roeloffzen (jroeloffzen[at]hotmail[dot]com) 00008 * 00009 */ 00010 00011 #include "desk.h" 00012 00013 /* Update all the controls with the current values for the selected screen element */ 00014 static VOID 00015 UpdateControls(HWND hwndDlg, GLOBALS *g) 00016 { 00017 WPARAM state; 00018 state = SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_ANIMATION, BM_GETCHECK, 0, 0); 00019 g->SchemeAdv.Effects.bMenuAnimation = (state == BST_CHECKED) ? TRUE : FALSE; 00020 EnableWindow(GetDlgItem(hwndDlg, IDC_EFFAPPEARANCE_ANIMATIONTYPE), g->SchemeAdv.Effects.bMenuAnimation); 00021 00022 // A boolean as an index for a 2-value list: 00023 SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_ANIMATIONTYPE, CB_SETCURSEL, (WPARAM)g->SchemeAdv.Effects.bMenuFade, 0); 00024 00025 state = SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_KEYBOARDCUES, BM_GETCHECK, 0, 0); 00026 g->SchemeAdv.Effects.bKeyboardCues = (state == BST_CHECKED) ? TRUE : FALSE; 00027 state = SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS, BM_GETCHECK, 0, 0); 00028 g->SchemeAdv.Effects.bDragFullWindows = (state == BST_CHECKED) ? TRUE : FALSE; 00029 g->bSchemeChanged = TRUE; 00030 } 00031 00032 00033 static VOID 00034 SaveCurrentValues(HWND hwndDlg, GLOBALS *g) 00035 { 00036 } 00037 00038 static VOID 00039 AddToCombo(HWND hwndDlg, INT From, INT To, INT Combo) 00040 { 00041 INT iElement, iListIndex, i=0; 00042 TCHAR tstrText[80]; 00043 00044 for (iElement = From; iElement<=To; iElement++) 00045 { 00046 LoadString(hApplet, iElement, (LPTSTR)tstrText, 80); 00047 iListIndex = SendDlgItemMessage(hwndDlg, Combo, CB_ADDSTRING, 0, (LPARAM)tstrText); 00048 SendDlgItemMessage(hwndDlg, Combo, CB_SETITEMDATA, (WPARAM)iListIndex, (LPARAM)i++ ); 00049 } 00050 } 00051 00052 /* Initialize the effects appearance dialog */ 00053 static VOID 00054 EffAppearanceDlg_Init(HWND hwndDlg, GLOBALS *g) 00055 { 00056 WPARAM state; 00057 00058 /* Copy the current theme values */ 00059 g->SchemeAdv = g->Scheme; 00060 00061 AddToCombo(hwndDlg, IDS_SLIDEEFFECT, IDS_FADEEFFECT, IDC_EFFAPPEARANCE_ANIMATIONTYPE); 00062 00063 state = g->SchemeAdv.Effects.bMenuAnimation ? BST_CHECKED : BST_UNCHECKED; 00064 SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_ANIMATION, BM_SETCHECK, state, 0); 00065 00066 state = g->SchemeAdv.Effects.bKeyboardCues ? BST_CHECKED : BST_UNCHECKED; 00067 SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_KEYBOARDCUES, BM_SETCHECK, state, 0); 00068 00069 state = g->SchemeAdv.Effects.bDragFullWindows ? BST_CHECKED : BST_UNCHECKED; 00070 SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_DRAGFULLWINDOWS, BM_SETCHECK, state, 0); 00071 00072 /* Update the controls */ 00073 UpdateControls(hwndDlg, g); 00074 } 00075 00076 00077 static VOID 00078 EffAppearanceDlg_CleanUp(HWND hwndDlg, GLOBALS* g) 00079 { 00080 } 00081 00082 INT_PTR CALLBACK 00083 EffAppearanceDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00084 { 00085 GLOBALS* g; 00086 00087 g = (GLOBALS*)GetWindowLongPtr(hwndDlg, DWLP_USER); 00088 00089 switch (uMsg) 00090 { 00091 case WM_INITDIALOG: 00092 g = (GLOBALS*)lParam; 00093 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)g); 00094 EffAppearanceDlg_Init(hwndDlg, g); 00095 break; 00096 00097 case WM_DESTROY: 00098 EffAppearanceDlg_CleanUp(hwndDlg, g); 00099 break; 00100 00101 case WM_COMMAND: 00102 switch(LOWORD(wParam)) 00103 { 00104 case IDOK: 00105 SaveCurrentValues(hwndDlg, g); 00106 EndDialog(hwndDlg, IDOK); 00107 break; 00108 00109 case IDCANCEL: 00110 g->SchemeAdv = g->Scheme; 00111 EndDialog(hwndDlg, IDCANCEL); 00112 break; 00113 00114 case IDC_EFFAPPEARANCE_ANIMATION: 00115 case IDC_EFFAPPEARANCE_KEYBOARDCUES: 00116 case IDC_EFFAPPEARANCE_DRAGFULLWINDOWS: 00117 if (HIWORD(wParam) == BN_CLICKED) 00118 { 00119 UpdateControls(hwndDlg, g); 00120 } 00121 break; 00122 00123 case IDC_EFFAPPEARANCE_ANIMATIONTYPE: 00124 if (HIWORD(wParam) == CBN_SELCHANGE) 00125 { 00126 SaveCurrentValues(hwndDlg, g); 00127 g->SchemeAdv.Effects.bMenuFade = SendDlgItemMessage(hwndDlg, IDC_EFFAPPEARANCE_ANIMATIONTYPE, CB_GETCURSEL, 0, 0); 00128 UpdateControls(hwndDlg, g); 00129 } 00130 break; 00131 00132 default: 00133 return FALSE; 00134 } 00135 break; 00136 00137 default: 00138 return FALSE; 00139 } 00140 00141 return TRUE; 00142 } Generated on Fri May 25 2012 04:19:02 for ReactOS by
1.7.6.1
|