Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmsconfig.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
1.7.6.1
|