Commit Graph
3613 Commits
Author SHA1 Message Date
Hermès Bélusca-Maïto 5da41b3448 [SETUP:REACTOS] Improve Installation thread initialization and termination
- Improve install abort on errors;
- Wait for the install thread to finish within the page that created it;
- Display the hourglass cursor while waiting for the thread.
2026-07-24 23:10:19 +02:00
Hermès Bélusca-Maïto 1648ea7555 [SETUP:REACTOS] Fix initialization of the Finish page
- Ensure the wizard gets shown, centered on the screen, and focused,
  when the Finish page is reached.

- Trigger the change of the "Cancel" wizard dialog button text, not
  from the `WM_INITDIALOG` page handler, but from `PSN_SETACTIVE`.

- Add a `PSN_KILLACTIVE` handler to kill the timer initialized in
  the `PSN_SETACTIVE` handler.

- Add a `PSN_WIZBACK` handler to disable going back in the wizard.
2026-07-24 23:10:04 +02:00
Hermès Bélusca-Maïto da6e675c1b [SETUP:REACTOS] Set a common install wizard title; remove the per-page titles
This requires a workaround for the existing Wine propsheet/wizard
title-setting bugs, see CORE-20687.
2026-07-24 23:09:49 +02:00
Hermès Bélusca-Maïto 8eeff75e15 [SETUP:REACTOS] Improve wizard dialog initialization
- Store the wizard page descriptors in a separate static array.
  Then loop over these descriptors to create each page.

- Set the window small icon.

- Add a property sheet callback to set the window large icon (and not
  a rescaled small icon!) from the `PSCB_INITIALIZED` notification.
  Also, handle the `PSCB_PRECREATE` notification, and subclass the
  property sheet window procedure, so as to be able to initially center
  the wizard window while keeping it hidden before showing it,
  independently of which wizard page is going to be initially shown.

  A small hack for handling the `DM_REPOSITION` message is added,
  because Wine's comctl32 propsheet.c doesn't send the message after
  creating, initializing and resizing the property sheet dialog...
2026-07-24 23:09:28 +02:00
Hermès Bélusca-Maïto 4777621490 [SETUP:REACTOS] Minor code cleanup
- drivepage.c:
  * Move some local loop variables inside their loop block.
  * Move the core of the Drives/Partitions dialog `PSN_WIZNEXT` handler
    into a separate function.

- reactos.c:
  * Move some `break;` into their corresponding `case` blocks.
  * Replace remaining `EnableWindow(GetDlgItem(...), ...)` instances
    with `EnableDlgItem(...)`.
  * Introduce `hWndParent` variables in some routines, so as not to
    invoke `GetParent(hwndDlg)` repeatedly.
  * Use NULL for default "Error" message-box title.
  * Remove an empty `case WM_DESTROY` in `FinishDlgProc()`.

- Use explicit Unicode property-sheet structures.

- Update the copyright notice dates. Fix the file header in drivepage.c.
  Add the missing file header into reactos.rc.
2026-07-24 23:09:00 +02:00
Hermès Bélusca-Maïto b6f3d519b4 [SETUP:REACTOS] Fix navigation in the setup wizard pages and dialogs
- Fix TAB order in the Installation type page.

- Don't systematically set focus to the "Install ReactOS" radio-button.

  Always resetting the focus to the "Install" choice is unwanted,
  because, if the user instead selects "Upgrade", goes to the next
  "Upgrade/Repair" page, then goes back to the installation type page,
  the selection focus wouldn't be on what the user previously chose,
  but would instead be on the "Install" choice, while the "Upgrade"
  choice would stay checked, thus leading to an inconsistency.

  We want instead the selection to stay as the user previously chose,
  without changing it.

- Correctly handle item selection change in the Installations list,
  so that only the "selected" state change is detected and UI buttons
  are updated accordingly.
  When the `PSN_QUERYINITIALFOCUS` notification is received (whenever
  the page is made active), reselect the currently-selected item so as
  to properly update the UI buttons.

- Add missing keyboard accelerators in the Devices selection page.

- Group all the push-buttons together in the Drives/Partitions page,
  so that when the focus is on the first one and the user presses the
  Left-arrow key, the focus stays on the buttons and doesn't go to the
  partitions list.

- Remove the `PSN_QUERYINITIALFOCUS` hack in the Drives/Partition page
  dialog procedure (see commit 6cb1394bb1, PR #9272).

- Correctly handle item selection change in the Drives/Partition list,
  so that only the "selected" state change is detected and UI buttons
  are updated accordingly.
  When the `PSN_QUERYINITIALFOCUS` notification is received (whenever
  the page is made active), reselect the currently-selected item so as
  to properly update the UI buttons.

- Remove redundant `WS_VISIBLE` style for all the Edit-text fields of
  the Summary page.

- In the Start/Welcome and the Finish/Abort pages: when disabling the
  wizard "Back"/"Next" navigation buttons with `PropSheet_SetWizButtons()`,
  for the purpose of hiding them next, do *NOT* use that macro, because
  it posts the `PSM_SETWIZBUTTONS` message instead of sending it, and so,
  it would be handled after hiding the buttons. The message would then
  interfere with the hidden buttons (when both "Back" and "Next" are
  hidden, "Next" gets forcefully shown).

- Set the default button to "No" for some confirmation dialogs
  (setup abort; partition deletion; ...).
2026-07-24 23:07:40 +02:00
Hermès Bélusca-Maïto e9990e7b3d [SETUP:REACTOS] Improve the Installation Progress page layout
- Move around the status items static controls.

- Bolden the main status label.

- Whereas the repair/upgrade procedure may move, rename, or delete files,
  the regular installation only copies files. Therefore, display only the
  file name instead of the full "Copying..." message in this case.
  (Based upon a suggestion by Carl Bialorucki.)
2026-07-24 23:01:10 +02:00
Hermès Bélusca-Maïto 44e4f66ffb [SETUP:REACTOS] treelist.c/.h: Convert the files to UTF-8 without BOM 2026-07-24 23:00:58 +02:00
Deep Varkute 90c6642673 [IPCONFIG] Fix memory leak for disconnected adapters in ShowInfo (#9324)
Signed-off-by: Deep Varkute <[email protected]>
2026-07-24 12:10:37 +03:00
Eric Kohl 8d238c1d00 [SETUP:LIB] Prepare setup for GPT support
Replace IOCTL_DISK_GET_DRIVE_LAYOUT by IOCTL_DISK_GET_DRIVE_LAYOUT_EX and make the necessary adjustments.
2026-07-22 23:20:17 +02:00
Thiago Mucci 19f3949290 [MSCONFIG] Disable tree view label editing (#9302)
CORE-20447

Remove the `TVS_EDITLABELS` window style from the tree view control of the `SYSTEM.INI`/`WIN.INI` tabs, making the labels read-only as intended.

This prevents the UI from opening an editable text box when users click or pause on tree view items, which was misleading since editing/saving here is not implemented.
Users are still able to edit configurations using the dedicated "Edit" button on the UI.
2026-07-22 00:12:40 +02:00
Eric Kohl 7090cf7ebc [USETUP] Enable users to cancel the decision to format a partition 2026-07-22 00:07:03 +02:00
Whindmar Saksit 0298e10d5d [CMD] Validate and uppercase CHOICE selection characters
- Ensures the choice selection characters are not duplicated, this passes one extra Wine test.
- Make the choice selection characters display as uppercase when appropriate.
- Return the errorlevel.
2026-07-18 18:42:11 +02:00
Whindmar Saksit e7eb740583 [CMD] CHOICE command needs to handle pipe input without getting stuck in timeout
This fixes cmd_winetest hanging on the echo Y | choice /C ABCXYZ /D A /T 2 test.

- Reads the first character from stdin if stdin is not connected to a real console.
- Ensures the timeout never goes negative if there is a problem reading stdin.
2026-07-18 18:42:11 +02:00
Eric Kohl 0943343296 [NETSH] Support the flags CMD_FLAG_ONLINE, CMD_FLAG_LOCAL and CMD_FLAG_HIDDEN 2026-07-18 16:57:00 +02:00
Whindmar Saksit 30b02d038e [SYSSETUP][BOOTDATA] Unattended execute GuiUnattended:DetachedProgram , SetupParams:UserExecute (#9276)
This PR implements two of the three hooks that allows you to run custom
applications during 2nd-stage setup (the 3rd hook is `...\$OEM$\Cmdlines.txt`,
but that requires file copy operations, etc.)

- `DetachedProgram` is documented[^1] for NT4...2003; it is started before
  installation and `UserExecute` after.
- `UserExecute` is a great place to install VM Guest Additions, one reboot
  less and you have shared folders/clipboard on the first normal boot.

[^1]: https://web.archive.org/web/20090902145959/http://technet.microsoft.com/en-us/library/cc757642(WS.10).aspx
2026-07-16 23:22:27 +02:00
Whindmar Saksit 796000921d [CMD] Add support for the NT CHOICE command syntax (#9284)
This makes our built-in choice command compatible with how choice is implemented on NT5.2+ (it isn't included in Windows XP and below), while retaining compatibility with how it worked in DOS/9x.

- Changes /C and /T to also support the NT syntax.
- Adds the /CS, /D and /M switches.

This makes it easy for JIRA issue CORE-20043 to use this code to create a proper choice.exe
2026-07-14 17:17:42 +02:00
Eric Kohl 46e69e6e50 [UMPNPMGR] PNP_FreeLogConf: Implement the deletion of one requirements list from a list of multiple alternatives 2026-07-12 10:52:46 +02:00
Eric Kohl c802387242 [UMPNPMGR] Fix indentation 2026-07-12 10:44:21 +02:00
Eric Kohl 776b4389f8 [NETSH] Silence some debug messages 2026-07-11 19:11:09 +02:00
Katayama Hirofumi MZ c296dcfa29 [MSPAINT] Fix unzooming coordinate conversion (#9251)
Always rounding of unzooming coordinate values had caused
display glitch (e.g. black line on top edge in zooming).
JIRA issue: CORE-19466
- Add bRound parameter to UnZoomed function. If bRound is
  TRUE, then do round by kernel32!MulDiv function.
  Otherwise don't round.
- Add bRound parameter to CCanvasWindow::CanvasToImage.
- Make bRound = FALSE default.
- Use bRound = TRUE for CCanvasWindow::OnButtonDown,
  CCanvasWindow::OnButtonDblClk,
  CCanvasWindow::OnMouseMove, and CCanvasWindow::OnButtonUp.
2026-07-10 16:31:25 +09:00
Eric Kohl 1a706d759e [NETSH] Fix version info and add version callback checks 2026-07-10 00:20:14 +02:00
Karol Gocłowski 10186d2d13 [RUNAS] Add Polish (pl-PL) translation (#9180) 2026-07-09 14:54:10 +03:00
Katayama Hirofumi MZ d6ac48ec5d [MSPAINT] Support dithering drawing (#9175)
Support drawing with dithering on
monochrome palette mode.
JIRA issue: CORE-15990
- Enhance drawing routines for
  dithering in drawing.cpp.
- Add VirtualBrush class to the
  tools model in order to virtualize
  the drawing colors.
- Move PaletteModel::CreateDitherBrush
  to drawing.cpp ::CreateDitherBrush.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-07-07 12:44:29 +09:00
Eric Kohl 71ee75477e [WKSSVC][NETAPI32] Fix NetGetJoinInformation 2026-07-04 22:41:48 +02:00
Eric Kohl e848ce1c52 [NETSH] Add the pfnOsVersionCheck function to the internal data structures and retrieve the WMI version information 2026-06-30 23:14:18 +02:00
Jose Carlos Jesus fbfe8321ef [CHKDSK] Update Portuguese (pt-PT) translation (#9162) 2026-06-28 20:32:46 +02:00
Eric Kohl 4320065009 [NETSH] Call a contexts connect function after it has been added to its parent context 2026-06-25 21:34:02 +02:00
Katayama Hirofumi MZ 546297fe86 [SHELL32][SHLWAPI][BROWSEUI][SHELL32_APITEST][SDK][KBSWITCH][RAPPS] Support SHEvaluateSystemCommandTemplate (#9111)
This function has an important role
for new ShellExecute implementation.
JIRA issue: CORE-19278
- Add evalcmd static library into
  dll/win32/shell32/evalcmd.
- Implement
  SHEvaluateSystemCommandTemplate
  in evalcmd.
- Link evalcmd to shell32 and shlwapi.
- Modify shell32.spec and shlwapi.spec.
- Add prototype to <shellapi.h>.
- Add
  SHEvaluateSystemCommandTemplate
  testcase.
- Define PathIsAbsolute inline
  function in <shlwapi_undoc.h>
  and use it.
2026-06-24 20:35:37 +09:00
Whindmar Saksit 2ec7c03eee [RAPPS] Update Let's Encrypt issuer detection (#9209) 2026-06-24 02:30:51 +02:00
Katayama Hirofumi MZ 33e9970b78 [MSPAINT] Adjust scroll amount properly (#9181)
Scrolling the canvas with mouse
wheel was a hard work, due to
small scroll amount.
JIRA issue: CORE-19466
- Adjust the scroll amount from 5
  to 15 in CCanvasWindow::OnHVScroll.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
Co-authored-by: Stanislav Motylkov <[email protected]>
2026-06-21 13:05:06 +09:00
Eric Kohl ac06652ab6 [NETSH][REACTOS] Basic implementation of PreprocessCommand
Preprocess is used by the 'reset' command in the 'interface ip' command.
2026-06-21 00:59:22 +02:00
Katayama Hirofumi MZ b35a9be972 [MSPAINT] Fix Color Picker tool (#9179)
The behavior of Color Picker (dropper) tool
was incompatible with Windows.
JIRA issue: CORE-19466
- On TOOL_COLOR, when mouse was pressed
  or moved, send WM_TOOLSMODELCOLORPICKED
  message with color value to the tools settings
  window.
- In the tools settings window, display the picked
  color.
- Don't apply to the current color until mouse up.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-06-20 11:03:33 +09:00
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 ee60345493 [MSPAINT] Zooming and cursor shape (#9125)
#8974 implemented custom mouse
cursor shapes. However, the custom
cursor shape didn't consider zooming.
This PR applies zooming to the
custom cursor shapes.
JIRA issue: CORE-20520
- Enhance CStyledCursor for
  zooming.
- Enhance CopyMonoImage and
  CopyDIBImage for stretch mode.
- Add DEFAULT_ZOOM constant
  (1000).
- Send WM_SETCURSOR message
  on ToolsModel::SetZoom.
- Improve accuracy of Zoomed
  and UnZoomed functions by
  using MulDiv function.
2026-06-17 23:39:56 +09:00
Eric Kohl ace5f8bde9 [NETSH][IFMON] PrintMessageFromModule must use ConResMsgPrintfExV to print messages
- Update the format strings in ifmon.dll.
2026-06-17 16:15:14 +02:00
Eric Kohl 40a1951b65 [NETSH] Fix the command order in the help texts 2026-06-17 15:21:12 +02:00
Whindmar Saksit a83411cfef [SHELL32] Avoid SHRunControlPanel to be Vista compatible (#9114) 2026-06-14 00:24:59 +02:00
Whindmar Saksit a4610203d1 [WSCRIPT] Sync to Wine 11.10 (#9100)
Adds support for script time-out and proper script error reporting.
2026-06-13 22:20:44 +02:00
Carl J. Bialorucki 2263c9ca0f [USERINIT] Start shell from profile path
When the shell is assigned to cmd.exe, open to the logged in user's profile path. This appears to match the behavior of Windows Server 2003 userinit. It is also a prerequisite for ReactOS Server Core.
2026-06-08 10:11:57 -05:00
Whindmar Saksit 3b58b347bc [EXPLORER][SHELL32] Forward Explorer refresh command to the Start Menu (#9108) 2026-06-07 21:28:13 +02:00
Eric Kohl ddde8c5f93 [NETSH] Implement NsGetIfNameFromFriendlyName
This is used the 'interface ip set address' command from the WinXP ifmon.dll.
2026-06-06 23:29:59 +02:00
Eric Kohl af10f35a5d [NETSH] Support untagged arguments in MatchTagsInCmdLine 2026-06-02 23:28:31 +02:00
Eric Kohl d0f2efa8fa [NETSH] Improve MatchTagsInCmdLine
- Remove the tag name after the a tagged argument has been identified.
2026-06-01 23:25:08 +02:00
Whindmar Saksit dd56f89a7f [CSCRIPT][WSCRIPT] Implement the //E command line parameter (#9084) 2026-06-01 13:54:15 +02:00
Eric Kohl 93bd77f1f7 [NETSH] Use the right index in MatchTagsInCmdLine 2026-05-30 21:02:53 +02:00
Eric Kohl 8f5639a9bd [NETSH] Remove quotation marks from quoted arguments
Add support for quoted strings to the script file interpreter.
2026-05-30 16:29:53 +02:00
Katayama Hirofumi MZ 1cfcfce8cd [MSPAINT] Support grayscale palette (#9067)
Preparation for complete
monochrome support.
JIRA issue: CORE-15990
- Add IDM_COLORSGRAYSCALE
  and IDM_COLORSMONOCHROME
  menu items.
- Add PAL_GRAYSCALE and
  PAL_MONOCHROME palette
  modes.
- Add PaletteModel::CreateDitherBrush
  helper function to create a
  dithered brush.
- Use the dithered brush on
  PAL_MONOCHROME in drawing
  the palette window.
2026-05-29 20:20:18 +09:00
Katayama Hirofumi MZ d08a581eb1 [EXPLORER] Implement ShowUndockMenuItem (#9068)
Follow-up of #9036.
ShowUndockMenuItem function
will detect system undocking ability.
JIRA issue: CORE-10675
- Do #include <cfgmgr32.h> in
  startmnusite.cpp.
- Implement ShowUndockMenuItem
  by using
  setupapi!CM_Is_Dock_Station_Present
  function.
2026-05-29 12:56:00 +09:00
Václav Zouzalík 3357607151 [CHCP] Update Czech (cs-CZ) and Slovak (sk-SK) translations (#8989) 2026-05-28 21:32:37 +03:00