1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-22 20:58:34 +01:00
Commit graph

337 commits

Author SHA1 Message Date
Ell
797a3b2617 Improved the way InputHandler down time calculation works 2022-11-08 17:12:37 +01:00
Ell
8469185297 Added GetDownTime, GetUpTime and GetTimeSincePress to Keybind and Combination 2022-11-08 16:43:32 +01:00
Ell
cc749103e0 Allow specifying percentage-based padding for a NinePatch 2022-11-03 18:16:59 +01:00
Ell
d138577285 Added trimming and AOT annotations and made MLEM trimmable 2022-10-31 18:33:53 +01:00
Ell
f58e3c94d5 Marked EnumHelper and DynamicEnum as obsolete due to their reimplementation in the DynamicEnums library 2022-10-31 13:20:26 +01:00
Ell
8745a3237e Added DynamicEnum IsDefined and EnumHelper and DynamicEnum GetUniqueFlags 2022-10-26 23:34:30 +02:00
Ell
7ab76d239d Added EnumHelper and DynamicEnum GetFlags 2022-10-26 15:02:33 +02:00
Ell
17ce7b668d Added the ability to add additional regions to a RuntimeTexturePacker after packing 2022-10-20 23:59:42 +02:00
Ell
627350ca31 Added ElementHelper.MakeGrid 2022-10-17 10:57:41 +02:00
Ell
8d689952cc Made GenericFont and TokenizedString support UTF-32 characters like emoji 2022-10-15 13:48:45 +02:00
Ell
560c797b87 Fixed InputHandler and UiControls maintaining old input states when input types are toggled off 2022-10-10 19:29:01 +02:00
Ell
d6309ce9c1 Added the ability to find paths to one of multiple goals using AStar 2022-10-10 11:31:23 +02:00
Ell
d3b153fd45 Cleaned up AStar code 2022-10-09 22:38:10 +02:00
Ell
0b6e6743cf some more AStar improvements 2022-10-09 21:04:39 +02:00
Ell
3e4c4e566d Merge remote-tracking branch 'origin/main' 2022-10-09 20:07:51 +02:00
Ell
bfa4ab4ac2 Added the ability to include special per-position directions in AStar pathfinding 2022-10-09 20:07:38 +02:00
Ell
92f9164256 Added Panel.ScrollToElement 2022-09-24 18:46:33 +02:00
Ell
d6a51776e5 Fixed the scroll bar of an empty panel being positioned incorrectly 2022-09-24 11:04:23 +02:00
Ell
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
Ell
48735c3d36 Multi-target net452, making MLEM compatible with MonoGame for consoles 2022-09-14 21:17:43 +02:00
Ell
7d8b14ee8d added from instruction to DataTextureAtlas 2022-09-14 11:59:28 +02:00
Ell
914b0d9c2d - Improved DataTextureAtlas parsing
- Added data and copy instructions to DataTextureAtlas
2022-09-14 10:40:52 +02:00
Ell
a6fd2c052e Added ScrollBar.MouseDragScrolling
Closes #5
2022-09-13 16:14:36 +02:00
Ell
d0c805cf18 Fixed Element.OnChildAdded and Element.OnChildRemoved being called for grandchildren when a child is added 2022-09-13 15:44:12 +02:00
Ell
55735b4c64 Added Element.OnAddedToUi and Element.OnRemovedFromUi 2022-09-13 14:27:49 +02:00
Ell
b4e1b00c88 finished static sprite batch optimizations 2022-09-12 23:51:12 +02:00
Ell
742bc52437 First pass at drastically improving StaticSpriteBatch batching performance 2022-09-12 21:51:21 +02:00
Ell
d6e7c1086d Discard old data when updating a StaticSpriteBatch 2022-09-12 21:13:43 +02:00
Ell
2d3d93c610 Generified UiMarkdownParser by adding abstract UiParser 2022-09-04 12:26:55 +02:00
Ell
023233a062 Fixed some TokenizedString tokens starting with a line break not being split correctly 2022-09-02 14:07:23 +02:00
Ell
0fe4c940d7 Fixed TokenizedString handling trailing spaces incorrectly in the last line of non-left aligned text 2022-09-02 13:58:12 +02:00
Ell
32dad847a0 adAdded TokenizedString.Realign 2022-09-02 13:42:21 +02:00
Ell
6a271af017 Fixed UiMarkdownParser not parsing formatting in headings and blockquotes 2022-08-19 17:57:44 +02:00
Ell
af0aee6c40 Added Element.AutoSizeAddedAbsolute to allow for more granular control of auto-sizing 2022-08-16 14:20:32 +02:00
Ell
e50d28ce11 Allow using external gesture handling alongside InputHandler through ExternalGestureHandling 2022-08-11 11:37:41 +02:00
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
8332f56237 improved changelog md formatting 2022-08-04 20:44:54 +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
b2898a8eae Made RuntimeTexturePacker restore texture region name and pivot when packing 2022-08-03 10:37:59 +02:00
Ell
b012c65990 Allow data texture atlas pivots and offsets to be negative 2022-08-02 23:56:18 +02:00
Ell
72647a2edf Fixed data texture atlases not allowing most characters in their region names 2022-08-02 23:02:34 +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
f0cc4b0c80 Allow elements to auto-adjust their size even when their children are aligned oddly 2022-07-27 11:19:40 +02:00
Ell
b78465c054 bump upcoming version 2022-07-25 18:56:21 +02:00
Ell
9b090c954f 6.0.0 2022-07-25 18:44:16 +02:00
Ell
711f60a97e Updated demos and templates to MonoGame 3.8.1 2022-07-25 18:23:16 +02:00
Ell
48dfa8f1ee Allow RandomExtensions to operate on any ICollection 2022-07-19 15:20:19 +02:00
Ell
ba1058748e Allow specifying multiple names for a DataTextureAtlas region 2022-07-18 20:41:19 +02:00
Ell
08e28cb95b Allow manually setting a RootElement as CanBeActive 2022-07-18 15:53:26 +02:00
Ell
d32bc0cbfb Added TryGetUpTime, GetUpTime, TryGetTimeSincePress and GetTimeSincePress to InputHandler 2022-06-29 15:57:41 +02:00
Ell
6e2c2b3730 Improved the way terminating formatting codes work by introducing SimpleEndCode 2022-06-26 15:08:11 +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
87b575b5c3 bump major version and cleaned up readme 2022-06-24 21:39:53 +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
1795acb30e Added GenericInput support for Buttons.None 2022-06-15 11:44:28 +02:00
Ell
59af00c89a Code cleanup, and marked AStar.InfiniteCost as obsolete 2022-06-15 11:38:11 +02:00
Ell
f53305ce42 Added UiMarkdownParser 2022-06-13 23:52:10 +02:00
Ell
d03116a49a Allow using multiple textures in a StaticSpriteBatch 2022-06-08 11:05:18 +02:00
Ell
7d9633d989 Fixed StaticSpriteBatch not resetting its texture when all items are removed 2022-06-07 11:57:25 +02:00
Ell
42993f1a0b Added LayerPositionF to MLEM.Extended 2022-06-06 23:50:13 +02:00
Ell
16053d9d04 further improve runtime texture packer performance by caching the first possible position for a request of a given size 2022-05-28 21:21:25 +02:00
Ell
cb496f613f Improve RuntimeTexturePacker performance by checking against packed textures in the same order as packing 2022-05-27 11:02:33 +02:00
Ell
951f4babd5 Fixed gamepad auto-nav angle being incorrect for some elements 2022-05-26 11:39:55 +02:00
Ell
b9f2de8290 Made RuntimeTexturePacker padding be per request and improve performance by caching texture data 2022-05-25 13:18:25 +02:00
Ell
f0f1d7f8ed added runtime texture region padding and other improvements 2022-05-25 12:37:51 +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
bd9d3f970b Added RandomPitchModifier and GetRandomPitch to SoundEffectInfo 2022-05-20 16:59:28 +02:00
Ell
161d44dbe0 Added an Enum constructor to GenericInput 2022-05-18 21:45:38 +02:00
Ell
30bcdc1710 Allow comparing Keybind and Combination based on the amount of modifiers they have 2022-05-18 18:50:00 +02:00
Ell
6dc4011ef5 Added optional isKeybindAllowed parameter to KeybindButton 2022-05-18 15:54:29 +02:00
Ell
5ba550619d Added AndThen to Easings 2022-05-10 21:32:28 +02:00
Ell
7ebbe49786 Added ReverseInput and ReverseOutput to Easings 2022-05-10 20:56:14 +02:00
Ell
874be1fd6e Fixed SoundEffectReader incorrectly claiming it could read ogg and mp3 files 2022-05-10 15:58:47 +02:00
Ell
47b58b1942 Premultiply textures when using RawContentManager 2022-05-07 21:39:36 +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
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
4a88cca8bf also added consuming variants of IsPressed to Keybind 2022-04-30 11:38:05 +02:00
Ell
46c77d2444 Added InputHandler.InvertPressBehavior 2022-04-29 15:34:04 +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
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
f445f59078 Added consuming variants of IsPressed methods to InputHandler 2022-04-11 10:33:41 +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
62d2b28ec0 bump version 2022-04-08 14:50:14 +02:00
Ell
a1c5b8e2d6 5.3.0 2022-04-08 14:37:25 +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
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
ae6ce6e7d5 Added properties and constructors for existing operator overloads to GenericInput 2022-03-26 12:51:14 +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
bb7192b3cc Fixed InputHandler.InputsPressed ignoring repeat events for keyboards and gamepads 2022-03-24 11:43:55 +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
5d97ab033f Added GamepadExtensions.GetAnalogValue to get the analog value of any gamepad button 2022-03-14 15:15:30 +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
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
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
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
af7c341d83 Added float version of GetRandomWeightedEntry 2022-02-23 14:35:35 +01:00
Ell
c360c90f28 Fixed Code.Draw receiving the index in the current line rather than the current token
Closes #3
2022-02-14 00:24:31 +01:00
Ell
856d69b7db Fixed a formatting Code only knowing about the last Token that it is applied in
Closes #3
2022-02-13 22:43:51 +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
f7cf9460d6 Renamed GenericFont.OneEmSpace to Emsp (and marked OneEmSpace as obsolete) 2022-01-24 11:16:23 +01:00
Ell
c7f021e62d Marked CopyExtensions as obsolete 2022-01-23 21:18:13 +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
58a0f8915a Preserve texture region names when converting between MLEM and MG.Extended 2022-01-22 16:55:46 +01:00
Ell
3edd593886 Added TextureRegion.OffsetCopy 2022-01-22 16:51:42 +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
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
a61d7a9722 fixed changelog order 2022-01-02 23:31:47 +01:00
Ell
2699d0e1c2 Fixed StaticSpriteBatch handling rotated sprites incorrectly 2022-01-02 22:58:01 +01:00
Ell
04fab568f8 Make Newtonsoft.Json dependency optional for MLEM.Data 2022-01-02 22:51:52 +01:00
Ell
b2b34abcd0 Rethrow exceptions when no RawContentManager readers could be constructed 2022-01-02 22:49:39 +01:00
Ell
b4f79f0753 Added SoundEffectInstanceHandler.Stop 2021-12-28 14:45:20 +01:00
Ell
7e49eaef10 Allow for checkboxes and radio buttons to be disabled 2021-12-24 12:10:04 +01:00