//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) }
// AccelGroupsFromObject is a wrapper around gtk_accel_groups_from_object(). func AccelGroupsFromObject(obj *glib.Object) *glib.SList { res := C.gtk_accel_groups_from_object((*C.GObject)(unsafe.Pointer(obj.Native()))) if res == nil { return nil } return (*glib.SList)(unsafe.Pointer(res)) }
// Activate is a wrapper around gtk_accel_group_activate(). func (v *AccelGroup) Activate(quark glib.Quark, acceleratable *glib.Object, key uint, mods gdk.ModifierType) bool { return gobool(C.gtk_accel_group_activate(v.native(), C.GQuark(quark), (*C.GObject)(unsafe.Pointer(acceleratable.Native())), C.guint(key), C.GdkModifierType(mods))) }
// AccelGroupsActivate is a wrapper around gtk_accel_groups_activate(). func AccelGroupsActivate(obj *glib.Object, key uint, mods gdk.ModifierType) bool { return gobool(C.gtk_accel_groups_activate((*C.GObject)(unsafe.Pointer(obj.Native())), C.guint(key), C.GdkModifierType(mods))) }