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
1d462b0252
fixed some multiline editing issues
2021-10-12 02:46:24 +02:00
11dd939009
Added a multiline editing mode to TextField
2021-10-12 02:16:09 +02:00
8f5d3083b5
Allow specifying a maximum amount of characters for a TextField
2021-10-11 23:35:50 +02:00
f021215066
fixed VerticalSpace height parameter being an integer
2021-10-01 03:42:27 +02:00
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
a140e85300
fixed Docs casing in readme path
2021-09-24 04:50:42 +02:00
a53939837f
added package readmes
2021-09-24 04:47:39 +02:00
1bbb12a1fa
clarified auto-size exception in elements
2021-09-09 17:02:29 +02:00
9890c4895c
Fixed tooltips not displaying correctly with auto-hiding paragraphs
2021-09-09 16:53:12 +02:00
51833d523d
Improved CopyExtensions construction speed
2021-08-05 03:59:14 +02:00
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
094de058c4
(attempt to) reduce element sizing incompatibilities for auto-width/height elements
2021-08-05 03:40:47 +02:00
8fac4a0b69
Allow adding Link children to non-Paragraph elements
2021-07-24 07:36:42 +02:00
01bec459de
disallow creating Paragraphs without fonts
2021-07-22 04:51:41 +02:00
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
527c4af3e4
updated dependencies
2021-07-20 00:55:36 +02:00
1067055bb5
code cleanup
2021-07-19 23:49:16 +02:00
abac738123
Removed LINQ Any and All usage in various methods to improve memory usage
2021-07-18 22:18:46 +02:00
6aa9ec03d4
Added customizable overloads for Keybind, Combination and GenericInput ToString methods
2021-07-13 15:41:42 +02:00
bb189261d7
Added a masking character to text fields
2021-07-08 18:17:39 +02:00
d1b229b589
moved sound classes into /Sound
2021-07-05 16:36:48 +02:00
642608a8a2
Fixed a crash if a paragraph has a link formatting code, but no font
2021-07-03 01:50:37 +02:00
19893855dc
added the changelog to the website
2021-07-01 05:00:59 +02:00
fe9b3830f8
(finally) added a changelog
2021-06-28 15:38:30 +02:00
1377941f1a
added TreatSizeAsMaximum to ui elements
2021-06-25 16:48:41 +02:00
14940d39c5
added text alignment options to tokenized strings and paragraphs
2021-06-25 15:23:30 +02:00
ef83124cfa
allow changing the color of panels
2021-06-22 01:14:06 +02:00
ce920b5219
added an element helper method to create a keybind button
2021-06-21 00:49:09 +02:00
a5a73af01c
improved Keybind constructors
2021-06-20 23:48:02 +02:00
cca02b5396
organized UiSystem constructor
2021-06-09 00:37:44 +02:00
a02334a34c
turned some non-event events into events and added Disposing event to ui elements
2021-06-09 00:27:50 +02:00
2cc77f42cd
added events for when a root element is added or removed from a ui
2021-06-08 21:36:42 +02:00
e0a9971bdb
added DynamicEnum to MLEM.Data
2021-06-08 13:32:01 +02:00
20e2d098ef
suppress finalize for manually disposed panels
2021-06-08 00:32:07 +02:00
0dad4860c1
dispose of the panel's render target
2021-06-08 00:29:51 +02:00
ed02a83879
fixed panels drawing children early within the render target
2021-06-07 23:14:50 +02:00
289e0e8597
added a simple way to change the action that is executed when a link is pressed inside a paragraph
2021-05-30 17:57:39 +02:00
d385581c25
added formatted string truncation to tokenized strings and ui paragraphs
2021-05-18 16:47:38 +02:00
f94d471365
explicitly disallow auto-sizing incompatibilities to make debugging easier
2021-04-27 21:17:06 +02:00
f60c3b288a
also apply auto-sizing if the element has no children at all
2021-04-26 19:21:11 +02:00
2abc3264a2
simplify auto-size checks
2021-04-26 19:06:54 +02:00
7792ce99c8
fixed auto-sized elements without children not being updated correctly
2021-04-26 18:55:18 +02:00
b48ed479a0
streamlined TextInputWrapper into MlemPlatform and included link opening
2021-04-23 00:17:46 +02:00
1123b815b3
updated some package declarations to clean up warnings
2021-04-22 19:59:35 +02:00
338cf383f4
removed RequiresOnScreenKeyboard
2021-04-22 19:40:14 +02:00
cf9bcc7ae4
updated to MonoGame 8 and added support for opening the on-screen keyboard to TextInputWrapper
2021-04-22 19:26:07 +02:00
8078d41724
simplified GenericFont implementation
2021-04-19 14:02:28 +02:00
2055c3a6ef
convert tests to use graphics
2021-04-02 17:12:27 +02:00
e7fd026a33
added some UI tests
2021-04-01 19:36:56 +02:00
82b8c0ab49
fixed a rare stack overflow where scroll bars could get stuck in an auto-hide loop
2021-03-29 08:28:49 +02:00
b1ff703fe1
reintroduced tolerance for element size equality
2021-03-29 06:56:06 +02:00
79ba6864e7
fixed stack overflow with nested auto-sized children
2021-03-29 06:41:38 +02:00
3e20aaf6c5
fixed auto-sized elements doing unnecessarily many area updates
2021-03-29 05:49:09 +02:00
e6243b831c
remove unnecessary references to GraphicsDevice from UiSystem
2021-03-29 02:26:44 +02:00
28eafffa32
allow setting a custom viewport for ui systems
2021-03-29 02:15:17 +02:00
602f19a2a8
some minor code style and format improvements
2021-03-24 22:44:39 +01:00
5f7956a7a3
properly stop a panel's scroll bar from being removed
2021-03-24 22:01:02 +01:00
be9748e70e
fully disallow access to internal children collections
2021-03-24 01:39:41 +01:00
dcee3c5010
added an option to limit auto-heights in elements
2021-03-24 01:25:39 +01:00
3d314172d0
avoid recursion in Element.ForceUpdateArea
2021-03-24 01:10:42 +01:00
3384f48623
fixed up android demo, updated some dependencies and added icons to templates
2021-03-14 01:03:17 +01:00
d73539e41e
added a text scale multiplier to Paragraph
2021-02-28 14:43:07 +01:00
01b6168259
fixed the input handler querying input when the window is inactive
2021-02-18 18:36:29 +01:00
7619ac0dcf
added an extension method for adding tooltip for elements
2021-02-18 04:16:17 +01:00
9146d7f2ba
disallow removing the scroll bar from a panel
2021-02-07 18:30:56 +01:00
fc9b93b129
Fixed a NRE with tooltips
2021-01-20 06:41:52 +01:00
e783f4f769
added a Tooltip constructor that uses TextCallback for the paragraph
2021-01-11 00:09:29 +01:00
106102adf6
clean up unused using statements
2020-12-14 21:51:27 +01:00
b963941b5c
added methods for adding/removing tooltips easily
2020-12-05 22:42:10 +01:00
56db897c00
allow tooltips to appear later
2020-12-05 16:42:21 +01:00
028e322d2f
ensure opening links in uis works correctly on .net core
2020-11-25 18:41:53 +01:00
c4114c73f8
fixed tooltip distance from the mouse changing with scale
2020-11-17 21:05:48 +01:00
6c3e9116ff
return the element added by Dropdown
2020-11-08 18:16:12 +01:00
fd9ad777c2
some fixes related to the branch name change
2020-11-07 00:58:43 +01:00
f6c4d83775
fixed panel element detection being incorrect if scrolling overflow is enabled
2020-11-05 01:16:01 +01:00
1a2fc814aa
initialize the tooltip color to white
2020-10-31 17:55:46 +01:00
e7f2c8eca4
added a separate style property for tooltip text color
2020-10-31 17:42:39 +01:00
aaeda825e0
fixed some documentation issues
2020-10-06 20:14:57 +02:00
5bcfcaf3cb
fixed Paragraph autoAdjustWidth parameter name
2020-09-30 22:49:09 +02:00
8b29903444
Replace ImageCode and TextField character ToString usage with ToCachedString for memory performace
2020-09-28 20:43:37 +02:00
aa064812fc
removed obsolete CustomDrawGroup
2020-09-27 16:25:41 +02:00
333b4b033e
Added a fail-safe for elements with conflicting auto-sizing settings so that they don't cause a cryptic stack overflow
2020-09-23 00:41:24 +02:00
eeedb0ae5c
also don't display the tooltip if all o its children are hidden
2020-09-18 18:19:05 +02:00
fde243ed8b
only display the tooltip if there is anything in it
2020-09-18 18:11:46 +02:00
7e89efec69
added text field input rules for file and path names
2020-09-13 18:05:55 +02:00
90d7aeb633
added a default text color to UiStyle
2020-09-13 18:00:19 +02:00
Ellpeck
e80eb17b22
fixed incorrect icon link
2020-07-29 14:41:46 +02:00
Ellpeck
00ce8bb229
fixed y offset not affecting elements with AutoInlineIgnoreOverflow anchor
2020-07-25 23:39:37 +02:00
Ellpeck
411d3c1cd9
allow for the transformation matrix to modify mouse positions
2020-07-20 14:18:26 +02:00
Ellpeck
abffa4db57
fixed an element transform issue and added a fancy button to the ui demo
2020-07-20 00:28:31 +02:00
Ellpeck
ec2416719e
store all ui controls keybinds in an array
2020-07-16 16:04:18 +02:00
Ellpeck
02cd074a3c
cleaned up changes from f1d686f0c0
2020-07-16 15:55:55 +02:00
Ellpeck
f1d686f0c0
move CustomDrawGroup behavior into Element, allowing any element to inherit it
2020-07-15 23:21:52 +02:00
Ellpeck
9d5e9d4ccf
tidied up paragraph link code
2020-06-30 00:49:42 +02:00
Ellpeck
ca4c8731bc
only throw an exception in TextInputWrapper if it is required
2020-06-24 16:54:23 +02:00
Ellpeck
096131ce15
Drop SoundEffectInstance (mis)usage in favor of new SoundEffectInfo
2020-06-22 13:59:33 +02:00
Ellpeck
7dc08afa5a
made UiStyle's ActionSound a SoundEffectInstance to allow for volume/pitch changes
2020-06-22 13:23:02 +02:00
Ellpeck
64b9246aa5
clean up GenericFont changes
2020-06-20 12:12:34 +02:00
Ellpeck
90e0ff55d1
use a custom character for image codes rather than trying to calculate spaces
2020-06-20 01:18:27 +02:00
Ellpeck
deec553b22
code cleanup
2020-06-18 17:24:35 +02:00
Ellpeck
71dabe7360
use specific check instead of generic one for panel fix
2020-06-17 01:44:16 +02:00
Ellpeck
2d332c3a48
allow panel children to be ordered arbitrarily rather than requiring the scroll bar in the first index
2020-06-17 01:43:08 +02:00
Ellpeck
914761519f
expose a property in ScrollBar determining if we're currently scrolling it
2020-06-16 22:51:31 +02:00
Ellpeck
0ad3b2a305
Downgrade TextCopy since the new version causes issues on some devices
2020-06-16 22:48:13 +02:00
Ellpeck
0ea22435c2
updated dependencies
2020-06-13 03:19:20 +02:00
Ellpeck
0a8a3c3660
removed some obsolete features
2020-06-12 17:19:19 +02:00
Ellpeck
251261f3d7
added a more generic keybind and input handling system
2020-06-12 17:09:35 +02:00
Ellpeck
601423407d
added PreventParentSpill to Element
2020-06-12 02:04:01 +02:00
Ellpeck
f2c544dc65
modified link behavior for paragraphs to be easier to modify
2020-06-09 18:56:01 +02:00
Ellpeck
1d38262388
only use nbsp in image codes if the font supports it
2020-06-04 22:18:53 +02:00
Ellpeck
6b1e5f8dd9
better implementation of the touch mousing from yesterday
2020-06-04 20:52:21 +02:00
Ellpeck
81ed3d3bee
Revert "made elements also show their mouse over graphic when they're being touched"
...
This reverts commit d7f43617
2020-06-03 17:01:58 +02:00
Ellpeck
f70b1266f9
Revert "only count an element as touched if no other gestures are active"
...
This reverts commit 08188a1a
2020-06-03 16:18:17 +02:00
Ellpeck
08188a1a8f
only count an element as touched if no other gestures are active
2020-06-03 16:14:45 +02:00
Ellpeck
d7f43617c6
made elements also show their mouse over graphic when they're being touched
2020-06-03 15:58:08 +02:00
Ellpeck
79e0e1a63e
added percentage sizing based on own data to element
2020-06-02 23:00:40 +02:00
Ellpeck
b0309c9707
added ScaleOrigin to RootElement
2020-06-02 16:15:41 +02:00
Ellpeck
95917e08d6
only mark element parent dirty when setting priority if it actually changed
2020-06-02 13:40:05 +02:00
Ellpeck
c7de0322b0
sanity check for panel render target size
2020-06-01 21:34:55 +02:00
Ellpeck
6c03ef2bd9
fixed hidden panels trying to update, causing a crash
2020-05-30 22:48:09 +02:00
Ellpeck
b270fe3977
made link clusters be selected properly
2020-05-27 15:19:17 +02:00