Skip to content

Conversation

@frenzibyte
Copy link
Member

The final piece, containing migration of all settings to use the new form controls, as well as minor changes within the settings overlay to complete the migration.

To avoid touching any irrelevant file, I've chosen to make and use separate constants and classes for new settings, as shown in 8956bbd. Once this PR is merged, a follow-up PR will migrate the remaining non-settings usages of SettingsItem to the V2 counterpart, remove SettingsItem completely, and drop the V2 suffix from all existing components.

Side design changes worthy of note:

Before After
CleanShot 2025-12-31 at 16 02 58 CleanShot 2025-12-31 at 16 01 38
CleanShot 2025-12-31 at 16 06 46 CleanShot 2025-12-31 at 16 01 11
CleanShot 2025-12-31 at 16 05 53 CleanShot 2025-12-31 at 16 03 24
CleanShot 2025-12-31 at 16 05 47 CleanShot 2025-12-31 at 16 03 58

@frenzibyte frenzibyte added type/cosmetic Only affects the game visually. Doesn't affect things working or not working. area:settings labels Dec 31, 2025
@frenzibyte frenzibyte requested a review from a team December 31, 2025 23:13
@peppy peppy self-requested a review January 1, 2026 07:56
@peppy
Copy link
Member

peppy commented Jan 1, 2026

I dunno about the (disabled) text on collapsed items, seems not necessary, and actually confusing to me. It feels like I shouldn't be able to toggle it because it says this.

Also, I'd expect to be able to click anywhere on the text in such header items to perform the toggle.

@peppy
Copy link
Member

peppy commented Jan 1, 2026

2026-01-01.17.19.00.mp4

This is weird. Might be best to fix separately but definitely needs to be changed.

@peppy
Copy link
Member

peppy commented Jan 1, 2026

2026-01-01 17 21 26@2x

This is a bit too loud (visually). Should probably not be warning level.

@cihe13375
Copy link

Maybe too late to say now, but I feel that the on vs. off contrast of switches is too subtle.

This is particularly confusing for vertical switches. It is not clear if "up" is on or "down" is on.

public SettingsButtonV2()
{
RelativeSizeAxes = Axes.X;
Margin = new MarginPadding { Vertical = -1.5f };
Copy link
Member Author

Choose a reason for hiding this comment

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

Unlike SettingsButton with -5, the vertical margin here is set to -1.5 instead. This is because the overall settings spacing specified in flow containers has been reduced from 14 to 7, and to preserve the button spacing with that change, -5 + 7 / 2 = -1.5.

Anchor = Anchor.TopRight,
Origin = Anchor.TopRight
Origin = Anchor.TopRight,
Spacing = new Vector2(-6, 0),
Copy link
Member Author

Choose a reason for hiding this comment

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

With the settings margin changes, the select button row got overflowed with the key buttons:

Image

The spacing adjustment above alleviates the issue for now:

Image

Comment on lines -486 to +498
content.AutoSizeDuration = 500;
content.AutoSizeDuration = 250;
Copy link
Member Author

Choose a reason for hiding this comment

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

The duration set here felt too slow for a snappy animation.

Before:

CleanShot.2026-01-01.at.06.45.52.mp4

After:

CleanShot.2026-01-01.at.06.45.32.mp4

Comment on lines +58 to +59
bool negativeBottomMargin = !handlerEnabled.Value || FlowContent.Count == 0;
HeaderContainer.TransformTo(nameof(Margin), new MarginPadding { Bottom = negativeBottomMargin ? -15 : 0 }, 300, Easing.OutQuint);
Copy link
Member Author

Choose a reason for hiding this comment

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

This is added to not have too much vertical gap between disabled input subsections.

Before:

Image

After:

Image

Comment on lines -342 to +378
windowModeDropdown.SetNoticeText(LayoutSettingsStrings.FullscreenMacOSNote, true);
windowModeDropdownNote.Value = new SettingsNote.Data(LayoutSettingsStrings.FullscreenMacOSNote, SettingsNote.Type.Critical);
Copy link
Member Author

Choose a reason for hiding this comment

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

I've increased the level of this note from warning to critical as system-wide freezes may occur in this mode.

Comment on lines -360 to +396
windowModeDropdown.SetNoticeText(LayoutSettingsStrings.CheckingForFullscreenCapabilities, true);
windowModeDropdownNote.Value = new SettingsNote.Data(LayoutSettingsStrings.CheckingForFullscreenCapabilities, SettingsNote.Type.Informational);
Copy link
Member Author

Choose a reason for hiding this comment

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

I've dropped down the level of this note as it's not really a "warning" yet. Informational makes most sense.

@frenzibyte
Copy link
Member Author

Also, I'd expect to be able to click anywhere on the text in such header items to perform the toggle.

I've added this but I'm not 100% sure about the hover design and feedback there:

CleanShot.2026-01-01.at.09.20.52.mp4

@Joppe27
Copy link
Contributor

Joppe27 commented Jan 1, 2026

This is particularly confusing for vertical switches. It is not clear if "up" is on or "down" is on.

Sorry to +1 but I very much agree with this. I almost never see vertical switches in software, and think it's a suboptimal design because there is no established on or off position like you said. I personally expected "up" to be the on position because that's how most real-life switches work in my head. Wouldn't a horizontal switch look just as good here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:settings size/XXL type/cosmetic Only affects the game visually. Doesn't affect things working or not working.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update settings to use new "form" style controls

4 participants