2 * PROJECT: ReactOS Applications
3 * LICENSE: LGPL - See COPYING in the top level directory
4 * FILE: base/applications/msconfig.c
5 * PURPOSE: msconfig main dialog
6 * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich <Christoph@ApiViewer.de>
13 HWND hMainWnd
; /* Main Window */
14 HWND hTabWnd
; /* Tab Control Window */
15 UINT uXIcon
= 0, uYIcon
= 0; /* Icon sizes */
16 HICON hDialogIcon
= NULL
;
18 void MsConfig_OnTabWndSelChange(void);
20 BOOL
OnCreate(HWND hWnd
)
25 hTabWnd
= GetDlgItem(hWnd
, IDC_TAB
);
26 hGeneralPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_GENERAL_PAGE
), hWnd
, GeneralPageWndProc
);
27 hSystemPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_SYSTEM_PAGE
), hWnd
, SystemPageWndProc
);
28 hFreeLdrPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_FREELDR_PAGE
), hWnd
, FreeLdrPageWndProc
);
29 hServicesPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_SERVICES_PAGE
), hWnd
, ServicesPageWndProc
);
30 hStartupPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_STARTUP_PAGE
), hWnd
, StartupPageWndProc
);
31 hToolsPage
= CreateDialog(hInst
, MAKEINTRESOURCE(IDD_TOOLS_PAGE
), hWnd
, ToolsPageWndProc
);
33 LoadString(hInst
, IDS_MSCONFIG
, szTemp
, 256);
34 SetWindowText(hWnd
, szTemp
);
37 LoadString(hInst
, IDS_TAB_GENERAL
, szTemp
, 256);
38 memset(&item
, 0, sizeof(TCITEM
));
39 item
.mask
= TCIF_TEXT
;
40 item
.pszText
= szTemp
;
41 (void)TabCtrl_InsertItem(hTabWnd
, 0, &item
);
43 LoadString(hInst
, IDS_TAB_SYSTEM
, szTemp
, 256);
44 memset(&item
, 0, sizeof(TCITEM
));
45 item
.mask
= TCIF_TEXT
;
46 item
.pszText
= szTemp
;
47 (void)TabCtrl_InsertItem(hTabWnd
, 1, &item
);
49 LoadString(hInst
, IDS_TAB_FREELDR
, szTemp
, 256);
50 memset(&item
, 0, sizeof(TCITEM
));
51 item
.mask
= TCIF_TEXT
;
52 item
.pszText
= szTemp
;
53 (void)TabCtrl_InsertItem(hTabWnd
, 2, &item
);
55 LoadString(hInst
, IDS_TAB_SERVICES
, szTemp
, 256);
56 memset(&item
, 0, sizeof(TCITEM
));
57 item
.mask
= TCIF_TEXT
;
58 item
.pszText
= szTemp
;
59 (void)TabCtrl_InsertItem(hTabWnd
, 3, &item
);
61 LoadString(hInst
, IDS_TAB_STARTUP
, szTemp
, 256);
62 memset(&item
, 0, sizeof(TCITEM
));
63 item
.mask
= TCIF_TEXT
;
64 item
.pszText
= szTemp
;
65 (void)TabCtrl_InsertItem(hTabWnd
, 4, &item
);
67 LoadString(hInst
, IDS_TAB_TOOLS
, szTemp
, 256);
68 memset(&item
, 0, sizeof(TCITEM
));
69 item
.mask
= TCIF_TEXT
;
70 item
.pszText
= szTemp
;
71 (void)TabCtrl_InsertItem(hTabWnd
, 5, &item
);
73 MsConfig_OnTabWndSelChange();
79 void MsConfig_OnTabWndSelChange(void)
81 switch (TabCtrl_GetCurSel(hTabWnd
)) {
83 ShowWindow(hGeneralPage
, SW_SHOW
);
84 ShowWindow(hSystemPage
, SW_HIDE
);
85 ShowWindow(hFreeLdrPage
, SW_HIDE
);
86 ShowWindow(hServicesPage
, SW_HIDE
);
87 ShowWindow(hStartupPage
, SW_HIDE
);
88 ShowWindow(hToolsPage
, SW_HIDE
);
89 BringWindowToTop(hGeneralPage
);
92 ShowWindow(hGeneralPage
, SW_HIDE
);
93 ShowWindow(hSystemPage
, SW_SHOW
);
94 ShowWindow(hToolsPage
, SW_HIDE
);
95 ShowWindow(hStartupPage
, SW_HIDE
);
96 ShowWindow(hFreeLdrPage
, SW_HIDE
);
97 ShowWindow(hServicesPage
, SW_HIDE
);
98 BringWindowToTop(hSystemPage
);
101 ShowWindow(hGeneralPage
, SW_HIDE
);
102 ShowWindow(hSystemPage
, SW_HIDE
);
103 ShowWindow(hFreeLdrPage
, SW_SHOW
);
104 ShowWindow(hServicesPage
, SW_HIDE
);
105 ShowWindow(hStartupPage
, SW_HIDE
);
106 ShowWindow(hToolsPage
, SW_HIDE
);
107 BringWindowToTop(hFreeLdrPage
);
110 ShowWindow(hGeneralPage
, SW_HIDE
);
111 ShowWindow(hSystemPage
, SW_HIDE
);
112 ShowWindow(hFreeLdrPage
, SW_HIDE
);
113 ShowWindow(hServicesPage
, SW_SHOW
);
114 ShowWindow(hStartupPage
, SW_HIDE
);
115 ShowWindow(hToolsPage
, SW_HIDE
);
116 BringWindowToTop(hServicesPage
);
119 ShowWindow(hGeneralPage
, SW_HIDE
);
120 ShowWindow(hSystemPage
, SW_HIDE
);
121 ShowWindow(hFreeLdrPage
, SW_HIDE
);
122 ShowWindow(hServicesPage
, SW_HIDE
);
123 ShowWindow(hStartupPage
, SW_SHOW
);
124 ShowWindow(hToolsPage
, SW_HIDE
);
125 BringWindowToTop(hStartupPage
);
128 ShowWindow(hGeneralPage
, SW_HIDE
);
129 ShowWindow(hSystemPage
, SW_HIDE
);
130 ShowWindow(hFreeLdrPage
, SW_HIDE
);
131 ShowWindow(hServicesPage
, SW_HIDE
);
132 ShowWindow(hStartupPage
, SW_HIDE
);
133 ShowWindow(hToolsPage
, SW_SHOW
);
134 BringWindowToTop(hToolsPage
);
142 SetDialogIcon(HWND hDlg
)
144 if (hDialogIcon
) DestroyIcon(hDialogIcon
);
146 hDialogIcon
= LoadImage(GetModuleHandle(NULL
),
147 MAKEINTRESOURCE(IDI_APPICON
),
155 (LPARAM
)hDialogIcon
);
159 /* Message handler for dialog box. */
161 MsConfigWndProc(HWND hDlg
, UINT message
, WPARAM wParam
, LPARAM lParam
)
164 UINT uXIconNew
, uYIconNew
;
171 uXIcon
= GetSystemMetrics(SM_CXSMICON
);
172 uYIcon
= GetSystemMetrics(SM_CYSMICON
);
176 return OnCreate(hDlg
);
178 case WM_SETTINGCHANGE
:
179 uXIconNew
= GetSystemMetrics(SM_CXSMICON
);
180 uYIconNew
= GetSystemMetrics(SM_CYSMICON
);
182 if ((uXIcon
!= uXIconNew
) || (uYIcon
!= uYIconNew
))
192 if (LOWORD(wParam
) == IDOK
)
194 //MsConfig_OnSaveChanges();
197 if (LOWORD(wParam
) == IDOK
|| LOWORD(wParam
) == IDCANCEL
) {
198 EndDialog(hDlg
, LOWORD(wParam
));
204 pnmh
= (LPNMHDR
)lParam
;
205 if ((pnmh
->hwndFrom
== hTabWnd
) &&
206 (pnmh
->idFrom
== IDC_TAB
) &&
207 (pnmh
->code
== TCN_SELCHANGE
))
209 MsConfig_OnTabWndSelChange();
213 case WM_SYSCOLORCHANGE
:
214 /* Forward WM_SYSCOLORCHANGE to common controls */
215 SendMessage(hServicesListCtrl
, WM_SYSCOLORCHANGE
, 0, 0);
216 SendMessage(hStartupListCtrl
, WM_SYSCOLORCHANGE
, 0, 0);
217 SendMessage(hToolsListCtrl
, WM_SYSCOLORCHANGE
, 0, 0);
222 DestroyWindow(hToolsPage
);
224 DestroyWindow(hGeneralPage
);
226 DestroyWindow(hServicesPage
);
228 DestroyWindow(hStartupPage
);
230 DestroyWindow(hFreeLdrPage
);
232 DestroyWindow(hSystemPage
);
234 DestroyIcon(hDialogIcon
);
235 return DefWindowProc(hDlg
, message
, wParam
, lParam
);
241 int APIENTRY
_tWinMain(HINSTANCE hInstance
,
242 HINSTANCE hPrevInstance
,
247 INITCOMMONCONTROLSEX InitControls
;
249 UNREFERENCED_PARAMETER(hPrevInstance
);
250 UNREFERENCED_PARAMETER(lpCmdLine
);
251 UNREFERENCED_PARAMETER(nCmdShow
);
253 InitControls
.dwSize
= sizeof(INITCOMMONCONTROLSEX
);
254 InitControls
.dwICC
= ICC_TAB_CLASSES
| ICC_LISTVIEW_CLASSES
;
255 InitCommonControlsEx(&InitControls
);
259 DialogBox(hInst
, (LPCTSTR
)IDD_MSCONFIG_DIALOG
, NULL
, MsConfigWndProc
);