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
cda2d1f0ae
Default elements compile
2023-02-26 22:20:17 -05:00
241c297626
whee back in busineess
2023-02-26 14:27:38 -05:00
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
56dc9ba54c
this just j
2023-02-16 12:35:31 -05:00
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
dcaf9919e4
Fix thos issue
2023-02-14 02:14:52 -05:00
d18da8b07a
Rudimentary text selection with the mouse
2023-02-13 18:29:49 -05:00
21abd147bf
Rudimentary text selection with keybaord keys
2023-02-13 12:55:51 -05:00
4bc8566820
Textmanip now operates on a dot instead of a cursor
2023-02-13 01:52:31 -05:00
8ac5108211
Elements are no longer images
2023-02-13 01:49:33 -05:00
7f0462d588
Changed the order of the Theme.Pattern method
2023-02-12 10:58:23 -05:00
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
2d9a941da8
Lists no longer have stale scroll values when enlarged
2023-02-11 21:45:04 -05:00
c64ce8da67
Container shatters its background before drawing
2023-02-11 21:17:43 -05:00
a893831a21
Added a shatter function to subtract rectangles from a rectangle
2023-02-11 21:07:35 -05:00
7f1c3ae870
Added documentation for the sliders
2023-02-11 17:04:50 -05:00
d7a6193c04
Added gain slider
2023-02-11 01:46:12 -05:00
a74f9809af
Awesome labels
2023-02-11 01:27:28 -05:00
0e3de11203
Fixed a focus issue with ScrollContainer
2023-02-11 00:58:54 -05:00
981c11bd44
Fixed the list widget
2023-02-11 00:18:21 -05:00
dce0321e9b
Added a Select() method to List
2023-02-10 22:26:34 -05:00
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
b15c260dfc
Improved piano styling
2023-02-09 11:38:01 -05:00
16ce15621e
Moar waveforms!!!!
2023-02-09 02:04:58 -05:00
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
c5ee7c8cdb
The piano plays sound
2023-02-08 23:41:31 -05:00
bec8b817c8
Added a piano widget because why not really
2023-02-08 21:05:36 -05:00
6cc0f36000
Migrated the clock
2023-02-08 15:12:18 -05:00
a0e57921a4
Oh my jod
2023-02-08 14:36:14 -05:00
6936353516
asuhfdjkshlk
2023-02-08 00:22:40 -05:00
3998d842b1
Half-done migration of basic elements
2023-02-07 11:27:59 -05:00
0bdbaa39ca
Artist and test examples work
2023-02-03 18:32:22 -05:00
f8ebe5b1e4
Core provides convenience methods for easy theme access
2023-02-03 18:28:01 -05:00
8d90dbdc92
Element core now deals with Config and Theme objects
2023-02-03 18:07:10 -05:00
d79701d01b
X backend conforms to new API
2023-02-03 01:35:59 -05:00
bdf599f93c
Backends must now accept Config and Theme
2023-02-03 01:25:45 -05:00
8ccaa0faba
Added Themeable and Configurable element interfaces
2023-02-03 01:14:03 -05:00
892c74a9da
Updated everything else to match
2023-02-02 01:48:38 -05:00
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
801c3ef6f5
Hocus focus
2023-01-30 17:01:47 -05:00
35870951a2
The theming around List makes slightly more sense
2023-01-30 02:22:16 -05:00
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
44b9a1e717
List relies more on the bounds insetting from theme
2023-01-29 12:51:43 -05:00
92aeb48a1f
Overhauled the theme system
...
Also added a toggle switch :)
2023-01-29 01:49:01 -05:00
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
93019b1b38
Fixed Container.HandleSelection
...
It now handles nested containers properly.
2023-01-26 14:00:54 -05:00
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
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
269c70ebb1
Fixed up the dotted pattern
2023-01-24 10:25:37 -05:00
31a261d530
Beveled is now structured like QuadBeveled
2023-01-24 00:02:11 -05:00
468d4e9dab
Various improvements to list
2023-01-23 23:54:12 -05:00
9c24184f24
Added a basic List element
2023-01-23 02:05:09 -05:00
90067a6ded
Stripes :)))))
2023-01-21 21:24:02 -05:00
5990496455
Clicking on the scroll gutter scrolls
2023-01-21 21:05:51 -05:00
09eede2c90
Small theming tweaks
2023-01-21 20:58:25 -05:00
92a9c9370d
Scrollbars respond to mouse dragging more naturally
2023-01-21 01:24:24 -05:00
d435f5a6a9
Scrollbars can be dragged with the mouse
2023-01-21 01:15:30 -05:00
3e8523f37a
TextBox contstrains scroll positions to max
2023-01-20 23:40:59 -05:00
83d5064803
Created the split pattern
2023-01-20 23:19:54 -05:00
4c1bf070fe
Chiseled is now called Beveled
2023-01-20 23:00:26 -05:00
a273178a8e
Ellipses now draw properly
2023-01-20 22:13:14 -05:00
39ce5f9ee2
Half-working StrokeEllipse
2023-01-20 21:59:48 -05:00
775e7bd4ca
It is now possible to draw a filled ellipse
2023-01-20 20:52:06 -05:00
6967c40143
Made the drawing time thing better
2023-01-20 20:29:02 -05:00
723f0cf5ef
The artist test can now figure out how fast it took to draw
...
something.
2023-01-20 20:07:01 -05:00
a87d806e54
THICC LINES
2023-01-20 19:52:35 -05:00
268e7981b5
Added some line tests
2023-01-20 19:40:38 -05:00
a71e726016
Created simple bordered pattern
2023-01-20 19:24:21 -05:00
befec471db
Replaced artist.Border with artist.Stroke
2023-01-20 19:07:16 -05:00
8c0956b998
Striped patterns can have alternating weights
2023-01-20 18:57:02 -05:00
740999295e
Added striped patterns
2023-01-20 18:39:08 -05:00
cfbb031500
Created an artist test thingy
2023-01-20 18:05:48 -05:00
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
2f53c942ac
The scroll wheel scrolls the scroll box
2023-01-20 16:44:07 -05:00
b85285f326
Scroll bars recalculate and draw properly
2023-01-20 15:52:46 -05:00
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
dcc7fcb251
Ok thats it next commit im getting rid of parent hooks
2023-01-19 13:07:27 -05:00
2b45a8f8a0
TextBox is now scrollable
2023-01-18 17:52:05 -05:00
3889cb5252
Added scrollable element interface
2023-01-18 17:32:33 -05:00
b69eb6b62e
Tweaked text box scrolling
2023-01-18 16:01:31 -05:00
89881247d0
Text boxes now scroll to their cursor position
2023-01-18 15:56:36 -05:00
873336e029
It is no longer possible to activate disabled buttons
2023-01-18 11:58:42 -05:00
36c5ed40e9
Added event callbacks to text box
2023-01-18 11:56:14 -05:00
48db645f9f
Silliness increase
2023-01-18 01:29:59 -05:00
46268c8d02
Disabled inputs can no longer be selected
2023-01-18 01:21:49 -05:00
3ef13955be
Placeholders show up again
2023-01-18 01:20:04 -05:00
2bf2baf69e
More intelligent text editing with new textmanip system
2023-01-18 01:19:10 -05:00
b03cba57e1
Text drawer now takes in runes instead of a string
2023-01-18 00:42:04 -05:00
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
7398f146ba
Progress?
2023-01-17 10:55:38 -05:00
40bdffc8be
Horizontal layouts work nearly perfectly
2023-01-17 01:40:49 -05:00
9459bcd942
Horizontal layouts now take into account flexible elements
2023-01-16 23:58:20 -05:00
e94e170a04
Half-working container flexibility propagation
2023-01-16 23:34:17 -05:00
d9281b139f
Labels may request an expanding height change
2023-01-16 18:04:41 -05:00
7754679710
Selectable elements can now request the selection to be moved
2023-01-16 13:49:32 -05:00
93ab47cdc9
Whoops
2023-01-16 12:23:37 -05:00
fb0795ec7b
Keynav works flawlessly
2023-01-16 12:21:47 -05:00
354d5f205d
Container sort of conforms to the new API
...
Keynav is half working
2023-01-16 11:54:02 -05:00
410c65c072
Label conforms to new API
2023-01-16 00:36:23 -05:00
21a1a35a26
Mouse test conforms to new API
2023-01-16 00:35:05 -05:00
c20db133fe
AnalogClock conforms to new API
2023-01-16 00:31:57 -05:00
5ca4d0be6e
Button now conforms to new API
2023-01-16 00:31:04 -05:00
0a6858b376
Moved the layouts directory out of elements because they aren't.
2023-01-16 00:03:02 -05:00
1378093c12
Improved some documentation wording regarding Core and CoreControl
2023-01-16 00:02:15 -05:00
88f5cf7749
I changed my mind, having core fulfill Element is a bad idea.
2023-01-15 23:58:23 -05:00
01d8b64b24
Core now conforms to new API
...
Core actually now fulfills the Element interface on its own which
is pretty cool.
2023-01-15 23:48:41 -05:00
e83dde2d21
Replaced the chiseled box with the chiseled pattern
2023-01-14 21:01:00 -05:00
9540812a04
Implemented a multiborder pattern
2023-01-14 20:08:55 -05:00
e740f5385c
Mouse test does not draw lines if mouse is not held down
2023-01-14 14:00:57 -05:00
d75ec12a3c
Fixed bug with StrokeRectangle where some areas were blank
2023-01-14 13:59:07 -05:00
89eb88c982
Draw border around mouse test
2023-01-14 13:57:12 -05:00
34bf3038ac
Replaced tomo.Image with tomo.Canvas and tomo.Pattern
...
This is the first step in transitioning the API over to the new
design. The new tomo.Canvas interface gives drawing functions
direct access to data buffers and eliminates overhead associated
with calling functions for every pixel.
The entire artist package will be remade around this.
2023-01-14 01:54:57 -05:00
babc4a4af8
Oops
2023-01-13 13:58:19 -05:00
7ad027be42
Clock hands are more accurate
2023-01-13 13:55:20 -05:00
4f8f80f142
Commented button
2023-01-13 13:51:22 -05:00
Sasha Koshka
b5469e103d
Analog clock widget!!
2023-01-12 19:52:21 -05:00
Sasha Koshka
1f3e925433
Fixed not setting text drawer max size properly
2023-01-12 18:00:36 -05:00
Sasha Koshka
588c52b30a
Added a Warp method to Container for batch updates
2023-01-12 16:02:33 -05:00
26c1dc062b
Added popups
2023-01-12 12:51:42 -05:00
519e0b9c6b
Keynav moment
2023-01-11 22:30:14 -05:00
c2a76fcaf6
Added extended selection capabilities to the API
2023-01-11 15:46:48 -05:00
5b850ef183
Added dialog layout
2023-01-11 01:56:05 -05:00
c18a3883bf
Added a horizontal layout
2023-01-10 23:20:42 -05:00
1c7467c4bc
Fixed bug with vertical layout being cringe
2023-01-10 22:27:25 -05:00
3ddeeb5469
You can choose whether or not you want text to wrap
2023-01-10 21:01:30 -05:00
Sasha Koshka
a79f2eaf64
Test element has a cool border
2023-01-10 20:31:18 -05:00
Sasha Koshka
b3e6beb8ad
Added DisownAll method to Container
2023-01-10 18:07:51 -05:00
Sasha Koshka
cb2136f7cb
Layouts work!!!!
2023-01-10 17:34:40 -05:00
Sasha Koshka
6eed70e79e
The beginnings of a layout system
2023-01-10 16:39:37 -05:00
b1fd021120
dasjkhkljashdkjsha
2023-01-10 11:51:46 -05:00
34848f616b
Moved element core to new package
2023-01-09 21:25:36 -05:00
Sasha Koshka
31fb42ab58
Vertical layout stub
2023-01-09 20:34:19 -05:00
Sasha Koshka
c34e3cd91e
Disabled buttons are not selectable
2023-01-09 18:20:39 -05:00
Sasha Koshka
80aafdf60c
Buttons respond to enter key, window auto-selects root child
2023-01-09 18:19:19 -05:00