Skip to content
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

Allow scrolling on spinners/steppers #7627

Merged
merged 4 commits into from
Jun 6, 2018

Conversation

Broxzier
Copy link
Member

@Broxzier Broxzier commented Jun 3, 2018

This implementes an idea that I got from #7579

Just like scrolling while over preview images for the land-, watertool and some others, you can now scroll while hovering over a stepper.
I've changed the behaviour of the window_other_wheel_input function to, instead of checking for semi-hardcoded widgets IDs and window classes, make performs a few checks to make sure the widget that is scrolled on belongs to a tool-size preview widget or to a stepper widget. With the new behaviour, you can also scroll while hovering over the + and - buttons of the previews, which was previously not possible.

n.b. I've used the term 'stepper' everywhere because that's currently used in the code.

@Broxzier Broxzier added the user interface Has to do with user interfaces. label Jun 3, 2018
@Umdlye
Copy link
Contributor

Umdlye commented Jun 4, 2018

This is awesome! It doesn't work on the cut-away view stepper though. Scrolling in the cut-away view window (and outside of the stepper) still moves the scroll bar, just not in increments of one. Scrolling up there makes the value go down and vice versa, maybe that should be reversed if scrolling is to be enabled for the spinner?

@Broxzier
Copy link
Member Author

Broxzier commented Jun 4, 2018

It looks like the entire cut-away window is scrollable, instead of just the scrollbar, which disables scrolling for the stepper widget.

@IntelOrca
Copy link
Contributor

Why are you removing the validate_global_widx lines?

This makes scrolling work for the stepper widget, and overrides behaviour for scrolling anywhere else in the window.
@Broxzier
Copy link
Member Author

Broxzier commented Jun 4, 2018

@IntelOrca Because they aren't needed anymore. They were only used in window_other_wheel_input to get the widget index for the tool-size preview widget (which also limited the amount of preview widgets to 1 per window). Now, window_other_wheel_input performs a few checks to see if thw widget that is hovered on belongs to a preview widget, by checking its type and the types of the two button widgets right after it. The same is done for steppers.

I realized this can be further improved by checking their string indices too, to make extra sure it's correct.

It's possible that widgets are arranged in such a way that the roder of buttons matches the order of tool-size widgets or steppers. Now instead of just checking the types, also their content will be checked.
@Broxzier Broxzier added the testing required PR needs to be tested before it is merged. label Jun 4, 2018
Copy link
Member

@Gymnasiast Gymnasiast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That branch name :')

Tested it, appears to work correctly.

@Broxzier Broxzier merged commit b9590f1 into OpenRCT2:develop Jun 6, 2018
@Broxzier Broxzier deleted the scrolling-spin-uh-steppers branch June 6, 2018 18:00
janisozaur added a commit that referenced this pull request Jun 10, 2018
- Feature: [#1417] Allow saving track designs for flat rides.
- Feature: [#1675] Auto-rotate shops to face footpaths.
- Feature: [#3473] Add button in ride window's maintainance tab to refurbish the ride.
- Feature: [#6510] Ability to select edges or a row of tiles by holding down Ctrl using the land tool.
- Feature: [#7187] Option for early scenario completion.
- Feature: [#7266] Make headless instances use an interactive terminal with access to the in-game console API.
- Feature: [#7267] Leverage more historical data in Finances window.
- Feature: [#7316] Cheat to allow freezing all staff
- Feature: [#7332] Keyboard shortcuts for view path issues and cutaway view.
- Feature: [#7348] Add large half loops to the Vertical Drop Roller Coaster.
- Feature: [#7459] Allow opening and closing of parks that use no money.
- Feature: [#7579] New horizontal +/- spinner widgets to make adjusting values easier.
- Fix: [#2053] When clearance checks are disabled, a track piece ghost can remove non-ghost track pieces.
- Fix: [#2611] Some objects show (undefined string) instead of a description in Korean.
- Fix: [#3596] Saving parks, landscapes and tracks with a period in the filenames don't get their extension.
- Fix: [#5210] Default system dialog not accessible from saving landscape window.
- Fix: [#6134] Scenarios incorrectly categorised when using Polish version of RCT2.
- Fix: [#6141] CSS50.dat is never loaded.
- Fix: [#6647] Changelog window causes FPS drop.
- Fix: [#6938] Banner do not correctly capitalise non-ASCII characters.
- Fix: [#7176] Mechanics sometimes fall down from rides.
- Fix: [#7303] Visual glitch with virtual floor near map edges.
- Fix: [#7313] Loading an invalid path with openrct2 produces results different than expected.
- Fix: [#7327] Abstract scenery and stations don't get fully See-Through when hiding them (original bug).
- Fix: [#7331] Invention list in scenario editor crashes upon removing previously-enabled ride/stall entries.
- Fix: [#7341] Staff may auto-spawn on guests walking outside of paths.
- Fix: [#7354] Cut-away view does not draw tile elements that have been moved down on the list.
- Fix: [#7358] Peeps and staff entering rides still have the slope speed penalty set.
- Fix: [#7382] Opening the mini-map reverts the size of the land tool to 1x1, regardless of what was selected before.
- Fix: [#7402] Edges of neigbouring footpaths stay connected after removing a path that's underneath a ride entrance.
- Fix: [#7405] Rides can be covered by placing scenery underneath them.
- Fix: [#7418] Staff walk off paths with a connection but no adjacent path.
- Fix: [#7434] Diagonal ride segments cannot be deleted if they are isolated.
- Fix: [#7436] Only the first 32 vehicles of a train can be painted.
- Fix: [#7480] Graphs skip values of 0.
- Fix: [#7505] Game crashes when trying to make path over map edge while having clearance checks disabled.
- Fix: [#7528] In park entrance pricing tab, switching tabs happens on mouse-down instead of mouse-up
- Fix: [#7544] Starting a headless server with no arguments causes the game to freeze.
- Fix: [#7571] Hovering a ride design over scenery or tracks will give tons of money.
- Improved: [#2989] Multiplayer window now changes title when tab changes.
- Improved: [#5339] Change eyedropper icon to actual eyedropper and change cursor to crosshair.
- Improved: [#5832] Resize tile inspector automatically when selecting a tile element.
- Improved: [#6221] The scenario editor's invention list is now resizeable.
- Improved: [#7069] The arbitrary ride type selection dropdown is now sorted orthographically, and has its spinners removed.
- Improved: [#7302] Raising land near the map edge makes the affected area smaller instead of showing an 'off edge map' error.
- Improved: [#7435] Object indexing now supports multi-threading.
- Improved: [#7510] Add horizontal clipping to cut-away view options.
- Improved: [#7531] "Save track design" dropdown now stays open.
- Improved: [#7548] Ctrl-clicking with the tile inspector open now directly selects an element and its tile.
- Improved: [#7555] Allow setting the Twitch API URL, allowing custom API servers.
- Improved: [#7567] Improve the performance of loading parks and the title sequence.
- Improved: [#7577] Allow fine-tuning the virtual floor style.
- Improved: [#7608] The vehicle selection dropdown is now sorted orthographically.
- Improved: [#7613] Resizing the staff window now resizes the name and action columns too.
- Improved: [#7627] Allow scrolling up and down on spinners to change their values.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing required PR needs to be tested before it is merged. user interface Has to do with user interfaces.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants