[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
This commit is contained in:
Gregor Schneider
2011-05-17 18:32:51 +00:00
parent a18c5a8711
commit 1ba6d6e079
25 changed files with 166 additions and 89 deletions
@@ -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 <[email protected]>
*
* 2011 Gregor Schneider <[email protected]>
*/
#include <precomp.h>
@@ -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))
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <Christoph@ApiViewer.de>
*
* 2011 Gregor Schneider <Gregor.Schneider@reactos.org>
*/
#include <precomp.h>
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;
}
}