- Use 'MS Shell Dlg' font in all dialogs.

- Fix some typos in german dialogs.
- Add locale page dialog.
- Store owner name, owner organization and computer name in the registry.

svn path=/trunk/; revision=10366
This commit is contained in:
Eric Kohl 2004-08-03 13:43:00 +00:00
parent 62d46e8d85
commit 437de0500e
7 changed files with 317 additions and 143 deletions

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: install.c,v 1.14 2004/07/19 01:33:14 kuehng Exp $ /* $Id: install.c,v 1.15 2004/08/03 13:43:00 ekohl Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries * PROJECT: ReactOS system libraries
@ -41,9 +41,10 @@
#include "globals.h" #include "globals.h"
#include "resource.h" #include "resource.h"
// #define NO_GUI
#define VMWINST #define VMWINST
VOID WINAPI CreateCmdLink(VOID);
/* GLOBALS ******************************************************************/ /* GLOBALS ******************************************************************/
@ -63,15 +64,11 @@ DebugPrint(char* fmt,...)
vsprintf(buffer, fmt, ap); vsprintf(buffer, fmt, ap);
va_end(ap); va_end(ap);
#ifdef NO_GUI strcat(buffer, "\nRebooting now!");
OutputDebugStringA(buffer); MessageBoxA(NULL,
#else
strcat (buffer, "\nRebooting now!");
MessageBoxA (NULL,
buffer, buffer,
"ReactOS Setup", "ReactOS Setup",
MB_OK); MB_OK);
#endif
} }
@ -250,35 +247,45 @@ CreateTempDir(LPCWSTR VarName)
RegCloseKey (hKey); RegCloseKey (hKey);
} }
BOOL ProcessSysSetupInf(void)
{
#define SECTIONBUF_SIZE 4096 #define SECTIONBUF_SIZE 4096
TCHAR *pBuf2;
TCHAR pBuf[SECTIONBUF_SIZE]; BOOL
ProcessSysSetupInf(VOID)
{
LPTSTR pBuf2;
TCHAR szBuf[SECTIONBUF_SIZE];
DWORD dwBufSize;
SetLastError(0); SetLastError(0);
DWORD dwBufSize = GetPrivateProfileSection(_T("DeviceInfsToInstall"),pBuf,SECTIONBUF_SIZE,_T("Inf\\SYSSETUP.INF")); dwBufSize = GetPrivateProfileSection(_T("DeviceInfsToInstall"),
szBuf,
SECTIONBUF_SIZE,
_T("Inf\\SYSSETUP.INF"));
// fix this first... /* fix this first... */
if(GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
return TRUE; return TRUE;
if(dwBufSize == SECTIONBUF_SIZE-2) if (dwBufSize == SECTIONBUF_SIZE-2)
return FALSE; return FALSE;
if(!dwBufSize)
if (!dwBufSize)
return FALSE; return FALSE;
pBuf2=pBuf;
while(*pBuf2) pBuf2 = szBuf;
while (*pBuf2)
{ {
OutputDebugString(_T("Calling Class Installer for ")); OutputDebugString(_T("Calling Class Installer for "));
OutputDebugString(pBuf2); OutputDebugString(pBuf2);
OutputDebugString(_T("\r\n")); OutputDebugString(_T("\r\n"));
// Currently unsupported #if 0
// if(!SetupDiInstallClass(NULL,pBuf2,DI_QUIETINSTALL,NULL)) /* FIXME: Currently unsupported */
// return FALSE; if (!SetupDiInstallClass(NULL, pBuf2, DI_QUIETINSTALL, NULL))
pBuf2+=_tcslen(pBuf2)+1; return FALSE;
#endif
pBuf2 += _tcslen(pBuf2) + 1;
} }
return TRUE; return TRUE;
@ -385,9 +392,8 @@ InstallReactOS (HINSTANCE hInstance)
DebugPrint("ProcessSysSetupInf() failed!\n"); DebugPrint("ProcessSysSetupInf() failed!\n");
return 0; return 0;
} }
#if 1
InstallWizard (); InstallWizard();
#endif
#ifdef VMWINST #ifdef VMWINST
RunVMWInstall (); RunVMWInstall ();
@ -401,11 +407,13 @@ InstallReactOS (HINSTANCE hInstance)
return 0; return 0;
} }
/* /*
* @unimplemented * @unimplemented
*/ */
DWORD STDCALL SetupChangeFontSize(HANDLE HWindow, DWORD STDCALL
SetupChangeFontSize(HANDLE hWnd,
LPCWSTR lpszFontSize) LPCWSTR lpszFontSize)
{ {
return(FALSE); return FALSE;
} }

View file

@ -19,6 +19,9 @@
#ifndef RESOURCE_H #ifndef RESOURCE_H
#define RESOURCE_H #define RESOURCE_H
#define IDB_WATERMARK 100
#define IDB_HEADER 101
#define IDC_STATIC -1 #define IDC_STATIC -1
#define IDD_WELCOMEPAGE 1000 #define IDD_WELCOMEPAGE 1000
@ -32,6 +35,11 @@
#define IDC_ADMINPASSWORD1 1006 #define IDC_ADMINPASSWORD1 1006
#define IDC_ADMINPASSWORD2 1007 #define IDC_ADMINPASSWORD2 1007
#define IDD_LOCALEPAGE 1008
#define IDC_LOCALETEXT 1009
#define IDC_CUSTOMLOCALE 1010
#define IDC_LAYOUTTEXT 1011
#define IDC_CUSTOMLAYOUT 1012
#define IDD_FINISHPAGE 1050 #define IDD_FINISHPAGE 1050

View file

@ -37,6 +37,12 @@ BEGIN
END END
END END
/* Bitmaps */
IDB_WATERMARK BITMAP "res/watermark.bmp"
IDB_HEADER BITMAP "res/header.bmp"
/* /*
* Everything specific to any language goes in one of the specific * Everything specific to any language goes in one of the specific
* files. Note that you can and may override resources which also have * files. Note that you can and may override resources which also have

View file

@ -21,7 +21,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Welcome to the ReactOS Setup Wizard.", IDC_STATIC, 115, 9, 189, 31 LTEXT "Welcome to the ReactOS Setup Wizard.", IDC_STATIC, 115, 9, 189, 31
LTEXT "This wizard installs ReactOS on your computer. The wizard "\ LTEXT "This wizard installs ReactOS on your computer. The wizard "\
@ -34,7 +34,7 @@ END
IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Type your full name and the name of your company or organization.", LTEXT "Type your full name and the name of your company or organization.",
IDC_STATIC, 54, 7, 242, 21 IDC_STATIC, 54, 7, 242, 21
@ -48,7 +48,7 @@ END
IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Type a name for your computer that is 63 characters or less. "\ LTEXT "Type a name for your computer that is 63 characters or less. "\
"If you are on a network, your computer name must be unique.", "If you are on a network, your computer name must be unique.",
@ -67,10 +67,31 @@ BEGIN
END END
IDD_LOCALEPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "The system locale should match the language of the applications "\
"you want to use. The user locale controls how numbers, "\
"currencies, and dates appear.", IDC_STATIC, 53, 7, 253, 20
LTEXT "<locale text>", IDC_LOCALETEXT, 53, 29, 250, 16
LTEXT "To change system or user locale settings, click Customize.",
IDC_STATIC, 53, 60, 184, 8
PUSHBUTTON "&Customize...", IDC_CUSTOMLOCALE, 245, 57, 50, 14
LTEXT "The keyboard layout controls the characters that appear when you type.",
IDC_STATIC, 53, 86, 253, 8
LTEXT "<layout text>", IDC_LAYOUTTEXT, 53, 100, 250, 16
LTEXT "To change the keyboard layout, click Customize.",
IDC_STATIC, 53, 126, 184, 8
PUSHBUTTON "C&ustomize...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14
END
IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Completing ReactOS Setup" CAPTION "Completing ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Completing the ReactOS Setup Wizard",IDC_STATIC,115,9,195,37 LTEXT "Completing the ReactOS Setup Wizard",IDC_STATIC,115,9,195,37
LTEXT "You have successfully completed ReactOS Setup.\n\n" \ LTEXT "You have successfully completed ReactOS Setup.\n\n" \

View file

@ -23,20 +23,20 @@ LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Willkommen zu den Setup-Assistent von ReactOS.", IDC_STATIC, 115, 9, 189, 31 LTEXT "Willkommen zu den Setup-Assistent von ReactOS.", IDC_STATIC, 115, 9, 189, 31
LTEXT "Dieser Assistent wird ReactOS auf Ihren Computer installieren. "\ LTEXT "Dieser Assistent wird ReactOS auf Ihrem Computer installieren. "\
"Der Assistent benötigt ein paar Informationenn um ReactOS "\ "Der Assistent benötigt ein paar Informationen um ReactOS "\
"zu installieren.", IDC_STATIC, 115, 50, 189, 100 "zu installieren.", IDC_STATIC, 115, 50, 189, 100
LTEXT "Klicken Sie auf Weiter um forzufahren.", IDC_STATIC, 115, 160, 189, 31 LTEXT "Klicken Sie auf Weiter um fortzufahren.", IDC_STATIC, 115, 160, 189, 31
END END
IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Geben Sie ihren Namen und ihre Firma oder Organization ein.", LTEXT "Geben Sie ihren Namen und ihre Firma oder Organization ein.",
IDC_STATIC, 54, 7, 242, 21 IDC_STATIC, 54, 7, 242, 21
@ -50,17 +50,17 @@ END
IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Geben sie einen Computernamen ein, der höchstens 63 Zeichen lang ist. "\ LTEXT "Geben sie einen Computernamen ein, der höchstens 63 Zeichen lang ist. "\
"Wenn Sie um Netzwerk sind muss dieser Name einmalig sein.", "Wenn Sie im Netzwerk sind muss dieser Name einmalig sein.",
IDC_STATIC, 54, 7, 250, 24 IDC_STATIC, 54, 7, 250, 24
LTEXT "&Computername:", IDC_STATIC, 54, 38, 75, 8 LTEXT "&Computername:", IDC_STATIC, 54, 38, 75, 8
EDITTEXT IDC_COMPUTERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE EDITTEXT IDC_COMPUTERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE
LTEXT "Das Setup wird einen Administratorkonto erstellen. "\ LTEXT "Das Setup wird ein Administratorkonto erstellen. "\
"Benutzen Sie ihn, wenn Sie vollen Zugriff auf Ihren Computer benötigen .", "Benutzen Sie es, wenn Sie vollen Zugriff auf Ihren Computer benötigen.",
IDC_STATIC, 54, 57, 250, 25 IDC_STATIC, 54, 57, 250, 25
LTEXT "Geben Sie ein Passwort für das Administratorkonto ein, das höchstens 14 Zeichen lang ist", LTEXT "Geben Sie ein Passwort für das Administratorkonto ein, das höchstens 14 Zeichen lang ist.",
IDC_STATIC, 54, 87, 250, 8 IDC_STATIC, 54, 87, 250, 8
LTEXT "&Administrator Passwort:", IDC_STATIC, 54, 104, 75, 8 LTEXT "&Administrator Passwort:", IDC_STATIC, 54, 104, 75, 8
EDITTEXT IDC_ADMINPASSWORD1, 132, 101, 172, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD EDITTEXT IDC_ADMINPASSWORD1, 132, 101, 172, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD
@ -69,15 +69,36 @@ BEGIN
END END
IDD_LOCALEPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "The system locale should match the language of the applications "\
"you want to use. The user locale controls how numbers, "\
"currencies, and dates appear.", IDC_STATIC, 53, 7, 253, 20
LTEXT "<locale text>", IDC_LOCALETEXT, 53, 29, 250, 16
LTEXT "To change system or user locale settings, click Customize.",
IDC_STATIC, 53, 60, 184, 8
PUSHBUTTON "&Customize...", IDC_CUSTOMLOCALE, 245, 57, 50, 14
LTEXT "The keyboard layout controls the characters that appear when you type.",
IDC_STATIC, 53, 86, 253, 8
LTEXT "<layout text>", IDC_LAYOUTTEXT, 53, 100, 250, 16
LTEXT "To change the keyboard layout, click Customize.",
IDC_STATIC, 53, 126, 184, 8
PUSHBUTTON "C&ustomize...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14
END
IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Fertigstellung des ReactOS Setups" CAPTION "Fertigstellung des ReactOS Setups"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Fertigstellung des ReactOS Setup Assistenten",IDC_STATIC,115,9,195,37 LTEXT "Fertigstellung des ReactOS Setup Assistenten",IDC_STATIC,115,9,195,37
LTEXT "Das ReactOS Setup wurde erfolgreich fertiggestellt.\n\n" \ LTEXT "Das ReactOS Setup wurde erfolgreich fertiggestellt.\n\n" \
"Wenn Sie auf Fertig klicken, wird der Computer neu gestartet.", IDC_STATIC, 115, 58, 195, 100 "Wenn Sie auf Fertig klicken, wird der Computer neu gestartet.", IDC_STATIC, 115, 58, 195, 100
LTEXT "Entfernen Sie die CD wenn vorhanden. Danach klicken Sie "\ LTEXT "Entfernen Sie die CD, wenn vorhanden. Danach klicken Sie "\
"auf Fertig, um den Computer neu zu starten.", IDC_STATIC, 115, 160, 195, 31 "auf Fertig, um den Computer neu zu starten.", IDC_STATIC, 115, 160, 195, 31
END END
@ -89,8 +110,8 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.", IDC_STATIC, 13, 12, 212, 16 LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.", IDC_STATIC, 13, 12, 212, 16
LTEXT "Um fortzufahren muss Ihr Computer neu gesratet werden. "\ LTEXT "Um fortzufahren muss Ihr Computer neu gesratet werden. "\
"Der Computer wird in 15 Minuten automatisch neu gestartet oder wenn Sie auch den "\ "Der Computer wird in 15 Minuten automatisch neu gestartet oder wenn Sie auf "\
"Neustart Button klicken.", IDC_STATIC, 13, 33, 212, 32 "Neustart klicken.", IDC_STATIC, 13, 33, 212, 32
/* GROUPBOX "", -1, 7, 3, 231, 106 */ /* GROUPBOX "", -1, 7, 3, 231, 106 */
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
PUSHBUTTON "&Neustart", IDOK, 98, 87, 50, 14 PUSHBUTTON "&Neustart", IDOK, 98, 87, 50, 14

View file

@ -23,7 +23,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_WELCOMEPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Welcome to the ReactOS Setup Wizard.", IDC_STATIC, 115, 9, 189, 31 LTEXT "Welcome to the ReactOS Setup Wizard.", IDC_STATIC, 115, 9, 189, 31
LTEXT "This wizard installs ReactOS on your computer. The wizard "\ LTEXT "This wizard installs ReactOS on your computer. The wizard "\
@ -36,7 +36,7 @@ END
IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_OWNERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Type your full name and the name of your company or organization.", LTEXT "Type your full name and the name of your company or organization.",
IDC_STATIC, 54, 7, 242, 21 IDC_STATIC, 54, 7, 242, 21
@ -50,7 +50,7 @@ END
IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143 IDD_COMPUTERPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup" CAPTION "ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Type a name for your computer that is 63 characters or less. "\ LTEXT "Type a name for your computer that is 63 characters or less. "\
"If you are on a network, your computer name must be unique.", "If you are on a network, your computer name must be unique.",
@ -69,10 +69,31 @@ BEGIN
END END
IDD_LOCALEPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ReactOS Setup"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "The system locale should match the language of the applications "\
"you want to use. The user locale controls how numbers, "\
"currencies, and dates appear.", IDC_STATIC, 53, 7, 253, 20
LTEXT "<locale text>", IDC_LOCALETEXT, 53, 29, 250, 16
LTEXT "To change system or user locale settings, click Customize.",
IDC_STATIC, 53, 60, 184, 8
PUSHBUTTON "&Customize...", IDC_CUSTOMLOCALE, 245, 57, 50, 14
LTEXT "The keyboard layout controls the characters that appear when you type.",
IDC_STATIC, 53, 86, 253, 8
LTEXT "<layout text>", IDC_LAYOUTTEXT, 53, 100, 250, 16
LTEXT "To change the keyboard layout, click Customize.",
IDC_STATIC, 53, 126, 184, 8
PUSHBUTTON "C&ustomize...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14
END
IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193 IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 193
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Completing ReactOS Setup" CAPTION "Completing ReactOS Setup"
FONT 8, "MS Sans Serif" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Completing the ReactOS Setup Wizard",IDC_STATIC,115,9,195,37 LTEXT "Completing the ReactOS Setup Wizard",IDC_STATIC,115,9,195,37
LTEXT "You have successfully completed ReactOS Setup.\n\n" \ LTEXT "You have successfully completed ReactOS Setup.\n\n" \

View file

@ -16,13 +16,13 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: wizard.c,v 1.4 2004/06/17 21:23:50 kuehng Exp $ /* $Id: wizard.c,v 1.5 2004/08/03 13:43:00 ekohl Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries * PROJECT: ReactOS system libraries
* PURPOSE: System setup * PURPOSE: System setup
* FILE: lib/syssetup/wizard.c * FILE: lib/syssetup/wizard.c
* PROGRAMER: Eric Kohl (ekohl@rz-online.de) * PROGRAMER: Eric Kohl
*/ */
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
@ -125,37 +125,33 @@ WelcomeDlgProc(HWND hwndDlg,
} }
INT_PTR CALLBACK BOOL CALLBACK
OwnerPageDlgProc(HWND hwndDlg, OwnerPageDlgProc(HWND hwndDlg,
UINT uMsg, UINT uMsg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
PSETUPDATA SetupData; TCHAR OwnerName[51];
TCHAR OwnerOrganization[51];
/* Retrieve pointer to the global setup data */ HKEY hKey;
SetupData = (PSETUPDATA)GetWindowLong (hwndDlg, GWL_USERDATA); LPNMHDR lpnm;
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
/* Save pointer to the global setup data */
SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)SetupData);
SendDlgItemMessage(hwndDlg, IDC_OWNERNAME, EM_LIMITTEXT, 50, 0); SendDlgItemMessage(hwndDlg, IDC_OWNERNAME, EM_LIMITTEXT, 50, 0);
SendDlgItemMessage(hwndDlg, IDC_OWNERORGANIZATION, EM_LIMITTEXT, 50, 0); SendDlgItemMessage(hwndDlg, IDC_OWNERORGANIZATION, EM_LIMITTEXT, 50, 0);
/* set focus to owner name */ /* Set focus to owner name */
SetFocus(GetDlgItem(hwndDlg,IDC_OWNERNAME)); SetFocus(GetDlgItem(hwndDlg, IDC_OWNERNAME));
} }
break; break;
case WM_NOTIFY: case WM_NOTIFY:
{ {
LPNMHDR lpnm = (LPNMHDR)lParam; lpnm = (LPNMHDR)lParam;
switch (lpnm->code) switch (lpnm->code)
{ {
@ -165,16 +161,44 @@ OwnerPageDlgProc(HWND hwndDlg,
break; break;
case PSN_WIZNEXT: case PSN_WIZNEXT:
if (GetDlgItemText(hwndDlg, IDC_OWNERNAME, SetupData->OwnerName, 50) == 0) OwnerName[0] = 0;
if (GetDlgItemText(hwndDlg, IDC_OWNERNAME, OwnerName, 50) == 0)
{ {
MessageBox (hwndDlg, MessageBox(hwndDlg,
_T("Setup cannot continue until you enter your name."), _T("Setup cannot continue until you enter your name."),
_T("ReactOS Setup"), _T("ReactOS Setup"),
MB_ICONERROR | MB_OK); MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1); SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE; return TRUE;
} }
GetDlgItemText(hwndDlg, IDC_OWNERORGANIZATION, SetupData->OwnerOrganization, 50);
OwnerOrganization[0] = 0;
GetDlgItemText(hwndDlg, IDC_OWNERORGANIZATION, OwnerOrganization, 50);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
_T("Software\\Microsoft\\Windows NT\\CurrentVersion"),
0,
KEY_ALL_ACCESS,
&hKey);
/* FIXME: check error code */
RegSetValueEx(hKey,
_T("RegisteredOwner"),
0,
REG_SZ,
OwnerName,
(_tcslen(OwnerName) + 1) * sizeof(TCHAR));
/* FIXME: check error code */
RegSetValueEx(hKey,
_T("RegisteredOrganization"),
0,
REG_SZ,
OwnerOrganization,
(_tcslen(OwnerOrganization) + 1) * sizeof(TCHAR));
/* FIXME: check error code */
RegCloseKey(hKey);
break; break;
default: default:
@ -197,9 +221,108 @@ ComputerPageDlgProc(HWND hwndDlg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
PSETUPDATA SetupData; TCHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
TCHAR Password1[15]; TCHAR Password1[15];
TCHAR Password2[15]; TCHAR Password2[15];
DWORD Length;
LPNMHDR lpnm;
switch (uMsg)
{
case WM_INITDIALOG:
{
/* Retrieve current computer name */
Length = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(ComputerName, &Length);
/* Display current computer name */
SetDlgItemText(hwndDlg, IDC_COMPUTERNAME, ComputerName);
/* Set text limits */
SendDlgItemMessage(hwndDlg, IDC_COMPUTERNAME, EM_LIMITTEXT, 64, 0);
SendDlgItemMessage(hwndDlg, IDC_ADMINPASSWORD1, EM_LIMITTEXT, 14, 0);
SendDlgItemMessage(hwndDlg, IDC_ADMINPASSWORD2, EM_LIMITTEXT, 14, 0);
/* Set focus to computer name */
SetFocus(GetDlgItem(hwndDlg, IDC_COMPUTERNAME));
}
break;
case WM_NOTIFY:
{
lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
case PSN_SETACTIVE:
/* Enable the Back and Next buttons */
PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT);
break;
case PSN_WIZNEXT:
if (GetDlgItemText(hwndDlg, IDC_COMPUTERNAME, ComputerName, 64) == 0)
{
MessageBox(hwndDlg,
_T("Setup cannot continue until you enter the name of your computer."),
_T("ReactOS Setup"),
MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE;
}
/* FIXME: check computer name for invalid characters */
if (!SetComputerName(ComputerName))
{
MessageBox(hwndDlg,
_T("Setup failed to set the computer name."),
_T("ReactOS Setup"),
MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE;
}
/* Check admin passwords */
GetDlgItemText(hwndDlg, IDC_ADMINPASSWORD1, Password1, 15);
GetDlgItemText(hwndDlg, IDC_ADMINPASSWORD2, Password2, 15);
if (_tcscmp(Password1, Password2))
{
MessageBox(hwndDlg,
_T("The passwords you entered do not match. Please enter "\
"the desired password again."),
_T("ReactOS Setup"),
MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE;
}
/* FIXME: check password for invalid characters */
/* FIXME: Set admin password */
break;
default:
break;
}
}
break;
default:
break;
}
return FALSE;
}
BOOL CALLBACK
LocalePageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PSETUPDATA SetupData;
/* Retrieve pointer to the global setup data */ /* Retrieve pointer to the global setup data */
SetupData = (PSETUPDATA)GetWindowLong (hwndDlg, GWL_USERDATA); SetupData = (PSETUPDATA)GetWindowLong (hwndDlg, GWL_USERDATA);
@ -208,23 +331,10 @@ ComputerPageDlgProc(HWND hwndDlg,
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
DWORD Length;
/* Save pointer to the global setup data */ /* Save pointer to the global setup data */
SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)SetupData); SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)SetupData);
/* Retrieve current computer name */
Length = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerNameA(SetupData->ComputerName, &Length);
/* Display current computer name */
SetDlgItemTextA(hwndDlg, IDC_COMPUTERNAME, SetupData->ComputerName);
/* Set text limits */
SendDlgItemMessage(hwndDlg, IDC_COMPUTERNAME, EM_LIMITTEXT, 64, 0);
SendDlgItemMessage(hwndDlg, IDC_ADMINPASSWORD1, EM_LIMITTEXT, 14, 0);
SendDlgItemMessage(hwndDlg, IDC_ADMINPASSWORD2, EM_LIMITTEXT, 14, 0);
} }
break; break;
@ -241,35 +351,6 @@ ComputerPageDlgProc(HWND hwndDlg,
break; break;
case PSN_WIZNEXT: case PSN_WIZNEXT:
if (GetDlgItemText(hwndDlg, IDC_COMPUTERNAME, SetupData->ComputerName, 64) == 0)
{
MessageBox (hwndDlg,
_T("Setup cannot continue until you enter the name of your computer."),
_T("ReactOS Setup"),
MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE;
}
/* FIXME: check computer name for invalid characters */
/* Check admin passwords */
GetDlgItemText(hwndDlg, IDC_ADMINPASSWORD1, Password1, 15);
GetDlgItemText(hwndDlg, IDC_ADMINPASSWORD2, Password2, 15);
if (_tcscmp (Password1, Password2))
{
MessageBox (hwndDlg,
_T("The passwords you entered do not match. Please enter "\
"the desired password again."),
_T("ReactOS Setup"),
MB_ICONERROR | MB_OK);
SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
return TRUE;
}
/* FIXME: check password for invalid characters */
_tcscpy (SetupData->AdminPassword, Password1);
break; break;
default: default:
@ -332,20 +413,20 @@ FinishDlgProc(HWND hwndDlg,
VOID VOID
InstallWizard (VOID) InstallWizard(VOID)
{ {
PROPSHEETHEADER psh; PROPSHEETHEADER psh;
HPROPSHEETPAGE ahpsp[4]; HPROPSHEETPAGE ahpsp[5];
PROPSHEETPAGE psp; PROPSHEETPAGE psp;
// SHAREDWIZDATA wizdata; // SHAREDWIZDATA wizdata;
/* Clear setup data */ /* Clear setup data */
ZeroMemory (&SetupData, sizeof(SETUPDATA)); ZeroMemory(&SetupData, sizeof(SETUPDATA));
/* Create the Welcome page */ /* Create the Welcome page */
ZeroMemory (&psp, sizeof(PROPSHEETPAGE)); ZeroMemory (&psp, sizeof(PROPSHEETPAGE));
psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT; // | PSP_HIDEHEADER; psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
psp.hInstance = hDllInstance; psp.hInstance = hDllInstance;
psp.lParam = (LPARAM)&SetupData; psp.lParam = (LPARAM)&SetupData;
psp.pfnDlgProc = WelcomeDlgProc; psp.pfnDlgProc = WelcomeDlgProc;
@ -354,38 +435,46 @@ InstallWizard (VOID)
/* Create the Owner page */ /* Create the Owner page */
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE2); // psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE1);
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE2); // psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE1);
psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE); psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE);
psp.pfnDlgProc = OwnerPageDlgProc; psp.pfnDlgProc = OwnerPageDlgProc;
ahpsp[1] = CreatePropertySheetPage(&psp); ahpsp[1] = CreatePropertySheetPage(&psp);
/* Create the Computer page */ /* Create the Computer page */
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE1); // psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE2);
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE1); // psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE2);
psp.pfnDlgProc = ComputerPageDlgProc; psp.pfnDlgProc = ComputerPageDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE); psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE);
ahpsp[2] = CreatePropertySheetPage(&psp); ahpsp[2] = CreatePropertySheetPage(&psp);
/* Create the Locale page */
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE2);
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE2);
psp.pfnDlgProc = LocalePageDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
ahpsp[3] = CreatePropertySheetPage(&psp);
/* Create the Finish page */ /* Create the Finish page */
psp.dwFlags = PSP_DEFAULT; // | PSP_HIDEHEADER; psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER;
psp.pfnDlgProc = FinishDlgProc; psp.pfnDlgProc = FinishDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE); psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE);
ahpsp[3] = CreatePropertySheetPage(&psp); ahpsp[4] = CreatePropertySheetPage(&psp);
/* Create the property sheet */ /* Create the property sheet */
psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_WIZARD; //PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER; psh.dwFlags = PSH_WIZARD; //97 | PSH_WATERMARK | PSH_HEADER;
psh.hInstance = hDllInstance; psh.hInstance = hDllInstance;
psh.hwndParent = NULL; psh.hwndParent = NULL;
psh.nPages = 4; psh.nPages = 5;
psh.nStartPage = 0; psh.nStartPage = 0;
psh.phpage = ahpsp; psh.phpage = ahpsp;
// psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK); // psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);
// psh.pszbmHeader = MAKEINTRESOURCE(IDB_BANNER); // psh.pszbmHeader = MAKEINTRESOURCE(IDB_HEADER);
/* Display the wizard */ /* Display the wizard */
PropertySheet(&psh); PropertySheet(&psh);