e5cfebef3b
cleaned up element addition/removal code
2022-11-24 19:46:20 +01:00
e21729de67
fixed some memory management issues in MLEM.Ui
2022-11-24 18:38:51 +01:00
d138577285
Added trimming and AOT annotations and made MLEM trimmable
2022-10-31 18:33:53 +01:00
f58e3c94d5
Marked EnumHelper and DynamicEnum as obsolete due to their reimplementation in the DynamicEnums library
2022-10-31 13:20:26 +01:00
791c66b098
code cleanup
2022-10-27 10:22:25 +02:00
627350ca31
Added ElementHelper.MakeGrid
2022-10-17 10:57:41 +02:00
560c797b87
Fixed InputHandler and UiControls maintaining old input states when input types are toggled off
2022-10-10 19:29:01 +02:00
92f9164256
Added Panel.ScrollToElement
2022-09-24 18:46:33 +02:00
d6a51776e5
Fixed the scroll bar of an empty panel being positioned incorrectly
2022-09-24 11:04:23 +02:00
e8710f69e9
Fixed an exception when trying to force-update the area of an element without a ui system
2022-09-19 15:02:36 +02:00
02cf01fcb7
added Append and Prepend to the net452 version for better code compatibility
2022-09-15 17:51:46 +02:00
9f60a59706
resolved some build warnings
2022-09-15 10:44:50 +02:00
48735c3d36
Multi-target net452, making MLEM compatible with MonoGame for consoles
2022-09-14 21:17:43 +02:00
fc026ad0de
multi-target netstandard2.0 and net6.0
2022-09-14 19:24:00 +02:00
a6fd2c052e
Added ScrollBar.MouseDragScrolling
...
Closes #5
2022-09-13 16:14:36 +02:00
d0c805cf18
Fixed Element.OnChildAdded and Element.OnChildRemoved being called for grandchildren when a child is added
2022-09-13 15:44:12 +02:00
55735b4c64
Added Element.OnAddedToUi and Element.OnRemovedFromUi
2022-09-13 14:27:49 +02:00
2d3d93c610
Generified UiMarkdownParser by adding abstract UiParser
2022-09-04 12:26:55 +02:00
0a696941dc
cleaned up code
2022-08-20 11:39:28 +02:00
6a271af017
Fixed UiMarkdownParser not parsing formatting in headings and blockquotes
2022-08-19 17:57:44 +02:00
af0aee6c40
Added Element.AutoSizeAddedAbsolute to allow for more granular control of auto-sizing
2022-08-16 14:20:32 +02:00
f0432ab981
Fixed panels sometimes not drawing children that came into view when their positions changed unexpectedly
2022-08-04 21:03:16 +02:00
b7b1490d70
Fixed paragraphs sometimes not updating their position properly when hidden because they're empty
2022-08-04 20:43:04 +02:00
4d34a2fac1
Fixed parents of elements that prevent spill not being notified properly
2022-08-04 20:14:29 +02:00
5aaba0c583
Close other dropdowns when opening a dropdown
2022-07-29 22:24:37 +02:00
8044cb59cb
Improved EnumHelper.GetValues signature to return an array
2022-07-29 19:52:01 +02:00
7a0464e8d6
fixed GetRightmostChild using the wrong variable for calculation
2022-07-27 11:52:28 +02:00
f0cc4b0c80
Allow elements to auto-adjust their size even when their children are aligned oddly
2022-07-27 11:19:40 +02:00
08e28cb95b
Allow manually setting a RootElement as CanBeActive
2022-07-18 15:53:26 +02:00
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
2973bd98e2
moved MLEM's Input namespace into its own package
2022-06-25 23:46:06 +02:00
42a87471fc
fixed UiSystem AutoScaleReferenceSize default value
2022-06-24 15:21:08 +02:00
5fcdda80dc
fixed multiline text inputs not working on FNA
2022-06-24 14:10:24 +02:00
5d7d238630
added MLEM.FNA
2022-06-24 14:01:26 +02:00
aff61508c4
Added TextInput class, which is an isolated version of MLEM.Ui's TextField logic
2022-06-19 18:17:46 +02:00
aabb1ed5df
added .editorconfig
2022-06-17 18:23:47 +02:00
59af00c89a
Code cleanup, and marked AStar.InfiniteCost as obsolete
2022-06-15 11:38:11 +02:00
d0ece92550
return the ElementType along with each Element in Parse
2022-06-14 00:08:05 +02:00
01fb5288ff
finished up UiMarkdownParser
2022-06-14 00:04:57 +02:00
7b1da2f1a7
fixed image base path not being applied properly
2022-06-13 23:59:56 +02:00
f53305ce42
Added UiMarkdownParser
2022-06-13 23:52:10 +02:00
951f4babd5
Fixed gamepad auto-nav angle being incorrect for some elements
2022-05-26 11:39:55 +02:00
fcca5300ae
Fixed elements' OnDeselected events not being raised when CanBeSelected is set to false while selected
2022-05-21 20:42:54 +02:00
15b873a8ad
fixed xml doc recursive reference
2022-05-18 16:01:24 +02:00
6dc4011ef5
Added optional isKeybindAllowed parameter to KeybindButton
2022-05-18 15:54:29 +02:00
03accff6ae
modify AutoNavGroup behavior to disallow new selections
2022-05-17 16:06:22 +02:00
acd15fea14
improved Ui and Data package descriptions
2022-05-10 15:42:20 +02:00
16b9e26969
Fixed elements sometimes staying hidden when they shouldn't in scrolling panels
2022-05-04 13:54:15 +02:00
98118e540a
Allow manually hiding a paragraph without its text overriding the hidden state
2022-05-04 13:22:24 +02:00
58b716aabb
Don't query a paragraph's text callback in the constructor
2022-05-03 20:26:39 +02:00
63d2353694
Improved ElementHelper.AddTooltip overloads
2022-05-03 20:10:26 +02:00
15a57d8db9
Turned Tooltip paragraph styling into style properties
2022-05-03 19:35:44 +02:00
5a1b31e8a3
Allow adding dropdown and tooltip elements at a specified index
2022-05-03 19:07:53 +02:00
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
bc0f9d5c0c
consume other UI inputs too
2022-04-30 12:26:40 +02:00
610527374e
Make use of the new consuming variants in InputHandler and Keybind to consume UiControls inputs
2022-04-30 12:14:08 +02:00
8adee49e55
fixed scroll bars not working with the new InvertPressBehavior
2022-04-30 11:31:40 +02:00
6393d879d9
added SpriteBatchContext
2022-04-25 15:25:58 +02:00
c78bafd000
Ensure that Element.IsMouseOver is always accurate by making it an auto-property
2022-04-15 14:18:55 +02:00
783da33107
Fixed elements not being deselected when removed through RemoveChild
2022-04-15 14:16:38 +02:00
be26a2ebc2
made the new AutoNavGroup also work for gamepad controls
2022-04-14 18:01:30 +02:00
45afd9ac79
Added Element.AutoNavGroup which allows forming groups for auto-navigation
2022-04-14 17:54:25 +02:00
ad29b46df3
Fixed radio buttons not unchecking all other radio buttons with the same root element
2022-04-14 17:45:01 +02:00
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
4854d420e0
Fixed delayed tooltips sometimes displaying in the wrong location for one frame
2022-04-05 14:54:20 +02:00
393bd9ffe5
Allow tooltips to display for elements when selected in auto-nav mode
2022-04-05 14:42:30 +02:00
30b4d5fc43
Improve f166c3d256
by allowing buttons to be selectable even when disabled
2022-04-05 14:20:38 +02:00
df0ad68837
Fixed tooltips sometimes ignoring manually set IsHidden values
2022-04-05 14:17:12 +02:00
94dec34470
render panel's render target in the Draw method
2022-03-26 21:13:05 +01:00
6a3c797eba
Fixed UiMetrics.ForceAreaUpdateTime being inaccurate for nested elements
2022-03-26 20:06:59 +01:00
3ad024b95a
fixed KeybindButton inheritdoc referencing itself
2022-03-26 12:53:28 +01:00
4e122175b2
Allow ElementHelper's KeybindButton to accept a Keybind for clearing a combination
2022-03-26 12:41:19 +01:00
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
c5b2b8798e
Fixed dropdowns with some non-selectable children failing to navigate when using gamepad controls
2022-03-17 20:46:49 +01:00
1f4f0cfa44
Fixed Element.IsSelected returning incorrect results when CanBeSelected changes
2022-03-17 20:45:28 +01:00
4aff5a2875
Fixed RootElement.CanSelectContent returning incorrect results when CanBeSelected changes in children
2022-03-17 20:36:30 +01:00
bb22bbdf75
Fixed children of Panel scroll bars also being scrolled
2022-03-17 20:04:58 +01:00
fa34258bbe
Added UiControls.AutoNavModeChanged event
2022-03-14 16:12:51 +01:00
8fa94f1186
improve gamepad priority calculation
2022-03-14 15:59:22 +01:00
d5f3453c71
combine distance and angle for gamepad ui navigation
2022-03-14 15:39:32 +01:00
b77edd80d5
Allow specifying a custom position for a tooltip to snap to
2022-03-14 14:20:12 +01:00
f166c3d256
Fixed buttons and checkboxes changing their CanBeSelected and CanBePressed values when being disabled
2022-03-11 13:25:18 +01:00
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
cd32372994
fixed 0f4e67f20f
2022-03-10 18:39:35 +01:00
0f4e67f20f
Fixed auto-navigating panels not scrolling to the center of elements properly
2022-03-10 18:04:36 +01:00
96f0c51757
Added RectangleF.DistanceSquared and RectangleF.Distance
2022-03-10 16:03:09 +01:00
7c18aad8f7
Improve dropdown opening gamepad navigation (in relation to cb8fed87e5
)
2022-03-10 15:04:52 +01:00
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
45955bb5e8
Improved gamepad navigation by employing angles between elements
2022-03-10 14:25:41 +01:00
cb8fed87e5
Automatically select the first element when a dropdown is opened in auto nav mode
2022-03-10 13:50:47 +01:00
67388c106b
allow retrieving a keybind button's active state
2022-03-10 13:08:49 +01:00
48a4aa0588
Some keybind and keybind button improvements
2022-03-10 12:39:56 +01:00
d5ec0b8001
Allow setting a default color for clickable links in UiStyle
2022-03-07 12:00:33 +01:00
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
ad2784a67e
Automatically update all elements when changing a ui system's viewport
2022-02-06 21:16:35 +01:00
ed88862194
Marked BeginDelegate and BeginImpl as obsolete
2022-02-02 18:17:53 +01:00
c880c3e011
Update elements less aggressively when changing a ui system's style
2022-01-30 16:56:07 +01:00
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
dc6c472b84
cleaned up DrawEarly documentation references
2022-01-30 12:20:32 +01:00
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
f3e6df6862
Made custom values of Element.Style persist when a new ui style is set
2022-01-22 23:34:52 +01:00
94b6aa0d1b
Marked StyleProp equality members as obsolete
2022-01-22 23:20:04 +01:00
faa400c4e6
Added Element.OnStyleInit event
2022-01-22 23:05:29 +01:00
dbf370c968
Allow setting a default text alignment for paragraphs in UiStyle
2022-01-22 22:54:47 +01:00
80a6c6b5e2
Avoid unnecessary panel updates by using an Epsilon comparison when scrolling children
2022-01-09 01:15:05 +01:00
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
68fc02b170
Fixed paragraph links having incorrect hover locations when using special text alignments
2022-01-07 20:50:32 +01:00
6e75e9ebb4
ensure that the paragraph changes occur when new links are added
2022-01-07 17:15:03 +01:00
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
29bbd61f8b
reformat and cleanup
2021-12-28 14:56:11 +01:00
7e49eaef10
Allow for checkboxes and radio buttons to be disabled
2021-12-24 12:10:04 +01:00
c060d78010
put StringBuilder overloads to use
2021-12-22 13:03:40 +01:00
dae511e455
Made StyleProp immutable
2021-12-21 11:54:32 +01:00
c0ce5a07ad
Implemented IEquatable on a lot of classes that were missing it
2021-12-21 11:39:29 +01:00
3541b8d3e1
Automatically set area dirty when changing child padding or paragraph fonts
2021-12-21 00:01:57 +01:00
79354c444b
fixed exception when elements get removed from their ui in Update
2021-12-14 13:42:31 +01:00
60dfbb1ec5
Added UiMetrics
2021-12-12 12:32:09 +01:00
55fae16768
Allow overriding SetAreaAndUpdateChildren and switch to using it in some locations
2021-12-11 17:39:49 +01:00
103d7c7503
Added a SquishingGroup element to MLEM.Ui
2021-12-11 17:26:55 +01:00
28a928ec2c
Revert "Added PreventSiblingSpill to Element"
...
This reverts commit 3c74cc4845
.
2021-12-11 01:04:35 +01:00
3c74cc4845
Added PreventSiblingSpill to Element
2021-12-11 00:36:50 +01:00
636522bc3e
resolved some documentation warnings
2021-11-30 11:46:06 +01:00
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
84a6e5a29a
Fixed some end-of-line inconsistencies when using the Right text alignment
2021-11-22 18:52:52 +01:00
84e2544dc8
Allow setting a custom effect and depth stencil state for ui drawing
2021-11-22 17:42:08 +01:00
5b99f29490
Fixed some inconsistencies with element transformations and mouse interaction
2021-11-22 15:13:08 +01:00
91d34c0a83
Remember the location that a scroll bar scroller was grabbed in when scrolling
2021-11-14 21:32:13 +01:00
2a7dc119eb
Removed ScrollBar ScrollerOffset (which didn't actually work)
2021-11-14 21:04:50 +01:00
cd48ad6e2a
ensure that child padding stays consistent if ScrollerSize gets updated
2021-11-14 20:28:53 +01:00
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
1fa9204680
added a style property for a panel's scroll bar offset
2021-11-11 16:43:27 +01:00
dc15a9139f
added a bound check for the auto-calculated scroller size
2021-11-08 02:11:05 +01:00
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
3d0250bf86
Calculate panel scroll bar height based on content height
2021-11-08 02:02:59 +01:00
ae559adf26
remove "see href" from xml docs since some IDEs can't display that
2021-11-06 23:42:23 +01:00
8e83cc06a6
Added JsonTypeSafeWrapper and JsonTypeSafeGenericDataHolder
2021-11-06 23:38:21 +01:00
778d416774
mark panel's relevant children dirty when the render target changes
2021-11-05 23:28:32 +01:00
543201d178
ensure that relevant panel children are updated when children are changed
2021-11-05 23:22:39 +01:00
cf48fc372e
skip unnecessary relevant children updates for panels
2021-11-01 22:58:37 +01:00
149669df99
fixed up Element docs and added a return value to UpdateAreaIfDirty
2021-11-01 15:29:59 +01:00
f2939253b1
Skip unnecessary area updates for elements with dirty parents
2021-11-01 13:39:37 +01:00
60bd73017c
period consistency
2021-11-01 01:21:53 +01:00
ca89d03ca4
Some more ui style improvements
2021-10-30 15:33:38 +02:00
3648352540
organized MLEM.Ui properties and fields slightly
2021-10-30 15:01:04 +02:00
0809cd0218
Added style properties for a lot of hardcoded default element styles
2021-10-29 23:33:15 +02:00
9ddc1f6975
Made Image ScaleToImage take ui scale into account
2021-10-29 17:11:45 +02:00
2be39a740e
improve handling of arbitrary Epsilon values
2021-10-28 23:26:42 +02:00
45f970e0f2
added vertical movement to multiline text fields
2021-10-13 17:13:56 +02:00
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
a47318c0a2
improved text field multi line handling
2021-10-12 18:28:06 +02:00