Commit graph

206 commits

Author SHA1 Message Date
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
Togglebit
fa56922594 try to update the player colour based on mouse position (currently not working) 2023-11-14 08:51:57 +01:00
Togglebit
1d80f8467c removed comment 2023-11-14 08:23:09 +01:00
Togglebit
bb5a0a2ab2 fixed cargo.lock issue with rustix, removed duplicate methods from merge 2023-11-14 08:20:41 +01:00
Togglebit
fd362c7341 world coords and hover state for tilemap (this is very much debug) 2023-11-14 08:06:08 +01: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
Jonathan Johnson
e44872351d
Using the actual size when auto-resizing 2023-11-10 14:09:37 -08:00
Jonathan Johnson
0c3206a2ff
Adding RUST_LOG support to tracing
Also default level has been upped to info
2023-11-10 13:47:40 -08:00
Jonathan Johnson
e683b7d31f
fill(), expand at root, Space::colored 2023-11-10 12:20:56 -08:00
Jonathan Johnson
d7384b63d8
Added WIP theming system 2023-11-10 09:39:33 -08:00
Jonathan Johnson
724f6d7b18
Resize now accepts ranges, Window honors Resize
Closes #62, Closes #63
2023-11-09 14:54:41 -08:00
Jonathan Johnson
1714948174
Styles are now reactive 2023-11-09 10:42:56 -08:00
Jonathan Johnson
897880de25
Dynamic into/to helpers 2023-11-09 10:15:13 -08:00
Jonathan Johnson
a2e28cb522
Dynamic::take, align helpers, scroll fix
Scroll was previously taking the graphics region as its control size as
opposed to the constraints. This was due to this code originally living
in redraw. This fixes scroll areas being able to scroll their contents
fully when sharing window space with other widgts.
2023-11-09 10:04:09 -08:00
Jonathan Johnson
85928675ab
AutoFocusableControls, LayoutOrder 2023-11-09 08:51:24 -08:00
Jonathan Johnson
e4092532d3
Line scroll honors LineHeight, ignore no scroll 2023-11-09 07:58:59 -08:00
Jonathan Johnson
58b98a9a16
LinearInterpolation now requires PartialEq
This also means that if an animation is animating over discrete values
and the actual value has not changed, the Dynamic will no longer detect
a change because it's now using update instead of set.
2023-11-09 07:46:02 -08:00
Jonathan Johnson
a818cc41fd
TileMap focus, Style helpers 2023-11-09 06:58:58 -08:00
Jonathan Johnson
22fb955dca
More combinators
Maybe I went overboard.
2023-11-08 20:10:01 -08:00
Jonathan Johnson
8e268615a1
WrapperWidget, Space 2023-11-08 19:09:59 -08:00
Jonathan Johnson
9596eaac17
Embracing tracing 2023-11-08 16:16:08 -08:00
Jonathan Johnson
ad57e02e4f
Generic ForEach/MapEach 2023-11-08 15:32:51 -08:00
Jonathan Johnson
6d41902002
Fixing more edge cases around widget removal 2023-11-08 15:30:11 -08:00
Jonathan Johnson
ab4e4022ea
Fixing issues when widgets are removed 2023-11-08 14:43:55 -08:00
Jonathan Johnson
747813f6b8
Button.enabled 2023-11-08 12:37:58 -08:00
Jonathan Johnson
a8cd3df22c
Better Input keyboard event handling 2023-11-08 11:21:45 -08:00
Jonathan Johnson
bf9836a82b
Default + Cancel widgets 2023-11-08 11:03:17 -08:00
Jonathan Johnson
5e055376e7
Re-exposing attributes for now 2023-11-08 09:35:17 -08:00
Jonathan Johnson
fc165628e5
Input no longer blinks in the background
Also, Expand now expands properly.
2023-11-08 08:44:16 -08:00
Jonathan Johnson
b27b9db380
IntoDynamic<T> 2023-11-08 07:44:10 -08:00
Jonathan Johnson
57a689b8c8
Window focus/occlusion, recursive focus/activation 2023-11-07 20:16:59 -08:00
Jonathan Johnson
ca42ecc956
Fixed mouse events + docs 2023-11-07 16:43:19 -08:00
Jonathan Johnson
5e5d826267
Checkpoint
Progress on tab focus
2023-11-07 15:16:29 -08:00
Jonathan Johnson
8a2dae3f76
Next-focus progress
gameui no longer needs next_focus for the input to be focused
automatically
2023-11-07 08:39:35 -08:00
Jonathan Johnson
e7b4fe00b6
Updating to intentional 2023-11-06 14:30:03 -08:00
Jonathan Johnson
d766d906a6
Added async value test 2023-11-06 06:41:49 -08:00
Jonathan Johnson
fbf6134a0a
Initial window focus 2023-11-06 06:19:41 -08:00
Jonathan Johnson
0f6d3838b1
LayoutContext
measure() now is layout(). LayoutContext can either persist layout
information or be used temporarily for measurement. While this caching
is constantly thrown out currently, this is a step towards being able to
only re-layout widgets if they've been invalidated.
2023-11-05 11:50:59 -08:00
Jonathan Johnson
6f5ffd80b4
Easing functions as styles 2023-11-03 13:37:27 -07:00
Jonathan Johnson
1bf1b082af
Easings 2023-11-03 11:24:27 -07:00
Jonathan Johnson
126b324b55
Animation docs, on_complete 2023-11-03 09:37:22 -07:00
Jonathan Johnson
32b5e16695
Fixing size_to_fit unit test
Part of the refactor yesterday made Stack's size-to-fit behavior work in
both dimensions.
2023-11-03 07:21:17 -07:00
Jonathan Johnson
501eecd7a5
Async, better scroll, Input::on_key 2023-11-03 07:15:34 -07:00
Jonathan Johnson
0026a6db0d
Resize/Expand rework + basic readme 2023-11-02 14:23:36 -07:00
Jonathan Johnson
a95a7dc850
Spacing widget 2023-11-02 10:09:03 -07:00
Jonathan Johnson
ed31805693
Tuple animations 2023-11-02 07:48:30 -07:00
Jonathan Johnson
64f46a46e2
Button animations, hover fixes, ComponentType 2023-11-01 20:11:05 -07:00
Jonathan Johnson
6b8e5f886b
Update scroll example + work around cosmic_text
I decided scrolling a label would work better, so I loaded a source file
and noticed it wasn't rendering quite right in the label. It turns out
that the text wrapping was triggering despite the width in redraw being
the same as the measured amount. In short: sometimes the width I measure
can't be the width I set as the cosmic_text::Buffer size, because it
will cause it to wrap.

I've worked around it by caching the measured text for now. But it may
still show up in other situations and may require a more generalized
fix by seeing what else we can gleam from the glyphs being measured.
2023-11-01 15:43:56 -07:00
Jonathan Johnson
79be9a063b
Scroll and Animations
Scroll is only working to the absolute barest of requirements.
2023-11-01 15:15:14 -07:00
Jonathan Johnson
93a9545cc4
Renamed Array to Stack 2023-10-30 21:41:14 -07:00
Jonathan Johnson
c9c4c9aeed
Documentation 2023-10-30 21:12:04 -07:00
Jonathan Johnson
04e5381187
Added Tick to TileMap 2023-10-29 08:41:50 -07:00
Jonathan Johnson
c84ff988f3
Added TileMap widget 2023-10-27 15:28:51 -07:00
Jonathan Johnson
90593e1938
Updates for Kludgine text refactor 2023-10-27 14:23:42 -07:00
Jonathan Johnson
5b94d37b6f
Callback can now return a result 2023-10-27 12:25:31 -07:00
Jonathan Johnson
304032f1b0
Run, MakeWidget, styles! 2023-10-27 10:41:13 -07:00
Jonathan Johnson
69f6f68ba6
Added blinking cursor 2023-10-25 09:08:53 -07:00
Jonathan Johnson
dc6c22372b
Refreshing after ime input 2023-10-19 15:03:47 -07:00
Jonathan Johnson
983b6a97ad
More progress on input/event handling 2023-10-19 14:56:18 -07:00
Jonathan Johnson
8607fc51d2
Enabling IME 2023-10-18 16:07:26 -07:00
Jonathan Johnson
87578e5c76
Progress towards an input widget 2023-10-18 15:44:13 -07:00
Jonathan Johnson
e04b1b14ad
Added keyboard_input 2023-10-18 08:51:11 -07:00
Jonathan Johnson
fc707835f5
Initial commit 2023-10-18 08:22:41 -07:00