예제 #1
0
파일: gtk.go 프로젝트: hwch/go-gtk
func Init(args []string) {
	argc := C.int(len(args))
	iLen := len(args)
	if iLen != 0 {
		argv := make([]*C.char, iLen)
		for i := 0; i < iLen; i++ {
			argv[i] = C.CString(args[i])
		}
		C._gtk_init(unsafe.Pointer(&argc), unsafe.Pointer(&argv))
		for i := 0; i < iLen; i++ {
			args[i] = C.GoString(argv[i])
			C.free(unsafe.Pointer(argv[i]))
		}
	} else {
		C._gtk_init(nil, nil)
	}
}
예제 #2
0
파일: functions.go 프로젝트: ziutek/gtk
func init() {
	alen := C.int(len(os.Args))
	argv := make([]*C.char, alen)
	for i, s := range os.Args {
		argv[i] = C.CString(s)
	}
	ret := C._gtk_init(&alen, &argv[0])
	argv = (*[1 << 16]*C.char)(unsafe.Pointer(ret))[:alen]
	os.Args = make([]string, alen)
	for i, s := range argv {
		os.Args[i] = C.GoString(s)
	}
}
예제 #3
0
파일: gtk3.go 프로젝트: napsy/go-gtk3
func Init() {
	C._gtk_init(nil, nil)
}