Commit graph

118 commits

Author SHA1 Message Date
cashew
86adeec6db
Fix OnAttachedChanged Lag when having a long chat history (#46050)
* I fucking hate chat code and UI code

* while I'm at it I'll make this prettier

* docs

* typo

* testfail

* reset chat upon joining game

* move code

* remove unused imports and add doc

* doc

* final commit

* oop

* Revert "reset chat upon joining game"

This reverts commit a851319521193d099b6d1571631b63917500bc47.

* review stuff

* testfail
2026-09-19 21:10:03 +00:00
AndrewFenriz
70cd75a247
Standardize UI separators (#45820)
* remove unused using

* move VSeparator

* remove unused using

* move HSeparator

* remove BOM

* add Separator

* migrate

* fix separator migration

* remove old separators

* clean separator migration

* clean separator formatting

* cleanup

* update SeparatorSheetlet
2026-09-19 20:16:18 +00:00
Whatstone
a023e5784c
Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
cashew
4bde1c1120
Port Chat Follow functionality from AfterLight (#45375)
* ports chat follow function from AL and removes PJB implementation
forgor to commit earlier so it's just one chunk

* fixes accidental MiscTab.xaml restructuring

* fix name color

* remove unused function

* cvar summary

* typo

* accidental doc removal

* fix test fail

* fix test fail

* like i said first pr :|

* inject in constructor

* adds chat links to Local, Whisper, LOOC and Dead Chat respects Admin ghost privacy

* i hate chat code

* remove cvar

* single events file

* adds CanGhostWarp back

* filter for admin ghosts

* move tag

* remove ChatLinkTag.cs

* fix speechbubble rendering

* i want to bash my brain in

* kill chatcode

* formatting

* testfail

* still not working

* atleast deadchat works now

* even prettier TextLinkTag.cs

* fix speechbubble rendering for looc

* docs

* renaming and better docs

* Revert "remove cvar"

This reverts commit 1acb168f

* final changes (hopefully)

* requested changes

* can't parse -

* change TextLinkTag again

* formatting and typo

Co-authored-by: Connor Huffine <chuffine@gmail.com>

* quickfix

* no logging for now actually

* i will work on this in the morning

* restructuring

* wip

* final restructuring and docs

* still not done btw

* review

* docfix

* actually we can filter for admin ghosts

* doc

* fix color

* fix fix color

* review

* all I care to clean up

* bold names

* doc

* admin warp

* fixed

* fsaasffsa

* GOD ONCE SAID: GOOD ENOUGH

* they call me the shuffler

* admin chat links

* forgor newline

* fix?

* actual fix

* dumb stuff

* chungus

---------

Co-authored-by: Connor Huffine <chuffine@gmail.com>
Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
2026-09-15 08:05:17 +00:00
eoineoineoin
f5149c4cad
Fix switch button (#45549)
Fix workaround
2026-09-06 23:02:21 +00:00
Maciej Walendziuk
ea68242094
SegmentedBarChart: clamp gap advance (#45744) 2026-08-30 14:08:36 +10:00
Whatstone
eed6144042
Radial Sorting: add explicit order field (#45445)
* allow for manual radial ordering

* use order, not i

* one third of a radial menu test

* add a unit test for the radial menu comparer

* Fildrance's suggestions, remove unused compare fn

Co-authored-by: Fildrance <14752842+Fildrance@users.noreply.github.com>

* comment order, return SortOptions to private

I was planning to use this in an integration test, but settled on a unit
test.

* comments!

---------

Co-authored-by: Fildrance <14752842+Fildrance@users.noreply.github.com>
2026-08-23 20:08:30 +00:00
Whatstone
b0ea2667c9
[MALD PR] fix the AI door menu (#45464)
fix radial menu sort
2026-08-19 19:27:16 +00:00
Fildrance
12a968c16f
Enforce ordering for radial menu (#40404)
* refactor: enforcing ordering in radial menu options so they wont shuffle randomly

* refacror: revert enumerables in get buttons - no real reason.

* refactor: minor allocation optimization for sorting

* refactor: revert more unused changes

* refactor: revert more optional changes

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2026-08-16 22:15:09 +00:00
eoineoineoin
a86b1312e5
Fix UIBox2 assert failures (#45085)
* Fix UIBox2 assert failures

* Handle UI scale
2026-08-01 23:34:24 +00:00
Fruitsalad
6ddb80d494
Add SegmentedBarChart, remove SplitBar and BeakerBarChart (#42908)
* Add SegmentedBarChart

* CryoPodWindow: Integrate SegmentedBarChart

* Remove BeakerBarChart

* SegmentedBarChart: Fix first frame jank

To update the entries' widths, it needed Control.Width, but that wouldn't be available until later. I moved things around so that it gets updated in ArrangeOverride the first time.

* GasAnalyzerWindow: Integrate SegmentedBarChart

* AbsorbentItemStatus: Integrate SegmentedBarChart

* Remove SplitBar

* SegmentedBarChart: Fix UI scale bug

With 200% UI scale the gaps would be half the intended size.

* SegmentedBarChart: Explicit deltaSeconds

* AbsorbentItemStatus: Use bar chart's background color

* SegmentedBarChart: Edit comments

* SegmentedBarChart: Edit calculation explanation

* SegmentedBarChart: Fix a subtle UI scale bug

MinSmallNotchScreenDistance was promised to be in UI units in the comment, but it was actually in pixels.

* SegmentedBarChart: Add sheetlet and doc comments

* SegmentedBarChart: Use StylePropertyDefault instead of TryGetStyleProperty

* SegmentedBarChart: Remove unnecessary helper

* SegmentedBarChart: Small redundancy removal

* AbsorbentItemStatus: Small adjustments based on feedback

* SegmentedBarChart: Use named colors

* AbsorbentItemStatus: Draw a medium notch every six notches instead of five

 This is because the capacity of mops was changed to 12. It looks a little better this way.

* SegmentedBarChart: Reorder functions, add doc comment
2026-07-28 18:39:20 +00:00
Whatstone
7aca70d543
Remove redundant TableContainer definition (#44548)
Move TableContainer XAML refs + C# deps to engine
2026-07-18 02:01:08 +00:00
Whatstone
0190b8a6ae
ConfirmButton: state machine consistency, OnConfirming action (#44605)
* ConfirmButton: intrinsic state machine, confirm ev

* ConfirmButton fixes

* ifs, no ternary statements

* FrameUpdate + field comments

* ConfirmButton: fix Disabled reset condition

* comments, read Disabled, write base.Disabled

* ConfirmButton cleanup
2026-07-13 03:10:34 +00:00
Pok
95cb9ab60d
Fix chat with open radial menu (#40929)
* chat-with-open-radial-menu

* refactor: reuse checks in RadialMenuContextualCentralTextureButton.KeyBindUp in relevant codeparts of radial menu

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2026-05-19 11:40:54 +00:00
beck-thompson
5f37c95e9f
Admins can now see what items are contraband and chameleon in the strip menu (#43658)
* Admins can now see what items are contraband and chameleon in the strip menu

* Fix the color, the default is now red

* better admin view comment

* Simplify logic, make new simple slot overlay to combine logic

* Make isadmin logic a little clearer

* Minor cleanup / spelling mistakes

* change  button shape

* change to res path

* opps

* Add option to change default behavior

* Fix spacing

* Remove unused

* Rename to default

* Take away the soul of the overlay

* Add tooltip

* Fix error
2026-05-10 10:45:58 +00:00
Pieter-Jan Briers
5168b5f3d4
IoC source gen compatibility (#43863)
* IoC source gen compatibility

Can be merged before or after https://github.com/space-wizards/RobustToolbox/pull/6549 doesn't really matter.

* Missed a spot
2026-05-09 03:29:58 +00:00
Tayrtahn
e47ce26377
Remove [Virtual] from some classes that shouldn't have it (#43347)
* Remove [Virtual] from some classes that shouldn't have it

* Back to virtual with you
2026-03-28 00:46:15 +00:00
Absotively
6ee812cfe5
SwitchButton (#39161)
* Initial toggle switch styling

* tweak toggle switch textures

* Simplify toggle SVG images a bit

* Better name for switch button

* Update CheckButtons that were already just regular buttons

* Match checkbox/text field outline colour instead of slider outline colour

* Use switch button for APC power

* Update switch button styling; add separate style for power buttons

* Use new switch button in midi channels menu

* Add spacer

* adjust switch button icon proportions, position

* Add disabled toggle switch styles, use improved pressed style setup, make APC breaker state visible to all

* Use Janet Blackquill's icon design; remove StyleClassPowerSwitchButton. Co-authored-by: Janet Blackquill <uhhadd@gmail.com>

* Style switch children directly instead of with propagated styles

* Add attributions file

* Turns out source is a required field

* Move SwitchButton out of engine

* Move styles to sheetlet

* Make workaround for child controls not updating work in content

* Icon layers

* Set up ISwitchButtonConfig

* Fix disabled switch label font color

* Don't redefine base pseudostyles

* Use pseudoclass helpers for better readability

* Use margin instead of padding element

* Remove unused using statements

* Remove extra image file

* Update attributions for changed files
2026-01-22 17:31:56 +00:00
eoineoineoin
b436e2a937
Fix missing scrollbars in Admin Player List window (#40525)
* Fix missing scrollbars in Admin Player List window

* Revert "Fix missing scrollbars in Admin Player List window"

This reverts commit c5aea1a0550deb1d1d7aae4e2dec964e93d2d8ae.

* Invalidate cached item height when item generation callback changes
2025-12-22 16:41:02 +00:00
Brandon Li
545cacbcae
StyleNano removal: Palette system and Sheetlets (#29903)
* Apply patch 1777eea9a4..6b32bb2b14

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* make red squiggly line go away

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Add todo list

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Add palette to `TextureButton`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Rename `PalettedButtonSheetlet` to `NTButtonSheetlet` and move useful methods to `ButtonSheetlet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* migrate `ContextMenu` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* tweak NT colors

* New stylesheet: `InterfaceStylesheet` & `InterfaceTooltipSheetlet`

* Move inheritance of `IButtonConfig` to `NanotransenStylesheet.Buttons`

* move `MenuButtonSheetlet` & actually implement `InterfaceStylesheet` correctly

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* tweak color & update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* chat is this real (update chat palette)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `SmallButton` and remove some obsolete things from `StyleNano`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `StyleClasses` to `StyleClass` so `Stylesheets.Redux.StyleClasses` syntax is dead

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* replace `ButtonColorGreen` with `Positive`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `Placeholder`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Examine popup buttons

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* move over more things & cleanup `StyleNano` more (under 1000 lines!!!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Remove some more redundant stuff

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Undo style change for chat window

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* paper editing works now

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `OptionButton` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ListContainer`, move `DefaultWindow` styles (for now) & more cleanup

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* fix `ActionButton` not having highlighting

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* remove imports of `Robust.Client.UserInterface.StylesheetHelpers` & format

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ButtonBig` and more cleanup

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move items inheriting from `ISheetletConfig` into their own directory

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Cleanup & move `Label` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Action search box styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Moved, stuff is

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `LabelSubtext` to `LabelSubText` & move more stuff (were almost there!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* yap & move over MORE stuff (just like one thing left!!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Change status classes to appropriate existing classes

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* remove remaining references to `StyleNano`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Fix some hardcoding & broken code, `GetFromControl`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Scrollbars!

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* chores

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* clean up `StyleClass.cs`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ItemListSheetlet` refactor

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* more chores!

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Consistency w/ directory structure

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move `MainMenuSheetlet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ColorPalette`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* whoopsie

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Remove most sheet-specific sheetlets

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* fix warnings, cleanup, & fix scrollbar (this is why we fix warnings boys)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* yap

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* MASSIVE resharper skill issue

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* actually use `ISheetletConfig`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* have specific sheetlet be specific

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `GetResourceOr`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* cleanup & move / remove `IPalette`s

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* actually do specific stylesheets correctly & fix tooltips

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* cleanup & logging

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move `FontKind` and `FontKindExtensions` to their own files

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `InterfaceStylesheet` to `SystemStylesheet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* change `ButtonHovered` etc to `PseudoHovered` etc

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* give the palettes fun names

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `StyleSpace` is no more

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* It should compile now! I am now going to bed (fr) if it fails it fails

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* make squiggly red line go away

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* add additional type restrictions to sheetlets

* `CommonStylesheet`

* minor cleanup

* Make `GetSheetletRules` not horrible

* wait this was duplicating style rules. oops!

* move some sheetlets to their associated xamls

* oh wait apparently that was important

* review pass 1

* review pass 2 (font & color stuff)

* review pass 3: remove unused stuff / filename fix

* fix warnings & "replace cast with explicit variable type"

* move `Palette` stuff to its own directory

* tweak colors (they're different now that I actually fixed the OKlab thing)

* review pass 4: little things

* make window close button grey before hovering

* refactor `HLine` to make it less terrible and allow it to be styled

* fix `NanoHeading` (it's been broken for a while whoops) and cleanup hardcoding

* band-aid missing references in `StyleNano`

* move `StyleBox` generating functions out of `IButtonSheetlet` into `StyleBoxHelper`

* remove dictionary field from `IStylesheetManager`

* Add check for unloaded sheetlets

* style tweaks to satisfy OCD

* I somehow missed this: `Caution` styleclass replaced with `negative`, refactor `PowerChargeWindow`

* tweak palettes for like the fourth time

* construct `StyleNano` / `StyleSpace` in `StylesheetManager` and mark them as obsolete

* rename `BackgroundPanel` classes for consistency

* tweak window / `ListContainer`

* oh right you use `///` not `/**`

* font system is bad, make it temporary

* acknowledge Divider funkyness

* remove use of class `Disabled`

* `ColorPalette` allow overriding colors with brace initialization

* review pass again

* tweak disabled button colors

* `StatusPalette` tweaks

* typo

* Make squiggly red line go away

* Delete `Redux`

* Remove all references to `Redux`

* make red less radioactive

* Store stylesheet name inside stylesheet class

* fix merge errors

* use RT's Oklab support instead

* shuffle around `StylesheetManager` fields

* apply stylesheets based off `StylesheetComponent`

* simplify `ColorPalette` construction

* add todo for `SheetletConfigType`

* `OptionButton` has a background color now

* fix disabled buttons

* sigh (red color palette fixed)

* make `ItemList` use primary palette

* Revert "apply stylesheets based off `StylesheetComponent`"

This reverts commit c05b147da845f6e04ff33d1cbd91a18a92c676d7.

* dead code removal

* buttons are green when pressed (we need togglebuttons)

---------

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>
Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
2025-10-19 21:10:44 +00:00
0x6273
fdbcd3fdc5
Add date picker (#40660)
* Add DatePicker

* DatePicker fixes

- Now uses `DateOnly` (currently fails sandbox, but PJB has promised to add
it in engine)
- Add MinDate and MaxDate fields
- Use constructor instead of parsing date string
2025-10-14 17:26:07 +00:00
LordCarve
a3ddba6f42
Cleanup - Use RemoveAllChildren() over DisposeAllChildren() (#39848)
* Content - change the (should-be-obsolete) DisposeAllChildren into the more robust RemoveAllChildren.

* Remove duplicate calls.

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2025-09-23 15:40:48 +12:00
B_Kirill
fd40888b0e
Cleanup warnings: CS0067, CS8509, CS8073 (#39770)
* Cleanup

* Bonus

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2025-09-23 15:11:29 +12:00
Charlie Morley
09f17802c2
Clip the WindowTitle of FancyWindows, so close buttons don't get hidden (#40272)
ClipText of FancyWindow title, so close buttons don't get hidden
2025-09-11 13:23:47 +02:00
Fildrance
35d69e0f33
feat: SimpleRadial menu support for sprite-view and more extensibility (#39223) 2025-09-10 11:11:15 +03:00
slarticodefast
5a5b81f7dc
Fix rebinding keys crashing the game (#39732)
fix control settings
2025-08-18 11:58:30 -07:00
pathetic meowmeow
39cb27fe21
Borg hands & hand whitelisting (#38668)
* Borg hands & hand whitelisting

* yaml linted

* yaml linted (x2)

* yaml linted (x3)

* my storage tests so pass

* no need for SetCount

* ok new stuff you can get fixed too

* oops

* staque

* what if we addressed feedback

* my place so holder

* what if we addresesd feedback

* what if i did it correctly

* terminating or deleted
2025-08-12 15:21:42 -07:00
Pok
688c91b597
Add scaling filter option (Nearest/Bilinear) (#39111) 2025-07-27 20:26:17 +03:00
chromiumboy
f99850e1fb
Sentry turrets - Part 6: Sentry turret control panels (#35235) 2025-05-26 16:00:50 +03:00
chromiumboy
f213753e2b
Sentry turrets - Part 5: Reuseable UI components (#35149)
* Initial commit

* Updated how monotone buttons are styled

* Removed unnecessary textures

* Updated attributions

* Addressing reviewer comments

* Adjusted monotone checkbox styling
2025-05-03 12:19:08 -05:00
Nemanja
55ef51a84b
Fix listcontainer constantly disposing children (#37089) 2025-05-01 15:32:37 +10:00
Pieter-Jan Briers
ffe130b38d
Battery (SMES/substation) interface (#36386)
* Add ENERGYWATTHOURS() loc function

Takes in joules (energy), displays as watt-hours.

* Add simple OnOffButton control

* Re-add Inset style class

This was sloppily removed at some point?? Whatever, I need it.

* Add helper functions for setting title/guidebook IDs on FancyWindow

Reagent dispenser uses these, more in the next commits.

* Add BuiPredictionState helper

This enables me to implement coarse prediction manually in the battery UI.

Basically it's a local buffer of predicted inputs that can easily be replayed against future BUI states from the server.

* Add input coalescing infrastructure

I ran into the following problem: Robust's Slider control absolutely *spams* input events, to such a degree that it actually causes issues for the networking layer if directly passed through. For something like a slider, we just need to send the most recent value.

There is no good way for us to handle this in the control itself, as it *really* needs to happen in PreEngine. For simplicity reasons (for BUIs) I came to the conclusion it's best if it's there, as it's *before* any new states from the server can be applied. We can't just do this in Update() or something on the control as the timing just doesn't line up.

I made a content system, BuiPreTickUpdateSystem, that runs in the ModRunLevel.PreEngine phase to achieve this. It runs a method on a new IBuiPreTickUpdate interface on all open BUIs. They can then implement their own coalescing logic.

In the simplest case, this coalescing logic can just be "save the last value, and if we have any new value since the last update, send an input event." This is what the new InputCoalescer<T> type is for.

Adding new coalescing logic should be possible in the future, of course. It's all just small helpers.

* Battery interface

This adds a proper interface to batteries (SMES/substation). Players can turn IO on and off, and they can change charge and discharge rate. There's also a ton of numbers and stuff. It looks great.

This actually enables charge and discharge rates to be changed for these devices. The settings for both have been set between 5kW and 150kW.

* Oops, forgot to remove these style class defs.
2025-04-27 21:08:34 +10:00
Tayrtahn
c155740ac5
Cleanup warnings in SimpleRadialMenu (#36690) 2025-04-18 18:28:24 +02:00
Pieter-Jan Briers
e6e60dead4
Revert "Feature/shader radial menu" due to shader issue (#36470) 2025-04-11 23:30:52 +02:00
Fildrance
56710697a9
Feature/shader radial menu (#35152)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* overlay and its registration

* radial menu shader but it requires wierd offset

* remove unused file

* smol cleanup

* remove unused code

* neat internal subsctors in radial menu shaders

* refactor finalize visual style

* comments, simplify, extract variable and other minor refactors on radial-menu shader

* refactor: extract more data from radial menu with sector to radial container for shader drawing

* replaced DrawSeparators for RadialMenuTextureButtonWithSector with DrawBorder (no reason to make them separate), also now colors are properly applied

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove duplication of radial menu shaders, use ValueList to collect ClearExistingChildrenRadialButtons buttons to remove

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: removed *if* blocks from shader, replaced with branchless logic

* refactor: whitespaces, changed list to array in simple radial button preparing methods

* fix: merge duplicated code

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2025-04-10 20:42:53 +10:00
Fildrance
19f3497b35
refactor: simple radial menu for easier creation (#34639)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: whitespaces, changed list to array in simple radial button preparing methods

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2025-03-31 12:57:47 +03:00
metalgearsloth
a8ebcac5c9
Predict vending machine UI (#33412) 2025-03-02 13:47:52 +11:00
SpaceManiac
4122310735
Fix 38 non-obsolete warnings (#33794) 2025-02-11 20:59:50 +11:00
ShadowCommander
cd91effefb
HOTFIX: Fix lineedit focus (#34621)
* Test entered tree fix

* Use Opened override

* Fix keyboard focus on window open for DialogWindow

This affects Phone, Pray, Rename, and multiple other admin verbs.

* Clean up
2025-02-06 16:14:55 +01:00
Fildrance
68b0dfbc02
Feature/make radial menu great again (#32653)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2025-01-23 13:16:58 +01:00
metalgearsloth
94e686ca9c
Fix separated game screen bumping (#33046)
I don't really understand why RecordedSplitContainer exists but removing it looks identical and fixes the panel bumping occasionally.
2024-10-29 16:07:57 +11:00
Winkarst
0093fce5b4
Dialog windows now grab the keyboard focus (#31294)
* Dialog windows now grab the keyboard focus

* Comment
2024-09-20 00:01:54 +10:00
metalgearsloth
2e1b486e8b
Add BUI ctor tests (#31463)
5 lines of eaten iocmanager.injectdependencies led to this.
2024-08-26 17:39:48 +10:00
Rinary
9120f5fada
Dynamic Radial Menus (#29678)
* fix

* Clean Some Code

* Some Commentaries

* Update Content.Client/UserInterface/Controls/RadialContainer.cs

* Update Content.Client/UserInterface/Controls/RadialContainer.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-07-04 11:25:25 +10:00
Leon Friedrich
e7f2ae52ab
Give jobs & antags prototypes a guide field (#28614)
* Give jobs & antags prototypes a guide field

* A

* space

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Add todo

* Fix merge errors

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-06-06 05:05:58 -07:00
eoineoineoin
b44b159431
Replace Matrix3 with System.Numerics.Matrix3x2 (#27443)
Replace Matrix3 with Matrix3x2
2024-06-02 14:07:41 +10:00
Nemanja
21d0b1fd55
Guidebook Tables (#28484)
* PJB's cool table control (it probably doesn't work)

* ok wait wrong file

* Guidebook Tables
2024-06-01 20:58:33 -07:00
ShadowCommander
3ed1ee6a5b
Add search filter to the admin menu player tab (#28030) 2024-05-31 02:28:08 -04:00
ike709
af4c6373f6
Adds Support for Guidebook Buttons in UIs (#27891)
* Adds Support for Guidebook Buttons in UIs

* read it from the component

* the code is perfect

* moony review

---------

Co-authored-by: ike709 <ike709@github.com>
2024-05-10 22:21:18 -04:00
Pieter-Jan Briers
7b90c08a2c
Various item status fixes/tweaks (#27267)
* Always display item status panel fully

Initial feedback from the UI changes seems to be that a lot of people go "why is there empty space" so let's fix that.

* Fix item status middle hand being on the wrong side

I think I switched this around when fixing the left/right being inverted in the UI code.

* Minor status panel UI tweaks

Bottom-align contents now that the panel itself doesn't dynamically expand, prevent weird gaps.

Clip contents for panel

* Fix clipping on implanters and network configurators.

Made them take less space. For implanters the name has to be cut off, which I did by adding a new ClipControl to achieve that in rich text.

* Update visibility of item status panels based on whether you have hands at all.

This avoids UI for borgs looking silly.

Added a new "HandUILocation" enum that doesn't have middle hands to avoid confusion in UI code.

* Use BulletRender for laser guns too.

Provides all the benefits like fixing layout overflow and allowing multi-line stuff. Looks great now.

This involved generalizing BulletRender a bit so it can be used for not-just-bullets.

* Fix geiger word wrapping if you're really fucked
2024-04-25 00:01:31 +10:00