diff options
author | San Jacobs | 2025-09-29 23:44:47 +0200 |
---|---|---|
committer | San Jacobs | 2025-09-29 23:44:47 +0200 |
commit | 98880c8a886848889e4b5a6fc21a961fddf1e607 (patch) | |
tree | c78855b0ea7bc32ed599214d191093af786618be /src/main.odin | |
parent | 1f77cd05fdbed146afac1020954e4910fa01875f (diff) | |
download | tafl-98880c8a886848889e4b5a6fc21a961fddf1e607.tar.gz tafl-98880c8a886848889e4b5a6fc21a961fddf1e607.tar.bz2 tafl-98880c8a886848889e4b5a6fc21a961fddf1e607.zip |
Humble beginnings of sliders
Diffstat (limited to 'src/main.odin')
-rw-r--r-- | src/main.odin | 69 |
1 files changed, 63 insertions, 6 deletions
diff --git a/src/main.odin b/src/main.odin index ead0e83..1f37461 100644 --- a/src/main.odin +++ b/src/main.odin @@ -32,7 +32,9 @@ main :: proc() { { t.tafl(color={0,0,0,0}, sizing_height=t.GROW, - sizing_width=t.GROW)} + sizing_width=t.GROW) + } + slider() { t.tafl( padding={8,8,8,8}, @@ -40,9 +42,15 @@ main :: proc() { color={.0, .0, .0, 0.4}, ) { - if button("Yeet", "yeet").clicked do fmt.println("YEEET!") - if button("Test", "test").clicked do fmt.println("Test!") - if button("Render", "render").clicked do fmt.println("Render!") + if button("Yeet", "yeet").clicked { + fmt.println("YEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEET!") + } + if button("Bawls", "bawls").clicked { + fmt.println("Baaaaaaaaaaaawwwwwwwwwwwllllllls.") + } + if button("Render", "render").clicked { + fmt.println("Reeeeeennnnnndeeeeeeeeeeeeeeeer!") + } } } @@ -120,18 +128,67 @@ button :: proc(text : string, id : string) -> t.Com { padding={2,2,2,2}, flags=t.BUTTON, id=id) + color : t.Color = {.1,.1,.1, 1} - if com.hover do color={.2,.2,.2, 1} - if com.clicked || com.is_down do color={.05,.05,.05, 1} + if com.hover do color = {.2,.2,.2, 1} + if com.clicked || com.is_down do color = {.05,.05,.05, 1} t.tafl(sizing_width=t.GROW, sizing_height=t.GROW, color=color, position_horizontal=.MIDDLE, position_vertical=.MIDDLE,) + t.tafl(text=text) return com } +slider_root : int = 0 +slider_delta : int = 0 +slider_current : int = 0 +slider :: proc(id : string = "a_slider") -> t.Com { + com : t.Com + com = t.tafl(sizing_width=t.GROW, + sizing_height=t.FIXED(30), + color={.1,.1,.1,1}, + padding={2,2,2,2}, + layout=.LEFT_TO_RIGHT, + flags={.DRAGGABLE, .CLICKABLE, .HOVERABLE}, + id=id) + + core_color : t.Color = {.2,.2,.2,1} + if com.hover { + core_color = {.3,.3,.3,1} + } + + if com.pressed_down { + slider_root = slider_root+slider_delta + } + if com.dragging { + core_color = {.12,.12,.12,1} + fmt.println(com.drag_delta) + slider_delta = com.drag_delta.x + slider_current = slider_root+slider_delta + fmt.println(slider_current) + } + + {t.tafl(sizing_width=t.FIXED(slider_current), + sizing_height=t.GROW) + } + { + t.tafl(sizing_width=t.FIXED(80), + sizing_height=t.GROW, + color={.5,.5,.5,1}, + padding={2,2,2,2}) + { + t.tafl(sizing_height=t.GROW, + sizing_width=t.GROW, + color=core_color) + } + } + return com +} + + Color_Scheme :: struct { background : t.Color, panel_blackground : t.Color, |