Commit Graph

286 Commits

Author SHA1 Message Date
Sasha Koshka b8bf5743b4 Artist test uses new defaultfont location 2023-03-31 21:11:10 -04:00
Sasha Koshka 8c03b516e3 TextBox has double-click to select word 2023-03-31 20:28:53 -04:00
Sasha Koshka 03dfcf02bf Added double click delay to config 2023-03-31 14:02:56 -04:00
Sasha Koshka 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
Sasha Koshka c1e2bf46a6 TextBox supports copy/paste with keyboard commands 2023-03-31 03:25:46 -04:00
Sasha Koshka ab78bc640d Piano example no longer crashes 2023-03-31 01:30:18 -04:00
Sasha Koshka 7b300333cf I am going insane 2023-03-31 01:06:29 -04:00
Sasha Koshka 53bfc8df68 Re-organized module structure 2023-03-30 23:19:04 -04:00
Sasha Koshka 0aede3502b This should have been several separate commits 2023-03-29 00:50:23 -04:00
Sasha Koshka 01a0fc1bd3 You can fcucking PASTE now!!! 2023-03-27 20:44:39 -04:00
Sasha Koshka 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
Sasha Koshka d710d13f0d Added the ability to make different window types 2023-03-24 00:34:25 -04:00
Sasha Koshka 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
Sasha Koshka d9bddce20b File and directory view elements wip 2023-03-21 12:26:48 -04:00
Sasha Koshka 60aac053fb Add ability to change an icon's icon 2023-03-21 12:26:06 -04:00
Sasha Koshka faf5ebb283 List can now add multiple entries at once, and clear all of them 2023-03-20 01:57:06 -04:00
Sasha Koshka f37101eb9e Ctrl+a selects all in TextBox 2023-03-20 01:56:12 -04:00
Sasha Koshka d475e5e2ec TextBox now has an OnEnter method. 2023-03-20 01:13:23 -04:00
Sasha Koshka 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
Sasha Koshka 0f272f4835 DocumentContainer does as well 2023-03-17 02:00:19 -04:00
Sasha Koshka d651570746 The list element calls the scroll bounds change callback 2023-03-17 01:58:42 -04:00
Sasha Koshka 493c5210a7 DocumentContainer sets minimum size properly 2023-03-17 01:52:26 -04:00
Sasha Koshka 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
Sasha Koshka 40aa1a788b Renamed some oddly named files 2023-03-16 00:26:54 -04:00
Sasha Koshka bffdb000ed Piano element handles motion events 2023-03-16 00:25:36 -04:00
Sasha Koshka 5ca9206f65 DocumentContainer properly adopts children now 2023-03-16 00:24:40 -04:00
Sasha Koshka 1239f4e03d Made DocumentContainer satisfy FlexibleParent 2023-03-15 23:57:22 -04:00
Sasha Koshka 8aaa017902 Re-added OnScrollBoundsChange methods because they are useful 2023-03-15 23:56:00 -04:00
Sasha Koshka 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
Sasha Koshka 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
Sasha Koshka 2f60abdfa3 Core properly sets nil parent 2023-03-15 01:46:58 -04:00
Sasha Koshka 275e113e3b Fun elements now conform to new API 2023-03-15 01:42:07 -04:00
Sasha Koshka 0015820fac Basic elements now conform to new API 2023-03-15 01:41:23 -04:00
Sasha Koshka 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
Sasha Koshka 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
Sasha Koshka 99e029ae09 TextBox no longer aggressively requests focus 2023-03-13 22:25:57 -04:00