//export goBuilderConnect func goBuilderConnect(builder *C.GtkBuilder, object *C.GObject, signal_name *C.gchar, handler_name *C.gchar, connect_object *C.GObject, flags C.GConnectFlags, user_data C.gpointer) { builderSignals.Lock() signals, ok := builderSignals.m[builder] builderSignals.Unlock() if !ok { panic("no signal mapping defined for this GtkBuilder") } h := C.GoString((*C.char)(handler_name)) s := C.GoString((*C.char)(signal_name)) handler, ok := signals[h] if !ok { return } if object == nil { panic("unexpected nil object from builder") } //TODO: figure out a better way to get a glib.Object from a *C.GObject gobj := glib.Object{glib.ToGObject(unsafe.Pointer(object))} gobj.Connect(s, handler) }
func toDisplay(s *C.GdkDisplay) (*Display, error) { if s == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(s))} return &Display{obj}, nil }
func toScreen(s *C.GdkScreen) (*Screen, error) { if s == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(s))} return &Screen{obj}, nil }
func toWindow(s *C.GdkWindow) (*Window, error) { if s == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(s))} return &Window{obj}, nil }
// GetDisplay() is a wrapper around gdk_device_manager_get_display(). func (v *DeviceManager) GetDisplay() (*Display, error) { c := C.gdk_device_manager_get_display(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return &Display{obj}, nil }
// Flip is a wrapper around gdk_pixbuf_flip(). func (v *Pixbuf) Flip(horizontal bool) (*Pixbuf, error) { c := C.gdk_pixbuf_flip(v.native(), gbool(horizontal)) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// ApplyEmbeddedOrientation is a wrapper around gdk_pixbuf_apply_embedded_orientation(). func (v *Pixbuf) ApplyEmbeddedOrientation() (*Pixbuf, error) { c := C.gdk_pixbuf_apply_embedded_orientation(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// RotateSimple is a wrapper around gdk_pixbuf_rotate_simple(). func (v *Pixbuf) RotateSimple(angle PixbufRotation) (*Pixbuf, error) { c := C.gdk_pixbuf_rotate_simple(v.native(), C.GdkPixbufRotation(angle)) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// PixbufCopy is a wrapper around gdk_pixbuf_copy(). func PixbufCopy(v *Pixbuf) (*Pixbuf, error) { c := C.gdk_pixbuf_copy(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// GetPixbuf is a wrapper around gdk_pixbuf_loader_get_pixbuf(). func (v *PixbufLoader) GetPixbuf() (*Pixbuf, error) { c := C.gdk_pixbuf_loader_get_pixbuf(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// ScaleSimple is a wrapper around gdk_pixbuf_scale_simple(). func (v *Pixbuf) ScaleSimple(destWidth, destHeight int, interpType InterpType) (*Pixbuf, error) { c := C.gdk_pixbuf_scale_simple(v.native(), C.int(destWidth), C.int(destHeight), C.GdkInterpType(interpType)) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// GetSystemVisual is a wrapper around gdk_screen_get_system_visual(). func (v *Screen) GetSystemVisual() (*Visual, error) { c := C.gdk_screen_get_system_visual(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} visual := &Visual{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return visual, nil }
// GetDefaultScreen() is a wrapper around gdk_display_get_default_screen(). func (v *Display) GetDefaultScreen() (*Screen, error) { c := C.gdk_display_get_default_screen(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} s := &Screen{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return s, nil }
// PixbufNew is a wrapper around gdk_pixbuf_new(). func PixbufNew(colorspace Colorspace, hasAlpha bool, bitsPerSample, width, height int) (*Pixbuf, error) { c := C.gdk_pixbuf_new(C.GdkColorspace(colorspace), gbool(hasAlpha), C.int(bitsPerSample), C.int(width), C.int(height)) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// GetDefaultGroup() is a wrapper around gdk_display_get_default_group(). func (v *Display) GetDefaultGroup() (*Window, error) { c := C.gdk_display_get_default_group(v.native()) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} w := &Window{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return w, nil }
// DisplayGetDefault() is a wrapper around gdk_display_get_default(). func DisplayGetDefault() (*Display, error) { c := C.gdk_display_get_default() if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} d := &Display{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return d, nil }
// PixbufLoaderNew() is a wrapper around gdk_pixbuf_loader_new(). func PixbufLoaderNew() (*PixbufLoader, error) { c := C.gdk_pixbuf_loader_new() if c == nil { return nil, nilPtrErr } //TODO this should be some wrap object obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &PixbufLoader{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// DisplayOpen() is a wrapper around gdk_display_open(). func DisplayOpen(displayName string) (*Display, error) { cstr := C.CString(displayName) defer C.free(unsafe.Pointer(cstr)) c := C.gdk_display_open((*C.gchar)(cstr)) if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} d := &Display{obj} obj.Ref() runtime.SetFinalizer(obj, (*glib.Object).Unref) return d, nil }
// PixbufNewFromFile is a wrapper around gdk_pixbuf_new_from_file(). func PixbufNewFromFile(filename string) (*Pixbuf, error) { cstr := C.CString(filename) defer C.free(unsafe.Pointer(cstr)) var err *C.GError res := C.gdk_pixbuf_new_from_file((*C.char)(cstr), &err) if res == nil { defer C.g_error_free(err) return nil, errors.New(C.GoString((*C.char)(err.message))) } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(res))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// ListDevices() is a wrapper around gdk_device_manager_list_devices(). func (v *DeviceManager) ListDevices(tp DeviceType) *glib.List { clist := C.gdk_device_manager_list_devices(v.native(), C.GdkDeviceType(tp)) if clist == nil { return nil } glist := glib.WrapList(uintptr(unsafe.Pointer(clist))) glist.DataWrapper(func(ptr unsafe.Pointer) interface{} { return &Device{&glib.Object{glib.ToGObject(ptr)}} }) runtime.SetFinalizer(glist, func(glist *glib.List) { glist.Free() }) return glist }
// PixbufNewFromFileAtSize is a wrapper around gdk_pixbuf_new_from_file_at_size(). func PixbufNewFromFileAtSize(filename string, width, height int) (*Pixbuf, error) { cstr := C.CString(filename) defer C.free(unsafe.Pointer(cstr)) var err *C.GError = nil res := C.gdk_pixbuf_new_from_file_at_size(cstr, C.int(width), C.int(height), &err) if err != nil { defer C.g_error_free(err) return nil, errors.New(C.GoString((*C.char)(err.message))) } if res == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(res))} p := &Pixbuf{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
// PixbufLoaderNewWithType() is a wrapper around gdk_pixbuf_loader_new_with_type(). func PixbufLoaderNewWithType(t string) (*PixbufLoader, error) { var err *C.GError cstr := C.CString(t) defer C.free(unsafe.Pointer(cstr)) c := C.gdk_pixbuf_loader_new_with_type((*C.char)(cstr), &err) if err != nil { defer C.g_error_free(err) return nil, errors.New(C.GoString((*C.char)(err.message))) } if c == nil { return nil, nilPtrErr } //TODO this should be some wrap object obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &PixbufLoader{obj} runtime.SetFinalizer(obj, (*glib.Object).Unref) return p, nil }
func marshalScreen(p uintptr) (interface{}, error) { c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} return &Screen{obj}, nil }