From 1ba6d6e07937be34ebb115c8204a8946f009f92d Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Tue, 17 May 2011 18:32:51 +0000 Subject: [PATCH] [msconfig/freeldr] - Load freeldr.ini first chance, boot.ini on second chance - Make freeldr list box scrollable - Fix some FIXME's [msgconfig/system] - Implement parsing and displaying system.ini contents See issue #1986 for more details. svn path=/trunk/; revision=51811 --- .../base/applications/msconfig/freeldrpage.c | 139 ++++++++++-------- .../base/applications/msconfig/lang/bg-BG.rc | 2 +- .../base/applications/msconfig/lang/ca-ES.rc | 2 +- .../base/applications/msconfig/lang/cs-CZ.rc | 2 +- .../base/applications/msconfig/lang/de-DE.rc | 2 +- .../base/applications/msconfig/lang/el-GR.rc | 2 +- .../base/applications/msconfig/lang/en-US.rc | 2 +- .../base/applications/msconfig/lang/es-ES.rc | 2 +- .../base/applications/msconfig/lang/fr-FR.rc | 2 +- .../base/applications/msconfig/lang/hu-HU.rc | 2 +- .../base/applications/msconfig/lang/id-ID.rc | 2 +- .../base/applications/msconfig/lang/it-IT.rc | 2 +- .../base/applications/msconfig/lang/ko-KR.rc | 2 +- .../base/applications/msconfig/lang/nl-NL.rc | 2 +- .../base/applications/msconfig/lang/no-NO.rc | 2 +- .../base/applications/msconfig/lang/pl-PL.rc | 2 +- .../base/applications/msconfig/lang/pt-BR.rc | 2 +- .../base/applications/msconfig/lang/ro-RO.rc | 2 +- .../base/applications/msconfig/lang/ru-RU.rc | 2 +- .../base/applications/msconfig/lang/sk-SK.rc | 2 +- .../base/applications/msconfig/lang/sv-SE.rc | 2 +- .../base/applications/msconfig/lang/th-TH.rc | 2 +- .../base/applications/msconfig/lang/uk-UA.rc | 2 +- .../base/applications/msconfig/lang/zh-CN.rc | 2 +- .../base/applications/msconfig/systempage.c | 70 ++++++++- 25 files changed, 166 insertions(+), 89 deletions(-) diff --git a/reactos/base/applications/msconfig/freeldrpage.c b/reactos/base/applications/msconfig/freeldrpage.c index a82f1c560be..e8208007788 100644 --- a/reactos/base/applications/msconfig/freeldrpage.c +++ b/reactos/base/applications/msconfig/freeldrpage.c @@ -1,10 +1,10 @@ /* * PROJECT: ReactOS Applications * LICENSE: LGPL - See COPYING in the top level directory - * FILE: base/applications/freeldrpage.c + * FILE: base/applications/msconfig/freeldrpage.c * PURPOSE: Freeloader configuration page message handler * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich - * + * 2011 Gregor Schneider */ #include @@ -23,100 +23,111 @@ typedef struct static FREELDR_SETTINGS Settings = { 0, { 0, }, 0, 0, FALSE }; +#define BUFFER_SIZE 512 -BOOL -LoadBootIni(WCHAR * szDrive, HWND hDlg) +static BOOL +LoadBootIni(WCHAR *szDrive, HWND hDlg) { - WCHAR szBuffer[512]; - HWND hDlgCtrl; - FILE * file; - UINT length; - LRESULT pos; + WCHAR szBuffer[BUFFER_SIZE]; + HWND hDlgCtrl; + FILE * file; + UINT length; + LRESULT pos; - wcscpy(szBuffer, szDrive); - wcscat(szBuffer, L"boot.ini"); - - file = _wfopen(szBuffer, L"rt"); - if (!file) - return FALSE; - - hDlgCtrl = GetDlgItem(hDlg, IDC_LIST_BOX); + wcscpy(szBuffer, szDrive); + wcscat(szBuffer, L"freeldr.ini"); - while(!feof(file)) - { - if (fgetws(szBuffer, sizeof(szBuffer) / sizeof(WCHAR), file)) + file = _wfopen(szBuffer, L"rt"); + if (!file) + { + wcscpy(szBuffer, szDrive); + wcscat(szBuffer, L"boot.ini"); + file = _wfopen(szBuffer, L"rt"); + if (!file) + return FALSE; + } + + hDlgCtrl = GetDlgItem(hDlg, IDC_LIST_BOX); + + while(!feof(file)) + { + if (fgetws(szBuffer, BUFFER_SIZE, file)) { length = wcslen(szBuffer); - while(szBuffer[length] < 14) //FIXME remove line feeds - szBuffer[length--] = 0; - - pos = SendMessageW(hDlgCtrl, LB_ADDSTRING, 0, (LPARAM)szBuffer); - - - if (szBuffer[0] == L'[') - continue; - - if (!wcsncmp(szBuffer, L"timeout=", 8)) + if (length > 1) { - Settings.TimeOut = _wtoi(&szBuffer[8]); - continue; - } + szBuffer[length] = L'\0'; + szBuffer[length - 1] = L'\0'; - if (!wcsncmp(szBuffer, L"default=", 8)) - { - wcscpy(Settings.szDefaultOS, &szBuffer[8]); - continue; + pos = SendMessageW(hDlgCtrl, LB_ADDSTRING, 0, (LPARAM)szBuffer); + + if (szBuffer[0] == L'[') + continue; + + if (!wcsncmp(szBuffer, L"timeout=", 8)) + { + Settings.TimeOut = _wtoi(&szBuffer[8]); + continue; + } + + if (!wcsncmp(szBuffer, L"default=", 8)) + { + wcscpy(Settings.szDefaultOS, &szBuffer[8]); + continue; + } + if (pos != LB_ERR) + SendMessage(hDlgCtrl, LB_SETITEMDATA, pos, 1); // indicate that this item is an boot entry + Settings.OSConfigurationCount++; } - if (pos != LB_ERR) - SendMessage(hDlgCtrl, LB_SETITEMDATA, pos, 1); // indicate that this item is an boot entry - Settings.OSConfigurationCount++; } - } + } - fclose(file); - Settings.UseBootIni = TRUE; + fclose(file); + Settings.UseBootIni = TRUE; - pos = SendMessageW(hDlgCtrl, LB_FINDSTRING, 3, (LPARAM)Settings.szDefaultOS); - if (pos != LB_ERR) - { + pos = SendMessageW(hDlgCtrl, LB_FINDSTRING, 3, (LPARAM)Settings.szDefaultOS); + if (pos != LB_ERR) + { Settings.szDefaultPos = pos; SendMessage(hDlgCtrl, LB_SETCURSEL, pos, 0); - } + } - SetDlgItemInt(hDlg, IDC_TXT_BOOT_TIMEOUT, Settings.TimeOut, FALSE); - if (Settings.OSConfigurationCount < 2) - { + SetDlgItemInt(hDlg, IDC_TXT_BOOT_TIMEOUT, Settings.TimeOut, FALSE); + if (Settings.OSConfigurationCount < 2) + { EnableWindow(GetDlgItem(hDlg, IDC_BTN_SET_DEFAULT_BOOT), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_BTN_MOVE_UP_BOOT_OPTION), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_BTN_MOVE_DOWN_BOOT_OPTION), FALSE); - } - return TRUE; + } + return TRUE; } - -BOOL -InitializeDialog(HWND hDlg) +static BOOL +InitializeFreeLDRDialog(HWND hDlg) { - // FIXME - // find real boot drive and handle freeldr configuration ini - return LoadBootIni(L"C:\\", hDlg); + WCHAR winDir[PATH_MAX]; + WCHAR* ptr = NULL; + + GetWindowsDirectoryW(winDir, PATH_MAX); + ptr = wcschr(winDir, L'\\'); + if (ptr == NULL) + { + return FALSE; + } + ptr[1] = L'\0'; + return LoadBootIni(winDir, hDlg); } - - INT_PTR CALLBACK FreeLdrPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { LRESULT pos; - UNREFERENCED_PARAMETER(lParam); - UNREFERENCED_PARAMETER(wParam); - switch (message) { case WM_INITDIALOG: hFreeLdrDialog = hDlg; SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER); - InitializeDialog(hDlg); + InitializeFreeLDRDialog(hDlg); return TRUE; case WM_COMMAND: switch(HIWORD(wParam)) diff --git a/reactos/base/applications/msconfig/lang/bg-BG.rc b/reactos/base/applications/msconfig/lang/bg-BG.rc index 309a414ea46..6c3f36cd12b 100644 --- a/reactos/base/applications/msconfig/lang/bg-BG.rc +++ b/reactos/base/applications/msconfig/lang/bg-BG.rc @@ -78,7 +78,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Ïðîâåðêà íà âñè÷êè ïóñêîâè ïúòèùà", IDC_BTN_CHECK_BOOT_PATH, 5, 65, 129, 12 PUSHBUTTON "&Íàïðàâè ïîäðàçáðàíî", IDC_BTN_SET_DEFAULT_BOOT, 135, 65, 78, 12 PUSHBUTTON "Ïðåìåñòè íà&ãîðå", IDC_BTN_MOVE_UP_BOOT_OPTION, 213, 65, 66, 12 diff --git a/reactos/base/applications/msconfig/lang/ca-ES.rc b/reactos/base/applications/msconfig/lang/ca-ES.rc index 05e16f2c22e..f5dd5878593 100644 --- a/reactos/base/applications/msconfig/lang/ca-ES.rc +++ b/reactos/base/applications/msconfig/lang/ca-ES.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Prova camins d'arrencada", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Fes-ho per defecte", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "P&uja", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/cs-CZ.rc b/reactos/base/applications/msconfig/lang/cs-CZ.rc index d4b77ca2aa0..c2f8a9edbed 100644 --- a/reactos/base/applications/msconfig/lang/cs-CZ.rc +++ b/reactos/base/applications/msconfig/lang/cs-CZ.rc @@ -83,7 +83,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Kontrola cest spuštìní", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 77, 12 PUSHBUTTON "&Nastavit jako výchozí", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 75, 12 PUSHBUTTON "Posunout N&ahoru", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/de-DE.rc b/reactos/base/applications/msconfig/lang/de-DE.rc index 96cb09fd864..8fabcc4a384 100644 --- a/reactos/base/applications/msconfig/lang/de-DE.rc +++ b/reactos/base/applications/msconfig/lang/de-DE.rc @@ -78,7 +78,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Alle Bootpfade überprüfen", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 90, 12 PUSHBUTTON "A&ls Standard", IDC_BTN_SET_DEFAULT_BOOT, 120, 65, 63, 12 PUSHBUTTON "Nach &oben", IDC_BTN_MOVE_UP_BOOT_OPTION, 203, 65, 63, 12 diff --git a/reactos/base/applications/msconfig/lang/el-GR.rc b/reactos/base/applications/msconfig/lang/el-GR.rc index 6a5fdb5c821..f9efa5814aa 100644 --- a/reactos/base/applications/msconfig/lang/el-GR.rc +++ b/reactos/base/applications/msconfig/lang/el-GR.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Check All Boot Paths", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Set as Default", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Move &Up", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/en-US.rc b/reactos/base/applications/msconfig/lang/en-US.rc index 064a3effe83..2e737451635 100644 --- a/reactos/base/applications/msconfig/lang/en-US.rc +++ b/reactos/base/applications/msconfig/lang/en-US.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Check All Boot Paths", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Set as Default", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Move &Up", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/es-ES.rc b/reactos/base/applications/msconfig/lang/es-ES.rc index 10398393baa..ad8074e3c36 100644 --- a/reactos/base/applications/msconfig/lang/es-ES.rc +++ b/reactos/base/applications/msconfig/lang/es-ES.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Verificar las rutas de Arranque", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 110, 12 PUSHBUTTON "&Configurar por Defecto", IDC_BTN_SET_DEFAULT_BOOT, 130, 65, 80, 12 PUSHBUTTON "Mover &Arriba", IDC_BTN_MOVE_UP_BOOT_OPTION, 220, 65, 60, 12 diff --git a/reactos/base/applications/msconfig/lang/fr-FR.rc b/reactos/base/applications/msconfig/lang/fr-FR.rc index 6ff3e099fc2..54e721d1ad3 100644 --- a/reactos/base/applications/msconfig/lang/fr-FR.rc +++ b/reactos/base/applications/msconfig/lang/fr-FR.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Vérifier les chemins de démarrage", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Par Défaut", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "&Monter", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/hu-HU.rc b/reactos/base/applications/msconfig/lang/hu-HU.rc index abf31c8d836..a41c9ac4cce 100644 --- a/reactos/base/applications/msconfig/lang/hu-HU.rc +++ b/reactos/base/applications/msconfig/lang/hu-HU.rc @@ -79,7 +79,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Check All Boot Paths", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Set as Default", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Move &Up", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/id-ID.rc b/reactos/base/applications/msconfig/lang/id-ID.rc index 8d2dd3dd2db..bdaf2ab6673 100644 --- a/reactos/base/applications/msconfig/lang/id-ID.rc +++ b/reactos/base/applications/msconfig/lang/id-ID.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "Periksa Se&mua Path Boot", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Set sebagai Standar", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "&Naik", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/it-IT.rc b/reactos/base/applications/msconfig/lang/it-IT.rc index ad0c7c574f0..85a895d2e69 100644 --- a/reactos/base/applications/msconfig/lang/it-IT.rc +++ b/reactos/base/applications/msconfig/lang/it-IT.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 3, 2, 354, 58, 0x00000200 + LISTBOX IDC_LIST_BOX, 3, 2, 354, 58, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "Ve&rifica percorsi di avvio", IDC_BTN_CHECK_BOOT_PATH, 3, 64, 85, 14 PUSHBUTTON "&Imposta come predefinito", IDC_BTN_SET_DEFAULT_BOOT, 93, 64, 85, 14 PUSHBUTTON "&Sposta su", IDC_BTN_MOVE_UP_BOOT_OPTION, 183, 64, 85, 14 diff --git a/reactos/base/applications/msconfig/lang/ko-KR.rc b/reactos/base/applications/msconfig/lang/ko-KR.rc index cd13b7d6548..6039d5bdf93 100644 --- a/reactos/base/applications/msconfig/lang/ko-KR.rc +++ b/reactos/base/applications/msconfig/lang/ko-KR.rc @@ -80,7 +80,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "¸ðµç ºÎÆÃ°æ·Î Á¡°Ë(&C)", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "±âº»°ªÀ¸·Î ¼³Á¤(&S)", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "À§·Î ¿òÁ÷À̱â(&U)", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/nl-NL.rc b/reactos/base/applications/msconfig/lang/nl-NL.rc index 638cb5841b3..b8d2003ee38 100644 --- a/reactos/base/applications/msconfig/lang/nl-NL.rc +++ b/reactos/base/applications/msconfig/lang/nl-NL.rc @@ -97,7 +97,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Alle opstartpaden controleren", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "Als stan&daard instellen", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "&Omhoog", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/no-NO.rc b/reactos/base/applications/msconfig/lang/no-NO.rc index b1f1f4f88a9..2185b199018 100644 --- a/reactos/base/applications/msconfig/lang/no-NO.rc +++ b/reactos/base/applications/msconfig/lang/no-NO.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Sjekk oppstartsbaner", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 75, 12 PUSHBUTTON "&Sett som standard", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Flytt &opp", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/pl-PL.rc b/reactos/base/applications/msconfig/lang/pl-PL.rc index f0605ea43c7..67c5b0356ac 100644 --- a/reactos/base/applications/msconfig/lang/pl-PL.rc +++ b/reactos/base/applications/msconfig/lang/pl-PL.rc @@ -83,7 +83,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&SprawdŸ wszystkie œcie¿ki rozruchu", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Ustaw jako domyœlne", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Przenieœ w &górê", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/pt-BR.rc b/reactos/base/applications/msconfig/lang/pt-BR.rc index 443d6d1e4bd..df34c957cf6 100644 --- a/reactos/base/applications/msconfig/lang/pt-BR.rc +++ b/reactos/base/applications/msconfig/lang/pt-BR.rc @@ -83,7 +83,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "Verificar camin&hos de inicialização", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Definir como padrão", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Mo&ver para cima", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/ro-RO.rc b/reactos/base/applications/msconfig/lang/ro-RO.rc index f350b849f8f..119f4ab70d4 100644 --- a/reactos/base/applications/msconfig/lang/ro-RO.rc +++ b/reactos/base/applications/msconfig/lang/ro-RO.rc @@ -77,7 +77,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Verificare toate cãile de pornire", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Setare implicit", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "În &sus", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/ru-RU.rc b/reactos/base/applications/msconfig/lang/ru-RU.rc index 901e11b3552..c1a3a6b57fb 100644 --- a/reactos/base/applications/msconfig/lang/ru-RU.rc +++ b/reactos/base/applications/msconfig/lang/ru-RU.rc @@ -79,7 +79,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Ïðîâåðèòü âñå ïóòè çàãðóçêè", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 110, 12 PUSHBUTTON "Ï&î óìîë÷àíèþ", IDC_BTN_SET_DEFAULT_BOOT, 125, 65, 70, 12 PUSHBUTTON "&Ââåðõ", IDC_BTN_MOVE_UP_BOOT_OPTION, 200, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/sk-SK.rc b/reactos/base/applications/msconfig/lang/sk-SK.rc index d3ddada8639..51c585197cd 100644 --- a/reactos/base/applications/msconfig/lang/sk-SK.rc +++ b/reactos/base/applications/msconfig/lang/sk-SK.rc @@ -81,7 +81,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "S&kontrolova všetky cesty zavedenia", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 130, 12 PUSHBUTTON "&Predvoli", IDC_BTN_SET_DEFAULT_BOOT, 145, 65, 60, 12 PUSHBUTTON "Posunú na&hor", IDC_BTN_MOVE_UP_BOOT_OPTION, 210, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/sv-SE.rc b/reactos/base/applications/msconfig/lang/sv-SE.rc index 927417287c1..968687f10bb 100644 --- a/reactos/base/applications/msconfig/lang/sv-SE.rc +++ b/reactos/base/applications/msconfig/lang/sv-SE.rc @@ -83,7 +83,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Undersök alla bootvägar", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 75, 12 PUSHBUTTON "&Sätt som standard", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "Flytta &upp", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/th-TH.rc b/reactos/base/applications/msconfig/lang/th-TH.rc index e88a40803ef..0f10d67bab6 100644 --- a/reactos/base/applications/msconfig/lang/th-TH.rc +++ b/reactos/base/applications/msconfig/lang/th-TH.rc @@ -97,7 +97,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&µÃǨ¡ÒÃ»ÅØ¡à¤Ã×èͧ·Ø¡àÊé¹·Ò§", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&µÑ駤èÒâ´Â»ÃÔÂÒÂ", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "à¤Å×è͹·Õè &¢Öé¹", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/uk-UA.rc b/reactos/base/applications/msconfig/lang/uk-UA.rc index 3892f2a6478..986c4ca24e4 100644 --- a/reactos/base/applications/msconfig/lang/uk-UA.rc +++ b/reactos/base/applications/msconfig/lang/uk-UA.rc @@ -85,7 +85,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "&Âèáðàòè âñ³ øëÿõè", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12 PUSHBUTTON "&Âñòàíîâèòè ñòàíäàðòíî", IDC_BTN_SET_DEFAULT_BOOT, 92, 65, 88, 12 PUSHBUTTON "Ïåðåì³ñòèòè Ââ&åðõ", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/lang/zh-CN.rc b/reactos/base/applications/msconfig/lang/zh-CN.rc index 259177bc37e..04b42337cab 100644 --- a/reactos/base/applications/msconfig/lang/zh-CN.rc +++ b/reactos/base/applications/msconfig/lang/zh-CN.rc @@ -97,7 +97,7 @@ IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN FONT 8, "MS Shell Dlg" BEGIN - CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200 + LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL PUSHBUTTON "¼ì²éËùÓÐÆô¶¯Â·¾¶(&C)", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 80, 12 PUSHBUTTON "ÉèΪĬÈÏ(&S)", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12 PUSHBUTTON "ÉÏÒÆ(&U)", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12 diff --git a/reactos/base/applications/msconfig/systempage.c b/reactos/base/applications/msconfig/systempage.c index dac7996b4bf..1cf17ab14c2 100644 --- a/reactos/base/applications/msconfig/systempage.c +++ b/reactos/base/applications/msconfig/systempage.c @@ -1,16 +1,81 @@ /* * PROJECT: ReactOS Applications * LICENSE: LGPL - See COPYING in the top level directory - * FILE: base/applications/systempage.c + * FILE: base/applications/msconfig/systempage.c * PURPOSE: System page message handler * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich - * + * 2011 Gregor Schneider */ #include HWND hSystemPage; HWND hSystemDialog; +#define BUFFER_SIZE 512 + +static BOOL +LoadSystemIni(WCHAR * szPath, HWND hDlg) +{ + WCHAR szBuffer[BUFFER_SIZE]; + HWND hDlgCtrl; + HTREEITEM parent = NULL; + FILE* file; + UINT length; + TVINSERTSTRUCT insert; + + wcscpy(szBuffer, szPath); + wcscat(szBuffer, L"\\system.ini"); + + file = _wfopen(szBuffer, L"rt"); + if (!file) + return FALSE; + + hDlgCtrl = GetDlgItem(hDlg, IDC_SYSTEM_TREE); + + while(!feof(file)) + { + if (fgetws(szBuffer, BUFFER_SIZE, file)) + { + length = wcslen(szBuffer); + if (length > 1) + { + szBuffer[length] = L'\0'; + szBuffer[length - 1] = L'\0'; + insert.hInsertAfter = TVI_LAST; + insert.item.mask = TVIF_TEXT; + insert.item.pszText = szBuffer; + + if (szBuffer[0] == L';' || szBuffer[0] == L'[') + { + /* Parent */ + insert.hParent = NULL; + parent = TreeView_InsertItem(hDlgCtrl, &insert); + } + else + { + /* Child */ + insert.hParent = parent; + TreeView_InsertItem(hDlgCtrl, &insert); + } + } + } + } + + fclose(file); + + return TRUE; +} + +static BOOL +InitializeSystemDialog(HWND hDlg) +{ + WCHAR winDir[PATH_MAX]; + + GetWindowsDirectoryW(winDir, PATH_MAX); + return LoadSystemIni(winDir, hDlg); +} + + INT_PTR CALLBACK SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { @@ -21,6 +86,7 @@ SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { hSystemDialog = hDlg; SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER); + InitializeSystemDialog(hDlg); return TRUE; } }