Commit Graph

286 Commits

Author SHA1 Message Date
Sasha Koshka de10cde630 Add image textures to theme 2023-02-27 12:48:44 -05:00
Sasha Koshka 449922851f Fix list not drawing background 2023-02-26 22:56:20 -05:00
Sasha Koshka 26787d8670 Fixed TextBox 2023-02-26 22:48:14 -05:00
Sasha Koshka cda2d1f0ae Default elements compile 2023-02-26 22:20:17 -05:00
Sasha Koshka 241c297626 whee back in busineess 2023-02-26 14:27:38 -05:00
Sasha Koshka 0c39c2dd57 Button takes advantage of the rendering hints 2023-02-16 22:41:07 -05:00
Sasha Koshka f8240fb518 Created FillRectangleShatter for convenience 2023-02-16 18:19:36 -05:00
Sasha Koshka b9cbf83a18 Added the collapse behavior as an interface 2023-02-16 17:35:53 -05:00
Sasha Koshka e3369ab3d4 AAAAART! 2023-02-16 14:57:46 -05:00
Sasha Koshka 56dc9ba54c this just j 2023-02-16 12:35:31 -05:00
Sasha Koshka a0e7bf1373 Integrated the new text drawer 2023-02-15 18:45:58 -05:00
Sasha Koshka 0c22977693 TextDrawer does not separate whitespace from printables 2023-02-14 18:11:11 -05:00
Sasha Koshka 4d87972235 Hot themeing tweaks 2023-02-14 17:21:05 -05:00
Sasha Koshka d59b7d812d Stop some redundant rendering in the piano 2023-02-14 17:05:13 -05:00
Sasha Koshka 09f782953e Use FillRectangleClip in List and Container 2023-02-14 16:53:28 -05:00
Sasha Koshka dcaf9919e4 Fix thos issue 2023-02-14 02:14:52 -05:00
Sasha Koshka d18da8b07a Rudimentary text selection with the mouse 2023-02-13 18:29:49 -05:00
Sasha Koshka 21abd147bf Rudimentary text selection with keybaord keys 2023-02-13 12:55:51 -05:00
Sasha Koshka 4bc8566820 Textmanip now operates on a dot instead of a cursor 2023-02-13 01:52:31 -05:00
Sasha Koshka 8ac5108211 Elements are no longer images 2023-02-13 01:49:33 -05:00
Sasha Koshka 7f0462d588 Changed the order of the Theme.Pattern method 2023-02-12 10:58:23 -05:00
Sasha Koshka 9e8e986977 Changes to how scroll bars respond to the mouse
- Left clicking on the gutter jumps to that position
- Right clicking on the gutter scrolls incrementally towards that
  position
- Middle clicking on the gutter pages up or down to that position
2023-02-11 22:17:03 -05:00
Sasha Koshka 2d9a941da8 Lists no longer have stale scroll values when enlarged 2023-02-11 21:45:04 -05:00
Sasha Koshka c64ce8da67 Container shatters its background before drawing 2023-02-11 21:17:43 -05:00
Sasha Koshka a893831a21 Added a shatter function to subtract rectangles from a rectangle 2023-02-11 21:07:35 -05:00
Sasha Koshka 7f1c3ae870 Added documentation for the sliders 2023-02-11 17:04:50 -05:00
Sasha Koshka d7a6193c04 Added gain slider 2023-02-11 01:46:12 -05:00
Sasha Koshka a74f9809af Awesome labels 2023-02-11 01:27:28 -05:00
Sasha Koshka 0e3de11203 Fixed a focus issue with ScrollContainer 2023-02-11 00:58:54 -05:00
Sasha Koshka 981c11bd44 Fixed the list widget 2023-02-11 00:18:21 -05:00
Sasha Koshka dce0321e9b Added a Select() method to List 2023-02-10 22:26:34 -05:00
Sasha Koshka 5e448edb21 Added sliders and made the ADSR controllabe with them 2023-02-10 21:55:59 -05:00
Sasha Koshka cfc2b5e130 Image element for showing images 2023-02-09 18:34:53 -05:00
Sasha Koshka 6e7cf285cc Fixed issue with X backend not recognizing key repeats 2023-02-09 17:26:36 -05:00
Sasha Koshka e3aea7fc9e Better piano keybinds 2023-02-09 16:36:38 -05:00
Sasha Koshka 5446ffe40b h a r m o n y 2023-02-09 16:15:02 -05:00
Sasha Koshka 06e97461fa Note.Octave returns an Octave 2023-02-09 15:06:41 -05:00
Sasha Koshka b38232ee24 More documentation! 2023-02-09 15:05:13 -05:00
Sasha Koshka 2cd670f4cd Improved element documentation 2023-02-09 14:50:24 -05:00
Sasha Koshka c7bebabed5 Fixed issue where containers would not select themselves prperly 2023-02-09 14:25:55 -05:00
Sasha Koshka b15c260dfc Improved piano styling 2023-02-09 11:38:01 -05:00
Sasha Koshka 16ce15621e Moar waveforms!!!! 2023-02-09 02:04:58 -05:00
Sasha Koshka 16a0e76145 Removed a bunch of redundant draw calls
Most were related to a but with the keynav api
2023-02-09 01:30:14 -05:00
Sasha Koshka c5ee7c8cdb The piano plays sound 2023-02-08 23:41:31 -05:00
Sasha Koshka bec8b817c8 Added a piano widget because why not really 2023-02-08 21:05:36 -05:00
Sasha Koshka 6cc0f36000 Migrated the clock 2023-02-08 15:12:18 -05:00
Sasha Koshka a0e57921a4 Oh my jod 2023-02-08 14:36:14 -05:00
Sasha Koshka 6936353516 asuhfdjkshlk 2023-02-08 00:22:40 -05:00
Sasha Koshka 3998d842b1 Half-done migration of basic elements 2023-02-07 11:27:59 -05:00
Sasha Koshka 0bdbaa39ca Artist and test examples work 2023-02-03 18:32:22 -05:00
Sasha Koshka f8ebe5b1e4 Core provides convenience methods for easy theme access 2023-02-03 18:28:01 -05:00
Sasha Koshka 8d90dbdc92 Element core now deals with Config and Theme objects 2023-02-03 18:07:10 -05:00
Sasha Koshka d79701d01b X backend conforms to new API 2023-02-03 01:35:59 -05:00
Sasha Koshka bdf599f93c Backends must now accept Config and Theme 2023-02-03 01:25:45 -05:00
Sasha Koshka 8ccaa0faba Added Themeable and Configurable element interfaces 2023-02-03 01:14:03 -05:00
Sasha Koshka 892c74a9da Updated everything else to match 2023-02-02 01:48:38 -05:00
Sasha Koshka 04d2ea4767 Atomized the functionality of the base tomo package 2023-02-02 01:47:01 -05:00
Sasha Koshka 9b22e80f05 Got scroll container working 2023-01-31 18:39:17 -05:00
Sasha Koshka b0ff1ca0af Vertical stack example works 2023-01-31 18:04:12 -05:00
Sasha Koshka 2f9504b1e4 Fixed wierd inconsistency with element core 2023-01-31 16:18:10 -05:00
Sasha Koshka d5028317ef Fun and testing elements conform to new API 2023-01-31 14:57:02 -05:00
Sasha Koshka ee424b9125 Basic elements conform to new API 2023-01-31 14:54:43 -05:00
Sasha Koshka 537d69b491 Removed Resize, added DrawTo 2023-01-31 14:29:35 -05:00
Sasha Koshka 801c3ef6f5 Hocus focus 2023-01-30 17:01:47 -05:00
Sasha Koshka 35870951a2 The theming around List makes slightly more sense 2023-01-30 02:22:16 -05:00
Sasha Koshka 174beba79f Added a case specifier to the theme API
This will allow themes to pull off some cool dirty tricks without
screwing anything up
2023-01-30 01:30:13 -05:00
Sasha Koshka 44b9a1e717 List relies more on the bounds insetting from theme 2023-01-29 12:51:43 -05:00
Sasha Koshka 92aeb48a1f Overhauled the theme system
Also added a toggle switch :)
2023-01-29 01:49:01 -05:00
Sasha Koshka 9422ff6198 Added a selectability core to reduce complexity of selectables 2023-01-27 17:55:49 -05:00
Sasha Koshka b2b2a80a06 Made the stripey sunken background optional 2023-01-26 18:37:44 -05:00
Sasha Koshka 93019b1b38 Fixed Container.HandleSelection
It now handles nested containers properly.
2023-01-26 14:00:54 -05:00
Sasha Koshka 9aea6d8c0f List element's events make more sense
Removed redundant selected entry change event, and added an event
that fires when the user deselects the current element.
2023-01-26 12:05:28 -05:00
Sasha Koshka 48679c8ad2 Added keynav input for lists 2023-01-26 11:53:49 -05:00
Sasha Koshka 912f939f2e The noise pattern can now be harsh 2023-01-24 18:27:36 -05:00
Sasha Koshka c9c5f1d251 Added a pseudorandom noise pattern 2023-01-24 18:15:46 -05:00
Sasha Koshka 5edfbf8110 Added a list example 2023-01-24 16:41:12 -05:00
Sasha Koshka 68f1d052d2 Fixed list minimum bounds calculation when not collapsed 2023-01-24 16:10:25 -05:00
Sasha Koshka 28701d01ab Fixed gradient orientation 2023-01-24 16:02:35 -05:00
Sasha Koshka d5cb1b27fe Created an elliptical border pattern 2023-01-24 15:35:00 -05:00
Sasha Koshka 0281b1a203 Gradients!!!!!!!!!!! Holy fucking bingle!! 2023-01-24 14:24:30 -05:00
Sasha Koshka 3949f2af9e Created a Tiled pattern 2023-01-24 14:08:47 -05:00
Sasha Koshka 269c70ebb1 Fixed up the dotted pattern 2023-01-24 10:25:37 -05:00
Sasha Koshka 31a261d530 Beveled is now structured like QuadBeveled 2023-01-24 00:02:11 -05:00
Sasha Koshka 468d4e9dab Various improvements to list 2023-01-23 23:54:12 -05:00
Sasha Koshka 9c24184f24 Added a basic List element 2023-01-23 02:05:09 -05:00
Sasha Koshka 90067a6ded Stripes :))))) 2023-01-21 21:24:02 -05:00
Sasha Koshka 5990496455 Clicking on the scroll gutter scrolls 2023-01-21 21:05:51 -05:00
Sasha Koshka 09eede2c90 Small theming tweaks 2023-01-21 20:58:25 -05:00
Sasha Koshka 92a9c9370d Scrollbars respond to mouse dragging more naturally 2023-01-21 01:24:24 -05:00
Sasha Koshka d435f5a6a9 Scrollbars can be dragged with the mouse 2023-01-21 01:15:30 -05:00
Sasha Koshka 3e8523f37a TextBox contstrains scroll positions to max 2023-01-20 23:40:59 -05:00
Sasha Koshka 83d5064803 Created the split pattern 2023-01-20 23:19:54 -05:00
Sasha Koshka 4c1bf070fe Chiseled is now called Beveled 2023-01-20 23:00:26 -05:00
Sasha Koshka a273178a8e Ellipses now draw properly 2023-01-20 22:13:14 -05:00
Sasha Koshka 39ce5f9ee2 Half-working StrokeEllipse 2023-01-20 21:59:48 -05:00
Sasha Koshka 775e7bd4ca It is now possible to draw a filled ellipse 2023-01-20 20:52:06 -05:00
Sasha Koshka 6967c40143 Made the drawing time thing better 2023-01-20 20:29:02 -05:00
Sasha Koshka 723f0cf5ef The artist test can now figure out how fast it took to draw
something.
2023-01-20 20:07:01 -05:00
Sasha Koshka a87d806e54 THICC LINES 2023-01-20 19:52:35 -05:00
Sasha Koshka 268e7981b5 Added some line tests 2023-01-20 19:40:38 -05:00
Sasha Koshka a71e726016 Created simple bordered pattern 2023-01-20 19:24:21 -05:00
Sasha Koshka befec471db Replaced artist.Border with artist.Stroke 2023-01-20 19:07:16 -05:00
Sasha Koshka 8c0956b998 Striped patterns can have alternating weights 2023-01-20 18:57:02 -05:00
Sasha Koshka 740999295e Added striped patterns 2023-01-20 18:39:08 -05:00
Sasha Koshka cfbb031500 Created an artist test thingy 2023-01-20 18:05:48 -05:00
Sasha Koshka 72f604e819 Repeated keys are detected properly
The repeated bool was removed and instead key release events are
*only* sent when the key is actually let go. If an element wants to
listen to repeat presses, it can just listen to press events.
2023-01-20 17:40:28 -05:00
Sasha Koshka 2f53c942ac The scroll wheel scrolls the scroll box 2023-01-20 16:44:07 -05:00
Sasha Koshka b85285f326 Scroll bars recalculate and draw properly 2023-01-20 15:52:46 -05:00
Sasha Koshka faf38b96c2 Scrollbar drawing 2023-01-20 15:35:43 -05:00
Sasha Koshka afd543ce92 Fixed clock and checkbox 2023-01-20 00:42:57 -05:00
Sasha Koshka 4367bba602 Scroll bar background drawing 2023-01-19 18:29:57 -05:00
Sasha Koshka 9c37cb8fef Scroll container mouse pass through 2023-01-19 18:03:50 -05:00
Sasha Koshka 78fb934afe Ok this is overstepping the bounds of this branch 2023-01-19 17:35:19 -05:00
Sasha Koshka 7b8cdd9e04 Container now implements MouseTarget again oops 2023-01-19 16:55:46 -05:00
Sasha Koshka 6f6591f0d0 Layouts now conform to the new API 2023-01-19 16:54:49 -05:00
Sasha Koshka c813463bb4 Basic elements now conform to the new API (largely untested) 2023-01-19 16:49:34 -05:00
Sasha Koshka 8a72e8bf01 Mouse test now conforms to new API 2023-01-19 15:05:13 -05:00
Sasha Koshka 662d3464e2 Element core now conforms to the new API 2023-01-19 14:44:40 -05:00
Sasha Koshka dcc7fcb251 Ok thats it next commit im getting rid of parent hooks 2023-01-19 13:07:27 -05:00
Sasha Koshka 2b45a8f8a0 TextBox is now scrollable 2023-01-18 17:52:05 -05:00
Sasha Koshka 3889cb5252 Added scrollable element interface 2023-01-18 17:32:33 -05:00
Sasha Koshka b69eb6b62e Tweaked text box scrolling 2023-01-18 16:01:31 -05:00
Sasha Koshka 89881247d0 Text boxes now scroll to their cursor position 2023-01-18 15:56:36 -05:00
Sasha Koshka 873336e029 It is no longer possible to activate disabled buttons 2023-01-18 11:58:42 -05:00
Sasha Koshka 36c5ed40e9 Added event callbacks to text box 2023-01-18 11:56:14 -05:00
Sasha Koshka 48db645f9f Silliness increase 2023-01-18 01:29:59 -05:00
Sasha Koshka 46268c8d02 Disabled inputs can no longer be selected 2023-01-18 01:21:49 -05:00
Sasha Koshka 3ef13955be Placeholders show up again 2023-01-18 01:20:04 -05:00
Sasha Koshka 2bf2baf69e More intelligent text editing with new textmanip system 2023-01-18 01:19:10 -05:00
Sasha Koshka b03cba57e1 Text drawer now takes in runes instead of a string 2023-01-18 00:42:04 -05:00
Sasha Koshka 85ddb8ace1 Very basic text input 2023-01-18 00:38:58 -05:00
Sasha Koshka 5e3dfeaadd Progress bars
... And also the Do function works now
2023-01-17 20:16:03 -05:00
Sasha Koshka 9f91220842 Documented the clock 2023-01-17 17:13:01 -05:00
Sasha Koshka bc4defac17 Spacers :D 2023-01-17 17:01:35 -05:00
Sasha Koshka 06e0396695 More silliness 2023-01-17 16:46:07 -05:00
Sasha Koshka 5d64788b68 Checkboxes! 2023-01-17 16:38:57 -05:00
Sasha Koshka 99492874ca Clock forces an aspect ratio 2023-01-17 14:47:07 -05:00
Sasha Koshka 375205a4d2 Core no longer naievely constrains canvas resize dimensions 2023-01-17 14:31:06 -05:00
Sasha Koshka 7398f146ba Progress? 2023-01-17 10:55:38 -05:00
Sasha Koshka 40bdffc8be Horizontal layouts work nearly perfectly 2023-01-17 01:40:49 -05:00
Sasha Koshka 9459bcd942 Horizontal layouts now take into account flexible elements 2023-01-16 23:58:20 -05:00
Sasha Koshka e94e170a04 Half-working container flexibility propagation 2023-01-16 23:34:17 -05:00
Sasha Koshka d9281b139f Labels may request an expanding height change 2023-01-16 18:04:41 -05:00
Sasha Koshka 7754679710 Selectable elements can now request the selection to be moved 2023-01-16 13:49:32 -05:00
Sasha Koshka 93ab47cdc9 Whoops 2023-01-16 12:23:37 -05:00
Sasha Koshka fb0795ec7b Keynav works flawlessly 2023-01-16 12:21:47 -05:00
Sasha Koshka 354d5f205d Container sort of conforms to the new API
Keynav is half working
2023-01-16 11:54:02 -05:00
Sasha Koshka 410c65c072 Label conforms to new API 2023-01-16 00:36:23 -05:00
Sasha Koshka 21a1a35a26 Mouse test conforms to new API 2023-01-16 00:35:05 -05:00
Sasha Koshka c20db133fe AnalogClock conforms to new API 2023-01-16 00:31:57 -05:00