// go run example.go package main /* #cgo LDFLAGS: -L.. -Wl,-rpath,.. -ltermbox #include typedef struct tb_event_s { uint8_t _type; uint8_t mod; uint16_t key; uint32_t ch; int32_t w; int32_t h; int32_t x; int32_t y; } tb_event; int tb_init(); int tb_shutdown(); int tb_present(); int tb_poll_event(tb_event *event); int tb_print(int x, int y, uint32_t fg, uint32_t bg, const char *str); */ import "C" import "fmt" func main() { ev := C.tb_event{} C.tb_init() y := 0 C.tb_print(C.int(0), C.int(y), C.uint(0x02 | 0x0100), C.uint(0x00), C.CString("hello from go")) y += 1 C.tb_print(C.int(0), C.int(y), C.uint(0x03), C.uint(0x00), C.CString("press any key")) y += 1 C.tb_present() C.tb_poll_event(&ev) C.tb_print(C.int(0), C.int(y), C.uint(0x04), C.uint(0x00), C.CString(fmt.Sprintf( "event: type=%d mod=%d key=%d ch=%d w=%d h=%d x=%d y=%d", ev._type, ev.mod, ev.key, ev.ch, ev.w, ev.h, ev.x, ev.y))) y += 1 C.tb_present() C.tb_print(C.int(0), C.int(y), C.uint(0x05), C.uint(0x00), C.CString("press any key to quit")) y += 1 C.tb_present() C.tb_poll_event(&ev) C.tb_shutdown() }