2623d6f5b3177ac94fd44ed4f66c827bf276f6ae
[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 hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);
16 hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
17 hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, StartupPageWndProc);
18
19 // Insert Tab Pages
20 LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);
21 memset(&item, 0, sizeof(TCITEM));
22 item.mask = TCIF_TEXT;
23 item.pszText = szTemp;
24 TabCtrl_InsertItem(hTabWnd, 0, &item);
25
26 LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);
27 memset(&item, 0, sizeof(TCITEM));
28 item.mask = TCIF_TEXT;
29 item.pszText = szTemp;
30 TabCtrl_InsertItem(hTabWnd, 1, &item);
31
32 LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);
33 memset(&item, 0, sizeof(TCITEM));
34 item.mask = TCIF_TEXT;
35 item.pszText = szTemp;
36 TabCtrl_InsertItem(hTabWnd, 2, &item);
37
38 LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);
39 memset(&item, 0, sizeof(TCITEM));
40 item.mask = TCIF_TEXT;
41 item.pszText = szTemp;
42 TabCtrl_InsertItem(hTabWnd, 3, &item);
43
44 LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);
45 memset(&item, 0, sizeof(TCITEM));
46 item.mask = TCIF_TEXT;
47 item.pszText = szTemp;
48 TabCtrl_InsertItem(hTabWnd, 4, &item);
49
50 return TRUE;
51 }
52
53
54 void MsConfig_OnTabWndSelChange(void)
55 {
56 switch (TabCtrl_GetCurSel(hTabWnd)) {
57 case 0: //General
58 ShowWindow(hToolsPage, SW_HIDE);
59 ShowWindow(hStartupPage, SW_HIDE);
60 //ShowWindow(hFreeLdrPage, SW_HIDE);
61 ShowWindow(hServicesPage, SW_HIDE);
62 //BringWindowToTop(hFreeLdrPage);
63 break;
64 case 1: //Freeldr
65 ShowWindow(hToolsPage, SW_HIDE);
66 ShowWindow(hStartupPage, SW_HIDE);
67 //ShowWindow(hFreeLdrPage, SW_SHOW);
68 ShowWindow(hServicesPage, SW_HIDE);
69 //BringWindowToTop(hFreeLdrPage);
70 break;
71 case 2: //Services
72 ShowWindow(hToolsPage, SW_HIDE);
73 ShowWindow(hStartupPage, SW_HIDE);
74 //ShowWindow(hFreeLdrPage, SW_HIDE);
75 ShowWindow(hServicesPage, SW_SHOW);
76 //BringWindowToTop(hFreeLdrPage);
77 break;
78 case 3: //startup
79 ShowWindow(hToolsPage, SW_HIDE);
80 ShowWindow(hStartupPage, SW_SHOW);
81 //ShowWindow(hFreeLdrPage, SW_HIDE);
82 ShowWindow(hServicesPage, SW_HIDE);
83 BringWindowToTop(hStartupPage);
84 break;
85 case 4: //Tools
86 ShowWindow(hToolsPage, SW_SHOW);
87 ShowWindow(hStartupPage, SW_HIDE);
88 //ShowWindow(hFreeLdrPage, SW_HIDE);
89 ShowWindow(hServicesPage, SW_HIDE);
90 BringWindowToTop(hToolsPage);
91 break;
92 }
93 }
94
95
96 /* Message handler for dialog box. */
97 INT_PTR CALLBACK
98 MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
99 {
100 int idctrl;
101 LPNMHDR pnmh;
102
103 switch (message) {
104 case WM_INITDIALOG:
105 hMainWnd = hDlg;
106 return OnCreate(hDlg);
107
108 case WM_COMMAND:
109
110 if (LOWORD(wParam) == IDOK) {
111 //MsConfig_OnSaveChanges();
112 }
113
114 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
115 EndDialog(hDlg, LOWORD(wParam));
116 return TRUE;
117 }
118 break;
119
120 case WM_NOTIFY:
121 idctrl = (int)wParam;
122 pnmh = (LPNMHDR)lParam;
123 if ((pnmh->hwndFrom == hTabWnd) &&
124 (pnmh->idFrom == IDC_TAB) &&
125 (pnmh->code == TCN_SELCHANGE))
126 {
127 MsConfig_OnTabWndSelChange();
128 }
129 break;
130
131 case WM_DESTROY:
132 DestroyWindow(hToolsPage);
133 DestroyWindow(hServicesPage);
134 DestroyWindow(hStartupPage);
135 return DefWindowProc(hDlg, message, wParam, lParam);
136
137 }
138
139 return 0;
140 }
141
142 int APIENTRY WinMain(HINSTANCE hInstance,
143 HINSTANCE hPrevInstance,
144 LPSTR lpCmdLine,
145 int nCmdShow)
146 {
147
148 INITCOMMONCONTROLSEX InitControls;
149
150 InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
151 InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
152 InitCommonControlsEx(&InitControls);
153
154 hInst = hInstance;
155
156 DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc);
157
158 return 0;
159 }
160
161 /* EOF */