Commit Graph
122 Commits
Author SHA1 Message Date
Mohammad Amin MollazadehandHermès BÉLUSCA - MAÏTO 2351d0ea8c [SETUP:REACTOS] Fix page transition in setup wizard (#9172)
CORE-20661, CORE-13525

The GUI-mode setup was asking the user for device configuration and installation
destination partition, even when upgrading or repairing an existing installation.
It doesn't make sense to ask: e.g. you shouldn't be able to upgrade an installation
in C: to D: partition; and the setup ignores what the user chooses: e.g. if your
installation is using a 1024x768 resolution, choosing another resolution during
the SETUP won't change the resolution.

Thus, the setup should skip these pages without asking anything from user.
This is also consistent with USETUP's behavior.

- Set `InstallPartition` and `InstallationDirectory` to selected repair/upgrade
  target volume and directory.
- Jump to the Summary page from the Install type/upgrade pages.
- Return to the Install type/upgrade page when navigating backward from the Summary page.
- Return to the Installation type page when navigating backward from the Device page.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-06-18 23:16:31 +02:00
Katayama Hirofumi MZ 99252d7f94 [REACTOS] Add WS_TABSTOP to IDD_SUMMARYPAGE IDC_CONFIRM_INSTALL (#9014)
Due to resource compiler (windres)'s
bug, WS_TABSTOP style wasn't added
to IDC_CONFIRM_INSTALL checkbox
(I've confirmed WS_TABSTOP lackness
on reactos.exe with Resource Hacker
and RisohEditor). This PR will improve
keyboard usability.
JIRA issue: N/A
- Add WS_TABSTOP style to
  IDC_CONFIRM_INSTALL checkbox
  in IDD_SUMMARYPAGE resource
  dialog.
2026-05-17 06:36:00 +09:00
Hermès Bélusca-Maïto 51c32094af [SETUP:REACTOS] GUI setup: Revamp the Finish/Reboot page; re-enable auto-reboot
Add also an Abort page that is displayed when the user cancels the
1st-stage setup, or when an error occurs and installation is aborted.

- Rewrite the text, change the layout;

- When the installer is started without any Win32 shell, or the
  installation is running in unattended mode, the Finish/Abort
  pages only offer to restart the computer with a 15-second timeout
  countdown.
  If the user has opened programs with interactive windows in the
  meantime, the timeout countdown just pauses whenever the installer
  window is de-activated/unfocused; it restarts when the window is
  re-activated. (This currently doesn't work in ReactOS due to a bug
  in the `WM_ACTIVATE` message delivery.)

  If, on the contrary, the installer is started by the user when a
  Win32 shell is running, the Finish/Abort page offers to either restart
  the computer "now", or postpone the restart to later (when the user
  manually restarts the computer); no reboot countdown is present there.

- Disable/hide the "Back" button for the Install processing page.
2026-05-12 00:27:57 +02:00
Hermès Bélusca-Maïto 310724e3e1 [SETUP:REACTOS] Improve the DisplayMessageV, SetWindowResTextW, and SetWindowResPrintfVW helpers
- In `SetWindowResTextW()` and `SetWindowResPrintfVW()`, don't assume a
  fixed size of 256 characters max for the retrieved resource strings,
  but allocate a suitably-sized buffer IF the resource string is longer
  than the fixed buffer. (Use the fixed buffer only if the string is shorter.)

- Introduce two helpers `LoadAllocStringW()` and `FormatAllocStringWV()`,
  based on existing code from `DisplayMessageV()`, and use these for
  `DisplayMessageV()`, `SetWindowResTextW()`, and `SetWindowResPrintfVW()`.
2026-05-12 00:26:58 +02:00
Hermès Bélusca-Maïto 630369f893 [SETUP:REACTOS] Fix some translations
- Add missing translations in the Hindi file for:
  `IDD_UPDATEREPAIRPAGE` and `IDD_SUMMARYPAGE` dialogs,
  and `IDS_INSTALLATION_*` and `IDS_PARTITION_*` strings.
  Addendum to commit f5960cea70 (PR #951).

- Update some sentences in the `IDD_UPDATEREPAIRPAGE` dialog.

- Harmonize the length of the `IDD_DEVICEPAGE` dialog comboboxes
  amongst all the translations.
2026-05-12 00:26:58 +02:00
Chan Chilung 323a406fcf [BASE][CPL] Update Traditional Chinese (zh-TW) translation (#8581)
- [MSCONFIG] Update Traditional Chinese (zh-TW) translation
- [MSCONFIG_NEW] Update Traditional Chinese (zh-TW) translation
- [MSPAINT] Update Traditional Chinese (zh-TW) translation
- [NOTEPAD] Update Traditional Chinese (zh-TW) translation
- [RAPPS] Update Traditional Chinese (zh-TW) translation
- [SETUP:REACTOS] Update Traditional Chinese (zh-TW) translation
- [CPL:ACCESS] Update Traditional Chinese (zh-TW) translation
- [CPL:APPWIZ] Update Traditional Chinese (zh-TW) translation

Take into account documentation updates in b380d23d6f.
2026-01-15 18:28:54 +03:00
Hermès Bélusca-Maïto ff87209e7c [REACTOS] Delay-load the setuplib DLL and control the path it's loaded from.
The setuplib DLL, used also by the text-mode USETUP, isn't placed in the
standard DLL search paths list. It isn't in the "current" directory nor
in the one where reactos.exe is, nor in the running OS' SystemRoot or
System32 directories.
The DLL is instead placed in the System32 sub-directory of the ReactOS
installation source. Note that this isn't a problem for USETUP, because
it is already started from that directory.

To control its loading, delay-load the DLL and use a delay-load hook,
following the technique explained in:
  https://stackoverflow.com/a/75325443
  https://devblogs.microsoft.com/oldnewthing/20170126-00/?p=95265

The hook is also invoked in case of loading failure, showing a more
user-friendly hard-error popup and killing the installer, instead of
throwing a debugger exception.
2025-11-13 17:00:46 +01:00
Mas Ahmad Muhammad a56e47fe60 [SETUP:REACTOS] Fix warning RC4206 in Indonesian (id-ID) translation (#8220)
Noticed by Katayama's comment from chat.reactos.org:

> Indonesian translation warning: base\setup\reactos\lang/id-ID(15): warning RC4206: title string too long; trunctated at 256

Fix problem by making the string length shorter, it's 245 chars now.
Addendum to 0.4.16-dev-862-g 7b5e004dd6.
2025-07-12 14:32:21 +03:00
Hermès Bélusca-Maïto b401f547ae [NDK][ROSLOAD][ROSTESTS][SDK][WINE] Fix and use standard 'ReactOS' casing (#8163) 2025-06-22 22:49:54 +02:00
Katayama Hirofumi MZ 6a905ae2e1 [REACTOS] Improve Japanese (ja-JP) translation (#7975)
JIRA issue: CORE-18706
Update base/setup/reactos/lang/ja-JP.rc.
2025-05-11 21:57:07 +09:00
Denis RobertandHermès BÉLUSCA - MAÏTO 8c9f250587 [SETUP:REACTOS] Update French (fr-FR) translation (#7564)
Update French translation in base/setup/reactos/lang

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2025-03-24 22:26:07 +01:00
Mas Ahmad Muhammad 7b5e004dd6 [SETUP][USETUP] Update Indonesian (id-ID) translation (#7618)
Updating translation for: setup/reactos and setup/usetup.
2025-03-24 20:47:26 +01:00
Andrei Miloiu 5d30831fb8 [SETUP] Update Romanian (ro-RO) translation (#7660) 2025-03-24 19:05:11 +01:00
Hermès Bélusca-Maïto 8e53386de9 [SETUPLIB][REACTOS][USETUP] Don't export setup data. Make IsUnattendedSetup local to the installer. 2025-03-14 21:38:39 +01:00
Hermès Bélusca-Maïto 4920e639f9 [SETUP:REACTOS] Revamp the Install-type page layout (#7581)
- Update the page title and subtitle.
- Embolden the types of installation.
- Introduce title and subtitle for the upgrade/repair page
  (not translated yet).
2024-12-31 12:33:27 +01:00
Hermès Bélusca-Maïto 8d00977681 [SETUP:REACTOS] Refactor the Welcome page (#7579)
- Rewrite the introductory text.
- Add a temporary (ReactOS-Alpha) informational message.
- Hide the "Back" button when the Welcome page is active, and
  show it back again when switching to the following ones.
2024-12-31 12:09:45 +01:00
Hermès Bélusca-Maïto 3b800165b0 [SETUP:REACTOS][SYSSETUP] Fix Shift-F10 cmd.exe invocation.
Pressing Shift-F10 to open cmd.exe when the setup program runs from
a different current directory than System32, now works correctly.

Use the 2nd CreateProcessW() `lpCommandLine` parameter, instead of the
1st parameter `lpApplicationName`, so as to use default path search.
The command-line buffer given to the 2nd-parameter can be temporarily
modified by CreateProcessW(), thus use an on-stack buffer.

https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw#parameters
2024-12-24 12:22:42 +01:00
Hermès Bélusca-Maïto d7c1d220b5 [SETUPLIB][REACTOS][USETUP] Turn setuplib into a DLL shared between TUI and GUI 1st-stage setups (#7523)
CORE-13525

Notes:
- Most of the exported functions have been turned from default cdecl to explicit stdcall / "NTAPI".
- The two InitializeSetup() phases have been collapsed to make the initialization simpler.

Average reductions (percentages; see PR #7523 for actual numbers):

x86 Debug builds:
reactos.exe: 35.1%
smss.exe   : 39.8%
Total (including setuplib.dll): 17.9%

x86 Release builds:
reactos.exe: 22.3%
smss.exe   : 25.0%
Total (including setuplib.dll): 10.6%

x64 Debug builds:
reactos.exe: 40.6%
smss.exe   : 41.6%
Total (including setuplib.dll): 20.0%

x64 Release builds:
reactos.exe: 22.8%
smss.exe   : 22.3%
Total (including setuplib.dll): 10.1%
2024-12-02 23:05:38 +01:00
Hermès Bélusca-Maïto 4aee0280f9 [SETUPLIB][REACTOS][USETUP] Finish unification of MBR extended and primary/logical partitions
Fixes previous attempt at commit 0ca4e6dcf, which was reverted by commit
bbdcc14b1 because the partitioning checks mistook unpartitioned disks as
GPT.

Addendum to commit 99f0937fd.

The partition-creation checks are unified for these partitions into one
single function. To prepare for GPT support, the specifics are put into
a separate MBRPartitionCreateChecks() helper, called for MBR disks by the
upper-level function. GPT disks will have a similar helper in the future.
2024-11-24 18:13:17 +01:00
Stanislav Motylkov bbdcc14b1c [REACTOS] Temporarily revert 0ca4e6dcfa, as requested by Hermès
The setup mistakes the unpartitioned disk as GPT.
This reverts commit 0ca4e6dcfa.
2024-11-23 23:12:02 +01:00
Hermès Bélusca-Maïto 0ca4e6dcfa [SETUPLIB][REACTOS][USETUP] Finish unification of MBR extended and primary/logical partitions
Addendum to commmit 99f0937fd.

The partition-creation checks are unified for these partitions into one
single function. To prepare for GPT support, the specifics are put into
a separate MBRPartitionCreateChecks() helper, called for MBR disks by the
upper-level function. GPT disks will have a similar helper in the future.
2024-11-23 21:41:32 +01:00
Timo Kreuzer 31334ebcfe [SETUPLIB] Use proper SEH instead of nasty hacks
Addendum to commit 2268b3d
2024-11-18 10:23:50 +02:00
Hermès Bélusca-Maïto eafa7c68b6 [SETUP:REACTOS] Improve/Add some translations 2024-10-21 15:54:02 +02:00
Hermès Bélusca-Maïto 424278db3f [SETUP:REACTOS] Add bootloader installation support (#7310)
CORE-13525
2024-10-20 16:51:26 +02:00
Timo Kreuzer e4930be4ff [REACTOS] Use the ISO C and C++ conformant names: _wcsicmp, _stricmp
Stop using non-conforming wcsicmp, stricmp, strcasecmp
2024-10-20 14:12:25 +03:00
Hermès Bélusca-Maïto a75ed2acd9 [SETUP:REACTOS] Add the update-registry code (#7222)
This code has been tested on Windows and works as expected.
2024-08-28 22:05:21 +02:00
Hermès Bélusca-Maïto fd67017512 [SETUP:REACTOS] Add some SetWindowRes* helper functions 2024-08-28 22:03:05 +02:00
Hermès Bélusca-Maïto 1573461cec [SETUP:REACTOS] Add partitioning and formatting support (#7159)
CORE-13525

- Newly-created partitions and unpartitioned space ar reinserted
  or updated in correct order in the tree-list. Volume-creation
  information data associated with the tree items is persisted
  across operations.

- Reliably delete data associated to tree-list items via the
  TVN_DELETEITEM notification.
  This allows simplifying the cleanup function; keeping simple
  the code that deletes items when deleting partitions, etc.

- Make the PrintPartitionData() function call itself recursively on
  extended partitions to display the sub-list of logical partitions.

- Handle the new partition size in MB the same way as in USETUP.

- Allow existing partitions/volumes to be re-formatted, using
  common code with the partition creation dialog.

- Allow selecting unpartitioned space or non-formatted partitions
  for installing ReactOS: unused space will automatically be
  partitioned and non-formatted partitions formatted (the user
  is prompted for choosing the file system).

- Correctly zero the progress-bar position when starting file copy.
- Add missing file copy error handler in FileCopyCallback:
  just copying what USETUP does.
2024-08-27 23:18:12 +02:00
Hermès Bélusca-Maïto 9b2b75df2b [SETUP:REACTOS] Collect some UI elements into a common UI_CONTEXT structure.
Handles to some install-page UI elements, used in the installation thread,
are collected into a UI_CONTEXT structure.
2024-08-27 23:18:08 +02:00
Hermès Bélusca-Maïto 58cad127dc [SETUP:REACTOS] treelist.h: Fix TreeList_GetStyle/TreeList_SetStyle(Ex) for C language 2024-08-27 23:18:07 +02:00
Hermès Bélusca-Maïto 83d9f6c99b [SETUP:REACTOS] treelist.h: Define few useful types. CMakeFiles.txt: Move add_pch around. 2024-08-27 23:18:00 +02:00
Hermès Bélusca-Maïto 6f15802af7 [SETUPLIB][REACTOS][USETUP] Split FS-volume-specific functionality from partitions (#7258)
CORE-13525

This greatly helps in reducing code complexity in some areas: code that
previously iterated over all partitions of a given disk, just to find
which ones were partitioned and contained a valid file system, now just
have to iterate over mounted volumes.
See in particular, `lib/utils/osdetect.c` and `lib/fsutil.c` .

- Remove FORMATSTATE "Preformatted" enum value;
- Cleanup osdetect code after introducing Volume support;
- Some simplifications for FormatState.

- Differentiate between 'new' partition and 'new' volume:

  * "New" partition: it has been created and added in the cached list,
    but not yet actually written into the disk.

  * "New" volume: newly-created volume (may be backed by a partition or
    not), not yet formatted. May exist on either new, or not new partition,
    or elsewhere.

- Cache partition and volume NT device names.

  These do not change across repartitioning operations, as long as the
  partition or the filesystem volume hasn't been deleted/recreated.
  This avoids doing \Device\Harddisk%u\Partition%u sprintf's everytime
  we need to retrieve the given partition or volume device name.

  When a partition/fileysystem volume is "virtually" created (i.e. in
  the partition list, but not yet committed to disk and exposed to the
  OS), no device partition number and device name are available yet.
  In particular, validate that no manipulation of \Device\HarddiskM\Partition0
  (i.e. the whole disk) is being made.
2024-08-26 16:42:47 +02:00
Hermès Bélusca-Maïto fae7c0f70e [SETUP:REACTOS] Fix advanced installation options dialog style. 2024-08-13 13:30:58 +02:00
Hermès Bélusca-Maïto daee508516 [SETUP:REACTOS] Validate the installation path (#7162)
CORE-13525
2024-08-12 12:46:22 +02:00
Hermès Bélusca-Maïto a6c69abafd [SETUP:REACTOS] Redesign the "Advanced Installation Options" dialog (#7162)
CORE-13525

In particular, use now a dynamic combo-box for listing the possible
locations where the bootloader can be installed.
2024-08-12 12:17:29 +02:00
Hermès Bélusca-Maïto bf368261f1 [SETUP:REACTOS] Add new DisplayMessage(V) helpers and reimplement DisplayError around it
The variadic DisplayMessage(V) helpers display a message box, where
both the title and message can be specified either as explicit strings
or via resource IDs. It also supports the message to be a printf-like
format string, in which case the additional formatting arguments are
subsequently specified.
2024-08-12 12:17:27 +02:00
Julen Urizar Compains 54df31ccac [TRANSLATION] Update Spanish (es-ES) translation (#6449)
- [REACTOS] es-ES: Fixes and typos
- [USETUP] es-ES: Fixes and typos
- [HOTPLUG] es-ES: Fixes and typos
- [OPENGLCFG] Add Spanish (es-ES) translation
- [NETSHELL] es-ES: Fixes and typos
- [SHELL32] es-ES: Fixes and typos
- [SYSSETUP] es-ES: Fixes and typos

Reviewed-by: Ismael Ferreras Morezuelas <[email protected]>
2024-03-24 12:30:56 +03:00
Hermès Bélusca-Maïto ed7dc31103 [SETUP:REACTOS] Set the default language and keyboard layout at startup
Retrieve the current ambient language and keyboard layout, that has been
chosen in the "General language and keyboard layout selection" dialog
when starting the LiveCD.

A more robust solution will be developed later.
2024-02-26 12:45:43 +01:00
Andrei Miloiu 7d7ea3d43c [REACTOS] Update Romanian (ro-RO) translation (#6479) 2024-02-11 23:16:51 +01:00
Hermès Bélusca-Maïto 87df3b548e [SETUP:REACTOS] Temporarily use USETUP file/cabinet extraction routines.
Do this until Wine's setupapi cabinet extraction becomes faster...
2024-02-08 19:08:46 +01:00
Andrei Miloiu 0830e7a445 [REACTOS] Update Romanian (ro-RO) translation (#6341) 2024-01-15 21:56:32 +01:00
Николай ДимитровandHermès BÉLUSCA - MAÏTO 4514e91dd6 [TRANSLATION] Update and fix Bulgarian (bg-BG) translation (#5581)
NOTE: IDS_ADMINISTRATOR_NAME translation excluded for the time being.

It should be "Администратор", but bg-BG translation missing in samsrv.dll,
therefore don't translate it because otherwise this would introduce a mismatch
(samsrv falls back into english when translation is missing).

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2023-12-21 18:09:34 +01:00
Hermès Bélusca-Maïto bb7661312e [SETUP:REACTOS] Fix identical expression in treelist.c
Supersedes PRs #3226 and #5199 by Kyle_Katarn.
CORE-16036
2023-12-17 20:58:32 +01:00
Hermès Bélusca-Maïto 63d5423853 [SETUP:REACTOS] Simplify CONTROL "ComboBox" to COMBOBOX resource declaration. 2023-12-17 20:57:11 +01:00
Hermès Bélusca-Maïto bd51cd14d6 [SETUP:REACTOS] Fix layout of the Restart-page. 2023-12-17 20:57:10 +01:00
Andrei Miloiu 98d652e6b7 [REACTOS] Update Romanian (ro-RO) translation (#6079) 2023-12-01 15:38:01 +01:00
Andrei Miloiu 5b4a145453 [TRANSLATION] Big Romanian (ro-RO) translation update - part 1 (#4701)
- [CALC] Improve Romanian (ro-RO) translation
- [SOLITAIRE] Improve Romanian (ro-RO) translation
- [MSPAINT] Improve Romanian (ro-RO) translation
- [MSTSC] Improve Romanian (ro-RO) translation
- [SNDVOL32] Improve Romanian (ro-RO) translation
- [REACTOS] Improve Romanian (ro-RO) translation
- [USETUP] Improve Romanian (ro-RO) translation
- [DESK] Improve Romanian (ro-RO) translation
- [INPUT] Improve Romanian (ro-RO) translation
- [INTL] Improve Romanian (ro-RO) translation
- [JOY] Improve Romanian (ro-RO) translation
- [MMSYS] Improve Romanian (ro-RO) translation
- [POWERCFG] Improve Romanian (ro-RO) translation
- [SYSDM] Improve Romanian (ro-RO) translation
- [ACPPAGE] Improve Romanian (ro-RO) translation
- [DESKADP] Improve Romanian (ro-RO) translation
- [MYDOCS] Add Romanian (ro-RO) translation
- [NETPLWIZ] Add Romanian (ro-RO) translation
- [NTOBJSHEX] Improve Romanian (ro-RO) translation
- [SENDMAIL] Add Romanian (ro-RO) translation
- [ZIPFLDR] Improve Romanian (ro-RO) translation
- [JSCRIPT] Improve Romanian (ro-RO) translation
- [MSGINA] Improve Romanian (ro-RO) translation
- [SYSSETUP] Improve Romanian (ro-RO) translation
- [MC] Add Romanian (ro-RO) translation

Reviewed-by: Ștefan Fulea <[email protected]>
Reviewed-by: Joachim Henze <[email protected]>
Reviewed-by: George Bișoc <[email protected]>
Reviewed-by: Stanislav Motylkov <[email protected]>
2022-10-09 14:00:20 +03:00
Wilson Simanjuntak 1f2d450599 [TRANSLATION] Improve Indonesian (id-ID) translation [part 1] (#4500)
[CALC] [DRWTSN32] [DXDIAG] Add Indonesian translation
[REACTOS] [USETUP] [EXPLORER] Improve Indonesian translation

Signed-off-by: Wilson Simanjuntak <[email protected]>
Reviewed-by: Mas Ahmad Muhammad <[email protected]>
Reviewed-by: Stanislav Motylkov <[email protected]>
2022-05-24 19:14:41 +03:00
Luke Luo de972e2bc2 [TRANSLATION] Improve Simplified Chinese (zh-CN) translation (#4513)
- Changed some wording according to the translation requirements.
- Fixed some mistakes.
- Changed my name.

Reviewed-by: He Yang <[email protected]>
Reviewed-by: Stanislav Motylkov <[email protected]>
2022-05-20 15:38:24 +03:00
Wu HaotianandLiu Wenyuan 0c42866e64 [TRANSLATION] Review & update Simplified Chinese (zh-CN) translation (#3933)
Reviewed all Chinese Simplified translation files and updated those
inappropriate or outdated ones.

Co-authored-by: Liu Wenyuan <[email protected]>
Reviewed-by: Chan Chilung <[email protected]>
Reviewed-by: He Yang <[email protected]>
Reviewed-by: Zheng Jianping <[email protected]>
Reviewed-by: Luo Yufan <[email protected]>
Reviewed-by: Hermès Bélusca-Maïto <[email protected]>
Reviewed-by: Stanislav Motylkov <[email protected]>
2022-03-31 20:30:52 +03:00