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

msconfig.c
Go to the documentation of this file.
00001 /*
00002  * PROJECT:     ReactOS Applications
00003  * LICENSE:     LGPL - See COPYING in the top level directory
00004  * FILE:        base/applications/msconfig.c
00005  * PURPOSE:     msconfig main dialog
00006  * COPYRIGHT:   Copyright 2005-2006 Christoph von Wittich <Christoph@ApiViewer.de>
00007  *
00008  */
00009 #include <precomp.h>
00010 
00011 HINSTANCE hInst = 0;
00012 
00013 HWND hMainWnd;                   /* Main Window */
00014 HWND hTabWnd;                    /* Tab Control Window */
00015 UINT uXIcon = 0, uYIcon = 0;     /* Icon sizes */
00016 HICON hDialogIcon = NULL;
00017 
00018 void MsConfig_OnTabWndSelChange(void);
00019 
00020 BOOL OnCreate(HWND hWnd)
00021 {
00022     TCHAR   szTemp[256];
00023     TCITEM  item;
00024 
00025     hTabWnd = GetDlgItem(hWnd, IDC_TAB);
00026     hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd,  GeneralPageWndProc);
00027     hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd,  SystemPageWndProc);
00028     hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd,  FreeLdrPageWndProc);
00029     hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd,  ServicesPageWndProc);
00030     hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd,  StartupPageWndProc);
00031     hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd,  ToolsPageWndProc);
00032 
00033     LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
00034     SetWindowText(hWnd, szTemp);
00035 
00036     // Insert Tab Pages
00037     LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);
00038     memset(&item, 0, sizeof(TCITEM));
00039     item.mask = TCIF_TEXT;
00040     item.pszText = szTemp;
00041     (void)TabCtrl_InsertItem(hTabWnd, 0, &item);
00042 
00043     LoadString(hInst, IDS_TAB_SYSTEM, szTemp, 256);
00044     memset(&item, 0, sizeof(TCITEM));
00045     item.mask = TCIF_TEXT;
00046     item.pszText = szTemp;
00047     (void)TabCtrl_InsertItem(hTabWnd, 1, &item);
00048 
00049     LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);
00050     memset(&item, 0, sizeof(TCITEM));
00051     item.mask = TCIF_TEXT;
00052     item.pszText = szTemp;
00053     (void)TabCtrl_InsertItem(hTabWnd, 2, &item);
00054 
00055     LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);
00056     memset(&item, 0, sizeof(TCITEM));
00057     item.mask = TCIF_TEXT;
00058     item.pszText = szTemp;
00059     (void)TabCtrl_InsertItem(hTabWnd, 3, &item);
00060 
00061     LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);
00062     memset(&item, 0, sizeof(TCITEM));
00063     item.mask = TCIF_TEXT;
00064     item.pszText = szTemp;
00065     (void)TabCtrl_InsertItem(hTabWnd, 4, &item);
00066 
00067     LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);
00068     memset(&item, 0, sizeof(TCITEM));
00069     item.mask = TCIF_TEXT;
00070     item.pszText = szTemp;
00071     (void)TabCtrl_InsertItem(hTabWnd, 5, &item);
00072 
00073     MsConfig_OnTabWndSelChange();
00074 
00075     return TRUE;
00076 }
00077 
00078 
00079 void MsConfig_OnTabWndSelChange(void)
00080 {
00081     switch (TabCtrl_GetCurSel(hTabWnd)) {
00082     case 0: //General
00083         ShowWindow(hGeneralPage, SW_SHOW);
00084         ShowWindow(hSystemPage, SW_HIDE);
00085         ShowWindow(hFreeLdrPage, SW_HIDE);
00086         ShowWindow(hServicesPage, SW_HIDE);
00087         ShowWindow(hStartupPage, SW_HIDE);
00088         ShowWindow(hToolsPage, SW_HIDE);
00089         BringWindowToTop(hGeneralPage);
00090         break;
00091     case 1: //SYSTEM.INI
00092         ShowWindow(hGeneralPage, SW_HIDE);
00093         ShowWindow(hSystemPage, SW_SHOW);
00094         ShowWindow(hToolsPage, SW_HIDE);
00095         ShowWindow(hStartupPage, SW_HIDE);
00096         ShowWindow(hFreeLdrPage, SW_HIDE);
00097         ShowWindow(hServicesPage, SW_HIDE);
00098         BringWindowToTop(hSystemPage);
00099         break;
00100     case 2: //Freeldr
00101         ShowWindow(hGeneralPage, SW_HIDE);
00102         ShowWindow(hSystemPage, SW_HIDE);
00103         ShowWindow(hFreeLdrPage, SW_SHOW);
00104         ShowWindow(hServicesPage, SW_HIDE);
00105         ShowWindow(hStartupPage, SW_HIDE);
00106         ShowWindow(hToolsPage, SW_HIDE);
00107         BringWindowToTop(hFreeLdrPage);
00108         break;
00109     case 3: //Services
00110         ShowWindow(hGeneralPage, SW_HIDE);
00111         ShowWindow(hSystemPage, SW_HIDE);
00112         ShowWindow(hFreeLdrPage, SW_HIDE);
00113         ShowWindow(hServicesPage, SW_SHOW);
00114         ShowWindow(hStartupPage, SW_HIDE);
00115         ShowWindow(hToolsPage, SW_HIDE);
00116         BringWindowToTop(hServicesPage);
00117         break;
00118     case 4: //startup
00119         ShowWindow(hGeneralPage, SW_HIDE);
00120         ShowWindow(hSystemPage, SW_HIDE);
00121         ShowWindow(hFreeLdrPage, SW_HIDE);
00122         ShowWindow(hServicesPage, SW_HIDE);
00123         ShowWindow(hStartupPage, SW_SHOW);
00124         ShowWindow(hToolsPage, SW_HIDE);
00125         BringWindowToTop(hStartupPage);
00126         break;
00127     case 5: //Tools
00128         ShowWindow(hGeneralPage, SW_HIDE);
00129         ShowWindow(hSystemPage, SW_HIDE);
00130         ShowWindow(hFreeLdrPage, SW_HIDE);
00131         ShowWindow(hServicesPage, SW_HIDE);
00132         ShowWindow(hStartupPage, SW_HIDE);
00133         ShowWindow(hToolsPage, SW_SHOW);
00134         BringWindowToTop(hToolsPage);
00135         break;
00136     }
00137 }
00138 
00139 
00140 static
00141 VOID
00142 SetDialogIcon(HWND hDlg)
00143 {
00144     if (hDialogIcon) DestroyIcon(hDialogIcon);
00145 
00146     hDialogIcon = LoadImage(GetModuleHandle(NULL),
00147                             MAKEINTRESOURCE(IDI_APPICON),
00148                             IMAGE_ICON,
00149                             uXIcon,
00150                             uYIcon,
00151                             0);
00152     SendMessage(hDlg,
00153                 WM_SETICON,
00154                 ICON_SMALL,
00155                 (LPARAM)hDialogIcon);
00156 }
00157 
00158 
00159 /* Message handler for dialog box. */
00160 INT_PTR CALLBACK
00161 MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
00162 {
00163     LPNMHDR         pnmh;
00164     UINT            uXIconNew, uYIconNew;
00165 
00166     switch (message)
00167     {
00168         case WM_INITDIALOG:
00169             hMainWnd = hDlg;
00170 
00171             uXIcon = GetSystemMetrics(SM_CXSMICON);
00172             uYIcon = GetSystemMetrics(SM_CYSMICON);
00173 
00174             SetDialogIcon(hDlg);
00175 
00176             return OnCreate(hDlg);
00177 
00178         case WM_SETTINGCHANGE:
00179             uXIconNew = GetSystemMetrics(SM_CXSMICON);
00180             uYIconNew = GetSystemMetrics(SM_CYSMICON);
00181 
00182             if ((uXIcon != uXIconNew) || (uYIcon != uYIconNew))
00183             {
00184                 uXIcon = uXIconNew;
00185                 uYIcon = uYIconNew;
00186                 SetDialogIcon(hDlg);
00187             }
00188             break;
00189 
00190         case WM_COMMAND:
00191 
00192             if (LOWORD(wParam) == IDOK) 
00193             {
00194                 //MsConfig_OnSaveChanges();
00195             }
00196 
00197             if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
00198                 EndDialog(hDlg, LOWORD(wParam));
00199                 return TRUE;
00200             }
00201             break;
00202 
00203         case WM_NOTIFY:
00204             pnmh = (LPNMHDR)lParam;
00205             if ((pnmh->hwndFrom == hTabWnd) &&
00206                 (pnmh->idFrom == IDC_TAB) &&
00207                 (pnmh->code == TCN_SELCHANGE))
00208             {
00209                 MsConfig_OnTabWndSelChange();
00210             }
00211             break;
00212 
00213         case WM_SYSCOLORCHANGE:
00214             /* Forward WM_SYSCOLORCHANGE to common controls */
00215             SendMessage(hServicesListCtrl, WM_SYSCOLORCHANGE, 0, 0);
00216             SendMessage(hStartupListCtrl, WM_SYSCOLORCHANGE, 0, 0);
00217             SendMessage(hToolsListCtrl, WM_SYSCOLORCHANGE, 0, 0);
00218             break;
00219 
00220         case WM_DESTROY:
00221             if (hToolsPage)
00222                 DestroyWindow(hToolsPage);
00223             if (hGeneralPage)
00224                 DestroyWindow(hGeneralPage);
00225             if (hServicesPage)
00226                 DestroyWindow(hServicesPage);
00227             if (hStartupPage)
00228                 DestroyWindow(hStartupPage);
00229             if (hFreeLdrPage)
00230                 DestroyWindow(hFreeLdrPage);
00231             if (hSystemPage)
00232                 DestroyWindow(hSystemPage);
00233             if (hDialogIcon)
00234                 DestroyIcon(hDialogIcon);
00235             return DefWindowProc(hDlg, message, wParam, lParam);
00236     }
00237 
00238     return 0;
00239 }
00240 
00241 int APIENTRY _tWinMain(HINSTANCE hInstance,
00242                        HINSTANCE hPrevInstance,
00243                        LPTSTR    lpCmdLine,
00244                        int       nCmdShow)
00245 {
00246 
00247     INITCOMMONCONTROLSEX InitControls;
00248 
00249     UNREFERENCED_PARAMETER(hPrevInstance);
00250     UNREFERENCED_PARAMETER(lpCmdLine);
00251     UNREFERENCED_PARAMETER(nCmdShow);
00252 
00253     InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
00254     InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
00255     InitCommonControlsEx(&InitControls);
00256 
00257     hInst = hInstance;
00258  
00259     DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL,  MsConfigWndProc);
00260   
00261     return 0;
00262 }
00263 
00264 /* EOF */

Generated on Fri May 25 2012 04:15:12 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.