1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-05-23 17:13:38 +02:00
Commit graph

622 commits

Author SHA1 Message Date
Ell f0432ab981 Fixed panels sometimes not drawing children that came into view when their positions changed unexpectedly 2022-08-04 21:03:16 +02:00
Ell b7b1490d70 Fixed paragraphs sometimes not updating their position properly when hidden because they're empty 2022-08-04 20:43:04 +02:00
Ell 4d34a2fac1 Fixed parents of elements that prevent spill not being notified properly 2022-08-04 20:14:29 +02:00
Ell 5aaba0c583 Close other dropdowns when opening a dropdown 2022-07-29 22:24:37 +02:00
Ell 8044cb59cb Improved EnumHelper.GetValues signature to return an array 2022-07-29 19:52:01 +02:00
Ell 7a0464e8d6 fixed GetRightmostChild using the wrong variable for calculation 2022-07-27 11:52:28 +02:00
Ell f0cc4b0c80 Allow elements to auto-adjust their size even when their children are aligned oddly 2022-07-27 11:19:40 +02:00
Ell 08e28cb95b Allow manually setting a RootElement as CanBeActive 2022-07-18 15:53:26 +02:00
Ell 92018eea1e Made the base package's description more descriptive
This reverts commit 2973bd98e2.
This reverts commit 04c6bb5ff8.
2022-06-26 14:25:19 +02:00
Ell 2973bd98e2 moved MLEM's Input namespace into its own package 2022-06-25 23:46:06 +02:00
Ell 42a87471fc fixed UiSystem AutoScaleReferenceSize default value 2022-06-24 15:21:08 +02:00
Ell 5fcdda80dc fixed multiline text inputs not working on FNA 2022-06-24 14:10:24 +02:00
Ell 5d7d238630 added MLEM.FNA 2022-06-24 14:01:26 +02:00
Ell aff61508c4 Added TextInput class, which is an isolated version of MLEM.Ui's TextField logic 2022-06-19 18:17:46 +02:00
Ell aabb1ed5df added .editorconfig 2022-06-17 18:23:47 +02:00
Ell 59af00c89a Code cleanup, and marked AStar.InfiniteCost as obsolete 2022-06-15 11:38:11 +02:00
Ell d0ece92550 return the ElementType along with each Element in Parse 2022-06-14 00:08:05 +02:00
Ell 01fb5288ff finished up UiMarkdownParser 2022-06-14 00:04:57 +02:00
Ell 7b1da2f1a7 fixed image base path not being applied properly 2022-06-13 23:59:56 +02:00
Ell f53305ce42 Added UiMarkdownParser 2022-06-13 23:52:10 +02:00
Ell 951f4babd5 Fixed gamepad auto-nav angle being incorrect for some elements 2022-05-26 11:39:55 +02:00
Ell fcca5300ae Fixed elements' OnDeselected events not being raised when CanBeSelected is set to false while selected 2022-05-21 20:42:54 +02:00
Ell 15b873a8ad fixed xml doc recursive reference 2022-05-18 16:01:24 +02:00
Ell 6dc4011ef5 Added optional isKeybindAllowed parameter to KeybindButton 2022-05-18 15:54:29 +02:00
Ell 03accff6ae modify AutoNavGroup behavior to disallow new selections 2022-05-17 16:06:22 +02:00
Ell acd15fea14 improved Ui and Data package descriptions 2022-05-10 15:42:20 +02:00
Ell 16b9e26969 Fixed elements sometimes staying hidden when they shouldn't in scrolling panels 2022-05-04 13:54:15 +02:00
Ell 98118e540a Allow manually hiding a paragraph without its text overriding the hidden state 2022-05-04 13:22:24 +02:00
Ell 58b716aabb Don't query a paragraph's text callback in the constructor 2022-05-03 20:26:39 +02:00
Ell 63d2353694 Improved ElementHelper.AddTooltip overloads 2022-05-03 20:10:26 +02:00
Ell 15a57d8db9 Turned Tooltip paragraph styling into style properties 2022-05-03 19:35:44 +02:00
Ell 5a1b31e8a3 Allow adding dropdown and tooltip elements at a specified index 2022-05-03 19:07:53 +02:00
Ell 435042e1f5 Allow Tooltip to manage more than one paragraph and make it easier to add new lines 2022-05-03 18:58:18 +02:00
Ell bc0f9d5c0c consume other UI inputs too 2022-04-30 12:26:40 +02:00
Ell 610527374e Make use of the new consuming variants in InputHandler and Keybind to consume UiControls inputs 2022-04-30 12:14:08 +02:00
Ell 8adee49e55 fixed scroll bars not working with the new InvertPressBehavior 2022-04-30 11:31:40 +02:00
Ell 6393d879d9 added SpriteBatchContext 2022-04-25 15:25:58 +02:00
Ell c78bafd000 Ensure that Element.IsMouseOver is always accurate by making it an auto-property 2022-04-15 14:18:55 +02:00
Ell 783da33107 Fixed elements not being deselected when removed through RemoveChild 2022-04-15 14:16:38 +02:00
Ell be26a2ebc2 made the new AutoNavGroup also work for gamepad controls 2022-04-14 18:01:30 +02:00
Ell 45afd9ac79 Added Element.AutoNavGroup which allows forming groups for auto-navigation 2022-04-14 17:54:25 +02:00
Ell ad29b46df3 Fixed radio buttons not unchecking all other radio buttons with the same root element 2022-04-14 17:45:01 +02:00
Ell 902391d278 Fixed auto-nav tooltip displaying on the selected element even when not in auto-nav mode 2022-04-09 22:00:21 +02:00
Ell 4854d420e0 Fixed delayed tooltips sometimes displaying in the wrong location for one frame 2022-04-05 14:54:20 +02:00
Ell 393bd9ffe5 Allow tooltips to display for elements when selected in auto-nav mode 2022-04-05 14:42:30 +02:00
Ell 30b4d5fc43 Improve f166c3d256 by allowing buttons to be selectable even when disabled 2022-04-05 14:20:38 +02:00
Ell df0ad68837 Fixed tooltips sometimes ignoring manually set IsHidden values 2022-04-05 14:17:12 +02:00
Ell 94dec34470 render panel's render target in the Draw method 2022-03-26 21:13:05 +01:00
Ell 6a3c797eba Fixed UiMetrics.ForceAreaUpdateTime being inaccurate for nested elements 2022-03-26 20:06:59 +01:00
Ell 3ad024b95a fixed KeybindButton inheritdoc referencing itself 2022-03-26 12:53:28 +01:00
Ell 4e122175b2 Allow ElementHelper's KeybindButton to accept a Keybind for clearing a combination 2022-03-26 12:41:19 +01:00
Ell c6fe72bdc9 Multiple improvements to InputHandler key/button repeats:
- Trigger InputHandler key and gamepad repeats for the most recently pressed input
- Added InputHandler.TryGetDownTime and store the down times of inputs
- Removed InputHandler.StoreAllActiveInputs and always store all active inputs
2022-03-25 15:18:57 +01:00
Ell c5b2b8798e Fixed dropdowns with some non-selectable children failing to navigate when using gamepad controls 2022-03-17 20:46:49 +01:00
Ell 1f4f0cfa44 Fixed Element.IsSelected returning incorrect results when CanBeSelected changes 2022-03-17 20:45:28 +01:00
Ell 4aff5a2875 Fixed RootElement.CanSelectContent returning incorrect results when CanBeSelected changes in children 2022-03-17 20:36:30 +01:00
Ell bb22bbdf75 Fixed children of Panel scroll bars also being scrolled 2022-03-17 20:04:58 +01:00
Ell fa34258bbe Added UiControls.AutoNavModeChanged event 2022-03-14 16:12:51 +01:00
Ell 8fa94f1186 improve gamepad priority calculation 2022-03-14 15:59:22 +01:00
Ell d5f3453c71 combine distance and angle for gamepad ui navigation 2022-03-14 15:39:32 +01:00
Ell b77edd80d5 Allow specifying a custom position for a tooltip to snap to 2022-03-14 14:20:12 +01:00
Ell f166c3d256 Fixed buttons and checkboxes changing their CanBeSelected and CanBePressed values when being disabled 2022-03-11 13:25:18 +01:00
Ell 2c90ca9b89 Fixed UiControls allowing for non-selectable or non-mouseable elements to be marked as selected or moused 2022-03-11 12:29:56 +01:00
Ell cd32372994 fixed 0f4e67f20f 2022-03-10 18:39:35 +01:00
Ell 0f4e67f20f Fixed auto-navigating panels not scrolling to the center of elements properly 2022-03-10 18:04:36 +01:00
Ell 96f0c51757 Added RectangleF.DistanceSquared and RectangleF.Distance 2022-03-10 16:03:09 +01:00
Ell 7c18aad8f7 Improve dropdown opening gamepad navigation (in relation to cb8fed87e5) 2022-03-10 15:04:52 +01:00
Ell a14a37cb91 Prefer elements that have the same parent as the currently selected element when using gamepad navigation 2022-03-10 15:00:42 +01:00
Ell 45955bb5e8 Improved gamepad navigation by employing angles between elements 2022-03-10 14:25:41 +01:00
Ell cb8fed87e5 Automatically select the first element when a dropdown is opened in auto nav mode 2022-03-10 13:50:47 +01:00
Ell 67388c106b allow retrieving a keybind button's active state 2022-03-10 13:08:49 +01:00
Ell 48a4aa0588 Some keybind and keybind button improvements 2022-03-10 12:39:56 +01:00
Ell d5ec0b8001 Allow setting a default color for clickable links in UiStyle 2022-03-07 12:00:33 +01:00
Ell 48b96a10a4 Added InputHandler mouse and touch position querying that preserves the game's viewport and fixed the graphics device's viewport being ignored for mouse and touch queries
Closes #1
2022-02-06 22:07:33 +01:00
Ell ad2784a67e Automatically update all elements when changing a ui system's viewport 2022-02-06 21:16:35 +01:00
Ell ed88862194 Marked BeginDelegate and BeginImpl as obsolete 2022-02-02 18:17:53 +01:00
Ell c880c3e011 Update elements less aggressively when changing a ui system's style 2022-01-30 16:56:07 +01:00
Ell a143aef67c Revert scissor rectangle change since it doesn't support panels with complex transformations
Revert "Use a scissor rectangle for panels in favor of a render target, and marked UiSystem.DrawEarly and Element.DrawEarly as obsolete"

This reverts commit 3c4567e4a1.

Revert "cleaned up DrawEarly documentation references"

This reverts commit dc6c472b84.
2022-01-30 16:35:10 +01:00
Ell dc6c472b84 cleaned up DrawEarly documentation references 2022-01-30 12:20:32 +01:00
Ell 3c4567e4a1 Use a scissor rectangle for panels in favor of a render target, and marked UiSystem.DrawEarly and Element.DrawEarly as obsolete 2022-01-30 01:13:59 +01:00
Ell f3e6df6862 Made custom values of Element.Style persist when a new ui style is set 2022-01-22 23:34:52 +01:00
Ell 94b6aa0d1b Marked StyleProp equality members as obsolete 2022-01-22 23:20:04 +01:00
Ell faa400c4e6 Added Element.OnStyleInit event 2022-01-22 23:05:29 +01:00
Ell dbf370c968 Allow setting a default text alignment for paragraphs in UiStyle 2022-01-22 22:54:47 +01:00
Ell 80a6c6b5e2 Avoid unnecessary panel updates by using an Epsilon comparison when scrolling children 2022-01-09 01:15:05 +01:00
Ell c28f6d858c Ensure that a panel gets notified of all relevant changes by calling OnChildAreaDirty for all grandchildren 2022-01-09 01:12:16 +01:00
Ell 68fc02b170 Fixed paragraph links having incorrect hover locations when using special text alignments 2022-01-07 20:50:32 +01:00
Ell 6e75e9ebb4 ensure that the paragraph changes occur when new links are added 2022-01-07 17:15:03 +01:00
Ell b46975391b Only set a paragraph's area dirty when a text change would cause it to change size 2022-01-06 23:26:14 +01:00
Ell 29bbd61f8b reformat and cleanup 2021-12-28 14:56:11 +01:00
Ell 7e49eaef10 Allow for checkboxes and radio buttons to be disabled 2021-12-24 12:10:04 +01:00
Ell c060d78010 put StringBuilder overloads to use 2021-12-22 13:03:40 +01:00
Ell dae511e455 Made StyleProp immutable 2021-12-21 11:54:32 +01:00
Ell c0ce5a07ad Implemented IEquatable on a lot of classes that were missing it 2021-12-21 11:39:29 +01:00
Ell 3541b8d3e1 Automatically set area dirty when changing child padding or paragraph fonts 2021-12-21 00:01:57 +01:00
Ell 79354c444b fixed exception when elements get removed from their ui in Update 2021-12-14 13:42:31 +01:00
Ell 60dfbb1ec5 Added UiMetrics 2021-12-12 12:32:09 +01:00
Ell 55fae16768 Allow overriding SetAreaAndUpdateChildren and switch to using it in some locations 2021-12-11 17:39:49 +01:00
Ell 103d7c7503 Added a SquishingGroup element to MLEM.Ui 2021-12-11 17:26:55 +01:00
Ell 28a928ec2c Revert "Added PreventSiblingSpill to Element"
This reverts commit 3c74cc4845.
2021-12-11 01:04:35 +01:00
Ell 3c74cc4845 Added PreventSiblingSpill to Element 2021-12-11 00:36:50 +01:00
Ell 636522bc3e resolved some documentation warnings 2021-11-30 11:46:06 +01:00
Ell 53b93a34f8 Made TextFormatter string size based on the currently active font and added a formatting code to allow for inline font changes 2021-11-27 22:45:37 +01:00
Ell 84a6e5a29a Fixed some end-of-line inconsistencies when using the Right text alignment 2021-11-22 18:52:52 +01:00
Ell 84e2544dc8 Allow setting a custom effect and depth stencil state for ui drawing 2021-11-22 17:42:08 +01:00
Ell 5b99f29490 Fixed some inconsistencies with element transformations and mouse interaction 2021-11-22 15:13:08 +01:00
Ell 91d34c0a83 Remember the location that a scroll bar scroller was grabbed in when scrolling 2021-11-14 21:32:13 +01:00
Ell 2a7dc119eb Removed ScrollBar ScrollerOffset (which didn't actually work) 2021-11-14 21:04:50 +01:00
Ell cd48ad6e2a ensure that child padding stays consistent if ScrollerSize gets updated 2021-11-14 20:28:53 +01:00
Ell 9cd72e9b4e Fixed panels that don't auto-hide their scroll bars ignoring their width for child padding 2021-11-14 19:50:24 +01:00
Ell 1fa9204680 added a style property for a panel's scroll bar offset 2021-11-11 16:43:27 +01:00
Ell dc15a9139f added a bound check for the auto-calculated scroller size 2021-11-08 02:11:05 +01:00
Ell 6d554faaac mark panel children dirty when the scroll bar's max value (the height of the children) changes 2021-11-08 02:06:50 +01:00
Ell 3d0250bf86 Calculate panel scroll bar height based on content height 2021-11-08 02:02:59 +01:00
Ell ae559adf26 remove "see href" from xml docs since some IDEs can't display that 2021-11-06 23:42:23 +01:00
Ell 8e83cc06a6 Added JsonTypeSafeWrapper and JsonTypeSafeGenericDataHolder 2021-11-06 23:38:21 +01:00
Ell 778d416774 mark panel's relevant children dirty when the render target changes 2021-11-05 23:28:32 +01:00
Ell 543201d178 ensure that relevant panel children are updated when children are changed 2021-11-05 23:22:39 +01:00
Ell cf48fc372e skip unnecessary relevant children updates for panels 2021-11-01 22:58:37 +01:00
Ell 149669df99 fixed up Element docs and added a return value to UpdateAreaIfDirty 2021-11-01 15:29:59 +01:00
Ell f2939253b1 Skip unnecessary area updates for elements with dirty parents 2021-11-01 13:39:37 +01:00
Ell 60bd73017c period consistency 2021-11-01 01:21:53 +01:00
Ell ca89d03ca4 Some more ui style improvements 2021-10-30 15:33:38 +02:00
Ell 3648352540 organized MLEM.Ui properties and fields slightly 2021-10-30 15:01:04 +02:00
Ell 0809cd0218 Added style properties for a lot of hardcoded default element styles 2021-10-29 23:33:15 +02:00
Ell 9ddc1f6975 Made Image ScaleToImage take ui scale into account 2021-10-29 17:11:45 +02:00
Ell 2be39a740e improve handling of arbitrary Epsilon values 2021-10-28 23:26:42 +02:00
Ell 45f970e0f2 added vertical movement to multiline text fields 2021-10-13 17:13:56 +02:00
Ell 5f2eb1845f Fixed text not being pasted into a text field at all if it contains characters that don't match the input rule 2021-10-12 19:58:31 +02:00
Ell a47318c0a2 improved text field multi line handling 2021-10-12 18:28:06 +02:00
Ell 1d462b0252 fixed some multiline editing issues 2021-10-12 02:46:24 +02:00
Ell 11dd939009 Added a multiline editing mode to TextField 2021-10-12 02:16:09 +02:00
Ell 8f5d3083b5 Allow specifying a maximum amount of characters for a TextField 2021-10-11 23:35:50 +02:00
Ell f021215066 fixed VerticalSpace height parameter being an integer 2021-10-01 03:42:27 +02:00
Ell 41b924ef34 Fixed rounding errors causing AutoInline elements to be pushed into the next line with some ui scales 2021-09-24 16:35:53 +02:00
Ell a140e85300 fixed Docs casing in readme path 2021-09-24 04:50:42 +02:00
Ell a53939837f added package readmes 2021-09-24 04:47:39 +02:00
Ell 1bbb12a1fa clarified auto-size exception in elements 2021-09-09 17:02:29 +02:00
Ell 9890c4895c Fixed tooltips not displaying correctly with auto-hiding paragraphs 2021-09-09 16:53:12 +02:00
Ell 51833d523d Improved CopyExtensions construction speed 2021-08-05 03:59:14 +02:00
Ell a9a7f2b421 Revert "(attempt to) reduce element sizing incompatibilities for auto-width/height elements"
This reverts commit 094de058c4.
2021-08-05 03:47:03 +02:00
Ell 094de058c4 (attempt to) reduce element sizing incompatibilities for auto-width/height elements 2021-08-05 03:40:47 +02:00
Ell 8fac4a0b69 Allow adding Link children to non-Paragraph elements 2021-07-24 07:36:42 +02:00
Ell 01bec459de disallow creating Paragraphs without fonts 2021-07-22 04:51:41 +02:00
Ell bb9b322580 Fixed tooltips with custom text scale not snapping to the mouse correctly in their first displayed frame 2021-07-22 04:27:57 +02:00
Ell 527c4af3e4 updated dependencies 2021-07-20 00:55:36 +02:00
Ell 1067055bb5 code cleanup 2021-07-19 23:49:16 +02:00
Ell abac738123 Removed LINQ Any and All usage in various methods to improve memory usage 2021-07-18 22:18:46 +02:00
Ell 6aa9ec03d4 Added customizable overloads for Keybind, Combination and GenericInput ToString methods 2021-07-13 15:41:42 +02:00
Ell bb189261d7 Added a masking character to text fields 2021-07-08 18:17:39 +02:00
Ell d1b229b589 moved sound classes into /Sound 2021-07-05 16:36:48 +02:00