Skip to content

Commit b087c08

Browse files
authored
[MSCONFIG] Disable actions that are not implemented (reactos#8178)
1 parent c14a14e commit b087c08

File tree

6 files changed

+54
-1
lines changed

6 files changed

+54
-1
lines changed

base/applications/msconfig/freeldrpage.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ FreeLdrPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
140140
hFreeLdrDialog = hDlg;
141141
SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
142142
InitializeFreeLDRDialog(hDlg);
143+
DisableAllExcept(hDlg, IDC_LIST_BOX); // FIXME: Implement saving
143144
return TRUE;
144145
case WM_COMMAND:
145146
switch(HIWORD(wParam))

base/applications/msconfig/msconfig.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ BOOL EnableDialogTheme(HWND hwnd)
8080
return FALSE;
8181
}
8282
}
83+
84+
VOID DisableAllExcept(HWND hTabDlg, UINT idExcept)
85+
{
86+
HWND hSkip = GetDlgItem(hTabDlg, idExcept);
87+
for (HWND hWnd = NULL; (hWnd = FindWindowExW(hTabDlg, hWnd, NULL, NULL)) != NULL;)
88+
EnableWindow(hWnd, hWnd == hSkip);
89+
}
90+
8391
BOOL OnCreate(HWND hWnd)
8492
{
8593
TCHAR szTemp[256];
@@ -135,6 +143,10 @@ BOOL OnCreate(HWND hWnd)
135143

136144
MsConfig_OnTabWndSelChange();
137145

146+
// FIXME: We don't support applying anything
147+
EnableWindow(GetDlgItem(hWnd, IDOK), FALSE);
148+
EnableWindow(GetDlgItem(hWnd, IDC_BTN_APPLY), FALSE);
149+
EnableWindow(GetDlgItem(hWnd, IDC_BTN_HELP), FALSE);
138150
return TRUE;
139151
}
140152

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#pragma once
22

33
extern HINSTANCE hInst;
4+
5+
VOID DisableAllExcept(HWND hTabDlg, UINT idExcept);

base/applications/msconfig/srvpage.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,26 @@ ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
6767
(void)ListView_InsertColumn(hServicesListCtrl, 3, &column);
6868

6969
GetServices();
70+
DisableAllExcept(hDlg, IDC_SERVICES_LIST); // FIXME: Implement saving
7071
return TRUE;
72+
73+
case WM_NOTIFY:
74+
if (wParam == IDC_SERVICES_LIST)
75+
{
76+
NMLISTVIEW *pnmlv = (NMLISTVIEW*)lParam;
77+
UINT toggled = (pnmlv->uOldState ^ pnmlv->uNewState) & LVIS_STATEIMAGEMASK;
78+
if (pnmlv->hdr.code == LVN_ITEMCHANGING && (pnmlv->uChanged & LVIF_STATE) && toggled)
79+
{
80+
// Only allow checkbox changes during WM_INITDIALOG
81+
if (!IsWindowEnabled(GetDlgItem(hDlg, IDC_BTN_SERVICES_ACTIVATE)))
82+
{
83+
MessageBeep(-1);
84+
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, TRUE);
85+
return TRUE;
86+
}
87+
}
88+
}
89+
break;
7190
}
7291

7392
return 0;

base/applications/msconfig/startuppage.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,26 @@ StartupPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
6565

6666
//FIXME: What about HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
6767
//FIXME: Common Startup (startmenu)
68-
68+
DisableAllExcept(hDlg, IDC_STARTUP_LIST); // FIXME: Implement saving
6969
return TRUE;
70+
71+
case WM_NOTIFY:
72+
if (wParam == IDC_STARTUP_LIST)
73+
{
74+
NMLISTVIEW *pnmlv = (NMLISTVIEW*)lParam;
75+
UINT toggled = (pnmlv->uOldState ^ pnmlv->uNewState) & LVIS_STATEIMAGEMASK;
76+
if (pnmlv->hdr.code == LVN_ITEMCHANGING && (pnmlv->uChanged & LVIF_STATE) && toggled)
77+
{
78+
// Only allow checkbox changes during WM_INITDIALOG
79+
if (!IsWindowEnabled(GetDlgItem(hDlg, IDC_BTN_STARTUP_ACTIVATE)))
80+
{
81+
MessageBeep(-1);
82+
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, TRUE);
83+
return TRUE;
84+
}
85+
}
86+
}
87+
break;
7088
}
7189

7290
return 0;

base/applications/msconfig/systempage.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
9494
hSystemDialog = hDlg;
9595
SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
9696
InitializeSystemDialog(hDlg);
97+
DisableAllExcept(hDlg, IDC_SYSTEM_TREE); // FIXME: Implement saving
9798
return TRUE;
9899
}
99100
}

0 commit comments

Comments
 (0)