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

390 commits

Author SHA1 Message Date
Ellpeck
ca258fe41a made paragraphs and images use their callbacks when updating their area so that the first visible frame already has the right data 2019-12-19 14:04:50 +01:00
Ellpeck
c704aa6160 allow children to be reversed 2019-12-19 12:52:31 +01:00
Ellpeck
6faba05b24 made elements be able to set both width and height automatically 2019-12-19 12:50:50 +01:00
Ellpeck
8dcf3d8e63 made disabling scroll bar hiding easier for the panel 2019-12-14 14:10:38 +01:00
Ellpeck
dbe7980add made padding a lot more versatile in mlem.ui 2019-12-14 14:00:12 +01:00
Ellpeck
b8e73717f4 made panels update their draw area properly in drawearly 2019-12-12 22:56:49 +01:00
Ellpeck
1e62513e25 added a way to sort an element's children 2019-12-12 21:14:41 +01:00
Ellpeck
8d3afcf276 made CanSelectContent be set automatically by the root through adding more events 2019-12-08 21:49:15 +01:00
Ellpeck
7118e323b3 don't notify when moving to back or front 2019-12-07 18:41:58 +01:00
Ellpeck
31294f1873 added default color to button 2019-12-06 21:18:43 +01:00
Ellpeck
548e603900 made cameras snap right in small rooms and made panels not require a texture 2019-12-06 20:54:30 +01:00
Ellpeck
e75f87f4be update 2019-12-05 22:19:58 +01:00
Ellpeck
ff42233222 made input handler and ui system gamecomponents 2019-12-05 17:52:25 +01:00
Ellpeck
0c74dfc38e allow for ui element removal during its update 2019-12-05 14:59:53 +01:00
Ellpeck
bffcab3130 added onrootremoved and on rootadded events to ui system 2019-12-05 14:53:13 +01:00
Ellpeck
16c0424f65 don't type in hidden text fields 2019-12-04 01:32:00 +01:00
Ellpeck
f1702ee5b2 added a way to tell ui controls to ignore certain input types 2019-12-04 01:17:16 +01:00
Ellpeck
4888bb0fd7 made dropdowns only have high priority when opened and fixed panels sometimes ignoring priority 2019-11-18 22:36:55 +01:00
Ellpeck
89f957f8b6 set the area dirty when adding/removing ui elements 2019-11-18 02:20:09 +01:00
Ellpeck
47af6f992a update 2019-11-08 15:39:02 +01:00
Ellpeck
812b7c1f04 actually check left anchors for rightmost child instead of right anchors 2019-11-06 15:05:46 +01:00
Ellpeck
061f8279d7 get lowest elements towards the end of the list 2019-11-05 22:08:19 +01:00
Ellpeck
6340f75acc added SetWidthBasedOnChildren 2019-11-05 21:44:51 +01:00
Ellpeck
a5f6e83321 clean the element helper methods up a bit 2019-11-05 21:33:45 +01:00
Ellpeck
034aeec1e3 update 2019-11-05 13:52:17 +01:00
Ellpeck
aecf1a565e fixed setheightbasedonchildren causing stack overflow on uneven resolutions 2019-11-05 13:50:01 +01:00
Ellpeck
f1c9ba5517 fixed the panel updating its render target too often 2019-11-05 13:42:39 +01:00
Ellpeck
f28e234392 made style props a lot easier to use 2019-11-05 13:28:41 +01:00
Ellpeck
7f81f6469f fixed scroll bars still ceiling their values 2019-11-02 22:38:44 +01:00
Ellpeck
da04514d05 updeet 2019-11-02 15:06:58 +01:00
Ellpeck
32c8147a4c added a rectanglef class which allows mlem to use decimal coordinates 2019-11-02 14:53:59 +01:00
Ellpeck
cb7abbbbef fixed some panel issues 2019-11-02 14:21:42 +01:00
Ellpeck
3723c3ec97 updeet 2019-10-17 18:06:12 +02:00
Ellpeck
ee35509f23 made ui styling a lot more user friendly 2019-10-14 21:28:12 +02:00
Ellpeck
7392aa40fe update 2019-10-02 14:10:41 +02:00
Ellpeck
bc6ad3adef allow paragraph fonts to be changed 2019-09-26 22:28:48 +02:00
Ellpeck
36204e40cb turn some points into vectors for added precision 2019-09-26 22:16:21 +02:00
Ellpeck
84d5d3ab18 fixed elements' hover states being judged by their full areas 2019-09-26 19:36:15 +02:00
Ellpeck
401a89e295 fixed paragraphs not having their hidden property initialized at startup 2019-09-26 19:35:22 +02:00
Ellpeck
9e798f835c fixed position offset being ignored for inline components 2019-09-26 18:56:09 +02:00
Ellpeck
1ce08cce49 add a getter to the image component 2019-09-26 17:39:38 +02:00
Ellpeck
abef3cdf1a update 2019-09-25 16:49:03 +02:00
Ellpeck
78da85bbfc added some more element events 2019-09-25 16:47:27 +02:00
Ellpeck
ae4ced1cc1 added some more element events 2019-09-25 16:47:19 +02:00
Ellpeck
026b79b61e fixed progress bars overshooting their ninepatch areas 2019-09-25 16:39:17 +02:00
Ellpeck
b44ae420fc update 2019-09-24 20:25:40 +02:00
Ellpeck
d610899b7d update 2019-09-20 13:53:50 +02:00
Ellpeck
a048daefbf made panels only draw and update their visible children 2019-09-20 13:48:49 +02:00
Ellpeck
c5170917fb fixed custom draw groups not working outside of a render target 2019-09-20 13:22:05 +02:00
Ellpeck
0010b94b59 update 2019-09-17 19:32:31 +02:00
Ellpeck
76bba86b0c fixed a ui system crash when there is no active root 2019-09-17 19:30:54 +02:00
Ellpeck
b699333434 added a condition to removechildren 2019-09-17 14:06:10 +02:00
Ellpeck
e7c7a5bbc2 fixed tooltips removing themselves from a nonexistant system if an element gets removed 2019-09-15 02:21:42 +02:00
Ellpeck
b0aab6fe60 update 2019-09-15 02:17:23 +02:00
Ellpeck
07b6853e0c give access to all of the element callbacks in the ui system 2019-09-13 13:57:25 +02:00
Ellpeck
03923f91f6 some exception handling 2019-09-13 11:53:28 +02:00
Ellpeck
150d6f771a upgrade images a bit 2019-09-12 18:44:24 +02:00
Ellpeck
4d87068090 update 2019-09-12 12:42:33 +02:00
Ellpeck
8afe9962fb added a dropdown menu and also fixed some issues 2019-09-12 12:39:18 +02:00
Ellpeck
0ad17fc40c added a method to remove all children from an element 2019-09-12 11:52:47 +02:00
Ellpeck
3f66430d90 made image automatically set its area dirty when necessary 2019-09-11 21:01:08 +02:00
Ellpeck
db606143d1 made images unmouseable by default 2019-09-11 20:10:28 +02:00
Ellpeck
3796cc5ef0 made a bunch of stuff in UiControls virtual so that changing more complex aspects is easier 2019-09-11 18:44:05 +02:00
Ellpeck
b8bf5c28d9 make the elementhelper's last column use AutoInlineIgnoreOverflow to avoid imperfect rounding causing it to move down 2019-09-11 15:03:10 +02:00
Ellpeck
2084f927ae fixed the slider using the wrong left and right buttons 2019-09-11 12:30:29 +02:00
Ellpeck
88ce9de00a disallow progress bars from being selected 2019-09-11 10:51:57 +02:00
Ellpeck
e38d95c665 make next elements into delegates rather than a method 2019-09-11 10:49:51 +02:00
Ellpeck
39be76fbbf made more buttons configurable in the ui controls 2019-09-11 10:44:23 +02:00
Ellpeck
9e5f324652 added progress bars 2019-09-10 23:28:25 +02:00
Ellpeck
7e8da6d838 fixed gamepad indices not being taken into account for directions in ui 2019-09-10 12:40:22 +02:00
Ellpeck
dad70dcc28 update! 2019-09-10 11:44:26 +02:00
Ellpeck
70f926eb49 actually do this beforehand so that nothing crashes from having no system all of a sudden 2019-09-09 18:53:10 +02:00
Ellpeck
bb99a76f61 fixed old selections staying behind on re-added uis 2019-09-09 18:49:34 +02:00
Ellpeck
42a0ef172b optimize the active root 2019-09-09 17:18:44 +02:00
Ellpeck
672e5eb548 clean up navigation a lot 2019-09-09 17:12:36 +02:00
Ellpeck
c52c9825f0 added gamepad controls 2019-09-09 16:25:07 +02:00
Ellpeck
8397f47ec3 made the default selection indicator scale correctly 2019-09-08 23:55:56 +02:00
Ellpeck
b85afccaf5 fixed the panel passing a wrong matrix to its children 2019-09-08 21:32:48 +02:00
Ellpeck
c1c7b7a9b1 remove individual component additional scale in favor of custom draw groups 2019-09-08 16:45:15 +02:00
Ellpeck
20d7b95891 added CustomDrawGroup which allows for components to have their own draw call 2019-09-08 16:30:55 +02:00
Ellpeck
4a7fcd7570 Revert "added FormattedString class to make rendering formatted text a little easier"
This reverts commit 6d236fa5
2019-09-08 16:25:59 +02:00
Ellpeck
6d236fa52c added FormattedString class to make rendering formatted text a little easier 2019-09-06 18:06:53 +02:00
Ellpeck
b2b59aa78a added text animation 2019-09-06 15:49:59 +02:00
Ellpeck
a46e8fce86 moved formatting to MLEM proper 2019-09-06 12:20:53 +02:00
Ellpeck
af98526d47 update! 2019-09-05 21:37:18 +02:00
Ellpeck
35ee509eac added the ability to display images in paragraphs 2019-09-05 20:28:05 +02:00
Ellpeck
e39394bce3 finished better text editing my dudes 2019-09-05 18:15:51 +02:00
Ellpeck
12a2e92c09 better text editing, part 1 2019-09-05 12:51:40 +02:00
Ellpeck
b19333d627 ceil sizes to avoid one-pixel gaps between components on some scales 2019-09-05 11:46:07 +02:00
Ellpeck
fef1d7959d this actually does not work 2019-09-04 17:23:23 +02:00
Ellpeck
619db6bb94 remove offset from draw method and use a matrix instead 2019-09-04 17:19:31 +02:00
Ellpeck
9deb6bbce3 only update an element and its children if the area actually changed 2019-09-04 16:48:44 +02:00
Ellpeck
1ee7fafc23 change this to ceil so that elements don't just get cut off 2019-09-04 16:37:57 +02:00
Ellpeck
21dce9d60a fixed an issue where already removed uis would still be selectable 2019-09-04 15:36:47 +02:00
Ellpeck
898ab86f4c fixed the scroll bar reacting to a pressed mouse on enter 2019-09-02 21:11:05 +02:00
Ellpeck
0dff0e275d added the ability to transform the entire ui 2019-09-02 19:55:26 +02:00
Ellpeck
64eefedac0 publicize some useful ui methods 2019-09-02 18:41:05 +02:00
Ellpeck
3e7ddb8b1a add the ability for scroll bars to hide themselves when they're empty 2019-09-01 19:53:52 +02:00
Ellpeck
f65cd58a80 made the text field remove mismatching characters on mobile input 2019-09-01 19:50:17 +02:00
Ellpeck
334dea8b39 make the mess I made a bit nicer :^) 2019-09-01 19:33:33 +02:00
Ellpeck
5a4d90043e update 2019-09-01 18:40:21 +02:00
Ellpeck
cfcd54dbe0 made text input not test the release build of android :V reflection is a pain 2019-09-01 18:34:19 +02:00
Ellpeck
6c253744a6 update 2019-08-31 22:45:10 +02:00
Ellpeck
633c5b0097 added touch compatibility to the scroll bar, which makes touch input finished! 2019-08-31 19:32:22 +02:00
Ellpeck
3464fff6e5 added the ability to easily change how a selected element is drawn 2019-08-31 18:07:43 +02:00
Ellpeck
3862f78c9b made text fields work on mobile too 2019-08-30 19:05:27 +02:00
Ellpeck
353afdef6f started working on touch support for MLEM.Ui 2019-08-30 18:15:50 +02:00
Ellpeck
7eeecc19d1 remove some stuff from MlemGame so that you don't crash :^)
also make the uisystem know if it doesn't support text input natively
2019-08-29 18:46:48 +02:00
Ellpeck
90d292cd37 tabbing, part 2 2019-08-28 18:58:05 +02:00
Ellpeck
5c741a98e9 tabbing, part 1! 2019-08-28 18:27:17 +02:00
Ellpeck
cc20682d47 more easily allow controls to be changed 2019-08-28 16:38:58 +02:00
Ellpeck
ed7865379d added image button 2019-08-27 21:44:02 +02:00
Ellpeck
abd58f3869 made the description for ui more ~spicy~ 2019-08-25 22:09:39 +02:00
Ellpeck
38d72d981a removed null propagation here because I never really use it anywhere else and it's ugly 2019-08-25 21:58:01 +02:00
Ellpeck
765acc3f62 replace onclicked with much easier to make compatible onpressed 2019-08-25 21:49:27 +02:00
Ellpeck
226640ef3a simplify text rendering quite a bit after realizing that monogame deals with multiple lines on its own 2019-08-25 19:07:45 +02:00
Ellpeck
6766d769f4 made scrolling a lot less intensive 2019-08-24 22:27:47 +02:00
Ellpeck
cc66c453c5 more easily allow tooltips to show when hovering elements 2019-08-24 20:45:40 +02:00
Ellpeck
13c7aa90e2 why was this here 2019-08-24 20:33:55 +02:00
Ellpeck
287885b96d fixed panels overflowing incorrectly in some dimensions 2019-08-24 19:21:06 +02:00
Ellpeck
8758ae88b9 update! 2019-08-24 15:22:29 +02:00
Ellpeck
00842d9e5f inline anchors should use the old system though 2019-08-24 15:20:00 +02:00
Ellpeck
df59ae7260 make sure to always pick the closest older sibling 2019-08-24 15:14:16 +02:00
Ellpeck
d231386f86 made auto-anchored elements look for the lowest older sibling 2019-08-24 15:12:11 +02:00
Ellpeck
21c17066fc added column helper and fixed some more bugs 2019-08-24 15:00:08 +02:00
Ellpeck
d69033a315 fixed some bugs and added column helper 2019-08-24 14:34:08 +02:00
Ellpeck
2698153491 fixed elementhelper crash 2019-08-24 12:56:58 +02:00
Ellpeck
cb5594bada added ElementHelper and did some textfield changes 2019-08-24 12:40:20 +02:00
Ellpeck
e1baacdb0d added text formatting 2019-08-24 00:07:54 +02:00
Ellpeck
b6d3496987 added the ability to move roots to front or back 2019-08-23 22:23:10 +02:00
Ellpeck
c9f4b1248d update~ 2019-08-23 19:50:44 +02:00
Ellpeck
dfe31e6726 added the option to auto-scale both the camera and ui systems 2019-08-23 19:46:36 +02:00
Ellpeck
3132074a39 added the option to add a placeholder to the text field 2019-08-23 18:56:39 +02:00
Ellpeck
74988921b1 added line space to paragraph 2019-08-23 00:12:26 +02:00
Ellpeck
053f865a00 made the scroll bar be grabbed in the center 2019-08-22 23:44:26 +02:00
Ellpeck
cbb265a5d5 use the right area for the panel's hover check 2019-08-21 22:50:13 +02:00
Ellpeck
04b9c9e97c added naming and priorities to animations 2019-08-21 20:25:32 +02:00
Ellpeck
79a4c36029 added getParentTree to ui 2019-08-21 17:00:22 +02:00
Ellpeck
05f148514f small element fixes 2019-08-20 23:04:21 +02:00
Ellpeck
fac7f2beb0 propagate mouse events to children by default, except for panels that handle overflow 2019-08-20 21:41:22 +02:00
Ellpeck
72b473dc1d added possible element wobble 2019-08-20 21:35:53 +02:00
Ellpeck
407f214f29 update this cause I need it my dudes 2019-08-18 18:35:31 +02:00
Ellpeck
ef677ae441 added some useful querying functions 2019-08-18 18:32:34 +02:00
Ellpeck
91959d6c6e update 2019-08-18 18:00:36 +02:00
Ellpeck
edf073dacb added rules for text input 2019-08-18 17:59:14 +02:00
Ellpeck
15b468bab4 add the ability for elements to override the position that children will be auto-anchored to 2019-08-18 17:49:52 +02:00
Ellpeck
4e1c6d8128 added sliders (horizontal scroll bars) 2019-08-16 19:08:36 +02:00
Ellpeck
7cf031478d update again :^) 2019-08-15 16:31:31 +02:00
Ellpeck
b42ec52017 finally center it 2019-08-15 16:29:41 +02:00
Ellpeck
481074bcc3 update! 2019-08-15 15:03:11 +02:00
Ellpeck
5d8e010bad made tooltips not go off screen and fixed the ui system breaking clearing 2019-08-15 14:59:15 +02:00
Ellpeck
8d648cd5dc make groups not ignore mouse by default :V 2019-08-15 13:26:40 +02:00
Ellpeck
6ede030138 make image texture not read only 2019-08-14 22:06:06 +02:00
Ellpeck
e150c0eb0d updeet 2019-08-14 19:08:37 +02:00
Ellpeck
5d2f77e95c added a tooltip 2019-08-13 23:54:29 +02:00
Ellpeck
c114d775d4 added checkboxes and radio buttons and did some changes to the demo 2019-08-13 21:23:20 +02:00
Ellpeck
4bd18fd171 update! 2019-08-13 16:07:15 +02:00
Ellpeck
83c45ed02d made the group component set height based on children by default 2019-08-13 16:05:18 +02:00
Ellpeck
f56b7fbeff made scroll bar clickable 2019-08-13 16:02:29 +02:00
Ellpeck
75f7bbd2f9 made scroll bars only work when the mouse is in their parent 2019-08-12 19:46:43 +02:00
Ellpeck
4624219b4e added scroll bar and overflow handling panel 2019-08-12 19:44:16 +02:00
Ellpeck
09fbdfd54e added priority to elements 2019-08-12 14:44:42 +02:00
Ellpeck
0faa2756f5 auto-expanding components only need to update when not on top 2019-08-11 21:57:16 +02:00
Ellpeck
5246c0be60 update! 2019-08-11 21:43:24 +02:00
Ellpeck
a856736ed3 fixed text fields not being updated to the new math correctly 2019-08-11 21:41:04 +02:00
Ellpeck
8af040787c added the ability for nine patch regions to have their patches scaled 2019-08-11 21:38:03 +02:00
Ellpeck
a4eede5fe5 changed a lot of the math to make everything more smooth~ 2019-08-11 21:24:09 +02:00
Ellpeck
cb12ead7cc added element auto-resizing 2019-08-11 18:50:39 +02:00
Ellpeck
adf0ce56cb made ui scaling be based on the root element as well 2019-08-11 18:02:21 +02:00
Ellpeck
72efe55970 fixed text fields sometimes not updating their length correctly 2019-08-11 14:18:07 +02:00
Ellpeck
1b3d3019e9 update! 2019-08-11 00:42:20 +02:00
Ellpeck
2e8b311b00 made text fields auto-scroll once they're too full 2019-08-11 00:39:40 +02:00
Ellpeck
c030d075dd also this should only be settable from inside 2019-08-10 21:41:20 +02:00
Ellpeck
2ee2b2ec69 remove should remove the system 2019-08-10 21:39:35 +02:00
Ellpeck
0c8af5b9bf better styling 2019-08-10 21:37:10 +02:00
Ellpeck
15081a8fe0 added a text field 2019-08-10 19:23:08 +02:00
Ellpeck
f96511d17d shuffle some things around 2019-08-10 18:41:56 +02:00
Ellpeck
53f0858239 only do updates if necessary 2019-08-10 15:12:27 +02:00
Ellpeck
519ac01b9e added an empty group element 2019-08-10 13:44:48 +02:00
Ellpeck
3f7f06f98f added draw alpha to all components 2019-08-10 13:42:18 +02:00
Ellpeck
88da47bc00 added defaults for most element properties 2019-08-10 13:28:58 +02:00
Ellpeck
9d5d00434c better tags 2019-08-09 23:57:41 +02:00
Ellpeck
28fca1cc24 added ui system to startup 2019-08-09 23:43:50 +02:00
Ellpeck
18e634cad8 added image component 2019-08-09 22:23:16 +02:00
Ellpeck
ef3726b077 added auto-scaled text, buttons and vertical space 2019-08-09 22:04:26 +02:00
Ellpeck
4943a7b6f0 hiding elements 2019-08-09 19:39:51 +02:00
Ellpeck
b1d41d572c added panels and paragraphs 2019-08-09 19:28:48 +02:00
Ellpeck
a67abd4661 basic element system 2019-08-09 18:26:28 +02:00
Ellpeck
82747e1331 added generic font wrapper 2019-08-09 14:26:20 +02:00
Ellpeck
369b4bf672 added a simple input handler as well as some changes to the startup package 2019-08-07 22:25:33 +02:00