mirror of
https://github.com/IllusionMan1212/libui-ng-odin.git
synced 2026-10-24 02:12:37 +00:00
58 lines
1.2 KiB
Odin
58 lines
1.2 KiB
Odin
package libui_timer
|
|||
|
|
|
||
|
|
import "core:c"
|
||
|
|
import "core:c/libc"
|
||
|
|
import "core:fmt"
|
||
|
|
|
||
|
|
import "../../"
|
||
|
|
|
||
|
|
e: ^libui.MultilineEntry
|
||
|
|
|
||
|
|
sayTime :: proc "c" (data: rawptr) -> c.int {
|
||
|
|
t := libc.time(nil)
|
||
|
|
s := libc.ctime(&t)
|
||
|
|
|
||
|
|
libui.MultilineEntryAppend(e, cast(cstring)s)
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
onClosing :: proc "c" (w: ^libui.Window, data: rawptr) -> b32 {
|
||
|
|
libui.Quit()
|
||
|
|
return true
|
||
|
|
}
|
||
|
|
|
||
|
|
saySomething :: proc "c" (b: ^libui.Button, data: rawptr) {
|
||
|
|
libui.MultilineEntryAppend(e, "Saying something\n")
|
||
|
|
}
|
||
|
|
|
||
|
|
main :: proc() {
|
||
|
|
o: libui.InitOptions
|
||
|
|
|
||
|
|
if libui.Init(&o) != nil {
|
||
|
|
fmt.println("Failed to initialize libui")
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
w := libui.NewWindow("Hello", 320, 240, false)
|
||
|
|
libui.WindowSetMargined(w, true)
|
||
|
|
|
||
|
|
b := libui.NewVerticalBox()
|
||
|
|
libui.BoxSetPadded(b, true)
|
||
|
|
libui.WindowSetChild(w, cast(^libui.Control)b)
|
||
|
|
|
||
|
|
e = libui.NewMultilineEntry()
|
||
|
|
libui.MultilineEntrySetReadOnly(e, true)
|
||
|
|
|
||
|
|
btn := libui.NewButton("Say Something")
|
||
|
|
libui.ButtonOnClicked(btn, saySomething, nil)
|
||
|
|
libui.BoxAppend(b, cast(^libui.Control)btn, false)
|
||
|
|
|
||
|
|
libui.BoxAppend(b, cast(^libui.Control)e, true)
|
||
|
|
|
||
|
|
libui.Timer(1000, sayTime, nil)
|
||
|
|
|
||
|
|
libui.WindowOnClosing(w, onClosing, nil)
|
||
|
|
libui.ControlShow(cast(^libui.Control)w)
|
||
|
|
libui.Main()
|
||
|
|
}
|