Add track style property to ScrollBar
It makes it easier to see that there's a scrollbar if there's a backing
track, especially when the grabber is very small.
* Add cursors for controls
Have TextEdot use NotAllowed instead of Arrow for Disabled
Make ScrollBar use {H,V}Resize
Make BaseButton use Pointer/NotAllowed instead of Arrow
Make ItemList use NotALlowed/Pointer/Arrow
Make MenuTopButton use Pointer
Make Slider use HResize
Fix SplitContainer not changing DefaultCursorShape if it changed
orientation
Make Tree use Pointer/Arrow
Make TabContainer use Pointer
* Fix ScrollBar
It needs to also change MouseMove because we don't have track
functionality yet and thus we only want to show interactivity when we're
directly hovering/grabbing the scrollbar.
* Address review
Make {,Cross}SeparationOverride override StyleProperty
The doc comments say that Overide overrides the StyleProperty, but the
actual code makes it so that Seperationoverride is a fallback value.
* [Dependency] source generator
No more reflection, no more codegen at runtime
Also various changes to Roslyn helpers to make this easier to write.
Requires all types with dependencies to be partial and not have readonly dependency fields. An analyzer enforces this at warning level, the previous injection strategies have remained in the code *for now* as a fallback.
No fallback is available for [field: Dependency] properties, due to a Roslyn bug.
Code Fixes exist. We love Roslyn
* Apply dependencies generator changes to all code
* Release notes
* Preprocessor got hands
* Handle nullable dependencies
These are bad but gotta deal with it.
* Apply suggestions from code review
Co-authored-by: Moony <moony@hellomouse.net>
* Fine, let's not use collection expressions
---------
Co-authored-by: Moony <moony@hellomouse.net>
* add hiding scroll bar
* 14 billion dollars on this never being used once
* comments
* yes because what could VScrollBarHidden possibly MEAN?????????????
* Apply suggestions from code review
Co-authored-by: Moony <moony@hellomouse.net>
---------
Co-authored-by: Moony <moony@hellomouse.net>
The way SDL handles window coordinates passes through the native platform API's behavior instead of trying to make a consistent API, so the way sizes are handled on macOS is different.
* PR time
* am dum dont make PRs at 3am
* file scoped. I pushed this to the wrong branch initially because I'm stupid
* Revert "file scoped. I pushed this to the wrong branch initially because I'm stupid"
This reverts commit 9a911caa77.
* Review
* Update API used by content to actually use the default values
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Copy TableContainer from content into engine. It's internal though.
Add various stuff to Clyde to allow the UI to access it. Includes a new IClydeInternal.RenderNow() which seems to not completely explode in my face.
We were relying on a global PopupRoot & ModalRoot, which only existed in the main window. This means things like OptionButton would pop out on the *main* window when put on secondary windows.
These two roots are now on the UIRoot instead. WindowRoot needs to have a function called to create these if you're using it manually, OSWindow supports it automatically.
Lays items out sequentially, wrapping them onto different rows/columns if they stop fitting.
Has multiple options and should be very useful, in both content and engine.
Uses the new Axis system to implement layout on 4 axis, re-uses BoxContainer's code so BoxContainer also got a mild refactor.
Vector3, Vector4, Matrix4, and Quaternion are now gone. Use System.Numerics instead.
This commit is just replacing usages, cleaning up using declarations, and moving over the (couple) helpers that are actually important.
* add: IColorSelectorStrategy class
defines some common variables and functions that depend on the slider type
my hope is to kill all the switch statements in here
* add: IColorSelectorStrategy FromColorData method
* add: RGB and HSV color slider strategies
* add: initialize ColorSelectorStrategy
* refactor: rename IColorSelectorStrategy to IColorSliderStrategy
this makes more sense i think
* refactor: nuke switch statements, use strategy in colorselectorsliders
* remove: remove GetSliderLabels in favor of strategy
* refactor: better abstraction for slider InputBox.ValueChanged
* refactor: rename OnColorSet to OnSliderValueChanged
more intuitive
* refactor: turn alpha slider max value into a const
no magic numbers
* tweak: make color sliders update channels individually
* fix: add braces around this callback
* tweak: move some variables around
i realize there's an Order to this so
* add: throw error if UpdateSlider is called with invalid value
* add: documentation comments to ColorSelectorSliders
* refactor: simplify UpdateSlider
* refactor: simplify GetColorValueDivisor
* fix: solved the color slider stack overflow
* fix: ensure _strategy is set before other functions use it
* tweak: rename Update to UpdateAllSliders
clearer
* fix: update slider colors on update
accidentally removed it and forgot to put it back
* remove: redundant comment
false alarm
* fix: prevent inputbox infinite event loop
this was also erroneously changing the color whenever the slider type changed
* fix: reviews part 1
- changed ColorSliderStrategy into abstract class
- fixed "strategy" typo
- changed NotImplementedException into ArgumentOutOfRangeException
* fix: make selector strategy static instances