Revert, thx Thomas, wasnt sure.
[reactos.git] / reactos / subsys / system / msconfig / msconfig.c
1 #include <precomp.h>
2
3 HINSTANCE hInst = 0;
4
5 HWND hMainWnd; /* Main Window */
6 HWND hTabWnd; /* Tab Control Window */
7
8
9 BOOL OnCreate(HWND hWnd)
10 {
11 TCHAR szTemp[256];
12 TCITEM item;
13
14 hTabWnd = GetDlgItem(hWnd, IDC_TAB);
15 hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd, GeneralPageWndProc);
16 hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd, SystemPageWndProc);
17 hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd, FreeLdrPageWndProc);
18 hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
19 hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, StartupPageWndProc);
20 hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);
21
22 LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
23 SetWindowText(hWnd, szTemp);
24
25 // Insert Tab Pages
26 LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);
27 memset(&item, 0, sizeof(TCITEM));
28 item.mask = TCIF_TEXT;
29 item.pszText = szTemp;
30 TabCtrl_InsertItem(hTabWnd, 0, &item);
31
32 LoadString(hInst, IDS_TAB_SYSTEM, szTemp, 256);
33 memset(&item, 0, sizeof(TCITEM));
34 item.mask = TCIF_TEXT;
35 item.pszText = szTemp;
36 TabCtrl_InsertItem(hTabWnd, 1, &item);
37
38 LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);
39 memset(&item, 0, sizeof(TCITEM));
40 item.mask = TCIF_TEXT;
41 item.pszText = szTemp;
42 TabCtrl_InsertItem(hTabWnd, 2, &item);
43
44 LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);
45 memset(&item, 0, sizeof(TCITEM));
46 item.mask = TCIF_TEXT;
47 item.pszText = szTemp;
48 TabCtrl_InsertItem(hTabWnd, 3, &item);
49
50 LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);
51 memset(&item, 0, sizeof(TCITEM));
52 item.mask = TCIF_TEXT;
53 item.pszText = szTemp;
54 TabCtrl_InsertItem(hTabWnd, 4, &item);
55
56 LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);
57 memset(&item, 0, sizeof(TCITEM));
58 item.mask = TCIF_TEXT;
59 item.pszText = szTemp;
60 TabCtrl_InsertItem(hTabWnd, 5, &item);
61
62 return TRUE;
63 }
64
65
66 void MsConfig_OnTabWndSelChange(void)
67 {
68 switch (TabCtrl_GetCurSel(hTabWnd)) {
69 case 0: //General
70 ShowWindow(hGeneralPage, SW_SHOW);
71 ShowWindow(hSystemPage, SW_HIDE);
72 ShowWindow(hFreeLdrPage, SW_HIDE);
73 ShowWindow(hServicesPage, SW_HIDE);
74 ShowWindow(hStartupPage, SW_HIDE);
75 ShowWindow(hToolsPage, SW_HIDE);
76 BringWindowToTop(hGeneralPage);
77 break;
78 case 1: //SYSTEM.INI
79 ShowWindow(hGeneralPage, SW_HIDE);
80 ShowWindow(hSystemPage, SW_SHOW);
81 ShowWindow(hToolsPage, SW_HIDE);
82 ShowWindow(hStartupPage, SW_HIDE);
83 ShowWindow(hFreeLdrPage, SW_HIDE);
84 ShowWindow(hServicesPage, SW_HIDE);
85 BringWindowToTop(hSystemPage);
86 break;
87 case 2: //Freeldr
88 ShowWindow(hGeneralPage, SW_HIDE);
89 ShowWindow(hSystemPage, SW_HIDE);
90 ShowWindow(hFreeLdrPage, SW_SHOW);
91 ShowWindow(hServicesPage, SW_HIDE);
92 ShowWindow(hStartupPage, SW_HIDE);
93 ShowWindow(hToolsPage, SW_HIDE);
94 BringWindowToTop(hFreeLdrPage);
95 break;
96 case 3: //Services
97 ShowWindow(hGeneralPage, SW_HIDE);
98 ShowWindow(hSystemPage, SW_HIDE);
99 ShowWindow(hFreeLdrPage, SW_HIDE);
100 ShowWindow(hServicesPage, SW_SHOW);
101 ShowWindow(hStartupPage, SW_HIDE);
102 ShowWindow(hToolsPage, SW_HIDE);
103 BringWindowToTop(hServicesPage);
104 break;
105 case 4: //startup
106 ShowWindow(hGeneralPage, SW_HIDE);
107 ShowWindow(hSystemPage, SW_HIDE);
108 ShowWindow(hFreeLdrPage, SW_HIDE);
109 ShowWindow(hServicesPage, SW_HIDE);
110 ShowWindow(hStartupPage, SW_SHOW);
111 ShowWindow(hToolsPage, SW_HIDE);
112 BringWindowToTop(hStartupPage);
113 break;
114 case 5: //Tools
115 ShowWindow(hGeneralPage, SW_HIDE);
116 ShowWindow(hSystemPage, SW_HIDE);
117 ShowWindow(hFreeLdrPage, SW_HIDE);
118 ShowWindow(hServicesPage, SW_HIDE);
119 ShowWindow(hStartupPage, SW_HIDE);
120 ShowWindow(hToolsPage, SW_SHOW);
121 BringWindowToTop(hToolsPage);
122 break;
123 }
124 }
125
126
127 /* Message handler for dialog box. */
128 INT_PTR CALLBACK
129 MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
130 {
131 int idctrl;
132 LPNMHDR pnmh;
133
134 switch (message) {
135 case WM_INITDIALOG:
136 hMainWnd = hDlg;
137 return OnCreate(hDlg);
138
139 case WM_COMMAND:
140
141 if (LOWORD(wParam) == IDOK) {
142 //MsConfig_OnSaveChanges();
143 }
144
145 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
146 EndDialog(hDlg, LOWORD(wParam));
147 return TRUE;
148 }
149 break;
150
151 case WM_NOTIFY:
152 idctrl = (int)wParam;
153 pnmh = (LPNMHDR)lParam;
154 if ((pnmh->hwndFrom == hTabWnd) &&
155 (pnmh->idFrom == IDC_TAB) &&
156 (pnmh->code == TCN_SELCHANGE))
157 {
158 MsConfig_OnTabWndSelChange();
159 }
160 break;
161
162 case WM_DESTROY:
163 DestroyWindow(hToolsPage);
164 DestroyWindow(hServicesPage);
165 DestroyWindow(hStartupPage);
166 DestroyWindow(hFreeLdrPage);
167 DestroyWindow(hSystemPage);
168 return DefWindowProc(hDlg, message, wParam, lParam);
169
170 }
171
172 return 0;
173 }
174
175 int APIENTRY WinMain(HINSTANCE hInstance,
176 HINSTANCE hPrevInstance,
177 LPSTR lpCmdLine,
178 int nCmdShow)
179 {
180
181 INITCOMMONCONTROLSEX InitControls;
182
183 InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
184 InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
185 InitCommonControlsEx(&InitControls);
186
187 hInst = hInstance;
188
189 DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc);
190
191 return 0;
192 }
193
194 /* EOF */