Commit graph

107 commits

Author SHA1 Message Date
Jonathan Johnson
5a9aa6b55d
Tic-tac-toe, Buttons labels now stretch to fill 2023-11-15 09:32:28 -08:00
Jonathan Johnson
577e97908d
Optimizing widgets at point
Given the goal of this function, I'm not sure it can get more optimal
than this even with specialized data structures like KD-trees. The
problem is that we want all widgets that are hovered, not just some, and
that makes nearest neighbor useless.

The main optimizations here are simple:

- Group up all the render data we need in a single vec to help cache.
- Precompute the rect's extents to make the contains check at most 4
  comparisons.

This had a noticable effect on the "wiggle the mouse frantically"
performance, where Gooey isn't actually repainting but is routing mouse
events.
2023-11-15 07:53:31 -08:00
Jonathan Johnson
947f1cd8a7
Stack with premeasured content now work
This makes nested scroll areas work correctly.
2023-11-15 07:47:23 -08:00
Jonathan Johnson
54e01f1911
Checkbox, ButtonKind, linked/linked_string + more 2023-11-14 20:39:29 -08:00
Jonathan Johnson
eb063c82f0
Explicit focus order is now fully supported 2023-11-14 14:12:12 -08:00
Jonathan Johnson
89c8805924
Refactored switcher to use Dynamic<WidgetInstance> 2023-11-14 13:24:23 -08:00
Jonathan Johnson
4a4bc5de1a
Added slidable enum demo
Also moved into_button to MakeWidget
2023-11-14 11:44:32 -08:00
Jonathan Johnson
64584c4b14
Merge pull request #76 from ModProg/button-fun
derive(LinearInterpolate) on enum
2023-11-14 11:28:52 -08:00
Jonathan Johnson
4668db3983
New slider example showing min/max 2023-11-14 11:27:04 -08:00
Roland Fredenhagen
aec768617a
derive(LinearInterpolate) on enum 2023-11-14 20:03:30 +01:00
Jonathan Johnson
42ed86cdfd
Lerp/PercentBetween fixes
Asserting condition on PercentBetween, Color lerping now works
correctly according to testing with gray shades, but due to rounding
errors, no unit test is being checked in at the moment.
2023-11-14 10:16:22 -08:00
Jonathan Johnson
4c7c3be5ba
Helpers galore 2023-11-14 09:31:56 -08:00
Jonathan Johnson
494fa680cb
Contrast calculation adjustments
I noticed that the new default theme settings were causing the "wrong"
text color to be picked. After reviewing why the contrast values were
the way they were, I reasoned that the less lightness, the less the
ColorSource contrast matters. So I've applied a multiplication of the
average ligntess between the two colors being compared.
2023-11-14 08:43:05 -08:00
Jonathan Johnson
b72e4b0caf
Optimizing Stack layout in Known dimensions 2023-11-14 07:59:13 -08:00
Jonathan Johnson
a04619a279
Layout caching, Lerp underflow fix, label fix 2023-11-14 07:38:39 -08:00
Jonathan Johnson
cc7d4bac45
Merge pull request #74 from ModProg/button-fun
button outline without drawing
2023-11-13 16:29:41 -08:00
Jonathan Johnson
b1ae9efae2
ColorScheme[Builder] 2023-11-13 16:28:20 -08:00
Jonathan Johnson
40343e163f
Scroll fixes, resize helpers 2023-11-13 11:30:45 -08:00
Jonathan Johnson
ee3813f44d
Switcher, h/v expand 2023-11-13 09:14:38 -08:00
Roland Fredenhagen
5c9500460c
remove skip from derive(LinearInterpolate) 2023-11-13 17:46:57 +01:00
Roland Fredenhagen
4fa5be0cec
remove in_columns and in_rows again 2023-11-13 17:05:30 +01:00
Roland Fredenhagen
90884a8184
format 2023-11-13 17:03:53 +01:00
Roland Fredenhagen
7467f6408e
working outline 2023-11-13 17:03:53 +01:00
Roland Fredenhagen
4a4578bdd6
button outline without drawing 2023-11-13 17:03:51 +01:00
Jonathan Johnson
07b93397c5
Optimizations 2023-11-12 19:54:10 -08:00
Jonathan Johnson
96d407ddc2
Container, query_parent_style 2023-11-12 13:37:32 -08:00
Jonathan Johnson
2a50bb32d4
define_components embrace, sanitize, docs, export 2023-11-12 09:21:49 -08:00
Jonathan Johnson
849710dbb1
Diverging from material
Introducing two new colors:

- ColorTheme::color_dim, for dimmed/disabled primary colors
- SurfaceTheme::opaque_widget, for buttons.

In material design, a button's background color uses the Highest
Container role, which seems incorrect because then buttons wouldn't have
a different color when placed inside of the highest level container.

Rather than remove a container level, I added one more tone using the
neutral variant.

Other changes are just gut feelings to have a slightly richer dark
theme. I feel like material is a little muddy in dark mode.
2023-11-12 07:55:28 -08:00
Jonathan Johnson
b3bef345a5
Tweaking highlight color and focus ring drawing 2023-11-12 07:24:59 -08:00
Jonathan Johnson
022880822c
Rest of merge
I started making more changes, and I lost track of what was merge
related and what wasn't, so I committed the merge with what was staged,
but it probably didn't compile.

This is the remaining changes to get things back to a state I'm happy
with, mostly tweaking the constrast behavior.
2023-11-11 20:20:09 -08:00
Jonathan Johnson
6220394df2
Merge branch 'main' into button-fun 2023-11-11 20:18:06 -08:00
Jonathan Johnson
eca2b21e6a
contrast_between is now smarter 2023-11-11 17:57:26 -08:00
Roland Fredenhagen
af835b7474
don't deadlock 2023-11-12 02:23:05 +01:00
Roland Fredenhagen
a5dfd06f90
more styles 2023-11-12 02:15:09 +01:00
Jonathan Johnson
0610466964
Fixing check for resizable in window 2023-11-11 16:53:41 -08:00
Jonathan Johnson
d07dcdc9aa
Paired dynamics are now possible
Also sliders look better
2023-11-11 16:51:07 -08:00
Roland Fredenhagen
83cb88925a
Make button take MakeWidget 2023-11-12 00:38:43 +01:00
Jonathan Johnson
019412543c
Lerp for ThemeMode 2023-11-11 13:47:35 -08:00
Jonathan Johnson
27d5baef5d
ThemeMode 2023-11-11 13:41:34 -08:00
Jonathan Johnson
68339dfb62
Scroll fixes 2023-11-11 10:23:24 -08:00
Jonathan Johnson
eb4b24f4a9
Slider 2023-11-11 09:42:53 -08:00
Jonathan Johnson
972a1c1c13
Button/input outline, Input select all 2023-11-10 19:29:24 -08:00
Jonathan Johnson
d844a44b33
Refactored LabelBackground to WidgetBackground 2023-11-10 18:15:45 -08:00
Jonathan Johnson
81f6f8c4d3
Theme example reacts 2023-11-10 18:11:31 -08:00
Jonathan Johnson
e471cb0ea5
Removing debug statements 2023-11-10 15:55:23 -08:00
Jonathan Johnson
06ae120df2
Merge branch 'main' of github.com:khonsulabs/gooey 2023-11-10 15:47:07 -08:00
Jonathan Johnson
95c1f2a01a
Fixing DimensionRange for ..= 2023-11-10 15:46:38 -08:00
Jonathan Johnson
12b0d80dc0
Merge pull request #71 from ModProg/transparent-windows
Support transparent windows
2023-11-10 15:32:00 -08:00
Roland Fredenhagen
244be0cf06
Support transparent windows 2023-11-11 00:31:03 +01:00
Jonathan Johnson
60e85c78d0
Resize exact fix, stack overflow now works 2023-11-10 15:11:46 -08:00