From ac19c5f29ccf04659ae6a74d377618d9779ca64a Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 23 Jan 2016 23:20:32 +0000 Subject: [PATCH] [REACTOS] - Fix height of the inner wizard pages. - Do not show the header for the finish page. - Remove the language selection page and the ReactOS logo because they have been moved to userinit. - Start removing groupbox controls from the wizard pages. They just occupy a lot of space. - Resize / realign the install type page and add some descriptive text to all languages. - Allocate setup data from the heap and pass the setup data pointer to each wizard page. - Move the drive wizard page (DriveDlgProc) to a separate file. - Move the common declarations to a new header file. svn path=/trunk/; revision=70638 --- reactos/base/setup/reactos/CMakeLists.txt | 8 +- reactos/base/setup/reactos/drivepage.c | 243 +++++++ reactos/base/setup/reactos/lang/bg-BG.rc | 32 +- reactos/base/setup/reactos/lang/cs-CZ.rc | 32 +- reactos/base/setup/reactos/lang/de-DE.rc | 48 +- reactos/base/setup/reactos/lang/el-GR.rc | 32 +- reactos/base/setup/reactos/lang/en-US.rc | 67 +- reactos/base/setup/reactos/lang/es-ES.rc | 32 +- reactos/base/setup/reactos/lang/et-EE.rc | 32 +- reactos/base/setup/reactos/lang/fi-FI.rc | 34 +- reactos/base/setup/reactos/lang/fr-FR.rc | 32 +- reactos/base/setup/reactos/lang/he-IL.rc | 32 +- reactos/base/setup/reactos/lang/hu-HU.rc | 32 +- reactos/base/setup/reactos/lang/it-IT.rc | 32 +- reactos/base/setup/reactos/lang/ms-MY.rc | 32 +- reactos/base/setup/reactos/lang/no-NO.rc | 32 +- reactos/base/setup/reactos/lang/pl-PL.rc | 32 +- reactos/base/setup/reactos/lang/pt-BR.rc | 32 +- reactos/base/setup/reactos/lang/ro-RO.rc | 32 +- reactos/base/setup/reactos/lang/ru-RU.rc | 32 +- reactos/base/setup/reactos/lang/sk-SK.rc | 32 +- reactos/base/setup/reactos/lang/sq-AL.rc | 32 +- reactos/base/setup/reactos/lang/tr-TR.rc | 32 +- reactos/base/setup/reactos/lang/uk-UA.rc | 32 +- reactos/base/setup/reactos/lang/zh-CN.rc | 32 +- reactos/base/setup/reactos/lang/zh-TW.rc | 32 +- reactos/base/setup/reactos/reactos.c | 706 ++++--------------- reactos/base/setup/reactos/reactos.h | 124 ++++ reactos/base/setup/reactos/reactos.rc | 1 - reactos/base/setup/reactos/res/rosbitmap.bmp | Bin 164750 -> 0 bytes reactos/base/setup/reactos/resource.h | 65 +- 31 files changed, 802 insertions(+), 1166 deletions(-) create mode 100644 reactos/base/setup/reactos/drivepage.c create mode 100644 reactos/base/setup/reactos/reactos.h delete mode 100644 reactos/base/setup/reactos/res/rosbitmap.bmp diff --git a/reactos/base/setup/reactos/CMakeLists.txt b/reactos/base/setup/reactos/CMakeLists.txt index aec188d6659..d0ce6603299 100644 --- a/reactos/base/setup/reactos/CMakeLists.txt +++ b/reactos/base/setup/reactos/CMakeLists.txt @@ -1,7 +1,13 @@ +list(APPEND SOURCE + drivepage.c + reactos.c + reactos.h) + file(GLOB reactos_rc_deps res/*.*) add_rc_deps(reactos.rc ${reactos_rc_deps}) -add_executable(reactos reactos.c reactos.rc) +add_executable(reactos ${SOURCE} reactos.rc) +add_pch(reactos reactos.h SOURCE) target_link_libraries(reactos uuid) set_module_type(reactos win32gui UNICODE) add_importlibs(reactos gdi32 user32 comctl32 setupapi msvcrt kernel32 ntdll) diff --git a/reactos/base/setup/reactos/drivepage.c b/reactos/base/setup/reactos/drivepage.c new file mode 100644 index 00000000000..ac38512f176 --- /dev/null +++ b/reactos/base/setup/reactos/drivepage.c @@ -0,0 +1,243 @@ +/* + * ReactOS applications + * Copyright (C) 2004-2008 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS GUI first stage setup application + * FILE: base/setup/reactos/drivepage.c + * PROGRAMMERS: Eric Kohl + * Matthias Kupfer + * Dmitry Chapyshev (dmitry@reactos.org) + */ + +#include "reactos.h" +#include "resource.h" + +/* GLOBALS ******************************************************************/ + +static INT_PTR CALLBACK +MoreOptDlgProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PSETUPDATA pSetupData; + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + + switch (uMsg) + { + case WM_INITDIALOG: + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + + CheckDlgButton(hwndDlg, IDC_INSTFREELDR, BST_CHECKED); + SendMessage(GetDlgItem(hwndDlg, IDC_PATH), + WM_SETTEXT, + (WPARAM)0, + (LPARAM)pSetupData->InstallDir); + break; + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDOK: + SendMessage(GetDlgItem(hwndDlg, IDC_PATH), + WM_GETTEXT, + (WPARAM)sizeof(pSetupData->InstallDir) / sizeof(TCHAR), + (LPARAM)pSetupData->InstallDir); + + EndDialog(hwndDlg, IDOK); + return TRUE; + + case IDCANCEL: + EndDialog(hwndDlg, IDCANCEL); + return TRUE; + } + break; + } + + return FALSE; +} + +static INT_PTR CALLBACK +PartitionDlgProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + switch (uMsg) + { + case WM_INITDIALOG: + break; + case WM_COMMAND: + { + switch(LOWORD(wParam)) + { + case IDOK: + EndDialog(hwndDlg, IDOK); + return TRUE; + case IDCANCEL: + EndDialog(hwndDlg, IDCANCEL); + return TRUE; + } + } + } + return FALSE; +} + +INT_PTR +CALLBACK +DriveDlgProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PSETUPDATA pSetupData; +#if 1 + HDEVINFO h; + HWND hList; + SP_DEVINFO_DATA DevInfoData; + DWORD i; +#endif + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + + switch (uMsg) + { + case WM_INITDIALOG: + { + HWND hwndControl; + DWORD dwStyle; + + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + + hwndControl = GetParent(hwndDlg); + + dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); + SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU); + + /* Set title font */ + /*SendDlgItemMessage(hwndDlg, + IDC_STARTTITLE, + WM_SETFONT, + (WPARAM)hTitleFont, + (LPARAM)TRUE);*/ +#if 1 + h = SetupDiGetClassDevs(&GUID_DEVCLASS_DISKDRIVE, NULL, NULL, DIGCF_PRESENT); + if (h != INVALID_HANDLE_VALUE) + { + hList =GetDlgItem(hwndDlg, IDC_PARTITION); + DevInfoData.cbSize = sizeof(SP_DEVINFO_DATA); + for (i=0; SetupDiEnumDeviceInfo(h, i, &DevInfoData); i++) + { + DWORD DataT; + LPTSTR buffer = NULL; + DWORD buffersize = 0; + + while (!SetupDiGetDeviceRegistryProperty(h, + &DevInfoData, + SPDRP_DEVICEDESC, + &DataT, + (PBYTE)buffer, + buffersize, + &buffersize)) + { + if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + if (buffer) LocalFree(buffer); + buffer = LocalAlloc(LPTR, buffersize * 2); + } + else + break; + } + if (buffer) + { + SendMessage(hList, LB_ADDSTRING, (WPARAM) 0, (LPARAM) buffer); + LocalFree(buffer); + } + } + SetupDiDestroyDeviceInfoList(h); + } +#endif + } + break; + + case WM_COMMAND: + { + switch(LOWORD(wParam)) + { + case IDC_PARTMOREOPTS: + DialogBoxParam(pSetupData->hInstance, + MAKEINTRESOURCE(IDD_BOOTOPTIONS), + hwndDlg, + (DLGPROC)MoreOptDlgProc, + (LPARAM)pSetupData); + break; + case IDC_PARTCREATE: + DialogBox(pSetupData->hInstance, + MAKEINTRESOURCE(IDD_PARTITION), + hwndDlg, + (DLGPROC) PartitionDlgProc); + break; + case IDC_PARTDELETE: + break; + } + break; + } + + case WM_NOTIFY: + { + LPNMHDR lpnm = (LPNMHDR)lParam; + + switch (lpnm->code) + { + case PSN_SETACTIVE: + PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); + break; + + case PSN_QUERYCANCEL: + SetWindowLongPtr(hwndDlg, + DWL_MSGRESULT, + MessageBox(GetParent(hwndDlg), + pSetupData->szAbortMessage, + pSetupData->szAbortTitle, + MB_YESNO | MB_ICONQUESTION) != IDYES); + return TRUE; + + default: + break; + } + } + break; + + default: + break; + + } + + return FALSE; +} + +/* EOF */ diff --git a/reactos/base/setup/reactos/lang/bg-BG.rc b/reactos/base/setup/reactos/lang/bg-BG.rc index de57a167c57..9d9d35bdaa0 100644 --- a/reactos/base/setup/reactos/lang/bg-BG.rc +++ b/reactos/base/setup/reactos/lang/bg-BG.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Натиснете „Приключване“ за изход от настройването.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройка на РеактОС" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Език за настройването:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 8, 109, 135, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 145, 107, 163, 142 - CONTROL "Клавиатура или начин на въвеждане:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 8, 142, 135, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 145, 141, 163, 81 - LTEXT "Натиснете „Напред“ за избор на вида настройване.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Настройка на РеактОС" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Вид настройване", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Слагане на РеактОС", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Поправка или осъвременяване на сложен РеактОС", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Слагане на РеактОС", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Поправка или осъвременяване на сложен РеактОС", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Натиснете „Напред“ за настройка на устройствата.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройка на РеактОС" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Натиснете „Напред“ за избор на устройство за слагане.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройка на РеактОС" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Отказ", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Слагане на РеактОС" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Натиснете „Напред“ за за начало на слагането.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройка на РеактОС" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Избор на език" - IDS_LANGSUBTITLE "Изберете език за настройването и за крайната уредба." IDS_TYPETITLE "РеактОС ви приветства!" IDS_TYPESUBTITLE "Изберете вид на настройването." IDS_DEVICETITLE "Настройване на основните устройства" diff --git a/reactos/base/setup/reactos/lang/cs-CZ.rc b/reactos/base/setup/reactos/lang/cs-CZ.rc index ded0f80f20d..33e711fc027 100644 --- a/reactos/base/setup/reactos/lang/cs-CZ.rc +++ b/reactos/base/setup/reactos/lang/cs-CZ.rc @@ -16,31 +16,19 @@ BEGIN LTEXT "Klepnutím na Dokončit ukončíte instalaci.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalace systému ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Jazyk instalace:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Klávesnice či metoda zadávání:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Po klepnutí na Další bude možné zvolit typ instalace.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalace systému ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Typ instalace", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Nainstalovat systém ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Opravit nebo aktualizovat již nainstalovaný systém ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Nainstalovat systém ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Opravit nebo aktualizovat již nainstalovaný systém ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Po klepnutí na Další bude možné nastavit zařízení.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalace systému ReactOS" FONT 8, "MS Shell Dlg" @@ -55,7 +43,7 @@ BEGIN LTEXT "Po klepnutí na Další bude možné nastavit instalační zařízení.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalace systému ReactOS" FONT 8, "MS Shell Dlg" @@ -100,7 +88,7 @@ BEGIN PUSHBUTTON "&Storno", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalace systému ReactOS" FONT 8, "MS Shell Dlg" @@ -109,7 +97,7 @@ BEGIN LTEXT "Klepnutím na Další zahájíte instalační proces.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalace systému ReactOS" FONT 8, "MS Shell Dlg" @@ -134,8 +122,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Výběr jazyka" - IDS_LANGSUBTITLE "Volba jazyka, který bude použit při instalaci a ve výsledném systému." IDS_TYPETITLE "Vítejte v průvodci instalace systému ReactOS" IDS_TYPESUBTITLE "Volba typu instalace." IDS_DEVICETITLE "Nastavení základních zařízení" diff --git a/reactos/base/setup/reactos/lang/de-DE.rc b/reactos/base/setup/reactos/lang/de-DE.rc index 7a45413e025..3e2d9a92e41 100644 --- a/reactos/base/setup/reactos/lang/de-DE.rc +++ b/reactos/base/setup/reactos/lang/de-DE.rc @@ -10,36 +10,24 @@ BEGIN LTEXT "Klicken Sie auf Beenden um das Setup zu verlassen.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Installationssprache:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Tastatur oder Eingabemethode:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Klicken Sie auf Weiter um zum Setuptyp zu gelangen.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Setuptyp", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Installiere ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repariere oder aktualisiere ein installiertes ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Installiere ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Aktualisiere oder repariere ein installiertes ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Klicken Sie auf Weiter um die Geräte einzustellen.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Geräteeinstellungen", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 +// CONTROL "Geräteeinstellungen", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Computer:", IDC_STATIC, 20, 15, 80, 10 CONTROL "", IDC_COMPUTER, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 15, 180, 80 LTEXT "Anzeige:", IDC_STATIC, 20, 35, 80, 10 @@ -49,12 +37,12 @@ BEGIN LTEXT "Klicken Sie auf Weiter um den Installationsort zu konfigurieren.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Partition für die ReactOS-Installation", IDC_STATIC, "Button", BS_GROUPBOX, 10, 1, 298, 176 +// CONTROL "Partition für die ReactOS-Installation", IDC_STATIC, "Button", BS_GROUPBOX, 10, 1, 298, 176 LISTBOX IDC_PARTITION, 20, 12, 278, 142, LBS_HASSTRINGS | WS_VSCROLL PUSHBUTTON "&Erstellen", IDC_PARTCREATE, 20, 155, 50, 15 PUSHBUTTON "&Löschen", IDC_PARTDELETE, 76, 155, 50, 15 @@ -68,8 +56,8 @@ STYLE DS_SHELLFONT | WS_VISIBLE | WS_CAPTION CAPTION "Erstelle Partition" FONT 8, "MS Shell Dlg" BEGIN +// CONTROL "Erstelle und formatiere Partition", IDC_STATIC, "Button", BS_GROUPBOX, 7, 5, 129, 57 CONTROL "", IDC_UPDOWN1, "msctls_updown32", WS_VISIBLE, 104, 22, 9, 13 - CONTROL "Erstelle und formatiere Partition", IDC_STATIC, "Button", BS_GROUPBOX, 7, 5, 129, 57 LTEXT "Größe:", IDC_STATIC, 13, 24, 27, 9 EDITTEXT IDC_PARTSIZE, 52, 23, 53, 13, WS_VISIBLE | WS_TABSTOP LTEXT "GB", IDC_UNIT, 117, 24, 14, 9 @@ -84,7 +72,7 @@ STYLE DS_SHELLFONT | WS_VISIBLE | WS_CAPTION CAPTION "Erweiterte Partitionseinstellungen" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Installationsverzeichnis", IDC_STATIC, "Button", BS_GROUPBOX, 4, 1, 298, 30 +// CONTROL "Installationsverzeichnis", IDC_STATIC, "Button", BS_GROUPBOX, 4, 1, 298, 30 EDITTEXT IDC_PATH, 10, 11, 278, 13, WS_VISIBLE CONTROL "Bootloader-Installation", IDC_STATIC, "Button", BS_GROUPBOX, 4, 36, 298, 52 CONTROL "Installiere Bootloader auf Festplatte (MBR und VBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 46, 278, 11 @@ -94,21 +82,21 @@ BEGIN PUSHBUTTON "&Abbrechen", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Installationszusammenfassung", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 +// CONTROL "Installationszusammenfassung", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Klicken Sie auf Weiter um die Installation zu starten.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Installationsaktion", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 +// CONTROL "Installationsaktion", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Installation der Dateien...", IDC_ACTIVITY, 20, 50, 277, 10 LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10 CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 @@ -119,7 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Vervollständige ReactOS-Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Abschließen der ersten Stufe der ReactOS-Installation", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10, 0, 297, 172 +// CONTROL "Abschließen der ersten Stufe der ReactOS-Installation", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Sie haben die erste Stufe des ReactOS-Setup erfolgreich abgeschlossen.", IDC_STATIC, 20, 50, 277, 10 LTEXT "Wenn Sie auf Beenden klicken, wird der Computer neu gestartet.", IDC_STATIC, 20, 80, 277, 10 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Sprachauswahl" - IDS_LANGSUBTITLE "Wählen Sie eine Sprache für das Setup und das Endsystem aus." IDS_TYPETITLE "Willkommen zum ReactOS-Setup" IDS_TYPESUBTITLE "Wählen Sie einen Setuptyp." IDS_DEVICETITLE "Einstellen der Basisgeräte" @@ -144,6 +130,6 @@ BEGIN IDS_SUMMARYSUBTITLE "Liste alle Installationseinstellungen vor Anwendung auf die Geräte auf" IDS_ABORTSETUP "ReactOS ist nicht vollständig auf Ihrem Computer installiert. Wenn Sie das Setup verlassen, dann müssen Sie das Setup nochmals ausführen, um ReactOS zu installieren. Wirklich beenden?" IDS_ABORTSETUP2 "Installation abbrechen?" - IDS_NO_TXTSETUP_SIF "Unable to find 'txtsetup.sif'\nSetup is unable to continue." + IDS_NO_TXTSETUP_SIF "Die Datei 'txtsetup.sif' konnte nicht gefunden werden.\nSetup kann nicht fortfahren." IDS_CAPTION "ReactOS Setup" END diff --git a/reactos/base/setup/reactos/lang/el-GR.rc b/reactos/base/setup/reactos/lang/el-GR.rc index edaf6e40f0d..7df16075032 100644 --- a/reactos/base/setup/reactos/lang/el-GR.rc +++ b/reactos/base/setup/reactos/lang/el-GR.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Πατήστε Ολοκλήρωση για να βγείτε από την Εγκατάσταση.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Εγκατάσταση του ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Γλώσσα εγκατάστασης:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Πληκτρολόγιο ή μέθοδος εισόδου:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Πατήστε Επόμενο για να επιλέξετε τον τύπο εγκατάστασης.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Εγκατάσταση του ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Install ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Update or repair an installed ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Πατήστε Επόμενο για να ρυθμίσετε τις συσκευές.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Εγκατάσταση του ReactOS" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Click Next setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Εγκατάσταση του ReactOS" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Άκυρο", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Εγκατάσταση του ReactOS" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Επιλογή Γλώσσας" - IDS_LANGSUBTITLE "Επιλέξτε γλώσσα για την εγκατάσταση και το τελικό σύστημα." IDS_TYPETITLE "Καλώς ήλθατε στην Εγκατάσταση του ReactOS" IDS_TYPESUBTITLE "Επιλέξτε τύπο εγκατάστασης." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/en-US.rc b/reactos/base/setup/reactos/lang/en-US.rc index af85af4a2fe..3f66b86172a 100644 --- a/reactos/base/setup/reactos/lang/en-US.rc +++ b/reactos/base/setup/reactos/lang/en-US.rc @@ -10,57 +10,43 @@ BEGIN LTEXT "Click Finish to exit the Setup.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Setup language:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180, 297, 10 + AUTORADIOBUTTON "Install ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Update or repair ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 + LTEXT "Click Next to continue.", IDC_STATIC, 7, 128, 297, 8 END -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 - LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Setup" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Device settings", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Computer:", IDC_STATIC, 20, 15, 80, 10 CONTROL "", IDC_COMPUTER, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 15, 180, 80 LTEXT "Display:", IDC_STATIC, 20, 35, 80, 10 CONTROL "", IDC_DISPLAY, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 35, 180, 80 LTEXT "Keyboard:", IDC_STATIC, 20, 55, 80, 10 CONTROL "", IDC_KEYBOARD, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 55, 180, 80 - LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 +/* LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 7, 128, 277, 8 */ END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Partition for ReactOS installation", IDC_STATIC, "Button", BS_GROUPBOX, 10, 1, 298, 176 - LISTBOX IDC_PARTITION, 20, 12, 278, 142, LBS_HASSTRINGS | WS_VSCROLL - PUSHBUTTON "&Create", IDC_PARTCREATE, 20, 155, 50, 15 - PUSHBUTTON "&Delete", IDC_PARTDELETE, 76, 155, 50, 15 - PUSHBUTTON "D&river", IDC_DEVICEDRIVER, 162, 155, 50, 15, WS_DISABLED - PUSHBUTTON "&Advanced Options...", IDC_PARTMOREOPTS, 218, 155, 80, 15 - LTEXT "Click Next to check the summary.", IDC_STATIC, 10, 180, 277, 20 + LISTBOX IDC_PARTITION, 7, 7, 303, 112, LBS_HASSTRINGS | WS_VSCROLL + PUSHBUTTON "&Create", IDC_PARTCREATE, 7, 122, 50, 14 + PUSHBUTTON "&Delete", IDC_PARTDELETE, 63, 122, 50, 14 + PUSHBUTTON "D&river", IDC_DEVICEDRIVER, 174, 122, 50, 14, WS_DISABLED + PUSHBUTTON "&Advanced Options...", IDC_PARTMOREOPTS, 230, 122, 80, 14 +/* LTEXT "Click Next to check the summary.", IDC_STATIC, 7, 128, 277, 8 */ END IDD_PARTITION DIALOGEX 0, 0, 145, 90 @@ -94,24 +80,23 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Installation summary", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 - LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180, 277, 20 + LTEXT "Click Next to start the installation process.", IDC_STATIC, 7, 128, 277, 8 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Setup action", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 +/* CONTROL "Setup action", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 */ LTEXT "Install files...", IDC_ACTIVITY, 20, 50, 277, 10 LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10 - CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 + CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 7, 120, 303, 8 END IDD_RESTARTPAGE DIALOGEX 0, 0, 317, 193 @@ -119,17 +104,15 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Completing ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Completing the first stage of ReactOS Setup", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10, 0, 297, 172 - LTEXT "You have successfully completed the first stage of ReactOS Setup.", IDC_STATIC, 20, 50, 277, 10 - LTEXT "When you click Finish, your computer will restart.", IDC_STATIC, 20, 80, 277, 10 - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 - LTEXT "If there is a CD in a drive, remove it. Then, to restart your computer, click Finish.", IDC_STATIC, 10, 180, 297, 20 +/* CONTROL "Completing the first stage of ReactOS Setup", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10, 0, 297, 172 */ + LTEXT "You have successfully completed the first stage of ReactOS Setup.", IDC_STATIC, 115, 50, 195, 10 + LTEXT "When you click Finish, your computer will restart.", IDC_STATIC, 115, 80, 195, 10 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 110, 195, 8 + LTEXT "If there is a CD in a drive, remove it. Then, to restart your computer, click Finish.", IDC_STATIC, 115, 169, 195, 17 END STRINGTABLE BEGIN - IDS_LANGTITLE "Language Selection" - IDS_LANGSUBTITLE "Choose language for setup and final system." IDS_TYPETITLE "Welcome to ReactOS Setup" IDS_TYPESUBTITLE "Choose setup type." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/es-ES.rc b/reactos/base/setup/reactos/lang/es-ES.rc index fadd0111cc1..369654450ca 100644 --- a/reactos/base/setup/reactos/lang/es-ES.rc +++ b/reactos/base/setup/reactos/lang/es-ES.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "Pulse Finalizar para salir del instalador.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Selección de idioma:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Teclado o dispositivo de entrada:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Presione Siguiente para seleccionar el tipo de instalación.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalación de ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tipo de instalación", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Instalar ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Reparar o actualizar una versión instalada de ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Instalar ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Actualizar o reparar una versión instalada de ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Presione Siguiente para instalar los dispositivos.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "Presione Siguiente para configurar la instalación de dispositivos.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "&Cancelar", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "Presione Siguiente para comenzar con el proceso de instalación.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Selección del idioma" - IDS_LANGSUBTITLE "Seleccione el idioma para la instalación y para el sistema." IDS_TYPETITLE "Bienvenido a la instalación de ReactOS" IDS_TYPESUBTITLE "Seleccione el tipo de instalación." IDS_DEVICETITLE "Instalación de los dispositivos básicos" diff --git a/reactos/base/setup/reactos/lang/et-EE.rc b/reactos/base/setup/reactos/lang/et-EE.rc index 91b3be0403d..69b6a36da56 100644 --- a/reactos/base/setup/reactos/lang/et-EE.rc +++ b/reactos/base/setup/reactos/lang/et-EE.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Vajuta lõpeta, et installeerimine lõpetada.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Paigaldamise keel:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Klaviatuur või sisestusmeetod:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Vajuta Järgmine, et valida paigalduse tüüp.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOSi paigaldamine" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Paigalduse tüüp", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Installeeri ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Paranda või uuenda installeeritud ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Installeeri ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Paranda või uuenda installeeritud ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Vajuta Järgmine, et seadmeid paigaldada.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Vajuta Järgmine, et seadistada sihtketas.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Tühista", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Vajuta Järgmine, et paigaldamist alustada.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Keele valimine" - IDS_LANGSUBTITLE "Vali paigaldamise ja süsteemi keel." IDS_TYPETITLE "Tere tulemast ReactOSi paigaldama" IDS_TYPESUBTITLE "Vali paigalduse tüüp." IDS_DEVICETITLE "Põhiliste seadmete paigaldamine" diff --git a/reactos/base/setup/reactos/lang/fi-FI.rc b/reactos/base/setup/reactos/lang/fi-FI.rc index 7c5b45de07d..e52e115e534 100644 --- a/reactos/base/setup/reactos/lang/fi-FI.rc +++ b/reactos/base/setup/reactos/lang/fi-FI.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Click Finish to exit the Setup.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Setup language:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Setup" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Install ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Update or repair an installed ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -114,7 +102,7 @@ BEGIN CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 END -IDD_RESTARTPAGE DIALOGEX 0, 0, 317, 193 +IDD_RESTARTPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Completing ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Language Selection" - IDS_LANGSUBTITLE "Choose language for setup and final system." IDS_TYPETITLE "Welcome to ReactOS Setup" IDS_TYPESUBTITLE "Choose setup type." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/fr-FR.rc b/reactos/base/setup/reactos/lang/fr-FR.rc index f83376e31e1..850686ca47d 100644 --- a/reactos/base/setup/reactos/lang/fr-FR.rc +++ b/reactos/base/setup/reactos/lang/fr-FR.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Cliquez sur Terminer pour quitter l'installation.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installation de ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Setup language:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Installation de ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Install ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Update or repair an installed ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installation de ReactOS" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installation de ReactOS" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installation de ReactOS" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Language Selection" - IDS_LANGSUBTITLE "Choose language for setup and final system." IDS_TYPETITLE "Welcome to ReactOS Setup" IDS_TYPESUBTITLE "Choose setup type." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/he-IL.rc b/reactos/base/setup/reactos/lang/he-IL.rc index 6c2826bd7eb..25d0ff4d205 100644 --- a/reactos/base/setup/reactos/lang/he-IL.rc +++ b/reactos/base/setup/reactos/lang/he-IL.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "לחץ על סיום כדי לסיים את ההתקנה.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "התקנת ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "שפת התקנה:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "מקלדת או שיטת הזנה:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "לחץ על הבא כדי לבחור סוג התקנה:", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "התקנת ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "סוג התקנה", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "התקנת ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "תיקון או עדכון גרסה קיימת", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "התקנת ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "תיקון או עדכון גרסה קיימת", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "לחץ על הבא כדי להגדיר את ההתקנים", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "התקנת ReactOS" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "לחץ על הבא כדי להגדיר את התקן ההתקנה.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "התקנת ReactOS" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "ביטול", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "התקנת ReactOS" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "לחץ על הבא כדי להתחיל בתהליך ההתקנה.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "התקנת ReactOS" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "בחירת שפה" - IDS_LANGSUBTITLE "Choose language for setup and final system." IDS_TYPETITLE "ברוכים הבאים אל תכנית ההתקנה של ReactOS" IDS_TYPESUBTITLE "בחירת סוג התקנה." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/hu-HU.rc b/reactos/base/setup/reactos/lang/hu-HU.rc index 92269276786..4298e2878c8 100644 --- a/reactos/base/setup/reactos/lang/hu-HU.rc +++ b/reactos/base/setup/reactos/lang/hu-HU.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "Click Finish to exit the Setup.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Setup language:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Setup" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Install ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Update or repair an installed ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Language Selection" - IDS_LANGSUBTITLE "Choose language for setup and final system." IDS_TYPETITLE "Welcome to ReactOS Setup" IDS_TYPESUBTITLE "Choose setup type." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/it-IT.rc b/reactos/base/setup/reactos/lang/it-IT.rc index 6b91e625625..c7e4b85b784 100644 --- a/reactos/base/setup/reactos/lang/it-IT.rc +++ b/reactos/base/setup/reactos/lang/it-IT.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Cliccare Fine per uscire.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Lingua per l'installazione:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Tastiera o metodo di input:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Cliccare Avanti per selezionare il tipo di installazione.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Installazione di ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tipo di installazione", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Installa ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Ripara o aggiorna una installazione precedente di ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Installa ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Aggiorna o ripara una installazione precedente di ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Cliccare Avanti per impostare i dispositivi.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Cliccare Avanti per scegliere dove effettuare l'installazione.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Annulla", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Cliccare Avanti per iniziare l'installazione.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Selezione della lingua" - IDS_LANGSUBTITLE "Scegliere la lingua per la installazione e per il sistema finale." IDS_TYPETITLE "Benvenuti alla installazione di ReactOS" IDS_TYPESUBTITLE "Scegliere il tipo di installazione." IDS_DEVICETITLE "Impostazione dei dispositivi di base" diff --git a/reactos/base/setup/reactos/lang/ms-MY.rc b/reactos/base/setup/reactos/lang/ms-MY.rc index bb8f7bae480..56c5a99408d 100644 --- a/reactos/base/setup/reactos/lang/ms-MY.rc +++ b/reactos/base/setup/reactos/lang/ms-MY.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "Klik Selesai untuk keluar persediaan.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Persediaan" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Persediaan Bahasa:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Kaedah input atau papan kekunci:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Klik seterusnya untuk memilih jenis persediaan.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Persediaan" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Jenis persediaan", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Pasang ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Membaiki atau mengemaskini ReactOS yang dipasang", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Pasang ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Membaiki atau mengemaskini ReactOS yang dipasang", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Klik Seterusnya untuk memasang peranti.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Persediaan" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "Klik di sebelah persediaan peranti pemasangan tersebut.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Persediaan" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "Batal(&C)", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Persediaan" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "Klik Seterusnya untuk memulakan proses pemasangan.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Persediaan" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Pemilihan Bahasa" - IDS_LANGSUBTITLE "Memilih bahasa untuk persediaan dan sistem akhir." IDS_TYPETITLE "Selamat datang ke persediaan ReactOS" IDS_TYPESUBTITLE "Pilih jenis persediaan." IDS_DEVICETITLE "Sediakan peranti asas" diff --git a/reactos/base/setup/reactos/lang/no-NO.rc b/reactos/base/setup/reactos/lang/no-NO.rc index 8d2b43fb808..8de485c02e6 100644 --- a/reactos/base/setup/reactos/lang/no-NO.rc +++ b/reactos/base/setup/reactos/lang/no-NO.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Trykk på Fullført for å avslutte installeringen.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installering" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Installering språk:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Tastatur eller inndataspråk:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Trykk på Neste for å velge installering type.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS installering" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Installeringsvalg", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Installere ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Reparere eller oppdatere en installert ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Installere ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Reparere eller oppdatere en installert ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Trykk på Neste for installere enhetene.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installering" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Trykk på Neste for å installere enhetene.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installering" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Avbryt", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installering" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Trykk på Neste for å starte installasjon prosessen.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installering" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Språkvalg" - IDS_LANGSUBTITLE "Velg språk for installering og til ferdig system." IDS_TYPETITLE "Velkommen til ReactOS installering" IDS_TYPESUBTITLE "Velg installering type." IDS_DEVICETITLE "Installer grunnleggende enheter" diff --git a/reactos/base/setup/reactos/lang/pl-PL.rc b/reactos/base/setup/reactos/lang/pl-PL.rc index ef591d3947e..bfc2cf5bddd 100644 --- a/reactos/base/setup/reactos/lang/pl-PL.rc +++ b/reactos/base/setup/reactos/lang/pl-PL.rc @@ -20,31 +20,19 @@ BEGIN LTEXT "Naciśnij przycisk aby zakończyć pracę Instalatora.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Język instalacji:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Układ klawiatury:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Naciśnij Dalej, aby wybrać rodzaj instalacji.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalator ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Rodzaj instalacji", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Zainstaluj ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Napraw lub zaktualizuj zainstalowany wcześniej ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Zainstaluj ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Napraw lub zaktualizuj zainstalowany wcześniej ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Naciśnij Dalej, aby zmienić ustawienia sprzętu.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" FONT 8, "MS Shell Dlg" @@ -59,7 +47,7 @@ BEGIN LTEXT "Naciśnij Dalej, aby ustalić miejsce instalacji.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" FONT 8, "MS Shell Dlg" @@ -104,7 +92,7 @@ BEGIN PUSHBUTTON "&Anuluj", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" FONT 8, "MS Shell Dlg" @@ -113,7 +101,7 @@ BEGIN LTEXT "Kliknij Dalej, aby rozpocząć proces instalacji.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" FONT 8, "MS Shell Dlg" @@ -138,8 +126,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Wybór języka" - IDS_LANGSUBTITLE "Wybierz język instalacji i docelowego systemu." IDS_TYPETITLE "Witamy w Instalatorze ReactOS" IDS_TYPESUBTITLE "Wybierz typ instalacji." IDS_DEVICETITLE "Ustawienia podstawowych urządzeń" diff --git a/reactos/base/setup/reactos/lang/pt-BR.rc b/reactos/base/setup/reactos/lang/pt-BR.rc index d3af53fba65..85ec35033cb 100644 --- a/reactos/base/setup/reactos/lang/pt-BR.rc +++ b/reactos/base/setup/reactos/lang/pt-BR.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Clique em Finalizar para sair da Instalação.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Idioma de instalação:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Teclado ou método de entrada:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Clique em Próximo e selecione o modo de instalação.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalação do ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Modo de instalação", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Instalar ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Reparar ou atualizar uma instalação do ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Instalar ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Reparar ou atualizar uma instalação do ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Clique em Próximo para configurar os dispositivos.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Clique em Próximo para configurar o dispositivo de instalação.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Cancelar", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Clique em Próximo para iniciar o processo de instalação.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Seleção de Idioma" - IDS_LANGSUBTITLE "Escolher idioma de instalação e do sistema." IDS_TYPETITLE "Bem-vindo(a) a Instalação do ReactOS" IDS_TYPESUBTITLE "Escolha o modo de instalação." IDS_DEVICETITLE "Instalar dispositivos básicos" diff --git a/reactos/base/setup/reactos/lang/ro-RO.rc b/reactos/base/setup/reactos/lang/ro-RO.rc index 635569a4219..7284b412422 100644 --- a/reactos/base/setup/reactos/lang/ro-RO.rc +++ b/reactos/base/setup/reactos/lang/ro-RO.rc @@ -19,31 +19,19 @@ BEGIN LTEXT "Apăsați pe „Sfârșit” pentru a ieși.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Asistent de instalare ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Limba de instalare:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Tastatura sau metoda de introducere:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Apăsați pe „Înainte” pentru a specifica tipul instalării.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Asistent de instalare ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tipul de instalare", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Instalează ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Repară sau actualizează ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Instalează ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Repară sau actualizează ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Apăsați pe „Înainte” pentru configurarea de dispozitive.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Asistent de instalare ReactOS" FONT 8, "MS Shell Dlg" @@ -58,7 +46,7 @@ BEGIN LTEXT "Apăsați pe „Înainte” pentru configurarea dispozitivului de instalare.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Asistent de instalare ReactOS" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN PUSHBUTTON "A&nulează", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Asistent de instalare ReactOS" FONT 8, "MS Shell Dlg" @@ -112,7 +100,7 @@ BEGIN LTEXT "Apăsați „Înainte” pentru a continua procesul de instalare.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Asistent de instalare ReactOS" FONT 8, "MS Shell Dlg" @@ -137,8 +125,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Selecție limbă" - IDS_LANGSUBTITLE "Alegeți limba pentru procesul de instalare și pentru sistemul final." IDS_TYPETITLE "Bun venit la instalarea ReactOS" IDS_TYPESUBTITLE "Alegeți tipul de instalare." IDS_DEVICETITLE "Instalare dispozitive de bază" diff --git a/reactos/base/setup/reactos/lang/ru-RU.rc b/reactos/base/setup/reactos/lang/ru-RU.rc index eecb7650a4d..c543b49a3c9 100644 --- a/reactos/base/setup/reactos/lang/ru-RU.rc +++ b/reactos/base/setup/reactos/lang/ru-RU.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "Нажмите кнопку ""Завершить"" для выхода.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Язык системы:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Раскладка клавиатуры:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Для выбора типа установки нажмите ""Далее"".", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Установка ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Тип установки", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Установка ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Восстановить или изменить установленный ранее ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Установка ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Восстановить или изменить установленный ранее ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Для установки устройств нажмите ""Далее"".", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка ReactOS" FONT 8, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "Для установки устройств нажмите ""Далее"".", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка ReactOS" FONT 8, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "&Отмена", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка ReactOS" FONT 8, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "Для начала установки нажмите ""Далее"".", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка ReactOS" FONT 8, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Выбор языка" - IDS_LANGSUBTITLE "Выберите язык по умолчанию в системе." IDS_TYPETITLE "Вас приветствует программа установки ReactOS" IDS_TYPESUBTITLE "Выберите тип установки." IDS_DEVICETITLE "Установка базовых устройств" diff --git a/reactos/base/setup/reactos/lang/sk-SK.rc b/reactos/base/setup/reactos/lang/sk-SK.rc index 338c51f000f..db9a210b85a 100644 --- a/reactos/base/setup/reactos/lang/sk-SK.rc +++ b/reactos/base/setup/reactos/lang/sk-SK.rc @@ -15,31 +15,19 @@ BEGIN LTEXT "Inštaláciu ukončíte kliknutím na tlačidlo Dokončiť.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inštalácia systému ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Jazyk inštalácie:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Inštalácia systému ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Typ inštalácie", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Nainštalovať systém ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Opraviť alebo aktualizovať nainštalovaný systém ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Nainštalovať systém ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Opraviť alebo aktualizovať nainštalovaný systém ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inštalácia systému ReactOS" FONT 8, "MS Shell Dlg" @@ -54,7 +42,7 @@ BEGIN LTEXT "Click Next setup of the installation device.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inštalácia systému ReactOS" FONT 8, "MS Shell Dlg" @@ -99,7 +87,7 @@ BEGIN PUSHBUTTON "&Zrušiť", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inštalácia systému ReactOS" FONT 8, "MS Shell Dlg" @@ -108,7 +96,7 @@ BEGIN LTEXT "Kliknutím na tlačidlo Ďalej spustíte inštalačný proces.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Inštalácia systému ReactOS" FONT 8, "MS Shell Dlg" @@ -133,8 +121,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Výber jazyka" //Voľba jazyka - IDS_LANGSUBTITLE "Voľba jazyka pre inštalátor a výsledný systém." //Choose lang., Vyberte, Zvoľte IDS_TYPETITLE "Víta Vás inštalátor systému ReactOS" //Welcome to ReactOS Setup IDS_TYPESUBTITLE "Choose setup type." IDS_DEVICETITLE "Setup the basic devices" diff --git a/reactos/base/setup/reactos/lang/sq-AL.rc b/reactos/base/setup/reactos/lang/sq-AL.rc index f94dbd4cdb4..9d8c2983ccd 100644 --- a/reactos/base/setup/reactos/lang/sq-AL.rc +++ b/reactos/base/setup/reactos/lang/sq-AL.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "Kliko Finish për të dalë nga instalimi.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalimi i ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Gjuha e Instalimit:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Tastiera ose metoda hyrëse:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Klikoni vazhdim për të zgjedhur llojin e konfigurimit.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalimi i ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tipi i instalimit", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "InstalO ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Riparo ose apdejto ReactOS'in e instaluar", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "InstalO ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Riparo ose apdejto ReactOS'in e instaluar", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Kliko vazhdo për të konfiguruar pajisjet.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalimi i ReactOS" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "Klikoni vazhdo për instalim të pajisjeve.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalimi i ReactOS" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "&Anulo", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalimi i ReactOS" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "Kliko vazhdo për të filluar instalimin.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalimi i ReactOS" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Përzgjedhja e Gjuhës" - IDS_LANGSUBTITLE "Zgjidhni gjuhën për instalimin dhe gjuhën e sistemit final." IDS_TYPETITLE "Mirë se vini në instalimin e ReactOS" IDS_TYPESUBTITLE "Zgjidhni llojin e instalimit." IDS_DEVICETITLE "Instaloni pajisjet themelore" diff --git a/reactos/base/setup/reactos/lang/tr-TR.rc b/reactos/base/setup/reactos/lang/tr-TR.rc index 8e72a6b30f6..b86dc8c5ecb 100644 --- a/reactos/base/setup/reactos/lang/tr-TR.rc +++ b/reactos/base/setup/reactos/lang/tr-TR.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "Kur'dan çıkmak için İptal'e tıklayınız.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Kurulum Dili:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Düğme Takımı Giriş Yöntemi:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Kurulum türünü seçmek için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Kur" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Kurulum Türü", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "ReactOS'u Yükleme", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Kurulu ReactOS'u Onarma ya da Yükseltme", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "ReactOS'u Yükleme", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Kurulu ReactOS'u Onarma ya da Yükseltme", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Aygıtları kurmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "Kurulum aygıtını kurmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "İptal", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "Kurulumu işlemini başlatmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Dil Seçimi" - IDS_LANGSUBTITLE "Kurulum ve son dizge dilini seçiniz." IDS_TYPETITLE "ReactOS Kur'a Hoş Geldiniz" IDS_TYPESUBTITLE "Kurulum türünü seçiniz." IDS_DEVICETITLE "Ana Aygıtların Kurulumu" diff --git a/reactos/base/setup/reactos/lang/uk-UA.rc b/reactos/base/setup/reactos/lang/uk-UA.rc index c3017f45b0a..868c8d375d6 100644 --- a/reactos/base/setup/reactos/lang/uk-UA.rc +++ b/reactos/base/setup/reactos/lang/uk-UA.rc @@ -18,31 +18,19 @@ BEGIN LTEXT "Натисніть кнопку Завершити для виходу.", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "Мова системи:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "Розкладка клавіатури:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "Для вибору типу встановлення натисніть Далі.", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Встановлення ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Тип встановлення", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "Встановлення ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "Відновити або змінити встановлений раніше ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "Встановлення ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "Відновити або змінити встановлений раніше ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "Для встановлення пристроїв натисніть Далі.", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" @@ -57,7 +45,7 @@ BEGIN LTEXT "Для встановлення пристроїв натисніть Далі.", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" @@ -102,7 +90,7 @@ BEGIN PUSHBUTTON "&Скасувати", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" @@ -111,7 +99,7 @@ BEGIN LTEXT "Для початку встановлення натисніть Далі.", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" @@ -136,8 +124,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "Вибір мови" - IDS_LANGSUBTITLE "Виберіть мову за замовчуванням в системі." IDS_TYPETITLE "Вас вітає програма встановлення ReactOS" IDS_TYPESUBTITLE "Виберіть тип встановлення." IDS_DEVICETITLE "Встановлення базових пристроїв" diff --git a/reactos/base/setup/reactos/lang/zh-CN.rc b/reactos/base/setup/reactos/lang/zh-CN.rc index db74ff4d41e..81172d8a273 100644 --- a/reactos/base/setup/reactos/lang/zh-CN.rc +++ b/reactos/base/setup/reactos/lang/zh-CN.rc @@ -10,31 +10,19 @@ BEGIN LTEXT "点击完成退出安装。", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安装" FONT 9, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "安装语言:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "键盘或输入法:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "点击下一步选择安装类型。", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS 安装" -FONT 9, "MS Shell Dlg" -BEGIN - CONTROL "安装类型", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "安装 ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "修复或更新已安装的 ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "安装 ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "修复或更新已安装的 ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "点击下一步安装设备。", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安装" FONT 9, "MS Shell Dlg" @@ -49,7 +37,7 @@ BEGIN LTEXT "点击下一步设置安装驱动器。", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安装" FONT 9, "MS Shell Dlg" @@ -94,7 +82,7 @@ BEGIN PUSHBUTTON "取消(&C)", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安装" FONT 9, "MS Shell Dlg" @@ -103,7 +91,7 @@ BEGIN LTEXT "点击下一步开始安装过程。", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安装" FONT 9, "MS Shell Dlg" @@ -128,8 +116,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "语言选择" - IDS_LANGSUBTITLE "选择安装过程中和最终系统所使用的语言" IDS_TYPETITLE "ReactOS 安装" IDS_TYPESUBTITLE "选择安装类型。" IDS_DEVICETITLE "设置基本设备。" diff --git a/reactos/base/setup/reactos/lang/zh-TW.rc b/reactos/base/setup/reactos/lang/zh-TW.rc index 8c5a281c5ff..a1b2d0e548a 100644 --- a/reactos/base/setup/reactos/lang/zh-TW.rc +++ b/reactos/base/setup/reactos/lang/zh-TW.rc @@ -12,31 +12,19 @@ BEGIN LTEXT "點選完成退出安裝。", IDC_STATIC, 115, 169, 195, 17 END -IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 +IDD_TYPEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安裝" FONT 9, "MS Shell Dlg" BEGIN - CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 - CONTROL "安裝語言:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11 - CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142 - CONTROL "鍵盤或輸入法:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 - CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81 - LTEXT "點選下一步選擇安裝類型。", IDC_STATIC, 10, 180, 297, 10 -END - -IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS 安裝" -FONT 9, "MS Shell Dlg" -BEGIN - CONTROL "安裝類型", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - CONTROL "安裝 ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "修復或更新已安裝的 ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + AUTORADIOBUTTON "安裝 ReactOS", IDC_INSTALL, 7, 7, 277, 10 + LTEXT "Install a new copy of ReactOS. This option does not keep your files, settions and programs. You can make changes to disks and partitions.", IDC_INSTALLTEXT, 19, 18, 269, 25 + AUTORADIOBUTTON "修復或更新已安裝的 ReactOS", IDC_UPDATE, 7, 50, 277, 10 + LTEXT "Update or repair an installed copy of ReactOS. This option keeps your files, settions and programs. This option is only available if ReactOS is already installed on this computer.", IDC_UPDATETEXT, 19, 61, 269, 30 LTEXT "點選下一步安裝裝置。", IDC_STATIC, 10, 180, 297, 10 END -IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安裝" FONT 9, "MS Shell Dlg" @@ -51,7 +39,7 @@ BEGIN LTEXT "點選下一步設定安裝驅動器。", IDC_STATIC, 10, 180, 277, 20 END -IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 +IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安裝" FONT 9, "MS Shell Dlg" @@ -96,7 +84,7 @@ BEGIN PUSHBUTTON "取消(&C)", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END -IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193 +IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安裝" FONT 9, "MS Shell Dlg" @@ -105,7 +93,7 @@ BEGIN LTEXT "點選下一步開始安裝過程。", IDC_STATIC, 10, 180, 277, 20 END -IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS 安裝" FONT 9, "MS Shell Dlg" @@ -130,8 +118,6 @@ END STRINGTABLE BEGIN - IDS_LANGTITLE "語言選擇" - IDS_LANGSUBTITLE "選擇安裝過程中和最終系統所使用的語言" IDS_TYPETITLE "ReactOS 安裝" IDS_TYPESUBTITLE "選擇安裝類型。" IDS_DEVICETITLE "設定基本裝置。" diff --git a/reactos/base/setup/reactos/reactos.c b/reactos/base/setup/reactos/reactos.c index 2f81fc4618a..c6d71c15609 100644 --- a/reactos/base/setup/reactos/reactos.c +++ b/reactos/base/setup/reactos/reactos.c @@ -25,85 +25,11 @@ * Dmitry Chapyshev (dmitry@reactos.org) */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +#include "reactos.h" #include "resource.h" /* GLOBALS ******************************************************************/ -HFONT hTitleFont; - -typedef struct _LANG -{ - TCHAR LangId[9]; - TCHAR LangName[128]; -} LANG, *PLANG; - -typedef struct _KBLAYOUT -{ - TCHAR LayoutId[9]; - TCHAR LayoutName[128]; - TCHAR DllName[128]; -} KBLAYOUT, *PKBLAYOUT; - - -// generic entries with simple 1:1 mapping -typedef struct _GENENTRY -{ - TCHAR Id[24]; - TCHAR Value[128]; -} GENENTRY, *PGENENTRY; - -struct -{ - // Settings - LONG DestDiskNumber; // physical disk - LONG DestPartNumber; // partition on disk - LONG DestPartSize; // if partition doesn't exist, size of partition - LONG FSType; // file system type on partition - LONG MBRInstallType; // install bootloader - LONG FormatPart; // type of format the partition - LONG SelectedLangId; // selected language (table index) - LONG SelectedKBLayout; // selected keyboard layout (table index) - TCHAR InstallDir[MAX_PATH]; // installation directory on hdd - LONG SelectedComputer; // selected computer type (table index) - LONG SelectedDisplay; // selected display type (table index) - LONG SelectedKeyboard; // selected keyboard type (table index) - BOOLEAN RepairUpdateFlag; // flag for update/repair an installed reactos - // txtsetup.sif data - LONG DefaultLang; // default language (table index) - PLANG pLanguages; - LONG LangCount; - LONG DefaultKBLayout; // default keyboard layout (table index) - PKBLAYOUT pKbLayouts; - LONG KbLayoutCount; - PGENENTRY pComputers; - LONG CompCount; - PGENENTRY pDisplays; - LONG DispCount; - PGENENTRY pKeyboards; - LONG KeybCount; -} SetupData; - -typedef struct _IMGINFO -{ - HBITMAP hBitmap; - INT cxSource; - INT cySource; -} IMGINFO, *PIMGINFO; - -TCHAR abort_msg[512], abort_title[64]; -HINSTANCE hInstance; -BOOL isUnattend; LONG LoadGenentry(HINF hinf,PCTSTR name,PGENENTRY *gen,PINFCONTEXT context); @@ -157,35 +83,17 @@ CreateTitleFont(VOID) return hFont; } -static VOID -InitImageInfo(PIMGINFO ImgInfo) -{ - BITMAP bitmap; - - ZeroMemory(ImgInfo, sizeof(*ImgInfo)); - - ImgInfo->hBitmap = LoadImage(hInstance, - MAKEINTRESOURCE(IDB_ROSLOGO), - IMAGE_BITMAP, - 0, - 0, - LR_DEFAULTCOLOR); - - if (ImgInfo->hBitmap != NULL) - { - GetObject(ImgInfo->hBitmap, sizeof(BITMAP), &bitmap); - - ImgInfo->cxSource = bitmap.bmWidth; - ImgInfo->cySource = bitmap.bmHeight; - } -} - static INT_PTR CALLBACK StartDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { + PSETUPDATA pSetupData; + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + switch (uMsg) { case WM_INITDIALOG: @@ -193,6 +101,10 @@ StartDlgProc(HWND hwndDlg, HWND hwndControl; DWORD dwStyle; + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + hwndControl = GetParent(hwndDlg); /* Center the wizard window */ @@ -213,7 +125,7 @@ StartDlgProc(HWND hwndDlg, SendDlgItemMessage(hwndDlg, IDC_STARTTITLE, WM_SETFONT, - (WPARAM)hTitleFont, + (WPARAM)pSetupData->hTitleFont, (LPARAM)TRUE); } break; @@ -223,168 +135,11 @@ StartDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { + { case PSN_SETACTIVE: PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT); - break; - default: - break; - } - } - break; - - default: - break; - - } - - return FALSE; -} - -static INT_PTR CALLBACK -LangSelDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PIMGINFO pImgInfo; - LONG i; - LRESULT tindex; - HWND hList; - - pImgInfo = (PIMGINFO)GetWindowLongPtr(hwndDlg, DWLP_USER); - - switch (uMsg) - { - case WM_INITDIALOG: - { - HWND hwndControl; - DWORD dwStyle; - - hwndControl = GetParent(hwndDlg); - - dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); - SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU); - - hwndControl = GetDlgItem(GetParent(hwndDlg), IDCANCEL); - ShowWindow (hwndControl, SW_SHOW); - EnableWindow (hwndControl, TRUE); - - pImgInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IMGINFO)); - if (pImgInfo == NULL) - { - EndDialog(hwndDlg, 0); - return FALSE; - } - - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pImgInfo); - - InitImageInfo(pImgInfo); - - /* Set title font */ - /*SendDlgItemMessage(hwndDlg, - IDC_STARTTITLE, - WM_SETFONT, - (WPARAM)hTitleFont, - (LPARAM)TRUE);*/ - - hList = GetDlgItem(hwndDlg, IDC_LANGUAGES); - - for (i=0; i < SetupData.LangCount; i++) - { - tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM) SetupData.pLanguages[i].LangName); - SendMessage(hList, CB_SETITEMDATA, tindex, i); - if (SetupData.DefaultLang == i) - SendMessage(hList, CB_SETCURSEL, (WPARAM) tindex,(LPARAM) 0); - } - - hList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT); - - for (i=0; i < SetupData.KbLayoutCount; i++) - { - tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM)SetupData.pKbLayouts[i].LayoutName); - SendMessage(hList, CB_SETITEMDATA, tindex, i); - if (SetupData.DefaultKBLayout == i) - SendMessage(hList,CB_SETCURSEL,(WPARAM)tindex,(LPARAM)0); - } - } - break; - - case WM_DRAWITEM: - { - LPDRAWITEMSTRUCT lpDrawItem; - lpDrawItem = (LPDRAWITEMSTRUCT) lParam; - - if (lpDrawItem->CtlID == IDB_ROSLOGO) - { - HDC hdcMem; - LONG left; - - /* position image in centre of dialog */ - left = (lpDrawItem->rcItem.right - pImgInfo->cxSource) / 2; - - hdcMem = CreateCompatibleDC(lpDrawItem->hDC); - if (hdcMem != NULL) - { - SelectObject(hdcMem, pImgInfo->hBitmap); - BitBlt(lpDrawItem->hDC, - left, - lpDrawItem->rcItem.top, - lpDrawItem->rcItem.right - lpDrawItem->rcItem.left, - lpDrawItem->rcItem.bottom - lpDrawItem->rcItem.top, - hdcMem, - 0, - 0, - SRCCOPY); - DeleteDC(hdcMem); - } - } - return TRUE; - } - - case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - - switch (lpnm->code) - { - case PSN_SETACTIVE: - PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); break; - case PSN_QUERYCANCEL: - SetWindowLongPtr(hwndDlg, - DWL_MSGRESULT, - MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, - MB_YESNO | MB_ICONQUESTION) != IDYES); - return TRUE; - - case PSN_WIZNEXT: // set the selected data - { - hList =GetDlgItem(hwndDlg, IDC_LANGUAGES); - tindex = SendMessage(hList,CB_GETCURSEL, (WPARAM)0, (LPARAM)0); - - if (tindex != CB_ERR) - { - WORD LangID; - SetupData.SelectedLangId = SendMessage(hList, CB_GETITEMDATA, (WPARAM) tindex, (LPARAM) 0); - LangID = _tcstol(SetupData.pLanguages[SetupData.SelectedLangId].LangId, NULL, 16); - SetThreadLocale(MAKELCID(LangID, SORT_DEFAULT)); - // FIXME: need to reload all resource to force - // the new language setting - } - - hList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT); - tindex = SendMessage(hList,CB_GETCURSEL, (WPARAM)0, (LPARAM)0); - if (tindex != CB_ERR) - { - SetupData.SelectedKBLayout = SendMessage(hList, CB_GETITEMDATA, (WPARAM) tindex, (LPARAM) 0); - } - return TRUE; - } - default: break; } @@ -395,6 +150,7 @@ LangSelDlgProc(HWND hwndDlg, break; } + return FALSE; } @@ -404,6 +160,11 @@ TypeDlgProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { + PSETUPDATA pSetupData; + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + switch (uMsg) { case WM_INITDIALOG: @@ -411,19 +172,19 @@ TypeDlgProc(HWND hwndDlg, HWND hwndControl; DWORD dwStyle; + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + hwndControl = GetParent(hwndDlg); dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU); - + CheckDlgButton(hwndDlg, IDC_INSTALL, BST_CHECKED); - - /* Set title font */ - /*SendDlgItemMessage(hwndDlg, - IDC_STARTTITLE, - WM_SETFONT, - (WPARAM)hTitleFont, - (LPARAM)TRUE);*/ + + EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATE), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATETEXT), FALSE); } break; @@ -432,7 +193,7 @@ TypeDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { + { case PSN_SETACTIVE: PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); break; @@ -441,16 +202,16 @@ TypeDlgProc(HWND hwndDlg, SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, - MB_YESNO | MB_ICONQUESTION) != IDYES); + pSetupData->szAbortMessage, + pSetupData->szAbortTitle, + MB_YESNO | MB_ICONQUESTION) != IDYES); return TRUE; case PSN_WIZNEXT: // set the selected data - SetupData.RepairUpdateFlag = !(SendMessage(GetDlgItem(hwndDlg, IDC_INSTALL), - BM_GETCHECK, - (WPARAM) 0, - (LPARAM) 0) == BST_CHECKED); + pSetupData->RepairUpdateFlag = !(SendMessage(GetDlgItem(hwndDlg, IDC_INSTALL), + BM_GETCHECK, + (WPARAM) 0, + (LPARAM) 0) == BST_CHECKED); return TRUE; default: @@ -472,10 +233,14 @@ DeviceDlgProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { + PSETUPDATA pSetupData; LONG i; LRESULT tindex; HWND hList; + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + switch (uMsg) { case WM_INITDIALOG: @@ -483,11 +248,15 @@ DeviceDlgProc(HWND hwndDlg, HWND hwndControl; DWORD dwStyle; + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + hwndControl = GetParent(hwndDlg); dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU); - + /* Set title font */ /*SendDlgItemMessage(hwndDlg, IDC_STARTTITLE, @@ -497,27 +266,27 @@ DeviceDlgProc(HWND hwndDlg, hList = GetDlgItem(hwndDlg, IDC_COMPUTER); - for (i=0; i < SetupData.CompCount; i++) + for (i=0; i < pSetupData->CompCount; i++) { - tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM) SetupData.pComputers[i].Value); + tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM) pSetupData->pComputers[i].Value); SendMessage(hList, CB_SETITEMDATA, tindex, i); } SendMessage(hList, CB_SETCURSEL, 0, 0); // set first as default hList = GetDlgItem(hwndDlg, IDC_DISPLAY); - for (i=0; i < SetupData.DispCount; i++) + for (i=0; i < pSetupData->DispCount; i++) { - tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM) SetupData.pDisplays[i].Value); + tindex = SendMessage(hList, CB_ADDSTRING, (WPARAM) 0, (LPARAM) pSetupData->pDisplays[i].Value); SendMessage(hList, CB_SETITEMDATA, tindex, i); } SendMessage(hList, CB_SETCURSEL, 0, 0); // set first as default hList = GetDlgItem(hwndDlg, IDC_KEYBOARD); - for (i=0; i < SetupData.KeybCount; i++) + for (i=0; i < pSetupData->KeybCount; i++) { - tindex = SendMessage(hList,CB_ADDSTRING,(WPARAM)0,(LPARAM)SetupData.pKeyboards[i].Value); + tindex = SendMessage(hList,CB_ADDSTRING,(WPARAM)0,(LPARAM)pSetupData->pKeyboards[i].Value); SendMessage(hList,CB_SETITEMDATA,tindex,i); } SendMessage(hList,CB_SETCURSEL,0,0); // set first as default @@ -529,7 +298,7 @@ DeviceDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { + { case PSN_SETACTIVE: PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); break; @@ -538,8 +307,8 @@ DeviceDlgProc(HWND hwndDlg, SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, + pSetupData->szAbortMessage, + pSetupData->szAbortTitle, MB_YESNO | MB_ICONQUESTION) != IDYES); return TRUE; @@ -550,7 +319,7 @@ DeviceDlgProc(HWND hwndDlg, tindex = SendMessage(hList, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); if (tindex != CB_ERR) { - SetupData.SelectedComputer = SendMessage(hList, + pSetupData->SelectedComputer = SendMessage(hList, CB_GETITEMDATA, (WPARAM) tindex, (LPARAM) 0); @@ -561,7 +330,7 @@ DeviceDlgProc(HWND hwndDlg, tindex = SendMessage(hList, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); if (tindex != CB_ERR) { - SetupData.SelectedDisplay = SendMessage(hList, + pSetupData->SelectedDisplay = SendMessage(hList, CB_GETITEMDATA, (WPARAM) tindex, (LPARAM) 0); @@ -572,7 +341,7 @@ DeviceDlgProc(HWND hwndDlg, tindex = SendMessage(hList, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); if (tindex != CB_ERR) { - SetupData.SelectedKeyboard = SendMessage(hList, + pSetupData->SelectedKeyboard = SendMessage(hList, CB_GETITEMDATA, (WPARAM) tindex, (LPARAM) 0); @@ -593,208 +362,17 @@ DeviceDlgProc(HWND hwndDlg, return FALSE; } -static INT_PTR CALLBACK -MoreOptDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - { - CheckDlgButton(hwndDlg, IDC_INSTFREELDR, BST_CHECKED); - SendMessage(GetDlgItem(hwndDlg, IDC_PATH), - WM_SETTEXT, - (WPARAM) 0, - (LPARAM) SetupData.InstallDir); - } - break; - - case WM_COMMAND: - { - switch(LOWORD(wParam)) - { - case IDOK: - { - SendMessage(GetDlgItem(hwndDlg, IDC_PATH), - WM_GETTEXT, - (WPARAM) sizeof(SetupData.InstallDir) / sizeof(TCHAR), - (LPARAM) SetupData.InstallDir); - - EndDialog(hwndDlg, IDOK); - return TRUE; - } - - case IDCANCEL: - { - EndDialog(hwndDlg, IDCANCEL); - return TRUE; - } - } - } - } - - return FALSE; -} - -static INT_PTR CALLBACK -PartitionDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - break; - case WM_COMMAND: - { - switch(LOWORD(wParam)) - { - case IDOK: - EndDialog(hwndDlg, IDOK); - return TRUE; - case IDCANCEL: - EndDialog(hwndDlg, IDCANCEL); - return TRUE; - } - } - } - return FALSE; -} - -static INT_PTR CALLBACK -DriveDlgProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ -#if 1 - HDEVINFO h; - HWND hList; - SP_DEVINFO_DATA DevInfoData; - DWORD i; -#endif - switch (uMsg) - { - case WM_INITDIALOG: - { - HWND hwndControl; - DWORD dwStyle; - - hwndControl = GetParent(hwndDlg); - - dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); - SetWindowLongPtr(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU); - - /* Set title font */ - /*SendDlgItemMessage(hwndDlg, - IDC_STARTTITLE, - WM_SETFONT, - (WPARAM)hTitleFont, - (LPARAM)TRUE);*/ -#if 1 - h = SetupDiGetClassDevs(&GUID_DEVCLASS_DISKDRIVE, NULL, NULL, DIGCF_PRESENT); - if (h != INVALID_HANDLE_VALUE) - { - hList =GetDlgItem(hwndDlg, IDC_PARTITION); - DevInfoData.cbSize = sizeof(SP_DEVINFO_DATA); - for (i=0; SetupDiEnumDeviceInfo(h, i, &DevInfoData); i++) - { - DWORD DataT; - LPTSTR buffer = NULL; - DWORD buffersize = 0; - - while (!SetupDiGetDeviceRegistryProperty(h, - &DevInfoData, - SPDRP_DEVICEDESC, - &DataT, - (PBYTE)buffer, - buffersize, - &buffersize)) - { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - if (buffer) LocalFree(buffer); - buffer = LocalAlloc(LPTR, buffersize * 2); - } - else - break; - } - if (buffer) - { - SendMessage(hList, LB_ADDSTRING, (WPARAM) 0, (LPARAM) buffer); - LocalFree(buffer); - } - } - SetupDiDestroyDeviceInfoList(h); - } -#endif - } - break; - - case WM_COMMAND: - { - switch(LOWORD(wParam)) - { - case IDC_PARTMOREOPTS: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_BOOTOPTIONS), - hwndDlg, - (DLGPROC) MoreOptDlgProc); - break; - case IDC_PARTCREATE: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_PARTITION), - hwndDlg, - (DLGPROC) PartitionDlgProc); - break; - case IDC_PARTDELETE: - break; - } - break; - } - - case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - - switch (lpnm->code) - { - case PSN_SETACTIVE: - PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); - break; - - case PSN_QUERYCANCEL: - SetWindowLongPtr(hwndDlg, - DWL_MSGRESULT, - MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, - MB_YESNO | MB_ICONQUESTION) != IDYES); - return TRUE; - - default: - break; - } - } - break; - - default: - break; - - } - - return FALSE; -} - static INT_PTR CALLBACK SummaryDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { + PSETUPDATA pSetupData; + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + switch (uMsg) { case WM_INITDIALOG: @@ -802,6 +380,10 @@ SummaryDlgProc(HWND hwndDlg, HWND hwndControl; DWORD dwStyle; + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + hwndControl = GetParent(hwndDlg); dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); @@ -821,7 +403,7 @@ SummaryDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { + { case PSN_SETACTIVE: PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK); break; @@ -830,9 +412,9 @@ SummaryDlgProc(HWND hwndDlg, SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, - MB_YESNO | MB_ICONQUESTION) != IDYES); + pSetupData->szAbortMessage, + pSetupData->szAbortTitle, + MB_YESNO | MB_ICONQUESTION) != IDYES); return TRUE; default: break; @@ -853,6 +435,11 @@ ProcessDlgProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { + PSETUPDATA pSetupData; + + /* Retrieve pointer to the global setup data */ + pSetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + switch (uMsg) { case WM_INITDIALOG: @@ -860,6 +447,10 @@ ProcessDlgProc(HWND hwndDlg, HWND hwndControl; DWORD dwStyle; + /* Save pointer to the global setup data */ + pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pSetupData); + hwndControl = GetParent(hwndDlg); dwStyle = GetWindowLongPtr(hwndControl, GWL_STYLE); @@ -879,8 +470,8 @@ ProcessDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { - case PSN_SETACTIVE: + { + case PSN_SETACTIVE: PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT); // disable all buttons during installation process // PropSheet_SetWizButtons(GetParent(hwndDlg), 0 ); @@ -889,9 +480,9 @@ ProcessDlgProc(HWND hwndDlg, SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, MessageBox(GetParent(hwndDlg), - abort_msg, - abort_title, - MB_YESNO | MB_ICONQUESTION) != IDYES); + pSetupData->szAbortMessage, + pSetupData->szAbortTitle, + MB_YESNO | MB_ICONQUESTION) != IDYES); return TRUE; default: break; @@ -965,7 +556,7 @@ RestartDlgProc(HWND hwndDlg, LPNMHDR lpnm = (LPNMHDR)lParam; switch (lpnm->code) - { + { case PSN_SETACTIVE: // Only "Finish" for closing the App { PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_FINISH); @@ -989,7 +580,8 @@ RestartDlgProc(HWND hwndDlg, return FALSE; } -BOOL LoadSetupData(void) +BOOL LoadSetupData( + PSETUPDATA pSetupData) { WCHAR szPath[MAX_PATH]; TCHAR tmp[10]; @@ -1012,19 +604,19 @@ BOOL LoadSetupData(void) TCHAR message[512], caption[64]; // txtsetup.sif cannot be found - LoadString(hInstance, IDS_NO_TXTSETUP_SIF, message, sizeof(message)/sizeof(TCHAR)); - LoadString(hInstance, IDS_CAPTION, caption, sizeof(caption)/sizeof(TCHAR)); + LoadString(pSetupData->hInstance, IDS_NO_TXTSETUP_SIF, message, sizeof(message)/sizeof(TCHAR)); + LoadString(pSetupData->hInstance, IDS_CAPTION, caption, sizeof(caption)/sizeof(TCHAR)); MessageBox(NULL, message, caption, MB_OK | MB_ICONERROR); return FALSE; } // get language list - SetupData.LangCount = SetupGetLineCount(hTxtsetupSif, _T("Language")); - if (SetupData.LangCount > 0) + pSetupData->LangCount = SetupGetLineCount(hTxtsetupSif, _T("Language")); + if (pSetupData->LangCount > 0) { - SetupData.pLanguages = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LANG) * SetupData.LangCount); - if (SetupData.pLanguages != NULL) + pSetupData->pLanguages = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LANG) * pSetupData->LangCount); + if (pSetupData->pLanguages != NULL) { Count = 0; if (SetupFindFirstLine(hTxtsetupSif, _T("Language"), NULL, &InfContext)) @@ -1033,28 +625,28 @@ BOOL LoadSetupData(void) { SetupGetStringField(&InfContext, 0, - SetupData.pLanguages[Count].LangId, - sizeof(SetupData.pLanguages[Count].LangId) / sizeof(TCHAR), + pSetupData->pLanguages[Count].LangId, + sizeof(pSetupData->pLanguages[Count].LangId) / sizeof(TCHAR), &LineLength); SetupGetStringField(&InfContext, 1, - SetupData.pLanguages[Count].LangName, - sizeof(SetupData.pLanguages[Count].LangName) / sizeof(TCHAR), + pSetupData->pLanguages[Count].LangName, + sizeof(pSetupData->pLanguages[Count].LangName) / sizeof(TCHAR), &LineLength); ++Count; } - while (SetupFindNextLine(&InfContext, &InfContext) && Count < SetupData.LangCount); + while (SetupFindNextLine(&InfContext, &InfContext) && Count < pSetupData->LangCount); } } } // get keyboard layout list - SetupData.KbLayoutCount = SetupGetLineCount(hTxtsetupSif, _T("KeyboardLayout")); - if (SetupData.KbLayoutCount > 0) + pSetupData->KbLayoutCount = SetupGetLineCount(hTxtsetupSif, _T("KeyboardLayout")); + if (pSetupData->KbLayoutCount > 0) { - SetupData.pKbLayouts = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(KBLAYOUT) * SetupData.KbLayoutCount); - if (SetupData.pKbLayouts != NULL) + pSetupData->pKbLayouts = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(KBLAYOUT) * pSetupData->KbLayoutCount); + if (pSetupData->pKbLayouts != NULL) { Count = 0; if (SetupFindFirstLine(hTxtsetupSif, _T("KeyboardLayout"), NULL, &InfContext)) @@ -1063,34 +655,34 @@ BOOL LoadSetupData(void) { SetupGetStringField(&InfContext, 0, - SetupData.pKbLayouts[Count].LayoutId, - sizeof(SetupData.pKbLayouts[Count].LayoutId) / sizeof(TCHAR), + pSetupData->pKbLayouts[Count].LayoutId, + sizeof(pSetupData->pKbLayouts[Count].LayoutId) / sizeof(TCHAR), &LineLength); SetupGetStringField(&InfContext, 1, - SetupData.pKbLayouts[Count].LayoutName, - sizeof(SetupData.pKbLayouts[Count].LayoutName) / sizeof(TCHAR), + pSetupData->pKbLayouts[Count].LayoutName, + sizeof(pSetupData->pKbLayouts[Count].LayoutName) / sizeof(TCHAR), &LineLength); ++Count; } - while (SetupFindNextLine(&InfContext, &InfContext) && Count < SetupData.KbLayoutCount); + while (SetupFindNextLine(&InfContext, &InfContext) && Count < pSetupData->KbLayoutCount); } } } // get default for keyboard and language - SetupData.DefaultKBLayout = -1; - SetupData.DefaultLang = -1; + pSetupData->DefaultKBLayout = -1; + pSetupData->DefaultLang = -1; // TODO: get defaults from underlaying running system if (SetupFindFirstLine(hTxtsetupSif, _T("NLS"), _T("DefaultLayout"), &InfContext)) { SetupGetStringField(&InfContext, 1, tmp, sizeof(tmp) / sizeof(TCHAR), &LineLength); - for (Count = 0; Count < SetupData.KbLayoutCount; Count++) - if (_tcscmp(tmp, SetupData.pKbLayouts[Count].LayoutId) == 0) + for (Count = 0; Count < pSetupData->KbLayoutCount; Count++) + if (_tcscmp(tmp, pSetupData->pKbLayouts[Count].LayoutId) == 0) { - SetupData.DefaultKBLayout = Count; + pSetupData->DefaultKBLayout = Count; break; } } @@ -1098,30 +690,30 @@ BOOL LoadSetupData(void) if (SetupFindFirstLine(hTxtsetupSif, _T("NLS"), _T("DefaultLanguage"), &InfContext)) { SetupGetStringField(&InfContext, 1, tmp, sizeof(tmp) / sizeof(TCHAR), &LineLength); - for (Count = 0; Count < SetupData.LangCount; Count++) - if (_tcscmp(tmp, SetupData.pLanguages[Count].LangId) == 0) + for (Count = 0; Count < pSetupData->LangCount; Count++) + if (_tcscmp(tmp, pSetupData->pLanguages[Count].LangId) == 0) { - SetupData.DefaultLang = Count; + pSetupData->DefaultLang = Count; break; } } // get computers list - SetupData.CompCount = LoadGenentry(hTxtsetupSif,_T("Computer"),&SetupData.pComputers,&InfContext); + pSetupData->CompCount = LoadGenentry(hTxtsetupSif,_T("Computer"),&pSetupData->pComputers,&InfContext); // get display list - SetupData.DispCount = LoadGenentry(hTxtsetupSif,_T("Display"),&SetupData.pDisplays,&InfContext); + pSetupData->DispCount = LoadGenentry(hTxtsetupSif,_T("Display"),&pSetupData->pDisplays,&InfContext); // get keyboard list - SetupData.KeybCount = LoadGenentry(hTxtsetupSif, _T("Keyboard"),&SetupData.pKeyboards,&InfContext); + pSetupData->KeybCount = LoadGenentry(hTxtsetupSif, _T("Keyboard"),&pSetupData->pKeyboards,&InfContext); // get install directory if (SetupFindFirstLine(hTxtsetupSif, _T("SetupData"), _T("DefaultPath"), &InfContext)) { SetupGetStringField(&InfContext, 1, - SetupData.InstallDir, - sizeof(SetupData.InstallDir) / sizeof(TCHAR), + pSetupData->InstallDir, + sizeof(pSetupData->InstallDir) / sizeof(TCHAR), &LineLength); } SetupCloseInfFile(hTxtsetupSif); @@ -1211,47 +803,48 @@ _tWinMain(HINSTANCE hInst, LPTSTR lpszCmdLine, int nCmdShow) { + PSETUPDATA pSetupData = NULL; PROPSHEETHEADER psh; HPROPSHEETPAGE ahpsp[8]; PROPSHEETPAGE psp = {0}; UINT nPages = 0; - hInstance = hInst; - isUnattend = isUnattendSetup(); - LoadString(hInst,IDS_ABORTSETUP, abort_msg, sizeof(abort_msg)/sizeof(TCHAR)); - LoadString(hInst,IDS_ABORTSETUP2, abort_title,sizeof(abort_title)/sizeof(TCHAR)); - if (!isUnattend) + pSetupData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SETUPDATA)); + if (pSetupData == NULL) { - if (!LoadSetupData()) + return 1; + } + + pSetupData->hInstance = hInst; + pSetupData->bUnattend = isUnattendSetup(); + + LoadString(hInst,IDS_ABORTSETUP, pSetupData->szAbortMessage, sizeof(pSetupData->szAbortMessage)/sizeof(TCHAR)); + LoadString(hInst,IDS_ABORTSETUP2, pSetupData->szAbortTitle, sizeof(pSetupData->szAbortTitle)/sizeof(TCHAR)); + + /* Create title font */ + pSetupData->hTitleFont = CreateTitleFont(); + + if (!pSetupData->bUnattend) + { + if (!LoadSetupData(pSetupData)) return 0; /* Create the Start page, until setup is working */ psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER; psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = StartDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_STARTPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); - /* Create language selection page */ - psp.dwSize = sizeof(PROPSHEETPAGE); - psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; - psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LANGTITLE); - psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LANGSUBTITLE); - psp.hInstance = hInst; - psp.lParam = 0; - psp.pfnDlgProc = LangSelDlgProc; - psp.pszTemplate = MAKEINTRESOURCE(IDD_LANGSELPAGE); - ahpsp[nPages++] = CreatePropertySheetPage(&psp); - /* Create install type selection page */ psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TYPETITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_TYPESUBTITLE); psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = TypeDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_TYPEPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); @@ -1262,7 +855,7 @@ _tWinMain(HINSTANCE hInst, psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DEVICETITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DEVICESUBTITLE); psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = DeviceDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_DEVICEPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); @@ -1273,7 +866,7 @@ _tWinMain(HINSTANCE hInst, psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DRIVETITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DRIVESUBTITLE); psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = DriveDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_DRIVEPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); @@ -1284,7 +877,7 @@ _tWinMain(HINSTANCE hInst, psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_SUMMARYTITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUMMARYSUBTITLE); psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = SummaryDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_SUMMARYPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); @@ -1296,18 +889,16 @@ _tWinMain(HINSTANCE hInst, psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE); psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = ProcessDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create finish to reboot page */ psp.dwSize = sizeof(PROPSHEETPAGE); - psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; - psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_RESTARTTITLE); - psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_RESTARTSUBTITLE); + psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER; psp.hInstance = hInst; - psp.lParam = 0; + psp.lParam = (LPARAM)pSetupData; psp.pfnDlgProc = RestartDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_RESTARTPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp); @@ -1323,13 +914,14 @@ _tWinMain(HINSTANCE hInst, psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK); psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER); - /* Create title font */ - hTitleFont = CreateTitleFont(); - /* Display the wizard */ PropertySheet(&psh); - DeleteObject(hTitleFont); + if (pSetupData->hTitleFont) + DeleteObject(pSetupData->hTitleFont); + + if (pSetupData != NULL) + HeapFree(GetProcessHeap(), 0, pSetupData); return 0; } diff --git a/reactos/base/setup/reactos/reactos.h b/reactos/base/setup/reactos/reactos.h new file mode 100644 index 00000000000..bb507032c0b --- /dev/null +++ b/reactos/base/setup/reactos/reactos.h @@ -0,0 +1,124 @@ +/* + * ReactOS applications + * Copyright (C) 2004-2008 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS GUI first stage setup application + * FILE: base/setup/reactos/reactos.c + * PROGRAMMERS: Eric Kohl + * Matthias Kupfer + * Dmitry Chapyshev (dmitry@reactos.org) + */ + +#ifndef _REACTOS_PCH_ +#define _REACTOS_PCH_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +typedef struct _LANG +{ + TCHAR LangId[9]; + TCHAR LangName[128]; +} LANG, *PLANG; + +typedef struct _KBLAYOUT +{ + TCHAR LayoutId[9]; + TCHAR LayoutName[128]; + TCHAR DllName[128]; +} KBLAYOUT, *PKBLAYOUT; + + +// generic entries with simple 1:1 mapping +typedef struct _GENENTRY +{ + TCHAR Id[24]; + TCHAR Value[128]; +} GENENTRY, *PGENENTRY; + +typedef struct _SETUPDATA +{ + /* General */ + HINSTANCE hInstance; + BOOL bUnattend; + + HFONT hTitleFont; + + TCHAR szAbortMessage[512]; + TCHAR szAbortTitle[64]; + + // Settings + LONG DestDiskNumber; // physical disk + LONG DestPartNumber; // partition on disk + LONG DestPartSize; // if partition doesn't exist, size of partition + LONG FSType; // file system type on partition + LONG MBRInstallType; // install bootloader + LONG FormatPart; // type of format the partition + LONG SelectedLangId; // selected language (table index) + LONG SelectedKBLayout; // selected keyboard layout (table index) + TCHAR InstallDir[MAX_PATH]; // installation directory on hdd + LONG SelectedComputer; // selected computer type (table index) + LONG SelectedDisplay; // selected display type (table index) + LONG SelectedKeyboard; // selected keyboard type (table index) + BOOLEAN RepairUpdateFlag; // flag for update/repair an installed reactos + // txtsetup.sif data + LONG DefaultLang; // default language (table index) + PLANG pLanguages; + LONG LangCount; + LONG DefaultKBLayout; // default keyboard layout (table index) + PKBLAYOUT pKbLayouts; + LONG KbLayoutCount; + PGENENTRY pComputers; + LONG CompCount; + PGENENTRY pDisplays; + LONG DispCount; + PGENENTRY pKeyboards; + LONG KeybCount; +} SETUPDATA, *PSETUPDATA; + +typedef struct _IMGINFO +{ + HBITMAP hBitmap; + INT cxSource; + INT cySource; +} IMGINFO, *PIMGINFO; + + + +/* drivepage.c */ +INT_PTR +CALLBACK +DriveDlgProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); + +#endif /* _REACTOS_PCH_ */ + +/* EOP */ diff --git a/reactos/base/setup/reactos/reactos.rc b/reactos/base/setup/reactos/reactos.rc index c65c60c604b..3ca6e6daaa4 100644 --- a/reactos/base/setup/reactos/reactos.rc +++ b/reactos/base/setup/reactos/reactos.rc @@ -17,7 +17,6 @@ IDI_MAIN ICON "res/setup.ico" /* Bitmaps */ IDB_WATERMARK BITMAP "res/watermark.bmp" IDB_HEADER BITMAP "res/header.bmp" -IDB_ROSLOGO BITMAP "res/rosbitmap.bmp" #include diff --git a/reactos/base/setup/reactos/res/rosbitmap.bmp b/reactos/base/setup/reactos/res/rosbitmap.bmp deleted file mode 100644 index 8a94a6ec9dff917db3ab166e9857e2a9d96d2d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164750 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૨$9^m9 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%0DxCTsVY8S161 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