ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

effappdlg.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.