func (v *Widget) SetMarginStart(margin int) {
	C.gtk_widget_set_margin_start(v.native(), C.gint(margin))
}
SetMarginStart is a wrapper around gtk_widget_set_margin_start().
package gtk
import "C"
import (
	"github.com/conformal/gotk3/glib"
	"runtime"
	"unsafe"
)
func init() {
	tm := []glib.TypeMarshaler{
		{glib.Type(C.gtk_popover_get_type()), marshalPopover},
	}
	glib.RegisterGValueMarshalers(tm)
}
type Popover struct {
	Bin
}
func (v *Popover) native() *C.GtkPopover {
	if v == nil || v.GObject == nil {
		return nil
	}
	p := unsafe.Pointer(v.GObject)
	return C.toGtkPopover(p)
}
func marshalPopover(p uintptr) (interface{}, error) {
	c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p)))
	obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))}
	return wrapPopover(obj), nil
}
func wrapPopover(obj *glib.Object) *Popover {
	return &Popover{Bin{Container{Widget{glib.InitiallyUnowned{obj}}}}}
}
func PopoverNew(relativeTo IWidget) (*Popover, error) {
	c := C.gtk_popover_new(relativeTo.toWidget())
	if c == nil {
		return nil, nilPtrErr
	}
	obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))}
	a := wrapPopover(obj)
	obj.RefSink()
	runtime.SetFinalizer(obj, (*glib.Object).Unref)
	return a, nil
}
func (v *Popover) SetRelativeTo(relativeTo IWidget) {
	C.gtk_popover_set_relative_to(v.native(), relativeTo.toWidget())
}
func (v *Popover) GetRelativeTo() (*Widget, error) {
	c := C.gtk_popover_get_relative_to(v.native())
	if c == nil {
		return nil, nilPtrErr
	}
	obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))}
	w := wrapWidget(obj)
	obj.RefSink()
	runtime.SetFinalizer(obj, (*glib.Object).Unref)
	return w, nil
}
func (v *Popover) SetPosition(position PositionType) {
	C.gtk_popover_set_position(v.native(), C.GtkPositionType(position))
}
func (v *Popover) GetPosition() PositionType {
	c := C.gtk_popover_get_position(v.native())
	return PositionType(c)
}
func (v *Popover) SetModal(modal bool) {
	C.gtk_popover_set_modal(v.native(), gbool(modal))
}
func (v *Popover) GetModal() bool {
	c := C.gtk_popover_get_modal(v.native())
	return gobool(c)
}
func (v *Widget) GetMarginStart() int {
	c := C.gtk_widget_get_margin_start(v.native())
	return int(c)
}