aboutsummaryrefslogtreecommitdiff
path: root/src/main.odin
diff options
context:
space:
mode:
authorSan Jacobs2025-09-29 23:44:47 +0200
committerSan Jacobs2025-09-29 23:44:47 +0200
commit98880c8a886848889e4b5a6fc21a961fddf1e607 (patch)
treec78855b0ea7bc32ed599214d191093af786618be /src/main.odin
parent1f77cd05fdbed146afac1020954e4910fa01875f (diff)
downloadtafl-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.odin69
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,