// go run example.go
package main
/*
#cgo LDFLAGS: -L.. -Wl,-rpath,.. -ltermbox2
#include <stdint.h>
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()
}