Skip to content

Rework 'advanced options' tab to use group boxes #24194

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 4, 2025

Conversation

AaronVanGeffen
Copy link
Member

@AaronVanGeffen AaronVanGeffen commented Apr 11, 2025

This PR reworks the 'advanced options' tab to group related widgets together into group boxes. In grouping widgets more hierarchically, we make it easier for users to process widgets, and therefore catch their eyes.

In the process, we've turned the RCT1 path 'button' widget into a label. This stops the path from overlapping, and is more in line with the rest of the UI, stylistically. In addition, the ambiguous 'x' button is replaced with a 'Clear' button. When no path is set, a 'Browse' button is shown instead.

Unfortunately, widgets don't have persistent 'format args' storage yet. This means it's best for the label continue to be drawn as-is, in the AdvandedDraw function, for now.

Closes #24120.

Before (set / unset)

Leafy Lake 2025-04-11 16-48-41 Leafy Lake 2025-04-11 16-48-36

After (set / unset)

Grand Glacier 2025-05-03 14-46-31 Forest Frontiers 2025-04-18 15-17-02

@Gymnasiast Gymnasiast self-requested a review April 11, 2025 14:59
@AaronVanGeffen
Copy link
Member Author

Fwiw, with #24208 having been merged, this is the last remaining user of STR_CLOSE_X outside of WINDOW_SHIM. This is relevant for #23590, which changes the way the close 'x' is assigned.

@Gymnasiast
Copy link
Member

I’m not a fan of this, I’d rather see this turned into a widget of its own, but with the current behaviour and looks.

Using × to clear a field is a common enough convention that I don’t think it needs to be changed. If we do have to put text on them: the buttons in this PR are too narrow for languages other than English and CJK.

@AaronVanGeffen
Copy link
Member Author

Hmm, it seems we have an opposite view here, then. I think the field is unintuitive, personally. It's neither a text field nor a label, and it acts as a button in its entirety. That's neither conventional nor attractive UI, to me, hence the proposed change. From the issue description, I thought this was what you meant as well, to be honest.

I'd happily amend the buttons to make room for other languages, of course. I could do something similar to the load/save window, where the widgets are resized to fit the current language.

@Gymnasiast
Copy link
Member

I think your version makes it much harder to spot what’s what, as everything is white.

But maybe we can compromise. I think the buttons should be wide enough for the text (or auto-size) and that the path should be black, rather than white. (Which is consistent with what vanilla does, it distinguishes between label and text colours). And we should seriously consider putting it in a group box, unless you have a good reason not to.

@AaronVanGeffen
Copy link
Member Author

Sounds good to me. Changing the text colour for the path is a good call. Agreed with adding a group box as well. As mentioned in the OP, I meant to add them in a follow-up reshuffle of the options window, so let's just expedite that for this tab, then.

@AaronVanGeffen
Copy link
Member Author

I have reworked the tab into group boxes. The new layout is as follows (RCT1 path set / unset):

Forest Frontiers 2025-04-18 15-17-00 Forest Frontiers 2025-04-18 15-17-02

@AaronVanGeffen AaronVanGeffen changed the title Turn RCT1 path button into label widget Rework 'advanced options' tab to use group boxes Apr 18, 2025
@AaronVanGeffen

This comment was marked as outdated.

@AaronVanGeffen AaronVanGeffen added this to the v0.4.22 milestone Apr 30, 2025
@AaronVanGeffen AaronVanGeffen added the changelog This issue/PR deserves a changelog entry. label May 2, 2025
@Gymnasiast
Copy link
Member

The screenshots look good, but I'd like to test it as well.

@AaronVanGeffen
Copy link
Member Author

Tweaked the checkbox label widths such that the desync/multiplayer options just fits again. I think we should perhaps consider paraphrasing it, but that's another issue.

Before:
Forest Frontiers 2025-04-18 15-17-00

After:
Grand Glacier 2025-05-03 14-46-31

@Gymnasiast Gymnasiast self-assigned this May 3, 2025
@AaronVanGeffen AaronVanGeffen merged commit 93ae8a3 into OpenRCT2:develop May 4, 2025
23 checks passed
@AaronVanGeffen AaronVanGeffen deleted the rct1-path-widget branch May 4, 2025 13:37
AaronVanGeffen added a commit that referenced this pull request May 4, 2025
- Feature: [#24206] [Plugin] Add APIs for breaking down rides, reading the current breakdown, and for fixing broken down rides.
- Improved: [#20073] The OpenGL drawing engine now supports screen invalidation which avoids the redrawing of unchanged regions.
- Improved: [#21767] RCT Classic for macOS can now be used as the source game.
- Improved: [#23590] Title bars are now drawn bigger when “Enlarged UI” is enabled.
- Improved: [#23626] Add small, medium and large flat and sloped turns, S-bends and diagonal track to the Go-Karts.
- Improved: [#23982] The scenario objective window has been merged into the scenario options window.
- Improved: [#24233] RCT Classic+ from Apple Arcade can now be used as the source game, and is detected automatically.
- Improved: [#24260] Better performance on parks that have a lot of Guests and Entertainers.
- Improved: [#24319] RCT Classic installs via Steam are now detected automatically on Windows.
- Change: [#23803] Lightning strikes and thunder now happen at the same frequency independently of the game speed.
- Change: [#23857] Replace display options tab with custom sprites.
- Change: [#24069] [Plugin] Plugins are now available in the scenario editor and track designer.
- Change: [#24135] Compress Emscripten js/wasm files.
- Change: [#24194] The advanced options tab has been reworked to make it easier to find the RCT1 path setting.
- Change: [#24235] Small changes to RCT1 theme.
- Change: [#24236] Controls and Interface options now both have their own tabs in the Options window.
- Change: [#24308] “Software” and “Software (hardware display)” renderers have been merged into a single “Software” renderer.
- Change: [#24317] The scenery window now shows at least one row of scenery objects, even if there are multiple rows of tabs.
- Fix: [#18479] Tile elements ordered beneath water do not draw correctly.
- Fix: [#19782] Game stops counting inversions and golf holes after 31 (original bug).
- Fix: [#21207] Track List window gets positioned incorrectly.
- Fix: [#21919] Non-recolourable cars still show colour picker (original bug).
- Fix: [#22182] [Plugin] Crash when using map.getAllEntities("car").
- Fix: [#22634] Asset packs with sound effect overrides are not loaded correctly at startup.
- Fix: [#23108] Missing pieces on Hypercoaster and Hyper-Twister, even with the ‘all drawable track pieces’ cheat enabled.
- Fix: [#24013] Failure to load a scenario preview image (minimap) could lead to an uncaught exception error message.
- Fix: [#24045] [Plugin] Data storage is not cleared when converting save game to scenario.
- Fix: [#24121] Checkbox labels run beyond the edge of the window if they’re too long to fit.
- Fix: [#24142] [Plugin] Track origin is miscalculated on downward slopes.
- Fix: [#24220] Narrow station platforms have missing sides on certain rotations.
- Fix: [#24286] Steam installs of RCT1 and RCT2 are not autodetected on macOS.
- Fix: [#24310] [Plugin] Missing invalidation on various plugin api setters for entities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog This issue/PR deserves a changelog entry.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make RCT1 path (in the Options window) into a widget
2 participants