Commit Graph

333 Commits

Author SHA1 Message Date
c7cd944ae2 Removed redundant HandleWidth parameter from config
The handle width can be specified by themes with padding values.
This also allows for far more granularity of the handle width
adjustment as it can depend on context.
2023-03-31 13:55:45 -04:00
c1e2bf46a6 TextBox supports copy/paste with keyboard commands 2023-03-31 03:25:46 -04:00
ab78bc640d Piano example no longer crashes 2023-03-31 01:30:18 -04:00
7b300333cf I am going insane 2023-03-31 01:06:29 -04:00
53bfc8df68 Re-organized module structure 2023-03-30 23:19:04 -04:00
0aede3502b This should have been several separate commits 2023-03-29 00:50:23 -04:00
01a0fc1bd3 You can fcucking PASTE now!!! 2023-03-27 20:44:39 -04:00
02a27447b9 Changed the clipboard API so that it will work with X
In X, clipboard/selection data is specific to each window, and it
may take some time before the clipboard data is fully transferred.
This actually makes sense because there can be entire images in
the clipboard and it is important the clipboard API supports large
file transfer. Because of this, the Copy and Paste methods have
been moved into Window, and Paste now returns a channel.
2023-03-25 13:32:48 -04:00
d710d13f0d Added the ability to make different window types 2023-03-24 00:34:25 -04:00
fff5ad4d96 File now produces an error'd icon for an erroneous file 2023-03-23 20:57:51 -04:00
Sasha Koshka
8447b06641 Created a convenience constructor for Inset 2023-03-23 18:05:30 -04:00
Sasha Koshka
6a08d0f317 Added a Component parameter to theme cases 2023-03-23 17:34:08 -04:00
Sasha Koshka
45021b6153 Rename DirectoryView to Directory 2023-03-23 15:56:56 -04:00
Sasha Koshka
6638a471c7 File is now configurable 2023-03-23 15:55:18 -04:00
Sasha Koshka
6c8ff55dc1 Text labels are now drawn
The typesetter will need to be reworked to properly break lines in
the middle of words for this to function properly.
2023-03-23 15:38:51 -04:00
Sasha Koshka
7ec5e1ab2a Made the buttons in the file browser example work 2023-03-23 14:45:46 -04:00
Sasha Koshka
14802b4b82 Implemented history for DirectoryView
For some reason DirectoryView won't draw changes all of the time...
2023-03-23 14:37:44 -04:00
Sasha Koshka
f74f6a43f8 DirectoryView selects and de-selects files 2023-03-23 14:11:42 -04:00
Sasha Koshka
68341517f7 DirectoryView uses File to display files 2023-03-21 18:03:31 -04:00
Sasha Koshka
dcc672e2bc ScrollContainer does not scroll child in a forbidden direction 2023-03-21 17:37:33 -04:00
d9bddce20b File and directory view elements wip 2023-03-21 12:26:48 -04:00
60aac053fb Add ability to change an icon's icon 2023-03-21 12:26:06 -04:00
faf5ebb283 List can now add multiple entries at once, and clear all of them 2023-03-20 01:57:06 -04:00
f37101eb9e Ctrl+a selects all in TextBox 2023-03-20 01:56:12 -04:00
d475e5e2ec TextBox now has an OnEnter method. 2023-03-20 01:13:23 -04:00
221647a265 Made icons a bit better
There is a new IconNone and an IconUpward, and buttons don't
expand awkwardly when they have an icon.
2023-03-20 01:12:19 -04:00
0f272f4835 DocumentContainer does as well 2023-03-17 02:00:19 -04:00
d651570746 The list element calls the scroll bounds change callback 2023-03-17 01:58:42 -04:00
493c5210a7 DocumentContainer sets minimum size properly 2023-03-17 01:52:26 -04:00
4c6e01203c Label.EmCollapse actually works now 2023-03-17 01:00:11 -04:00
Sasha Koshka
6258c77f86 Added an align method to label 2023-03-16 15:58:26 -04:00
Sasha Koshka
a4ef28cdd0 Moved containers into a separate package 2023-03-16 14:22:56 -04:00
40aa1a788b Renamed some oddly named files 2023-03-16 00:26:54 -04:00
bffdb000ed Piano element handles motion events 2023-03-16 00:25:36 -04:00
5ca9206f65 DocumentContainer properly adopts children now 2023-03-16 00:24:40 -04:00
1239f4e03d Made DocumentContainer satisfy FlexibleParent 2023-03-15 23:57:22 -04:00
8aaa017902 Re-added OnScrollBoundsChange methods because they are useful 2023-03-15 23:56:00 -04:00
639baecee5 Propagator unfocuses children before focusing a new one 2023-03-15 23:49:57 -04:00
Sasha Koshka
c1b3562d10 It compiles 2023-03-15 23:47:13 -04:00
ef325d5161 Found a flaw in the focusing model, rectifying.
Still need to fix on X backend window, that will be in the next
commit.
2023-03-15 17:08:43 -04:00
2f60abdfa3 Core properly sets nil parent 2023-03-15 01:46:58 -04:00
275e113e3b Fun elements now conform to new API 2023-03-15 01:42:07 -04:00
0015820fac Basic elements now conform to new API 2023-03-15 01:41:23 -04:00
f4799ba03d Testing elements now conform to new API 2023-03-14 19:41:36 -04:00
Sasha Koshka
a34e8768ab Redid cores to conform to the new API changes 2023-03-14 18:30:32 -04:00
b08cbea320 Overhauled the element interfaces
Instead of the previous parenting model where parents would set
child callbacks during adoption by probing for callback setters,
child elements will instead probe their parents for notify methods
listed in the standard parent interfaces. This means that an
element cannot be half-parented to something, nor can it be
parented to two things at once. Parent elements may themselves
fulfill these interfaces, or they can pass a hook that fulfills
them to the child.
2023-03-14 17:08:39 -04:00
99e029ae09 TextBox no longer aggressively requests focus 2023-03-13 22:25:57 -04:00
5149c27cf3 Added untested label collapse 2023-03-13 17:10:27 -04:00
7ef95cc751 Removed unneeded Container.reflectChildProperties() 2023-03-12 01:57:56 -05:00
b09994973c List and Piano do shattering properly 2023-03-12 01:47:58 -05:00
37048c6759 Raycaster runs? 2023-03-12 01:33:05 -05:00
c45268d8c1 Testing elements now conform to the new API 2023-03-12 01:19:40 -05:00
92e5822185 Basic and fun elements conform to new API change 2023-03-12 01:15:36 -05:00
3d28ebe4cf Made interfacial changes that will allow for elements to be clipped 2023-03-12 00:17:35 -05:00
5afbc0e713 DocumentContainer constrains its scroll position on resize 2023-03-11 20:04:08 -05:00
b7a7800370 DocumentContainer has a proper minimum width 2023-03-11 19:25:35 -05:00
15fa3b2497 Quelled some of the strangeness 2023-03-11 18:27:16 -05:00
081b005679 Added a somewhat buggy DocumentContainer 2023-03-11 18:00:29 -05:00
1be769526d Removed references to flexible from containers 2023-03-11 00:48:15 -05:00
51084a6cfe Removed references to flexible from layouts, x backend, core 2023-03-11 00:43:26 -05:00
677dca1dbf ScrollContainer uses ScrollBar for scrolling 2023-03-11 00:21:54 -05:00
5d4a26a877 AnalogClock is no longer flexible. 2023-03-10 13:45:53 -05:00
aaa794ac04 ScrollBar handles scroll wheel events 2023-03-10 13:42:51 -05:00
8658ecd879 Sort of fixed a flexible height bug 2023-03-10 00:10:26 -05:00
1c28613981 The scroll bar is better 2023-03-09 23:27:08 -05:00
8e1638e054 I may have fixed the wierd scrollbar rendering
And something else I didn't realize was there
2023-03-09 22:23:09 -05:00
aff9aca835 We now have an untested lone scrollbar element 2023-03-09 18:15:52 -05:00
305acea285 Use ezprof to profile 2023-03-08 20:24:43 -05:00
f3c1c95a57 Keyboard control for sliders 2023-03-07 19:13:08 -05:00
11402cfc25 Button applies the sink offset correctly to icons 2023-03-05 11:20:33 -05:00
7e0d64e8bd TextBox text is now vertically centered 2023-03-05 10:58:27 -05:00
d38bd1cbf5 Hiding button text actually works now 2023-03-05 00:31:41 -05:00
865dd20724 Buttons can now hide their text 2023-03-05 00:23:45 -05:00
0071994ba6 Buttons can now have icons 2023-03-05 00:05:56 -05:00
61bbe0e346 Added an Icon element 2023-03-04 22:56:44 -05:00
912a3f9f66 oops lmao 2023-03-04 16:18:43 -05:00
531b0ffce9 Fixed Container not clearing child event handlers in DisownAll 2023-03-04 10:44:45 -05:00
9c12cd7e18 Fixed cringe bug with focus requests being improperly handled 2023-03-04 02:20:48 -05:00
4f6f4e1f1a Me when I make the exact mistake twice 2023-03-04 02:04:47 -05:00
dc5ddfc0bd Propagator no longer segfaults when handling keynav 2023-03-04 01:48:16 -05:00
5fc5af92df Layouts now take in proper margin and padding values 2023-03-04 01:42:14 -05:00
90ce0d7281 Fixed Propagator.forChildren 2023-03-04 01:29:45 -05:00
be286fa86c The container actually creates a propagator now lmao 2023-03-04 01:27:16 -05:00
252433f13d Cleaned up Container somewhat 2023-03-04 01:26:23 -05:00
165d0835bf Worked Propagator into basic.Container 2023-03-04 01:20:23 -05:00
56e11ae1de Cleaned up the (ChildIterator -> Parent) interface 2023-03-04 01:05:37 -05:00
1d9fb6024d Fully implemented Propagator 2023-03-04 00:57:17 -05:00
c13cdd570d Implemented all focus methods except for HandleFocus
I am dreading this
2023-03-04 00:38:37 -05:00
5af8d7fd97 Implemented keyboard, mouse, theme, and config event propagation 2023-03-04 00:18:27 -05:00
b6eb158964 Tidied up documentation on Propagator 2023-03-03 23:48:10 -05:00
Sasha Koshka
6bb5b2d79c Created the stub for Propagator
Unlike the previous poorly-defined ContainerCore idea, this struct
has one sole responsibility and that is propagating events to
children. There may be another struct called like ChildManager or
something in the future that also abstracts away logic for
adoption, canvas cutting, disowning, layout, etc.
2023-03-03 20:31:30 -05:00
Sasha Koshka
538123dcd5 No that was a bad idea time to do something else 2023-03-03 20:16:36 -05:00
Sasha Koshka
38baa97e76 ContainerCore and ContainerCoreControl WIP 2023-03-02 18:59:08 -05:00
Sasha Koshka
ef59f46559 Made the progress bar look nicer 2023-02-28 19:00:34 -05:00
Sasha Koshka
b1d15fb4ec this piano is DOPE and PHAT and WAY COOL 2023-02-28 00:17:05 -05:00
Sasha Koshka
ee45b2fa60 Theming tweaks and rendering fixes 2023-02-27 17:00:28 -05:00
Sasha Koshka
8dd506a007 Textures now render properly 2023-02-27 16:38:33 -05:00
Sasha Koshka
de10cde630 Add image textures to theme 2023-02-27 12:48:44 -05:00
449922851f Fix list not drawing background 2023-02-26 22:56:20 -05:00
26787d8670 Fixed TextBox 2023-02-26 22:48:14 -05:00