-
Notifications
You must be signed in to change notification settings - Fork 0
/
microui_init.go
48 lines (43 loc) · 1.09 KB
/
microui_init.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package microui
/*
#include "microui.h"
#include "microui_init.h"
#include <stdlib.h>
*/
import "C"
import (
"unsafe"
)
type GetTextWidthFunc func(font Font, text string) int32
type GetTextHeightFunc func(font Font) int32
var (
DefaultGetTextWidth GetTextWidthFunc = func(font Font, text string) int32 {
println("DefaultGetTextWidth", font, text)
//TODO!
return 1
}
DefaultGetTextHeight GetTextHeightFunc = func(font Font) int32 {
println("DefaultGetTextHeight", font)
//TODO!
return 1
}
)
//export goDefaultGetTextWidthFunc
func goDefaultGetTextWidthFunc(font unsafe.Pointer, text unsafe.Pointer, size C.int) C.int {
// fmt.Println("goDefaultGetTextWidthFunc", font, text, size)
var txt string
if size == -1 {
txt = C.GoString((*C.char)(text))
} else {
txt = string(C.GoBytes(text, size))
}
// fmt.Println("goDefaultGetTextWidthFunc :)", txt)
v := DefaultGetTextWidth((Font)(font), txt)
// fmt.Println(v)
return C.int(v)
}
//export goDefaultGetTextHeightFunc
func goDefaultGetTextHeightFunc(font unsafe.Pointer) C.int {
v := DefaultGetTextHeight((Font)(font))
return C.int(v)
}