code: 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)
  }
docs: //export goBuilderConnect