Documentation
¶
Overview ¶
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Package gobject was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT
Index ¶
- Constants
- Variables
- func BoxedCopy(BoxedTypeVar []interface{}, SrcBoxedVar uintptr) uintptr
- func BoxedFree(BoxedTypeVar []interface{}, BoxedVar uintptr)
- func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedFreeVar *BoxedFreeFunc) []interface{}
- func CclosureMarshalBOOLEANBOXEDBOXED(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalBOOLEANFLAGS(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalGeneric(ClosureVar *Closure, ReturnGvalueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalSTRINGOBJECTPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDBOOLEAN(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDBOXED(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDCHAR(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDDOUBLE(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDENUM(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDFLAGS(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDFLOAT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDINT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDLONG(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDOBJECT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDPARAM(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDSTRING(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDUCHAR(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDUINT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDUINTPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDULONG(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDVARIANT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func CclosureMarshalVOIDVOID(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ...)
- func ClearObject(ObjectPtrVar **Object)
- func ClearSignalHandler(HandlerIdPtrVar uint32, InstanceVar *Object)
- func ConvertPtr(a interface{}) *uintptr
- func EnumCompleteTypeInfo(GEnumTypeVar []interface{}, InfoVar *TypeInfo, ConstValuesVar *EnumValue)
- func EnumRegisterStatic(NameVar string, ConstStaticValuesVar *EnumValue) []interface{}
- func EnumToString(GEnumTypeVar []interface{}, ValueVar int) string
- func FlagsCompleteTypeInfo(GFlagsTypeVar []interface{}, InfoVar *TypeInfo, ConstValuesVar *FlagsValue)
- func FlagsRegisterStatic(NameVar string, ConstStaticValuesVar *FlagsValue) []interface{}
- func FlagsToString(FlagsTypeVar []interface{}, ValueVar uint) string
- func GtypeGetType() []interface{}
- func IncreaseRef(a uintptr)
- func NewSignalQuery(SignalIdVar uint, QueryVar *SignalQuery)
- func NewTypeQuery(TypeVar []interface{}, QueryVar *TypeQuery)
- func ObjectCompatControl(WhatVar uint, DataVar uintptr) uint
- func ObjectInterfaceInstallProperty(GIfaceVar *TypeInterface, PspecVar *ParamSpec)
- func ObjectInterfaceListProperties(GIfaceVar *TypeInterface, NPropertiesPVar uint) uintptr
- func ParamSpecIsValidName(NameVar string) bool
- func ParamTypeRegisterStatic(NameVar string, PspecInfoVar *ParamSpecTypeInfo) []interface{}
- func ParamValueConvert(PspecVar *ParamSpec, SrcValueVar *Value, DestValueVar *Value, ...) bool
- func ParamValueDefaults(PspecVar *ParamSpec, ValueVar *Value) bool
- func ParamValueSetDefault(PspecVar *ParamSpec, ValueVar *Value)
- func ParamValueValidate(PspecVar *ParamSpec, ValueVar *Value) bool
- func ParamValuesCmp(PspecVar *ParamSpec, Value1Var *Value, Value2Var *Value) int
- func PointerTypeRegisterStatic(NameVar string) []interface{}
- func SignalAccumulatorFirstWins(IhintVar *SignalInvocationHint, ReturnAccuVar *Value, HandlerReturnVar *Value, ...) bool
- func SignalAccumulatorTrueHandled(IhintVar *SignalInvocationHint, ReturnAccuVar *Value, HandlerReturnVar *Value, ...) bool
- func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *SignalEmissionHook, ...) uint32
- func SignalChainFromOverridden(InstanceAndParamsVar uintptr, ReturnValueVar *Value)
- func SignalChainFromOverriddenHandler(InstanceVar *TypeInstance, varArgs ...interface{})
- func SignalConnect(a uintptr, b string, c uintptr) uint32
- func SignalConnectClosure(InstanceVar *Object, DetailedSignalVar string, ClosureVar *Closure, ...) uint32
- func SignalConnectClosureById(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, ...) uint32
- func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVar *Callback, ...) uint32
- func SignalConnectObject(InstanceVar *TypeInstance, DetailedSignalVar string, CHandlerVar *Callback, ...) uint32
- func SignalEmit(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, ...)
- func SignalEmitByName(InstanceVar *Object, DetailedSignalVar string, varArgs ...interface{})
- func SignalEmitValist(InstanceVar *TypeInstance, SignalIdVar uint, DetailVar glib.Quark, ...)
- func SignalEmitv(InstanceAndParamsVar uintptr, SignalIdVar uint, DetailVar glib.Quark, ...)
- func SignalHandlerBlock(InstanceVar *Object, HandlerIdVar uint32)
- func SignalHandlerDisconnect(InstanceVar *Object, HandlerIdVar uint32)
- func SignalHandlerFind(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, ...) uint32
- func SignalHandlerIsConnected(InstanceVar *Object, HandlerIdVar uint32) bool
- func SignalHandlerUnblock(InstanceVar *Object, HandlerIdVar uint32)
- func SignalHandlersBlockMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, ...) uint
- func SignalHandlersDestroy(InstanceVar *Object)
- func SignalHandlersDisconnectMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, ...) uint
- func SignalHandlersUnblockMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, ...) uint
- func SignalHasHandlerPending(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, ...) bool
- func SignalIsValidName(NameVar string) bool
- func SignalListIds(ItypeVar []interface{}, NIdsVar uint) uintptr
- func SignalLookup(NameVar string, ItypeVar []interface{}) uint
- func SignalName(SignalIdVar uint) string
- func SignalNew(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ...) uint
- func SignalNewClassHandler(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ...) uint
- func SignalNewValist(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ...) uint
- func SignalNewv(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ...) uint
- func SignalOverrideClassClosure(SignalIdVar uint, InstanceTypeVar []interface{}, ClassClosureVar *Closure)
- func SignalOverrideClassHandler(SignalNameVar string, InstanceTypeVar []interface{}, ClassHandlerVar *Callback)
- func SignalParseName(DetailedSignalVar string, ItypeVar []interface{}, SignalIdPVar uint, ...) bool
- func SignalRemoveEmissionHook(SignalIdVar uint, HookIdVar uint32)
- func SignalSetVaMarshaller(SignalIdVar uint, InstanceTypeVar []interface{}, ...)
- func SignalStopEmission(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark)
- func SignalStopEmissionByName(InstanceVar *Object, DetailedSignalVar string)
- func SourceSetClosure(SourceVar *glib.Source, ClosureVar *Closure)
- func SourceSetDummyCallback(SourceVar *glib.Source)
- func StrdupValueContents(ValueVar *Value) string
- func TypeAddClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFunc)
- func TypeAddClassPrivate(ClassTypeVar []interface{}, PrivateSizeVar uint)
- func TypeAddInstancePrivate(ClassTypeVar []interface{}, PrivateSizeVar uint) int
- func TypeAddInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceCheckFunc)
- func TypeAddInterfaceDynamic(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, ...)
- func TypeAddInterfaceStatic(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, ...)
- func TypeCheckClassIsA(GClassVar *TypeClass, IsATypeVar []interface{}) bool
- func TypeCheckInstance(InstanceVar *TypeInstance) bool
- func TypeCheckInstanceIsA(InstanceVar *TypeInstance, IfaceTypeVar []interface{}) bool
- func TypeCheckInstanceIsFundamentallyA(InstanceVar *TypeInstance, FundamentalTypeVar []interface{}) bool
- func TypeCheckIsValueType(TypeVar []interface{}) bool
- func TypeCheckValue(ValueVar *Value) bool
- func TypeCheckValueHolds(ValueVar *Value, TypeVar []interface{}) bool
- func TypeChildren(TypeVar []interface{}, NChildrenVar uint) uintptr
- func TypeClassAdjustPrivateOffset(GClassVar uintptr, PrivateSizeOrOffsetVar int)
- func TypeDefaultInterfaceUnref(GIfaceVar *TypeInterface)
- func TypeDepth(TypeVar []interface{}) uint
- func TypeEnsure(TypeVar []interface{})
- func TypeFreeInstance(InstanceVar *TypeInstance)
- func TypeFromName(NameVar string) []interface{}
- func TypeFundamental(TypeIdVar []interface{}) []interface{}
- func TypeFundamentalNext() []interface{}
- func TypeGetInstanceCount(TypeVar []interface{}) int
- func TypeGetQdata(TypeVar []interface{}, QuarkVar glib.Quark) uintptr
- func TypeGetTypeRegistrationSerial() uint
- func TypeInit()
- func TypeInitWithDebugFlags(DebugFlagsVar TypeDebugFlags)
- func TypeInterfaceAddPrerequisite(InterfaceTypeVar []interface{}, PrerequisiteTypeVar []interface{})
- func TypeInterfaceInstantiatablePrerequisite(InterfaceTypeVar []interface{}) []interface{}
- func TypeInterfacePrerequisites(InterfaceTypeVar []interface{}, NPrerequisitesVar uint) uintptr
- func TypeInterfaces(TypeVar []interface{}, NInterfacesVar uint) uintptr
- func TypeIsA(TypeVar []interface{}, IsATypeVar []interface{}) bool
- func TypeName(TypeVar []interface{}) string
- func TypeNameFromClass(GClassVar *TypeClass) string
- func TypeNameFromInstance(InstanceVar *TypeInstance) string
- func TypeNextBase(LeafTypeVar []interface{}, RootTypeVar []interface{}) []interface{}
- func TypeParent(TypeVar []interface{}) []interface{}
- func TypeQname(TypeVar []interface{}) glib.Quark
- func TypeRegisterDynamic(ParentTypeVar []interface{}, TypeNameVar string, PluginVar TypePlugin, ...) []interface{}
- func TypeRegisterFundamental(TypeIdVar []interface{}, TypeNameVar string, InfoVar *TypeInfo, ...) []interface{}
- func TypeRegisterStatic(ParentTypeVar []interface{}, TypeNameVar string, InfoVar *TypeInfo, ...) []interface{}
- func TypeRegisterStaticSimple(ParentTypeVar []interface{}, TypeNameVar string, ClassSizeVar uint, ...) []interface{}
- func TypeRemoveClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFunc)
- func TypeRemoveInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceCheckFunc)
- func TypeSetQdata(TypeVar []interface{}, QuarkVar glib.Quark, DataVar uintptr)
- func TypeTestFlags(TypeVar []interface{}, FlagsVar uint) bool
- func ValueRegisterTransformFunc(SrcTypeVar []interface{}, DestTypeVar []interface{}, ...)
- func ValueTypeCompatible(SrcTypeVar []interface{}, DestTypeVar []interface{}) bool
- func ValueTypeTransformable(SrcTypeVar []interface{}, DestTypeVar []interface{}) bool
- type BaseFinalizeFunc
- type BaseInitFunc
- type Binding
- func (x *Binding) DupSource() *Object
- func (x *Binding) DupTarget() *Object
- func (x *Binding) GetFlags() BindingFlags
- func (x *Binding) GetSource() *Object
- func (x *Binding) GetSourceProperty() string
- func (x *Binding) GetTarget() *Object
- func (x *Binding) GetTargetProperty() string
- func (c *Binding) GoPointer() uintptr
- func (c *Binding) SetGoPointer(ptr uintptr)
- func (x *Binding) Unbind()
- type BindingFlags
- type BindingGroup
- func (x *BindingGroup) Bind(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...)
- func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...)
- func (x *BindingGroup) BindWithClosures(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...)
- func (x *BindingGroup) DupSource() *Object
- func (c *BindingGroup) GoPointer() uintptr
- func (c *BindingGroup) SetGoPointer(ptr uintptr)
- func (x *BindingGroup) SetSource(SourceVar *Object)
- type BindingTransformFunc
- type BoxedCopyFunc
- type BoxedFreeFunc
- type CClosure
- type Callback
- type ClassFinalizeFunc
- type ClassInitFunc
- type Closure
- func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar *ClosureNotify) *Closure
- func CclosureNewObject(CallbackFuncVar *Callback, ObjectVar *Object) *Closure
- func CclosureNewObjectSwap(CallbackFuncVar *Callback, ObjectVar *Object) *Closure
- func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar *ClosureNotify) *Closure
- func NewClosureObject(SizeofClosureVar uint, ObjectVar *Object) *Closure
- func NewClosureSimple(SizeofClosureVar uint, DataVar uintptr) *Closure
- func SignalTypeCclosureNew(ItypeVar []interface{}, StructOffsetVar uint) *Closure
- func (x *Closure) AddFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
- func (x *Closure) AddInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
- func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVar *ClosureNotify, ...)
- func (x *Closure) GoPointer() uintptr
- func (x *Closure) Invalidate()
- func (x *Closure) Invoke(ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar uintptr, ...)
- func (x *Closure) Ref() *Closure
- func (x *Closure) RemoveFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
- func (x *Closure) RemoveInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
- func (x *Closure) SetMarshal(MarshalVar *ClosureMarshal)
- func (x *Closure) SetMetaMarshal(MarshalDataVar uintptr, MetaMarshalVar *ClosureMarshal)
- func (x *Closure) Sink()
- func (x *Closure) Unref()
- type ClosureMarshal
- type ClosureNotify
- type ClosureNotifyData
- type ConnectFlags
- type EnumClass
- type EnumValue
- type FlagsClass
- type FlagsValue
- type InitiallyUnowned
- type InitiallyUnownedClass
- type InstanceInitFunc
- type InterfaceFinalizeFunc
- type InterfaceInfo
- type InterfaceInitFunc
- type Object
- func NewObject(ObjectTypeVar []interface{}, FirstPropertyNameVar string, ...) *Object
- func NewObjectValist(ObjectTypeVar []interface{}, FirstPropertyNameVar string, ...) *Object
- func NewObjectWithProperties(ObjectTypeVar []interface{}, NPropertiesVar uint, NamesVar []string, ...) *Object
- func NewObjectv(ObjectTypeVar []interface{}, NParametersVar uint, ParametersVar uintptr) *Object
- func ObjectNewFromInternalPtr(ptr uintptr) *Object
- func (x *Object) AddToggleRef(NotifyVar *ToggleNotify, DataVar uintptr)
- func (x *Object) AddWeakPointer(WeakPointerLocationVar uintptr)
- func (x *Object) BindProperty(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...) *Binding
- func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...) *Binding
- func (x *Object) BindPropertyWithClosures(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, ...) *Binding
- func (o Object) Cast(v Ptr)
- func (x *Object) Connect(SignalSpecVar string, varArgs ...interface{}) *Object
- func (x *Object) ConnectNotify(cb *func(Object, uintptr)) uint32
- func (o Object) ConnectSignal(signal string, cb *func()) uint32
- func (x *Object) Disconnect(SignalSpecVar string, varArgs ...interface{})
- func (o Object) DisconnectSignal(handler uint32)
- func (x *Object) DupData(KeyVar string, DupFuncVar *glib.DuplicateFunc, UserDataVar uintptr) uintptr
- func (x *Object) DupQdata(QuarkVar glib.Quark, DupFuncVar *glib.DuplicateFunc, UserDataVar uintptr) uintptr
- func (x *Object) ForceFloating()
- func (x *Object) FreezeNotify()
- func (x *Object) Get(FirstPropertyNameVar string, varArgs ...interface{})
- func (x *Object) GetData(KeyVar string) uintptr
- func (x *Object) GetProperty(PropertyNameVar string, ValueVar *Value)
- func (x *Object) GetQdata(QuarkVar glib.Quark) uintptr
- func (x *Object) GetValist(FirstPropertyNameVar string, VarArgsVar []interface{})
- func (x *Object) Getv(NPropertiesVar uint, NamesVar uintptr, ValuesVar uintptr)
- func (c *Object) GoPointer() uintptr
- func (x *Object) IsFloating() bool
- func (x *Object) Notify(PropertyNameVar string)
- func (x *Object) NotifyByPspec(PspecVar *ParamSpec)
- func (x *Object) Ref() *Object
- func (x *Object) RefSink() *Object
- func (x *Object) RemoveToggleRef(NotifyVar *ToggleNotify, DataVar uintptr)
- func (x *Object) RemoveWeakPointer(WeakPointerLocationVar uintptr)
- func (x *Object) ReplaceData(KeyVar string, OldvalVar uintptr, NewvalVar uintptr, ...) bool
- func (x *Object) ReplaceQdata(QuarkVar glib.Quark, OldvalVar uintptr, NewvalVar uintptr, ...) bool
- func (x *Object) RunDispose()
- func (x *Object) Set(FirstPropertyNameVar string, varArgs ...interface{})
- func (x *Object) SetData(KeyVar string, DataVar uintptr)
- func (x *Object) SetDataFull(KeyVar string, DataVar uintptr, DestroyVar *glib.DestroyNotify)
- func (c *Object) SetGoPointer(ptr uintptr)
- func (x *Object) SetProperty(PropertyNameVar string, ValueVar *Value)
- func (x *Object) SetQdata(QuarkVar glib.Quark, DataVar uintptr)
- func (x *Object) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVar *glib.DestroyNotify)
- func (x *Object) SetValist(FirstPropertyNameVar string, VarArgsVar []interface{})
- func (x *Object) Setv(NPropertiesVar uint, NamesVar uintptr, ValuesVar uintptr)
- func (x *Object) StealData(KeyVar string) uintptr
- func (x *Object) StealQdata(QuarkVar glib.Quark) uintptr
- func (x *Object) TakeRef() *Object
- func (x *Object) ThawNotify()
- func (x *Object) Unref()
- func (x *Object) WatchClosure(ClosureVar *Closure)
- func (x *Object) WeakRef(NotifyVar *WeakNotify, DataVar uintptr)
- func (x *Object) WeakUnref(NotifyVar *WeakNotify, DataVar uintptr)
- type ObjectClass
- func (x *ObjectClass) FindProperty(PropertyNameVar string) *ParamSpec
- func (x *ObjectClass) GoPointer() uintptr
- func (x *ObjectClass) InstallProperties(NPspecsVar uint, PspecsVar uintptr)
- func (x *ObjectClass) InstallProperty(PropertyIdVar uint, PspecVar *ParamSpec)
- func (x *ObjectClass) ListProperties(NPropertiesVar uint) uintptr
- func (x *ObjectClass) OverrideProperty(PropertyIdVar uint, NameVar string)
- type ObjectConstructParam
- type ObjectFinalizeFunc
- type ObjectGetPropertyFunc
- type ObjectSetPropertyFunc
- type ParamFlags
- type ParamSpec
- func NewParamSpecBoolean(NameVar string, NickVar string, BlurbVar string, DefaultValueVar bool, ...) *ParamSpec
- func NewParamSpecBoxed(NameVar string, NickVar string, BlurbVar string, BoxedTypeVar []interface{}, ...) *ParamSpec
- func NewParamSpecChar(NameVar string, NickVar string, BlurbVar string, MinimumVar int8, ...) *ParamSpec
- func NewParamSpecDouble(NameVar string, NickVar string, BlurbVar string, MinimumVar float64, ...) *ParamSpec
- func NewParamSpecEnum(NameVar string, NickVar string, BlurbVar string, EnumTypeVar []interface{}, ...) *ParamSpec
- func NewParamSpecFlags(NameVar string, NickVar string, BlurbVar string, FlagsTypeVar []interface{}, ...) *ParamSpec
- func NewParamSpecFloat(NameVar string, NickVar string, BlurbVar string, MinimumVar float32, ...) *ParamSpec
- func NewParamSpecInt(NameVar string, NickVar string, BlurbVar string, MinimumVar int, ...) *ParamSpec
- func NewParamSpecInt64(NameVar string, NickVar string, BlurbVar string, MinimumVar int64, ...) *ParamSpec
- func NewParamSpecLong(NameVar string, NickVar string, BlurbVar string, MinimumVar int32, ...) *ParamSpec
- func NewParamSpecObject(NameVar string, NickVar string, BlurbVar string, ObjectTypeVar []interface{}, ...) *ParamSpec
- func NewParamSpecOverride(NameVar string, OverriddenVar *ParamSpec) *ParamSpec
- func NewParamSpecParam(NameVar string, NickVar string, BlurbVar string, ParamTypeVar []interface{}, ...) *ParamSpec
- func NewParamSpecPointer(NameVar string, NickVar string, BlurbVar string, FlagsVar ParamFlags) *ParamSpec
- func NewParamSpecString(NameVar string, NickVar string, BlurbVar string, DefaultValueVar string, ...) *ParamSpec
- func NewParamSpecUnichar(NameVar string, NickVar string, BlurbVar string, DefaultValueVar uint32, ...) *ParamSpec
- func NewParamSpecValueArray(NameVar string, NickVar string, BlurbVar string, ElementSpecVar *ParamSpec, ...) *ParamSpec
- func NewParamSpecVariant(NameVar string, NickVar string, BlurbVar string, TypeVar *glib.VariantType, ...) *ParamSpec
- func ObjectInterfaceFindProperty(GIfaceVar *TypeInterface, PropertyNameVar string) *ParamSpec
- func ParamSpecGtype(NameVar string, NickVar string, BlurbVar string, IsATypeVar []interface{}, ...) *ParamSpec
- func ParamSpecInternal(ParamTypeVar []interface{}, NameVar string, NickVar string, BlurbVar string, ...) *ParamSpec
- func ParamSpecNewFromInternalPtr(ptr uintptr) *ParamSpec
- func ParamSpecUchar(NameVar string, NickVar string, BlurbVar string, MinimumVar byte, ...) *ParamSpec
- func ParamSpecUint(NameVar string, NickVar string, BlurbVar string, MinimumVar uint, ...) *ParamSpec
- func ParamSpecUint64(NameVar string, NickVar string, BlurbVar string, MinimumVar uint64, ...) *ParamSpec
- func ParamSpecUlong(NameVar string, NickVar string, BlurbVar string, MinimumVar uint32, ...) *ParamSpec
- func (x *ParamSpec) GetBlurb() string
- func (x *ParamSpec) GetDefaultValue() *Value
- func (x *ParamSpec) GetName() string
- func (x *ParamSpec) GetNameQuark() glib.Quark
- func (x *ParamSpec) GetNick() string
- func (x *ParamSpec) GetQdata(QuarkVar glib.Quark) uintptr
- func (x *ParamSpec) GetRedirectTarget() *ParamSpec
- func (c *ParamSpec) GoPointer() uintptr
- func (x *ParamSpec) Ref() *ParamSpec
- func (x *ParamSpec) RefSink() *ParamSpec
- func (c *ParamSpec) SetGoPointer(ptr uintptr)
- func (x *ParamSpec) SetQdata(QuarkVar glib.Quark, DataVar uintptr)
- func (x *ParamSpec) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVar *glib.DestroyNotify)
- func (x *ParamSpec) Sink()
- func (x *ParamSpec) StealQdata(QuarkVar glib.Quark) uintptr
- func (x *ParamSpec) Unref()
- type ParamSpecBoolean
- type ParamSpecBoxed
- type ParamSpecChar
- type ParamSpecClass
- type ParamSpecDouble
- type ParamSpecEnum
- type ParamSpecFlags
- type ParamSpecFloat
- type ParamSpecGType
- type ParamSpecInt
- type ParamSpecInt64
- type ParamSpecLong
- type ParamSpecObject
- type ParamSpecOverride
- type ParamSpecParam
- type ParamSpecPointer
- type ParamSpecPool
- func (x *ParamSpecPool) GoPointer() uintptr
- func (x *ParamSpecPool) Insert(PspecVar *ParamSpec, OwnerTypeVar []interface{})
- func (x *ParamSpecPool) List(OwnerTypeVar []interface{}, NPspecsPVar uint) uintptr
- func (x *ParamSpecPool) ListOwned(OwnerTypeVar []interface{}) *glib.List
- func (x *ParamSpecPool) Lookup(ParamNameVar string, OwnerTypeVar []interface{}, WalkAncestorsVar bool) *ParamSpec
- func (x *ParamSpecPool) Remove(PspecVar *ParamSpec)
- type ParamSpecString
- type ParamSpecTypeInfo
- type ParamSpecUChar
- type ParamSpecUInt
- type ParamSpecUInt64
- type ParamSpecULong
- type ParamSpecUnichar
- type ParamSpecValueArray
- type ParamSpecVariant
- type Parameter
- type Ptr
- type SignalAccumulator
- type SignalCMarshaller
- type SignalCVaMarshaller
- type SignalEmissionHook
- type SignalFlags
- type SignalGroup
- func (x *SignalGroup) Block()
- func (x *SignalGroup) Connect(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
- func (x *SignalGroup) ConnectAfter(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
- func (x *SignalGroup) ConnectBind(cb *func(SignalGroup, uintptr)) uint32
- func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr, ...)
- func (x *SignalGroup) ConnectObject(DetailedSignalVar string, CHandlerVar *Callback, ObjectVar uintptr, ...)
- func (x *SignalGroup) ConnectSwapped(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
- func (x *SignalGroup) ConnectUnbind(cb *func(SignalGroup)) uint32
- func (x *SignalGroup) DupTarget() *Object
- func (c *SignalGroup) GoPointer() uintptr
- func (c *SignalGroup) SetGoPointer(ptr uintptr)
- func (x *SignalGroup) SetTarget(TargetVar *Object)
- func (x *SignalGroup) Unblock()
- type SignalInvocationHint
- type SignalMatchType
- type SignalQuery
- type ToggleNotify
- type Type
- type TypeCValue
- type TypeClass
- func (x *TypeClass) AddPrivate(PrivateSizeVar uint)
- func (x *TypeClass) GetInstancePrivateOffset() int
- func (x *TypeClass) GetPrivate(PrivateTypeVar []interface{}) uintptr
- func (x *TypeClass) GoPointer() uintptr
- func (x *TypeClass) PeekParent() *TypeClass
- func (x *TypeClass) Unref()
- func (x *TypeClass) UnrefUncached()
- type TypeClassCacheFunc
- type TypeDebugFlags
- type TypeFlags
- type TypeFundamentalFlags
- type TypeFundamentalInfo
- type TypeInfo
- type TypeInstance
- type TypeInterface
- type TypeInterfaceCheckFunc
- type TypeModule
- func (x *TypeModule) AddInterface(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, ...)
- func (x *TypeModule) CompleteInterfaceInfo(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, ...)
- func (x *TypeModule) CompleteTypeInfo(GTypeVar []interface{}, InfoVar *TypeInfo, ValueTableVar *TypeValueTable)
- func (c *TypeModule) GoPointer() uintptr
- func (x *TypeModule) RegisterEnum(NameVar string, ConstStaticValuesVar *EnumValue) []interface{}
- func (x *TypeModule) RegisterFlags(NameVar string, ConstStaticValuesVar *FlagsValue) []interface{}
- func (x *TypeModule) RegisterType(ParentTypeVar []interface{}, TypeNameVar string, TypeInfoVar *TypeInfo, ...) []interface{}
- func (c *TypeModule) SetGoPointer(ptr uintptr)
- func (x *TypeModule) SetName(NameVar string)
- func (x *TypeModule) Unuse()
- func (x *TypeModule) Use() bool
- type TypeModuleClass
- type TypePlugin
- type TypePluginBase
- func (x *TypePluginBase) CompleteInterfaceInfo(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, ...)
- func (x *TypePluginBase) CompleteTypeInfo(GTypeVar []interface{}, InfoVar *TypeInfo, ValueTableVar *TypeValueTable)
- func (x *TypePluginBase) GoPointer() uintptr
- func (x *TypePluginBase) SetGoPointer(ptr uintptr)
- func (x *TypePluginBase) Unuse()
- func (x *TypePluginBase) Use()
- type TypePluginClass
- type TypePluginCompleteInterfaceInfo
- type TypePluginCompleteTypeInfo
- type TypePluginUnuse
- type TypePluginUse
- type TypeQuery
- type TypeValueTable
- type VaClosureMarshal
- type Value
- func (x *Value) Copy(DestValueVar *Value)
- func (x *Value) DupBoxed() uintptr
- func (x *Value) DupObject() *Object
- func (x *Value) DupParam() *ParamSpec
- func (x *Value) DupString() string
- func (x *Value) DupVariant() *glib.Variant
- func (x *Value) FitsPointer() bool
- func (x *Value) GetBoolean() bool
- func (x *Value) GetBoxed() uintptr
- func (x *Value) GetChar() byte
- func (x *Value) GetDouble() float64
- func (x *Value) GetEnum() int
- func (x *Value) GetFlags() uint
- func (x *Value) GetFloat() float32
- func (x *Value) GetGtype() []interface{}
- func (x *Value) GetInt() int
- func (x *Value) GetInt64() int64
- func (x *Value) GetLong() int32
- func (x *Value) GetObject() *Object
- func (x *Value) GetParam() *ParamSpec
- func (x *Value) GetPointer() uintptr
- func (x *Value) GetSchar() int8
- func (x *Value) GetString() string
- func (x *Value) GetUchar() byte
- func (x *Value) GetUint() uint
- func (x *Value) GetUint64() uint64
- func (x *Value) GetUlong() uint32
- func (x *Value) GetVariant() *glib.Variant
- func (x *Value) GoPointer() uintptr
- func (x *Value) Init(GTypeVar []interface{}) *Value
- func (x *Value) InitFromInstance(InstanceVar *TypeInstance)
- func (x *Value) PeekPointer() uintptr
- func (x *Value) Reset() *Value
- func (x *Value) SetBoolean(VBooleanVar bool)
- func (x *Value) SetBoxed(VBoxedVar uintptr)
- func (x *Value) SetBoxedTakeOwnership(VBoxedVar uintptr)
- func (x *Value) SetChar(VCharVar byte)
- func (x *Value) SetDouble(VDoubleVar float64)
- func (x *Value) SetEnum(VEnumVar int)
- func (x *Value) SetFlags(VFlagsVar uint)
- func (x *Value) SetFloat(VFloatVar float32)
- func (x *Value) SetGtype(VGtypeVar []interface{})
- func (x *Value) SetInstance(InstanceVar uintptr)
- func (x *Value) SetInt(VIntVar int)
- func (x *Value) SetInt64(VInt64Var int64)
- func (x *Value) SetInternedString(VStringVar string)
- func (x *Value) SetLong(VLongVar int32)
- func (x *Value) SetObject(VObjectVar *Object)
- func (x *Value) SetObjectTakeOwnership(VObjectVar uintptr)
- func (x *Value) SetParam(ParamVar *ParamSpec)
- func (x *Value) SetParamTakeOwnership(ParamVar *ParamSpec)
- func (x *Value) SetPointer(VPointerVar uintptr)
- func (x *Value) SetSchar(VCharVar int8)
- func (x *Value) SetStaticBoxed(VBoxedVar uintptr)
- func (x *Value) SetStaticString(VStringVar string)
- func (x *Value) SetString(VStringVar string)
- func (x *Value) SetStringTakeOwnership(VStringVar string)
- func (x *Value) SetUchar(VUcharVar byte)
- func (x *Value) SetUint(VUintVar uint)
- func (x *Value) SetUint64(VUint64Var uint64)
- func (x *Value) SetUlong(VUlongVar uint32)
- func (x *Value) SetVariant(VariantVar *glib.Variant)
- func (x *Value) TakeBoxed(VBoxedVar uintptr)
- func (x *Value) TakeObject(VObjectVar uintptr)
- func (x *Value) TakeParam(ParamVar *ParamSpec)
- func (x *Value) TakeString(VStringVar string)
- func (x *Value) TakeVariant(VariantVar *glib.Variant)
- func (x *Value) Transform(DestValueVar *Value) bool
- func (x *Value) Unset()
- type ValueArray
- func (x *ValueArray) Append(ValueVar *Value) *ValueArray
- func (x *ValueArray) Copy() *ValueArray
- func (x *ValueArray) Free()
- func (x *ValueArray) GetNth(IndexVar uint) *Value
- func (x *ValueArray) GoPointer() uintptr
- func (x *ValueArray) Insert(IndexVar uint, ValueVar *Value) *ValueArray
- func (x *ValueArray) Prepend(ValueVar *Value) *ValueArray
- func (x *ValueArray) Remove(IndexVar uint) *ValueArray
- func (x *ValueArray) Sort(CompareFuncVar *glib.CompareFunc) *ValueArray
- func (x *ValueArray) SortWithData(CompareFuncVar *glib.CompareDataFunc, UserDataVar uintptr) *ValueArray
- type ValueDataUnion
- type ValueTransform
- type WeakNotify
- type WeakRef
Constants ¶
const ( // Mask containing the bits of #GParamSpec.flags which are reserved for GLib. PARAM_MASK int = 255 // #GParamFlags value alias for %G_PARAM_STATIC_NAME | %G_PARAM_STATIC_NICK | %G_PARAM_STATIC_BLURB. // // Since 2.13.0 PARAM_STATIC_STRINGS int = 224 // Minimum shift count to be used for user defined flags, to be stored in // #GParamSpec.flags. The maximum allowed is 10. PARAM_USER_SHIFT int = 8 )
const ( // A mask for all #GSignalFlags bits. SIGNAL_FLAGS_MASK int = 511 // A mask for all #GSignalMatchType bits. SIGNAL_MATCH_MASK int = 63 )
const ( // A bit in the type number that's supposed to be left untouched. TYPE_FLAG_RESERVED_ID_BIT glib.Type = 1 // An integer constant that represents the number of identifiers reserved // for types that are assigned at compile-time. TYPE_FUNDAMENTAL_MAX int = 255 // Shift value used in converting numbers to type IDs. TYPE_FUNDAMENTAL_SHIFT int = 2 // First fundamental type number to create a new fundamental type id with // G_TYPE_MAKE_FUNDAMENTAL() reserved for BSE. TYPE_RESERVED_BSE_FIRST int = 32 // Last fundamental type number reserved for BSE. TYPE_RESERVED_BSE_LAST int = 48 // First fundamental type number to create a new fundamental type id with // G_TYPE_MAKE_FUNDAMENTAL() reserved for GLib. TYPE_RESERVED_GLIB_FIRST int = 22 // Last fundamental type number reserved for GLib. TYPE_RESERVED_GLIB_LAST int = 31 // First available fundamental type number to create new fundamental // type id with G_TYPE_MAKE_FUNDAMENTAL(). TYPE_RESERVED_USER_FIRST int = 49 )
const ( // For string values, indicates that the string contained is canonical and will // exist for the duration of the process. See g_value_set_interned_string(). VALUE_INTERNED_STRING int = 268435456 // If passed to G_VALUE_COLLECT(), allocated data won't be copied // but used verbatim. This does not affect ref-counted types like // objects. This does not affect usage of g_value_copy(), the data will // be copied if it is not ref-counted. VALUE_NOCOPY_CONTENTS int = 134217728 )
const ( TypeInvalidVal Type = 0 TypeNoneVal = 1 << 2 TypeInterfaceVal = 2 << 2 TypeCharVal = 3 << 2 TypeUcharVal = 4 << 2 TypeBooleanVal = 5 << 2 TypeIntVal = 6 << 2 TypeUintVal = 7 << 2 TypeLongVal = 8 << 2 TypeUlongVal = 9 << 2 TypeInt64Val = 10 << 2 TypeUint64Val = 11 << 2 TypeEnumVal = 12 << 2 TypeFlagsVal = 13 << 2 TypeFloatVal = 14 << 2 TypeDoubleVal = 15 << 2 TypeStringVal = 16 << 2 TypePointerVal = 17 << 2 TypeBoxedVal = 18 << 2 TypeParamVal = 19 << 2 TypeObjectVal = 20 << 2 TypeReservedGLibLastVal = 31 << 2 TypeReservedBseFirstVal = 32 << 2 TypeReservedBseLastVal = 48 << 2 TypeReservedUserFirstVal = 49 << 2 )
types
Variables ¶
var XGTypePluginCompleteInterfaceInfo func(uintptr, []interface{}, []interface{}, *InterfaceInfo)
var XGTypePluginCompleteTypeInfo func(uintptr, []interface{}, *TypeInfo, *TypeValueTable)
var XGTypePluginUnuse func(uintptr)
var XGTypePluginUse func(uintptr)
Functions ¶
func BoxedFree ¶
func BoxedFree(BoxedTypeVar []interface{}, BoxedVar uintptr)
Free the boxed structure @boxed which is of type @boxed_type.
func BoxedTypeRegisterStatic ¶
func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedFreeVar *BoxedFreeFunc) []interface{}
This function creates a new %G_TYPE_BOXED derived type id for a new boxed type with name @name.
Boxed type handling functions have to be provided to copy and free opaque boxed structures of this type.
For the general case, it is recommended to use G_DEFINE_BOXED_TYPE() instead of calling g_boxed_type_register_static() directly. The macro will create the appropriate `*_get_type()` function for the boxed type.
func CclosureMarshalBOOLEANBOXEDBOXED ¶
func CclosureMarshalBOOLEANBOXEDBOXED(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A #GClosureMarshal function for use with signals with handlers that take two boxed pointers as arguments and return a boolean. If you have such a signal, you will probably also need to use an accumulator, such as g_signal_accumulator_true_handled().
func CclosureMarshalBOOLEANFLAGS ¶
func CclosureMarshalBOOLEANFLAGS(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter denotes a flags type.
func CclosureMarshalGeneric ¶
func CclosureMarshalGeneric(ClosureVar *Closure, ReturnGvalueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A generic marshaller function implemented via [libffi](http://sourceware.org/libffi/).
Normally this function is not passed explicitly to g_signal_new(), but used automatically by GLib when specifying a %NULL marshaller.
func CclosureMarshalSTRINGOBJECTPOINTER ¶
func CclosureMarshalSTRINGOBJECTPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)`.
func CclosureMarshalVOIDBOOLEAN ¶
func CclosureMarshalVOIDBOOLEAN(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)`.
func CclosureMarshalVOIDBOXED ¶
func CclosureMarshalVOIDBOXED(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)`.
func CclosureMarshalVOIDCHAR ¶
func CclosureMarshalVOIDCHAR(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gchar arg1, gpointer user_data)`.
func CclosureMarshalVOIDDOUBLE ¶
func CclosureMarshalVOIDDOUBLE(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)`.
func CclosureMarshalVOIDENUM ¶
func CclosureMarshalVOIDENUM(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter denotes an enumeration type..
func CclosureMarshalVOIDFLAGS ¶
func CclosureMarshalVOIDFLAGS(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gint arg1, gpointer user_data)` where the #gint parameter denotes a flags type.
func CclosureMarshalVOIDFLOAT ¶
func CclosureMarshalVOIDFLOAT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)`.
func CclosureMarshalVOIDINT ¶
func CclosureMarshalVOIDINT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gint arg1, gpointer user_data)`.
func CclosureMarshalVOIDLONG ¶
func CclosureMarshalVOIDLONG(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, glong arg1, gpointer user_data)`.
func CclosureMarshalVOIDOBJECT ¶
func CclosureMarshalVOIDOBJECT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, GObject *arg1, gpointer user_data)`.
func CclosureMarshalVOIDPARAM ¶
func CclosureMarshalVOIDPARAM(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)`.
func CclosureMarshalVOIDPOINTER ¶
func CclosureMarshalVOIDPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)`.
func CclosureMarshalVOIDSTRING ¶
func CclosureMarshalVOIDSTRING(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)`.
func CclosureMarshalVOIDUCHAR ¶
func CclosureMarshalVOIDUCHAR(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, guchar arg1, gpointer user_data)`.
func CclosureMarshalVOIDUINT ¶
func CclosureMarshalVOIDUINT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, guint arg1, gpointer user_data)`.
func CclosureMarshalVOIDUINTPOINTER ¶
func CclosureMarshalVOIDUINTPOINTER(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)`.
func CclosureMarshalVOIDULONG ¶
func CclosureMarshalVOIDULONG(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gulong arg1, gpointer user_data)`.
func CclosureMarshalVOIDVARIANT ¶
func CclosureMarshalVOIDVARIANT(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, GVariant *arg1, gpointer user_data)`.
func CclosureMarshalVOIDVOID ¶
func CclosureMarshalVOIDVOID(ClosureVar *Closure, ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar *Value, InvocationHintVar uintptr, MarshalDataVar uintptr)
A marshaller for a #GCClosure with a callback of type `void (*callback) (gpointer instance, gpointer user_data)`.
func ClearObject ¶
func ClearObject(ObjectPtrVar **Object)
Clears a reference to a #GObject.
@object_ptr must not be %NULL.
If the reference is %NULL then this function does nothing. Otherwise, the reference count of the object is decreased and the pointer is set to %NULL.
A macro is also included that allows this function to be used without pointer casts.
func ClearSignalHandler ¶
Disconnects a handler from @instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to. The @handler_id_ptr is then set to zero, which is never a valid handler ID value (see g_signal_connect()).
If the handler ID is 0 then this function does nothing.
There is also a macro version of this function so that the code will be inlined.
func ConvertPtr ¶
func ConvertPtr(a interface{}) *uintptr
func EnumCompleteTypeInfo ¶
This function is meant to be called from the `complete_type_info` function of a #GTypePlugin implementation, as in the following example:
|[<!-- language="C" --> static void my_enum_complete_type_info (GTypePlugin *plugin,
GType g_type, GTypeInfo *info, GTypeValueTable *value_table) { static const GEnumValue values[] = { { MY_ENUM_FOO, "MY_ENUM_FOO", "foo" }, { MY_ENUM_BAR, "MY_ENUM_BAR", "bar" }, { 0, NULL, NULL } }; g_enum_complete_type_info (type, info, values); }
]|
func EnumRegisterStatic ¶
Registers a new static enumeration type with the name @name.
It is normally more convenient to let [glib-mkenums][glib-mkenums], generate a my_enum_get_type() function from a usual C enumeration definition than to write one yourself using g_enum_register_static().
func EnumToString ¶
Pretty-prints @value in the form of the enum’s name.
This is intended to be used for debugging purposes. The format of the output may change in the future.
func FlagsCompleteTypeInfo ¶
func FlagsCompleteTypeInfo(GFlagsTypeVar []interface{}, InfoVar *TypeInfo, ConstValuesVar *FlagsValue)
This function is meant to be called from the complete_type_info() function of a #GTypePlugin implementation, see the example for g_enum_complete_type_info() above.
func FlagsRegisterStatic ¶
func FlagsRegisterStatic(NameVar string, ConstStaticValuesVar *FlagsValue) []interface{}
Registers a new static flags type with the name @name.
It is normally more convenient to let [glib-mkenums][glib-mkenums] generate a my_flags_get_type() function from a usual C enumeration definition than to write one yourself using g_flags_register_static().
func FlagsToString ¶
Pretty-prints @value in the form of the flag names separated by ` | ` and sorted. Any extra bits will be shown at the end as a hexadecimal number.
This is intended to be used for debugging purposes. The format of the output may change in the future.
func GtypeGetType ¶
func GtypeGetType() []interface{}
func IncreaseRef ¶
func IncreaseRef(a uintptr)
func NewSignalQuery ¶
func NewSignalQuery(SignalIdVar uint, QueryVar *SignalQuery)
Queries the signal system for in-depth information about a specific signal. This function will fill in a user-provided structure to hold signal-specific information. If an invalid signal id is passed in, the @signal_id member of the #GSignalQuery is 0. All members filled into the #GSignalQuery structure should be considered constant and have to be left untouched.
func NewTypeQuery ¶
func NewTypeQuery(TypeVar []interface{}, QueryVar *TypeQuery)
Queries the type system for information about a specific type. This function will fill in a user-provided structure to hold type-specific information. If an invalid #GType is passed in, the @type member of the #GTypeQuery is 0. All members filled into the #GTypeQuery structure should be considered constant and have to be left untouched.
func ObjectCompatControl ¶
func ObjectInterfaceInstallProperty ¶
func ObjectInterfaceInstallProperty(GIfaceVar *TypeInterface, PspecVar *ParamSpec)
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default vtable initialization function (the @class_init member of #GTypeInfo.) It must not be called after after @class_init has been called for any object types implementing this interface.
If @pspec is a floating reference, it will be consumed.
func ObjectInterfaceListProperties ¶
func ObjectInterfaceListProperties(GIfaceVar *TypeInterface, NPropertiesPVar uint) uintptr
Lists the properties of an interface.Generally, the interface vtable passed in as @g_iface will be the default vtable from g_type_default_interface_ref(), or, if you know the interface has already been loaded, g_type_default_interface_peek().
func ParamSpecIsValidName ¶
Validate a property name for a #GParamSpec. This can be useful for dynamically-generated properties which need to be validated at run-time before actually trying to create them.
See [canonical parameter names][canonical-parameter-names] for details of the rules for valid names.
func ParamTypeRegisterStatic ¶
func ParamTypeRegisterStatic(NameVar string, PspecInfoVar *ParamSpecTypeInfo) []interface{}
Registers @name as the name of a new static type derived from %G_TYPE_PARAM.
The type system uses the information contained in the #GParamSpecTypeInfo structure pointed to by @info to manage the #GParamSpec type and its instances.
func ParamValueConvert ¶
func ParamValueConvert(PspecVar *ParamSpec, SrcValueVar *Value, DestValueVar *Value, StrictValidationVar bool) bool
Transforms @src_value into @dest_value if possible, and then validates @dest_value, in order for it to conform to @pspec. If @strict_validation is %TRUE this function will only succeed if the transformed @dest_value complied to @pspec without modifications.
See also g_value_type_transformable(), g_value_transform() and g_param_value_validate().
func ParamValueDefaults ¶
Checks whether @value contains the default value as specified in @pspec.
func ParamValueSetDefault ¶
Sets @value to its default value as specified in @pspec.
func ParamValueValidate ¶
Ensures that the contents of @value comply with the specifications set out by @pspec. For example, a #GParamSpecInt might require that integers stored in @value may not be smaller than -42 and not be greater than +42. If @value contains an integer outside of this range, it is modified accordingly, so the resulting value will fit into the range -42 .. +42.
func ParamValuesCmp ¶
Compares @value1 with @value2 according to @pspec, and return -1, 0 or +1, if @value1 is found to be less than, equal to or greater than @value2, respectively.
func PointerTypeRegisterStatic ¶
func PointerTypeRegisterStatic(NameVar string) []interface{}
Creates a new %G_TYPE_POINTER derived type id for a new pointer type with name @name.
func SignalAccumulatorFirstWins ¶
func SignalAccumulatorFirstWins(IhintVar *SignalInvocationHint, ReturnAccuVar *Value, HandlerReturnVar *Value, DummyVar uintptr) bool
A predefined #GSignalAccumulator for signals intended to be used as a hook for application code to provide a particular value. Usually only one such value is desired and multiple handlers for the same signal don't make much sense (except for the case of the default handler defined in the class structure, in which case you will usually want the signal connection to override the class handler).
This accumulator will use the return value from the first signal handler that is run as the return value for the signal and not run any further handlers (ie: the first handler "wins").
func SignalAccumulatorTrueHandled ¶
func SignalAccumulatorTrueHandled(IhintVar *SignalInvocationHint, ReturnAccuVar *Value, HandlerReturnVar *Value, DummyVar uintptr) bool
A predefined #GSignalAccumulator for signals that return a boolean values. The behavior that this accumulator gives is that a return of %TRUE stops the signal emission: no further callbacks will be invoked, while a return of %FALSE allows the emission to continue. The idea here is that a %TRUE return indicates that the callback handled the signal, and no further handling is needed.
func SignalAddEmissionHook ¶
func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *SignalEmissionHook, HookDataVar uintptr, DataDestroyVar *glib.DestroyNotify) uint32
Adds an emission hook for a signal, which will get called for any emission of that signal, independent of the instance. This is possible only for signals which don't have %G_SIGNAL_NO_HOOKS flag set.
func SignalChainFromOverridden ¶
Calls the original class closure of a signal. This function should only be called from an overridden class closure; see g_signal_override_class_closure() and g_signal_override_class_handler().
func SignalChainFromOverriddenHandler ¶
func SignalChainFromOverriddenHandler(InstanceVar *TypeInstance, varArgs ...interface{})
Calls the original class closure of a signal. This function should only be called from an overridden class closure; see g_signal_override_class_closure() and g_signal_override_class_handler().
func SignalConnectClosure ¶
func SignalConnectClosure(InstanceVar *Object, DetailedSignalVar string, ClosureVar *Closure, AfterVar bool) uint32
Connects a closure to a signal for a particular object.
func SignalConnectClosureById ¶
func SignalConnectClosureById(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, ClosureVar *Closure, AfterVar bool) uint32
Connects a closure to a signal for a particular object.
func SignalConnectData ¶
func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr, DestroyDataVar *ClosureNotify, ConnectFlagsVar ConnectFlags) uint32
Connects a #GCallback function to a signal for a particular object. Similar to g_signal_connect(), but allows to provide a #GClosureNotify for the data which will be called when the signal handler is disconnected and no longer used. Specify @connect_flags if you need `..._after()` or `..._swapped()` variants of this function.
func SignalConnectObject ¶
func SignalConnectObject(InstanceVar *TypeInstance, DetailedSignalVar string, CHandlerVar *Callback, GobjectVar *Object, ConnectFlagsVar ConnectFlags) uint32
This is similar to g_signal_connect_data(), but uses a closure which ensures that the @gobject stays alive during the call to @c_handler by temporarily adding a reference count to @gobject.
When the @gobject is destroyed the signal handler will be automatically disconnected. Note that this is not currently threadsafe (ie: emitting a signal while @gobject is being destroyed in another thread is not safe).
func SignalEmit ¶
func SignalEmit(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, varArgs ...interface{})
Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
Note that g_signal_emit() resets the return value to the default if no handlers are connected, in contrast to g_signal_emitv().
func SignalEmitByName ¶
Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
Note that g_signal_emit_by_name() resets the return value to the default if no handlers are connected, in contrast to g_signal_emitv().
func SignalEmitValist ¶
func SignalEmitValist(InstanceVar *TypeInstance, SignalIdVar uint, DetailVar glib.Quark, VarArgsVar []interface{})
Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
Note that g_signal_emit_valist() resets the return value to the default if no handlers are connected, in contrast to g_signal_emitv().
func SignalEmitv ¶
func SignalEmitv(InstanceAndParamsVar uintptr, SignalIdVar uint, DetailVar glib.Quark, ReturnValueVar *Value)
Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
Note that g_signal_emitv() doesn't change @return_value if no handlers are connected, in contrast to g_signal_emit() and g_signal_emit_valist().
func SignalHandlerBlock ¶
Blocks a handler of an instance so it will not be called during any signal emissions unless it is unblocked again. Thus "blocking" a signal handler means to temporarily deactivate it, a signal handler has to be unblocked exactly the same amount of times it has been blocked before to become active again.
The @handler_id has to be a valid signal handler id, connected to a signal of @instance.
func SignalHandlerDisconnect ¶
Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to. The @handler_id becomes invalid and may be reused.
The @handler_id has to be a valid signal handler id, connected to a signal of @instance.
func SignalHandlerFind ¶
func SignalHandlerFind(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, DetailVar glib.Quark, ClosureVar *Closure, FuncVar uintptr, DataVar uintptr) uint32
Finds the first signal handler that matches certain selection criteria. The criteria mask is passed as an OR-ed combination of #GSignalMatchType flags, and the criteria values are passed as arguments. The match @mask has to be non-0 for successful matches. If no handler was found, 0 is returned.
func SignalHandlerIsConnected ¶
Returns whether @handler_id is the ID of a handler connected to @instance.
func SignalHandlerUnblock ¶
Undoes the effect of a previous g_signal_handler_block() call. A blocked handler is skipped during signal emissions and will not be invoked, unblocking it (for exactly the amount of times it has been blocked before) reverts its "blocked" state, so the handler will be recognized by the signal system and is called upon future or currently ongoing signal emissions (since the order in which handlers are called during signal emissions is deterministic, whether the unblocked handler in question is called as part of a currently ongoing emission depends on how far that emission has proceeded yet).
The @handler_id has to be a valid id of a signal handler that is connected to a signal of @instance and is currently blocked.
func SignalHandlersBlockMatched ¶
func SignalHandlersBlockMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, DetailVar glib.Quark, ClosureVar *Closure, FuncVar uintptr, DataVar uintptr) uint
Blocks all handlers on an instance that match a certain selection criteria. The criteria mask is passed as an OR-ed combination of #GSignalMatchType flags, and the criteria values are passed as arguments. Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or %G_SIGNAL_MATCH_DATA match flags is required for successful matches. If no handlers were found, 0 is returned, the number of blocked handlers otherwise.
func SignalHandlersDestroy ¶
func SignalHandlersDestroy(InstanceVar *Object)
Destroy all signal handlers of a type instance. This function is an implementation detail of the #GObject dispose implementation, and should not be used outside of the type system.
func SignalHandlersDisconnectMatched ¶
func SignalHandlersDisconnectMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, DetailVar glib.Quark, ClosureVar *Closure, FuncVar uintptr, DataVar uintptr) uint
Disconnects all handlers on an instance that match a certain selection criteria. The criteria mask is passed as an OR-ed combination of #GSignalMatchType flags, and the criteria values are passed as arguments. Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or %G_SIGNAL_MATCH_DATA match flags is required for successful matches. If no handlers were found, 0 is returned, the number of disconnected handlers otherwise.
func SignalHandlersUnblockMatched ¶
func SignalHandlersUnblockMatched(InstanceVar *Object, MaskVar SignalMatchType, SignalIdVar uint, DetailVar glib.Quark, ClosureVar *Closure, FuncVar uintptr, DataVar uintptr) uint
Unblocks all handlers on an instance that match a certain selection criteria. The criteria mask is passed as an OR-ed combination of #GSignalMatchType flags, and the criteria values are passed as arguments. Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or %G_SIGNAL_MATCH_DATA match flags is required for successful matches. If no handlers were found, 0 is returned, the number of unblocked handlers otherwise. The match criteria should not apply to any handlers that are not currently blocked.
func SignalHasHandlerPending ¶
func SignalHasHandlerPending(InstanceVar *Object, SignalIdVar uint, DetailVar glib.Quark, MayBeBlockedVar bool) bool
Returns whether there are any handlers connected to @instance for the given signal id and detail.
If @detail is 0 then it will only match handlers that were connected without detail. If @detail is non-zero then it will match handlers connected both without detail and with the given detail. This is consistent with how a signal emitted with @detail would be delivered to those handlers.
Since 2.46 this also checks for a non-default class closure being installed, as this is basically always what you want.
One example of when you might use this is when the arguments to the signal are difficult to compute. A class implementor may opt to not emit the signal if no one is attached anyway, thus saving the cost of building the arguments.
func SignalIsValidName ¶
Validate a signal name. This can be useful for dynamically-generated signals which need to be validated at run-time before actually trying to create them.
See [canonical parameter names][canonical-parameter-names] for details of the rules for valid names. The rules for signal names are the same as those for property names.
func SignalListIds ¶
Lists the signals by id that a certain instance or interface type created. Further information about the signals can be acquired through g_signal_query().
func SignalLookup ¶
Given the name of the signal and the type of object it connects to, gets the signal's identifying integer. Emitting the signal by number is somewhat faster than using the name each time.
Also tries the ancestors of the given type.
The type class passed as @itype must already have been instantiated (for example, using g_type_class_ref()) for this function to work, as signals are always installed during class initialization.
See g_signal_new() for details on allowed signal names.
func SignalName ¶
Given the signal's identifier, finds its name.
Two different signals may have the same name, if they have differing types.
func SignalNew ¶
func SignalNew(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ClassOffsetVar uint, AccumulatorVar *SignalAccumulator, AccuDataVar uintptr, CMarshallerVar SignalCMarshaller, ReturnTypeVar []interface{}, NParamsVar uint, varArgs ...interface{}) uint
Creates a new signal. (This is usually done in the class initializer.)
A signal name consists of segments consisting of ASCII letters and digits, separated by either the `-` or `_` character. The first character of a signal name must be a letter. Names which violate these rules lead to undefined behaviour. These are the same rules as for property naming (see g_param_spec_internal()).
When registering a signal and looking up a signal, either separator can be used, but they cannot be mixed. Using `-` is considerably more efficient. Using `_` is discouraged.
If 0 is used for @class_offset subclasses cannot override the class handler in their class_init method by doing super_class->signal_handler = my_signal_handler. Instead they will have to use g_signal_override_class_handler().
If @c_marshaller is %NULL, g_cclosure_marshal_generic() will be used as the marshaller for this signal. In some simple cases, g_signal_new() will use a more optimized c_marshaller and va_marshaller for the signal instead of g_cclosure_marshal_generic().
If @c_marshaller is non-%NULL, you need to also specify a va_marshaller using g_signal_set_va_marshaller() or the generic va_marshaller will be used.
func SignalNewClassHandler ¶
func SignalNewClassHandler(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ClassHandlerVar *Callback, AccumulatorVar *SignalAccumulator, AccuDataVar uintptr, CMarshallerVar SignalCMarshaller, ReturnTypeVar []interface{}, NParamsVar uint, varArgs ...interface{}) uint
Creates a new signal. (This is usually done in the class initializer.)
This is a variant of g_signal_new() that takes a C callback instead of a class offset for the signal's class handler. This function doesn't need a function pointer exposed in the class structure of an object definition, instead the function pointer is passed directly and can be overridden by derived classes with g_signal_override_class_closure() or g_signal_override_class_handler()and chained to with g_signal_chain_from_overridden() or g_signal_chain_from_overridden_handler().
See g_signal_new() for information about signal names.
If c_marshaller is %NULL, g_cclosure_marshal_generic() will be used as the marshaller for this signal.
func SignalNewValist ¶
func SignalNewValist(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ClassClosureVar *Closure, AccumulatorVar *SignalAccumulator, AccuDataVar uintptr, CMarshallerVar SignalCMarshaller, ReturnTypeVar []interface{}, NParamsVar uint, ArgsVar []interface{}) uint
Creates a new signal. (This is usually done in the class initializer.)
See g_signal_new() for details on allowed signal names.
If c_marshaller is %NULL, g_cclosure_marshal_generic() will be used as the marshaller for this signal.
func SignalNewv ¶
func SignalNewv(SignalNameVar string, ItypeVar []interface{}, SignalFlagsVar SignalFlags, ClassClosureVar *Closure, AccumulatorVar *SignalAccumulator, AccuDataVar uintptr, CMarshallerVar SignalCMarshaller, ReturnTypeVar []interface{}, NParamsVar uint, ParamTypesVar uintptr) uint
Creates a new signal. (This is usually done in the class initializer.)
See g_signal_new() for details on allowed signal names.
If c_marshaller is %NULL, g_cclosure_marshal_generic() will be used as the marshaller for this signal.
func SignalOverrideClassClosure ¶
func SignalOverrideClassClosure(SignalIdVar uint, InstanceTypeVar []interface{}, ClassClosureVar *Closure)
Overrides the class closure (i.e. the default handler) for the given signal for emissions on instances of @instance_type. @instance_type must be derived from the type to which the signal belongs.
See g_signal_chain_from_overridden() and g_signal_chain_from_overridden_handler() for how to chain up to the parent class closure from inside the overridden one.
func SignalOverrideClassHandler ¶
func SignalOverrideClassHandler(SignalNameVar string, InstanceTypeVar []interface{}, ClassHandlerVar *Callback)
Overrides the class closure (i.e. the default handler) for the given signal for emissions on instances of @instance_type with callback @class_handler. @instance_type must be derived from the type to which the signal belongs.
See g_signal_chain_from_overridden() and g_signal_chain_from_overridden_handler() for how to chain up to the parent class closure from inside the overridden one.
func SignalParseName ¶
func SignalParseName(DetailedSignalVar string, ItypeVar []interface{}, SignalIdPVar uint, DetailPVar *glib.Quark, ForceDetailQuarkVar bool) bool
Internal function to parse a signal name into its @signal_id and @detail quark.
func SignalRemoveEmissionHook ¶
Deletes an emission hook.
func SignalSetVaMarshaller ¶
func SignalSetVaMarshaller(SignalIdVar uint, InstanceTypeVar []interface{}, VaMarshallerVar SignalCVaMarshaller)
Change the #GSignalCVaMarshaller used for a given signal. This is a specialised form of the marshaller that can often be used for the common case of a single connected signal handler and avoids the overhead of #GValue. Its use is optional.
func SignalStopEmission ¶
Stops a signal's current emission.
This will prevent the default method from running, if the signal was %G_SIGNAL_RUN_LAST and you connected normally (i.e. without the "after" flag).
Prints a warning if used on a signal which isn't being emitted.
func SignalStopEmissionByName ¶
Stops a signal's current emission.
This is just like g_signal_stop_emission() except it will look up the signal id for you.
func SourceSetClosure ¶
Set the callback for a source as a #GClosure.
If the source is not one of the standard GLib types, the @closure_callback and @closure_marshal fields of the #GSourceFuncs structure must have been filled in with pointers to appropriate functions.
func SourceSetDummyCallback ¶
Sets a dummy callback for @source. The callback will do nothing, and if the source expects a #gboolean return value, it will return %TRUE. (If the source expects any other type of return value, it will return a 0/%NULL value; whatever g_value_init() initializes a #GValue to for that type.)
If the source is not one of the standard GLib types, the @closure_callback and @closure_marshal fields of the #GSourceFuncs structure must have been filled in with pointers to appropriate functions.
func StrdupValueContents ¶
Return a newly allocated string, which describes the contents of a #GValue. The main purpose of this function is to describe #GValue contents for debugging output, the way in which the contents are described may change between different GLib versions.
func TypeAddClassCacheFunc ¶
func TypeAddClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFunc)
Adds a #GTypeClassCacheFunc to be called before the reference count of a class goes from one to zero. This can be used to prevent premature class destruction. All installed #GTypeClassCacheFunc functions will be chained until one of them returns %TRUE. The functions have to check the class id passed in to figure whether they actually want to cache the class of this type, since all classes are routed through the same #GTypeClassCacheFunc chain.
func TypeAddClassPrivate ¶
func TypeAddClassPrivate(ClassTypeVar []interface{}, PrivateSizeVar uint)
Registers a private class structure for a classed type; when the class is allocated, the private structures for the class and all of its parent types are allocated sequentially in the same memory block as the public structures, and are zero-filled.
This function should be called in the type's get_type() function after the type is registered. The private structure can be retrieved using the G_TYPE_CLASS_GET_PRIVATE() macro.
func TypeAddInstancePrivate ¶
func TypeAddInterfaceCheck ¶
func TypeAddInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceCheckFunc)
Adds a function to be called after an interface vtable is initialized for any class (i.e. after the @interface_init member of #GInterfaceInfo has been called).
This function is useful when you want to check an invariant that depends on the interfaces of a class. For instance, the implementation of #GObject uses this facility to check that an object implements all of the properties that are defined on its interfaces.
func TypeAddInterfaceDynamic ¶
func TypeAddInterfaceDynamic(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, PluginVar TypePlugin)
Adds @interface_type to the dynamic @instance_type. The information contained in the #GTypePlugin structure pointed to by @plugin is used to manage the relationship.
func TypeAddInterfaceStatic ¶
func TypeAddInterfaceStatic(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, InfoVar *InterfaceInfo)
Adds @interface_type to the static @instance_type. The information contained in the #GInterfaceInfo structure pointed to by @info is used to manage the relationship.
func TypeCheckClassIsA ¶
func TypeCheckInstance ¶
func TypeCheckInstance(InstanceVar *TypeInstance) bool
Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE() macro.
func TypeCheckInstanceIsA ¶
func TypeCheckInstanceIsA(InstanceVar *TypeInstance, IfaceTypeVar []interface{}) bool
func TypeCheckInstanceIsFundamentallyA ¶
func TypeCheckInstanceIsFundamentallyA(InstanceVar *TypeInstance, FundamentalTypeVar []interface{}) bool
func TypeCheckIsValueType ¶
func TypeCheckIsValueType(TypeVar []interface{}) bool
func TypeCheckValue ¶
func TypeCheckValueHolds ¶
func TypeChildren ¶
Return a newly allocated and 0-terminated array of type IDs, listing the child types of @type.
func TypeDefaultInterfaceUnref ¶
func TypeDefaultInterfaceUnref(GIfaceVar *TypeInterface)
Decrements the reference count for the type corresponding to the interface default vtable @g_iface. If the type is dynamic, then when no one is using the interface and all references have been released, the finalize function for the interface's default vtable (the @class_finalize member of #GTypeInfo) will be called.
func TypeDepth ¶
func TypeDepth(TypeVar []interface{}) uint
Returns the length of the ancestry of the passed in type. This includes the type itself, so that e.g. a fundamental type has depth 1.
func TypeEnsure ¶
func TypeEnsure(TypeVar []interface{})
Ensures that the indicated @type has been registered with the type system, and its _class_init() method has been run.
In theory, simply calling the type's _get_type() method (or using the corresponding macro) is supposed take care of this. However, _get_type() methods are often marked %G_GNUC_CONST for performance reasons, even though this is technically incorrect (since %G_GNUC_CONST requires that the function not have side effects, which _get_type() methods do on the first call). As a result, if you write a bare call to a _get_type() macro, it may get optimized out by the compiler. Using g_type_ensure() guarantees that the type's _get_type() method is called.
func TypeFreeInstance ¶
func TypeFreeInstance(InstanceVar *TypeInstance)
Frees an instance of a type, returning it to the instance pool for the type, if there is one.
Like g_type_create_instance(), this function is reserved for implementors of fundamental types.
func TypeFromName ¶
func TypeFromName(NameVar string) []interface{}
Look up the type ID from a given type name, returning 0 if no type has been registered under this name (this is the preferred method to find out by name whether a specific type has been registered yet).
func TypeFundamental ¶
func TypeFundamental(TypeIdVar []interface{}) []interface{}
Internal function, used to extract the fundamental type ID portion. Use G_TYPE_FUNDAMENTAL() instead.
func TypeFundamentalNext ¶
func TypeFundamentalNext() []interface{}
Returns the next free fundamental type id which can be used to register a new fundamental type with g_type_register_fundamental(). The returned type ID represents the highest currently registered fundamental type identifier.
func TypeGetInstanceCount ¶
func TypeGetInstanceCount(TypeVar []interface{}) int
Returns the number of instances allocated of the particular type; this is only available if GLib is built with debugging support and the instance_count debug flag is set (by setting the GOBJECT_DEBUG variable to include instance-count).
func TypeGetQdata ¶
Obtains data which has previously been attached to @type with g_type_set_qdata().
Note that this does not take subtyping into account; data attached to one type with g_type_set_qdata() cannot be retrieved from a subtype using g_type_get_qdata().
func TypeGetTypeRegistrationSerial ¶
func TypeGetTypeRegistrationSerial() uint
Returns an opaque serial number that represents the state of the set of registered types. Any time a type is registered this serial changes, which means you can cache information based on type lookups (such as g_type_from_name()) and know if the cache is still valid at a later time by comparing the current serial with the one at the type lookup.
func TypeInit ¶
func TypeInit()
This function used to initialise the type system. Since GLib 2.36, the type system is initialised automatically and this function does nothing.
func TypeInitWithDebugFlags ¶
func TypeInitWithDebugFlags(DebugFlagsVar TypeDebugFlags)
This function used to initialise the type system with debugging flags. Since GLib 2.36, the type system is initialised automatically and this function does nothing.
If you need to enable debugging features, use the GOBJECT_DEBUG environment variable.
func TypeInterfaceAddPrerequisite ¶
func TypeInterfaceAddPrerequisite(InterfaceTypeVar []interface{}, PrerequisiteTypeVar []interface{})
Adds @prerequisite_type to the list of prerequisites of @interface_type. This means that any type implementing @interface_type must also implement @prerequisite_type. Prerequisites can be thought of as an alternative to interface derivation (which GType doesn't support). An interface can have at most one instantiatable prerequisite type.
func TypeInterfaceInstantiatablePrerequisite ¶
func TypeInterfaceInstantiatablePrerequisite(InterfaceTypeVar []interface{}) []interface{}
Returns the most specific instantiatable prerequisite of an interface type. If the interface type has no instantiatable prerequisite, %G_TYPE_INVALID is returned.
See g_type_interface_add_prerequisite() for more information about prerequisites.
func TypeInterfacePrerequisites ¶
Returns the prerequisites of an interfaces type.
func TypeInterfaces ¶
Return a newly allocated and 0-terminated array of type IDs, listing the interface types that @type conforms to.
func TypeIsA ¶
func TypeIsA(TypeVar []interface{}, IsATypeVar []interface{}) bool
If @is_a_type is a derivable type, check whether @type is a descendant of @is_a_type. If @is_a_type is an interface, check whether @type conforms to it.
func TypeName ¶
func TypeName(TypeVar []interface{}) string
Get the unique name that is assigned to a type ID. Note that this function (like all other GType API) cannot cope with invalid type IDs. %G_TYPE_INVALID may be passed to this function, as may be any other validly registered type ID, but randomized type IDs should not be passed in and will most likely lead to a crash.
func TypeNameFromClass ¶
func TypeNameFromInstance ¶
func TypeNameFromInstance(InstanceVar *TypeInstance) string
func TypeNextBase ¶
func TypeNextBase(LeafTypeVar []interface{}, RootTypeVar []interface{}) []interface{}
Given a @leaf_type and a @root_type which is contained in its ancestry, return the type that @root_type is the immediate parent of. In other words, this function determines the type that is derived directly from @root_type which is also a base class of @leaf_type. Given a root type and a leaf type, this function can be used to determine the types and order in which the leaf type is descended from the root type.
func TypeParent ¶
func TypeParent(TypeVar []interface{}) []interface{}
Return the direct parent type of the passed in type. If the passed in type has no parent, i.e. is a fundamental type, 0 is returned.
func TypeRegisterDynamic ¶
func TypeRegisterDynamic(ParentTypeVar []interface{}, TypeNameVar string, PluginVar TypePlugin, FlagsVar TypeFlags) []interface{}
Registers @type_name as the name of a new dynamic type derived from @parent_type. The type system uses the information contained in the #GTypePlugin structure pointed to by @plugin to manage the type and its instances (if not abstract). The value of @flags determines the nature (e.g. abstract or not) of the type.
func TypeRegisterFundamental ¶
func TypeRegisterFundamental(TypeIdVar []interface{}, TypeNameVar string, InfoVar *TypeInfo, FinfoVar *TypeFundamentalInfo, FlagsVar TypeFlags) []interface{}
Registers @type_id as the predefined identifier and @type_name as the name of a fundamental type. If @type_id is already registered, or a type named @type_name is already registered, the behaviour is undefined. The type system uses the information contained in the #GTypeInfo structure pointed to by @info and the #GTypeFundamentalInfo structure pointed to by @finfo to manage the type and its instances. The value of @flags determines additional characteristics of the fundamental type.
func TypeRegisterStatic ¶
func TypeRegisterStatic(ParentTypeVar []interface{}, TypeNameVar string, InfoVar *TypeInfo, FlagsVar TypeFlags) []interface{}
Registers @type_name as the name of a new static type derived from @parent_type. The type system uses the information contained in the #GTypeInfo structure pointed to by @info to manage the type and its instances (if not abstract). The value of @flags determines the nature (e.g. abstract or not) of the type.
func TypeRegisterStaticSimple ¶
func TypeRegisterStaticSimple(ParentTypeVar []interface{}, TypeNameVar string, ClassSizeVar uint, ClassInitVar *ClassInitFunc, InstanceSizeVar uint, InstanceInitVar *InstanceInitFunc, FlagsVar TypeFlags) []interface{}
Registers @type_name as the name of a new static type derived from @parent_type. The value of @flags determines the nature (e.g. abstract or not) of the type. It works by filling a #GTypeInfo struct and calling g_type_register_static().
func TypeRemoveClassCacheFunc ¶
func TypeRemoveClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFunc)
Removes a previously installed #GTypeClassCacheFunc. The cache maintained by @cache_func has to be empty when calling g_type_remove_class_cache_func() to avoid leaks.
func TypeRemoveInterfaceCheck ¶
func TypeRemoveInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceCheckFunc)
Removes an interface check function added with g_type_add_interface_check().
func TypeSetQdata ¶
Attaches arbitrary data to a type.
func TypeTestFlags ¶
func ValueRegisterTransformFunc ¶
func ValueRegisterTransformFunc(SrcTypeVar []interface{}, DestTypeVar []interface{}, TransformFuncVar *ValueTransform)
Registers a value transformation function for use in g_value_transform(). A previously registered transformation function for @src_type and @dest_type will be replaced.
func ValueTypeCompatible ¶
func ValueTypeCompatible(SrcTypeVar []interface{}, DestTypeVar []interface{}) bool
Returns whether a #GValue of type @src_type can be copied into a #GValue of type @dest_type.
func ValueTypeTransformable ¶
func ValueTypeTransformable(SrcTypeVar []interface{}, DestTypeVar []interface{}) bool
Check whether g_value_transform() is able to transform values of type @src_type into values of type @dest_type. Note that for the types to be transformable, they must be compatible or a transformation function must be registered.
Types ¶
type BaseFinalizeFunc ¶
type BaseFinalizeFunc func(*TypeClass)
A callback function used by the type system to finalize those portions of a derived types class structure that were setup from the corresponding GBaseInitFunc() function.
Class finalization basically works the inverse way in which class initialization is performed.
See GClassInitFunc() for a discussion of the class initialization process.
type BaseInitFunc ¶
type BaseInitFunc func(*TypeClass)
A callback function used by the type system to do base initialization of the class structures of derived types.
This function is called as part of the initialization process of all derived classes and should reallocate or reset all dynamic class members copied over from the parent class.
For example, class members (such as strings) that are not sufficiently handled by a plain memory copy of the parent class into the derived class have to be altered. See GClassInitFunc() for a discussion of the class initialization process.
type Binding ¶
type Binding struct {
Object
}
#GBinding is the representation of a binding between a property on a #GObject instance (or source) and another property on another #GObject instance (or target).
Whenever the source property changes, the same value is applied to the target property; for instance, the following binding:
|[<!-- language="C" -->
g_object_bind_property (object1, "property-a", object2, "property-b", G_BINDING_DEFAULT);
]|
will cause the property named "property-b" of @object2 to be updated every time g_object_set() or the specific accessor changes the value of the property "property-a" of @object1.
It is possible to create a bidirectional binding between two properties of two #GObject instances, so that if either property changes, the other is updated as well, for instance:
|[<!-- language="C" -->
g_object_bind_property (object1, "property-a", object2, "property-b", G_BINDING_BIDIRECTIONAL);
]|
will keep the two properties in sync.
It is also possible to set a custom transformation function (in both directions, in case of a bidirectional binding) to apply a custom transformation from the source value to the target value before applying it; for instance, the following binding:
|[<!-- language="C" -->
g_object_bind_property_full (adjustment1, "value", adjustment2, "value", G_BINDING_BIDIRECTIONAL, celsius_to_fahrenheit, fahrenheit_to_celsius, NULL, NULL);
]|
will keep the "value" property of the two adjustments in sync; the @celsius_to_fahrenheit function will be called whenever the "value" property of @adjustment1 changes and will transform the current value of the property before applying it to the "value" property of @adjustment2.
Vice versa, the @fahrenheit_to_celsius function will be called whenever the "value" property of @adjustment2 changes, and will transform the current value of the property before applying it to the "value" property of @adjustment1.
Note that #GBinding does not resolve cycles by itself; a cycle like
|[
object1:propertyA -> object2:propertyB object2:propertyB -> object3:propertyC object3:propertyC -> object1:propertyA
]|
might lead to an infinite loop. The loop, in this particular case, can be avoided if the objects emit the #GObject::notify signal only if the value has effectively been changed. A binding is implemented using the #GObject::notify signal, so it is susceptible to all the various ways of blocking a signal emission, like g_signal_stop_emission() or g_signal_handler_block().
A binding will be severed, and the resources it allocates freed, whenever either one of the #GObject instances it refers to are finalized, or when the #GBinding instance loses its last reference.
Bindings for languages with garbage collection can use g_binding_unbind() to explicitly release a binding between the source and target properties, instead of relying on the last reference on the binding, source, and target instances to drop.
#GBinding is available since GObject 2.26
func (*Binding) DupSource ¶
Retrieves the #GObject instance used as the source of the binding.
A #GBinding can outlive the source #GObject as the binding does not hold a strong reference to the source. If the source is destroyed before the binding then this function will return %NULL.
func (*Binding) DupTarget ¶
Retrieves the #GObject instance used as the target of the binding.
A #GBinding can outlive the target #GObject as the binding does not hold a strong reference to the target. If the target is destroyed before the binding then this function will return %NULL.
func (*Binding) GetFlags ¶
func (x *Binding) GetFlags() BindingFlags
Retrieves the flags passed when constructing the #GBinding.
func (*Binding) GetSource ¶
Retrieves the #GObject instance used as the source of the binding.
A #GBinding can outlive the source #GObject as the binding does not hold a strong reference to the source. If the source is destroyed before the binding then this function will return %NULL.
Use g_binding_dup_source() if the source or binding are used from different threads as otherwise the pointer returned from this function might become invalid if the source is finalized from another thread in the meantime.
func (*Binding) GetSourceProperty ¶
Retrieves the name of the property of #GBinding:source used as the source of the binding.
func (*Binding) GetTarget ¶
Retrieves the #GObject instance used as the target of the binding.
A #GBinding can outlive the target #GObject as the binding does not hold a strong reference to the target. If the target is destroyed before the binding then this function will return %NULL.
Use g_binding_dup_target() if the target or binding are used from different threads as otherwise the pointer returned from this function might become invalid if the target is finalized from another thread in the meantime.
func (*Binding) GetTargetProperty ¶
Retrieves the name of the property of #GBinding:target used as the target of the binding.
func (*Binding) SetGoPointer ¶
func (*Binding) Unbind ¶
func (x *Binding) Unbind()
Explicitly releases the binding between the source and the target property expressed by @binding.
This function will release the reference that is being held on the @binding instance if the binding is still bound; if you want to hold on to the #GBinding instance after calling g_binding_unbind(), you will need to hold a reference to it.
Note however that this function does not take ownership of @binding, it only unrefs the reference that was initially created by g_object_bind_property() and is owned by the binding.
type BindingFlags ¶
type BindingFlags int
Flags to be passed to g_object_bind_property() or g_object_bind_property_full().
This enumeration can be extended at later date.
const ( // The default binding; if the source property // changes, the target property is updated with its value. GBindingDefaultValue BindingFlags = 0 // Bidirectional binding; if either the // property of the source or the property of the target changes, // the other is updated. GBindingBidirectionalValue BindingFlags = 1 // Synchronize the values of the source and // target properties when creating the binding; the direction of // the synchronization is always from the source to the target. GBindingSyncCreateValue BindingFlags = 2 // If the two properties being bound are // booleans, setting one to %TRUE will result in the other being // set to %FALSE and vice versa. This flag will only work for // boolean properties, and cannot be used when passing custom // transformation functions to g_object_bind_property_full(). GBindingInvertBooleanValue BindingFlags = 4 )
type BindingGroup ¶
type BindingGroup struct {
Object
}
The #GBindingGroup can be used to bind multiple properties from an object collectively.
Use the various methods to bind properties from a single source object to multiple destination objects. Properties can be bound bidirectionally and are connected when the source object is set with g_binding_group_set_source().
func BindingGroupNewFromInternalPtr ¶
func BindingGroupNewFromInternalPtr(ptr uintptr) *BindingGroup
func (*BindingGroup) Bind ¶
func (x *BindingGroup) Bind(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags)
Creates a binding between @source_property on the source object and @target_property on @target. Whenever the @source_property is changed the @target_property is updated using the same value. The binding flag %G_BINDING_SYNC_CREATE is automatically specified.
See g_object_bind_property() for more information.
func (*BindingGroup) BindFull ¶
func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags, TransformToVar *BindingTransformFunc, TransformFromVar *BindingTransformFunc, UserDataVar uintptr, UserDataDestroyVar *glib.DestroyNotify)
Creates a binding between @source_property on the source object and @target_property on @target, allowing you to set the transformation functions to be used by the binding. The binding flag %G_BINDING_SYNC_CREATE is automatically specified.
See g_object_bind_property_full() for more information.
func (*BindingGroup) BindWithClosures ¶
func (x *BindingGroup) BindWithClosures(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags, TransformToVar *Closure, TransformFromVar *Closure)
Creates a binding between @source_property on the source object and @target_property on @target, allowing you to set the transformation functions to be used by the binding. The binding flag %G_BINDING_SYNC_CREATE is automatically specified.
This function is the language bindings friendly version of g_binding_group_bind_property_full(), using #GClosures instead of function pointers.
See g_object_bind_property_with_closures() for more information.
func (*BindingGroup) DupSource ¶
func (x *BindingGroup) DupSource() *Object
Gets the source object used for binding properties.
func (*BindingGroup) GoPointer ¶
func (c *BindingGroup) GoPointer() uintptr
func (*BindingGroup) SetGoPointer ¶
func (c *BindingGroup) SetGoPointer(ptr uintptr)
func (*BindingGroup) SetSource ¶
func (x *BindingGroup) SetSource(SourceVar *Object)
Sets @source as the source object used for creating property bindings. If there is already a source object all bindings from it will be removed.
Note that all properties that have been bound must exist on @source.
type BindingTransformFunc ¶
A function to be called to transform @from_value to @to_value.
If this is the @transform_to function of a binding, then @from_value is the @source_property on the @source object, and @to_value is the @target_property on the @target object. If this is the @transform_from function of a %G_BINDING_BIDIRECTIONAL binding, then those roles are reversed.
type BoxedCopyFunc ¶
This function is provided by the user and should produce a copy of the passed in boxed structure.
type BoxedFreeFunc ¶
type BoxedFreeFunc func(uintptr)
This function is provided by the user and should free the boxed structure passed.
type Callback ¶
type Callback func()
The type used for callback functions in structure definitions and function signatures.
This doesn't mean that all callback functions must take no parameters and return void. The required signature of a callback function is determined by the context in which is used (e.g. the signal to which it is connected).
Use G_CALLBACK() to cast the callback function to a #GCallback.
type ClassFinalizeFunc ¶
A callback function used by the type system to finalize a class.
This function is rarely needed, as dynamically allocated class resources should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
Also, specification of a GClassFinalizeFunc() in the #GTypeInfo structure of a static type is invalid, because classes of static types will never be finalized (they are artificially kept alive when their reference count drops to zero).
type ClassInitFunc ¶
A callback function used by the type system to initialize the class of a specific type.
This function should initialize all static class members.
The initialization process of a class involves:
- Copying common members from the parent class over to the derived class structure.
- Zero initialization of the remaining members not copied over from the parent class.
- Invocation of the GBaseInitFunc() initializers of all parent types and the class' type.
- Invocation of the class' GClassInitFunc() initializer.
Since derived classes are partially initialized through a memory copy of the parent class, the general rule is that GBaseInitFunc() and GBaseFinalizeFunc() should take care of necessary reinitialization and release of those class members that were introduced by the type that specified these GBaseInitFunc()/GBaseFinalizeFunc(). GClassInitFunc() should only care about initializing static class members, while dynamic class members (such as allocated strings or reference counted resources) are better handled by a GBaseInitFunc() for this type, so proper initialization of the dynamic class members is performed for class initialization of derived types as well.
An example may help to correspond the intend of the different class initializers:
|[<!-- language="C" -->
typedef struct { GObjectClass parent_class; gint static_integer; gchar *dynamic_string; } TypeAClass;
static void type_a_base_class_init (TypeAClass *class)
{ class->dynamic_string = g_strdup ("some string"); }
static void type_a_base_class_finalize (TypeAClass *class)
{ g_free (class->dynamic_string); }
static void type_a_class_init (TypeAClass *class)
{ class->static_integer = 42; } typedef struct { TypeAClass parent_class; gfloat static_float; GString *dynamic_gstring; } TypeBClass;
static void type_b_base_class_init (TypeBClass *class)
{ class->dynamic_gstring = g_string_new ("some other string"); }
static void type_b_base_class_finalize (TypeBClass *class)
{ g_string_free (class->dynamic_gstring); }
static void type_b_class_init (TypeBClass *class)
{ class->static_float = 3.14159265358979323846; }
]|
Initialization of TypeBClass will first cause initialization of TypeAClass (derived classes reference their parent classes, see g_type_class_ref() on this).
Initialization of TypeAClass roughly involves zero-initializing its fields, then calling its GBaseInitFunc() type_a_base_class_init() to allocate its dynamic members (dynamic_string), and finally calling its GClassInitFunc() type_a_class_init() to initialize its static members (static_integer). The first step in the initialization process of TypeBClass is then a plain memory copy of the contents of TypeAClass into TypeBClass and zero-initialization of the remaining fields in TypeBClass. The dynamic members of TypeAClass within TypeBClass now need reinitialization which is performed by calling type_a_base_class_init() with an argument of TypeBClass.
After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init() is called to allocate the dynamic members of TypeBClass (dynamic_gstring), and finally the GClassInitFunc() of TypeBClass, type_b_class_init(), is called to complete the initialization process with the static members (static_float).
Corresponding finalization counter parts to the GBaseInitFunc() functions have to be provided to release allocated resources at class finalization time.
type Closure ¶
type Closure struct { RefCount uint MetaMarshalNouse uint NGuards uint NFnotifiers uint NInotifiers uint InInotify uint Floating uint DerivativeFlag uint InMarshal uint IsInvalid uint Data uintptr Notifiers *ClosureNotifyData }
A #GClosure represents a callback supplied by the programmer.
It will generally comprise a function of some kind and a marshaller used to call it. It is the responsibility of the marshaller to convert the arguments for the invocation from #GValues into a suitable form, perform the callback on the converted arguments, and transform the return value back into a #GValue.
In the case of C programs, a closure usually just holds a pointer to a function and maybe a data argument, and the marshaller converts between #GValue and native C types. The GObject library provides the #GCClosure type for this purpose. Bindings for other languages need marshallers which convert between #GValues and suitable representations in the runtime of the language in order to use functions written in that language as callbacks. Use g_closure_set_marshal() to set the marshaller on such a custom closure implementation.
Within GObject, closures play an important role in the implementation of signals. When a signal is registered, the @c_marshaller argument to g_signal_new() specifies the default C marshaller for any closure which is connected to this signal. GObject provides a number of C marshallers for this purpose, see the g_cclosure_marshal_*() functions. Additional C marshallers can be generated with the [glib-genmarshal][glib-genmarshal] utility. Closures can be explicitly connected to signals with g_signal_connect_closure(), but it usually more convenient to let GObject create a closure automatically by using one of the g_signal_connect_*() functions which take a callback function/user data pair.
Using closures has a number of important advantages over a simple callback function/data pointer combination:
Closures allow the callee to get the types of the callback parameters, which means that language bindings don't have to write individual glue for each callback type.
The reference counting of #GClosure makes it easy to handle reentrancy right; if a callback is removed while it is being invoked, the closure and its parameters won't be freed until the invocation finishes.
g_closure_invalidate() and invalidation notifiers allow callbacks to be automatically removed when the objects they point to go away.
func CclosureNew ¶
func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar *ClosureNotify) *Closure
Creates a new closure which invokes @callback_func with @user_data as the last parameter.
@destroy_data will be called as a finalize notifier on the #GClosure.
func CclosureNewObject ¶
A variant of g_cclosure_new() which uses @object as @user_data and calls g_object_watch_closure() on @object and the created closure. This function is useful when you have a callback closely associated with a #GObject, and want the callback to no longer run after the object is is freed.
func CclosureNewObjectSwap ¶
A variant of g_cclosure_new_swap() which uses @object as @user_data and calls g_object_watch_closure() on @object and the created closure. This function is useful when you have a callback closely associated with a #GObject, and want the callback to no longer run after the object is is freed.
func CclosureNewSwap ¶
func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar *ClosureNotify) *Closure
Creates a new closure which invokes @callback_func with @user_data as the first parameter.
@destroy_data will be called as a finalize notifier on the #GClosure.
func NewClosureObject ¶
A variant of g_closure_new_simple() which stores @object in the @data field of the closure and calls g_object_watch_closure() on @object and the created closure. This function is mainly useful when implementing new types of closures.
func NewClosureSimple ¶
Allocates a struct of the given size and initializes the initial part as a #GClosure.
This function is mainly useful when implementing new types of closures:
|[<!-- language="C" --> typedef struct _MyClosure MyClosure; struct _MyClosure
{ GClosure closure; // extra data goes here };
static void my_closure_finalize (gpointer notify_data,
GClosure *closure) { MyClosure *my_closure = (MyClosure *)closure; // free extra data here }
MyClosure *my_closure_new (gpointer data)
{ GClosure *closure; MyClosure *my_closure; closure = g_closure_new_simple (sizeof (MyClosure), data); my_closure = (MyClosure *) closure; // initialize extra data here g_closure_add_finalize_notifier (closure, notify_data, my_closure_finalize); return my_closure; }
]|
func SignalTypeCclosureNew ¶
Creates a new closure which invokes the function found at the offset @struct_offset in the class structure of the interface or classed type identified by @itype.
func (*Closure) AddFinalizeNotifier ¶
func (x *Closure) AddFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
Registers a finalization notifier which will be called when the reference count of @closure goes down to 0.
Multiple finalization notifiers on a single closure are invoked in unspecified order. If a single call to g_closure_unref() results in the closure being both invalidated and finalized, then the invalidate notifiers will be run before the finalize notifiers.
func (*Closure) AddInvalidateNotifier ¶
func (x *Closure) AddInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
Registers an invalidation notifier which will be called when the @closure is invalidated with g_closure_invalidate().
Invalidation notifiers are invoked before finalization notifiers, in an unspecified order.
func (*Closure) AddMarshalGuards ¶
func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVar *ClosureNotify, PostMarshalDataVar uintptr, PostMarshalNotifyVar *ClosureNotify)
Adds a pair of notifiers which get invoked before and after the closure callback, respectively.
This is typically used to protect the extra arguments for the duration of the callback. See g_object_watch_closure() for an example of marshal guards.
func (*Closure) Invalidate ¶
func (x *Closure) Invalidate()
Sets a flag on the closure to indicate that its calling environment has become invalid, and thus causes any future invocations of g_closure_invoke() on this @closure to be ignored.
Also, invalidation notifiers installed on the closure will be called at this point. Note that unless you are holding a reference to the closure yourself, the invalidation notifiers may unref the closure and cause it to be destroyed, so if you need to access the closure after calling g_closure_invalidate(), make sure that you've previously called g_closure_ref().
Note that g_closure_invalidate() will also be called when the reference count of a closure drops to zero (unless it has already been invalidated before).
func (*Closure) Invoke ¶
func (x *Closure) Invoke(ReturnValueVar *Value, NParamValuesVar uint, ParamValuesVar uintptr, InvocationHintVar uintptr)
Invokes the closure, i.e. executes the callback represented by the @closure.
func (*Closure) Ref ¶
Increments the reference count on a closure to force it staying alive while the caller holds a pointer to it.
func (*Closure) RemoveFinalizeNotifier ¶
func (x *Closure) RemoveFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
Removes a finalization notifier.
Notice that notifiers are automatically removed after they are run.
func (*Closure) RemoveInvalidateNotifier ¶
func (x *Closure) RemoveInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *ClosureNotify)
Removes an invalidation notifier.
Notice that notifiers are automatically removed after they are run.
func (*Closure) SetMarshal ¶
func (x *Closure) SetMarshal(MarshalVar *ClosureMarshal)
Sets the marshaller of @closure.
The `marshal_data` of @marshal provides a way for a meta marshaller to provide additional information to the marshaller.
For GObject's C predefined marshallers (the `g_cclosure_marshal_*()` functions), what it provides is a callback function to use instead of @closure->callback.
See also: g_closure_set_meta_marshal()
func (*Closure) SetMetaMarshal ¶
func (x *Closure) SetMetaMarshal(MarshalDataVar uintptr, MetaMarshalVar *ClosureMarshal)
Sets the meta marshaller of @closure.
A meta marshaller wraps the @closure's marshal and modifies the way it is called in some fashion. The most common use of this facility is for C callbacks.
The same marshallers (generated by [glib-genmarshal][glib-genmarshal]), are used everywhere, but the way that we get the callback function differs. In most cases we want to use the @closure's callback, but in other cases we want to use some different technique to retrieve the callback function.
For example, class closures for signals (see g_signal_type_cclosure_new()) retrieve the callback function from a fixed offset in the class structure. The meta marshaller retrieves the right callback and passes it to the marshaller as the @marshal_data argument.
func (*Closure) Sink ¶
func (x *Closure) Sink()
Takes over the initial ownership of a closure.
Each closure is initially created in a "floating" state, which means that the initial reference count is not owned by any caller.
This function checks to see if the object is still floating, and if so, unsets the floating state and decreases the reference count. If the closure is not floating, g_closure_sink() does nothing.
The reason for the existence of the floating state is to prevent cumbersome code sequences like:
|[<!-- language="C" --> closure = g_cclosure_new (cb_func, cb_data); g_source_set_closure (source, closure); g_closure_unref (closure); // GObject doesn't really need this ]|
Because g_source_set_closure() (and similar functions) take ownership of the initial reference count, if it is unowned, we instead can write:
|[<!-- language="C" --> g_source_set_closure (source, g_cclosure_new (cb_func, cb_data)); ]|
Generally, this function is used together with g_closure_ref(). An example of storing a closure for later notification looks like:
|[<!-- language="C" --> static GClosure *notify_closure = NULL; void foo_notify_set_closure (GClosure *closure)
{ if (notify_closure) g_closure_unref (notify_closure); notify_closure = closure; if (notify_closure) { g_closure_ref (notify_closure); g_closure_sink (notify_closure); } }
]|
Because g_closure_sink() may decrement the reference count of a closure (if it hasn't been called on @closure yet) just like g_closure_unref(), g_closure_ref() should be called prior to this function.
type ClosureMarshal ¶
The type used for marshaller functions.
type ClosureNotify ¶
The type used for the various notification callbacks which can be registered on closures.
type ClosureNotifyData ¶
type ClosureNotifyData struct { Data uintptr Notify ClosureNotify }
func (*ClosureNotifyData) GoPointer ¶
func (x *ClosureNotifyData) GoPointer() uintptr
type ConnectFlags ¶
type ConnectFlags int
The connection flags are used to specify the behaviour of a signal's connection.
const ( // whether the handler should be called before or after the // default handler of the signal. GConnectAfterValue ConnectFlags = 1 // whether the instance and data should be swapped when // calling the handler; see g_signal_connect_swapped() for an example. GConnectSwappedValue ConnectFlags = 2 )
type EnumClass ¶
type EnumClass struct { GTypeClass uintptr Minimum int32 Maximum int32 NValues uint Values *EnumValue }
The class of an enumeration type holds information about its possible values.
type EnumValue ¶
A structure which contains a single enum value, its name, and its nickname.
func EnumGetValue ¶
Returns the #GEnumValue for a value.
func EnumGetValueByName ¶
Looks up a #GEnumValue by name.
func EnumGetValueByNick ¶
Looks up a #GEnumValue by nickname.
type FlagsClass ¶
type FlagsClass struct { GTypeClass uintptr Mask uint NValues uint Values *FlagsValue }
The class of a flags type holds information about its possible values.
func (*FlagsClass) GoPointer ¶
func (x *FlagsClass) GoPointer() uintptr
type FlagsValue ¶
A structure which contains a single flags value, its name, and its nickname.
func FlagsGetFirstValue ¶
func FlagsGetFirstValue(FlagsClassVar *FlagsClass, ValueVar uint) *FlagsValue
Returns the first #GFlagsValue which is set in @value.
func FlagsGetValueByName ¶
func FlagsGetValueByName(FlagsClassVar *FlagsClass, NameVar string) *FlagsValue
Looks up a #GFlagsValue by name.
func FlagsGetValueByNick ¶
func FlagsGetValueByNick(FlagsClassVar *FlagsClass, NickVar string) *FlagsValue
Looks up a #GFlagsValue by nickname.
func (*FlagsValue) GoPointer ¶
func (x *FlagsValue) GoPointer() uintptr
type InitiallyUnowned ¶
type InitiallyUnowned struct {
Object
}
A type for objects that have an initially floating reference.
All the fields in the `GInitiallyUnowned` structure are private to the implementation and should never be accessed directly.
func InitiallyUnownedNewFromInternalPtr ¶
func InitiallyUnownedNewFromInternalPtr(ptr uintptr) *InitiallyUnowned
func (*InitiallyUnowned) GoPointer ¶
func (c *InitiallyUnowned) GoPointer() uintptr
func (*InitiallyUnowned) SetGoPointer ¶
func (c *InitiallyUnowned) SetGoPointer(ptr uintptr)
type InitiallyUnownedClass ¶
type InitiallyUnownedClass struct { GTypeClass uintptr ConstructProperties *glib.SList Flags uint Pdummy uintptr }
The class structure for the GInitiallyUnowned type.
func (*InitiallyUnownedClass) GoPointer ¶
func (x *InitiallyUnownedClass) GoPointer() uintptr
type InstanceInitFunc ¶
type InstanceInitFunc func(*TypeInstance, *TypeClass)
A callback function used by the type system to initialize a new instance of a type.
This function initializes all instance members and allocates any resources required by it.
Initialization of a derived instance involves calling all its parent types instance initializers, so the class member of the instance is altered during its initialization to always point to the class that belongs to the type the current initializer was introduced for.
The extended members of @instance are guaranteed to have been filled with zeros before this function is called.
type InterfaceFinalizeFunc ¶
type InterfaceFinalizeFunc func(*TypeInterface, uintptr)
A callback function used by the type system to finalize an interface.
This function should destroy any internal data and release any resources allocated by the corresponding GInterfaceInitFunc() function.
type InterfaceInfo ¶
type InterfaceInfo struct { InterfaceInit InterfaceInitFunc InterfaceFinalize InterfaceFinalizeFunc InterfaceData uintptr }
A structure that provides information to the type system which is used specifically for managing interface types.
func (*InterfaceInfo) GoPointer ¶
func (x *InterfaceInfo) GoPointer() uintptr
type InterfaceInitFunc ¶
type InterfaceInitFunc func(*TypeInterface, uintptr)
A callback function used by the type system to initialize a new interface.
This function should initialize all internal data and* allocate any resources required by the interface.
The members of @iface_data are guaranteed to have been filled with zeros before this function is called.
type Object ¶
type Object struct {
Ptr uintptr
}
The base object type.
All the fields in the `GObject` structure are private to the implementation and should never be accessed directly.
Since GLib 2.72, all #GObjects are guaranteed to be aligned to at least the alignment of the largest basic GLib type (typically this is #guint64 or #gdouble). If you need larger alignment for an element in a #GObject, you should allocate it on the heap (aligned), or arrange for your #GObject to be appropriately padded. This guarantee applies to the #GObject (or derived) struct, the #GObjectClass (or derived) struct, and any private data allocated by G_ADD_PRIVATE().
func NewObject ¶
func NewObject(ObjectTypeVar []interface{}, FirstPropertyNameVar string, varArgs ...interface{}) *Object
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values. Any private data for the object is guaranteed to be initialized with zeros, as per g_type_create_instance().
Note that in C, small integer types in variable argument lists are promoted up to #gint or #guint as appropriate, and read back accordingly. #gint is 32 bits on every platform on which GLib is currently supported. This means that you can use C expressions of type #gint with g_object_new() and properties of type #gint or #guint or smaller. Specifically, you can use integer literals with these property types.
When using property types of #gint64 or #guint64, you must ensure that the value that you provide is 64 bit. This means that you should use a cast or make use of the %G_GINT64_CONSTANT or %G_GUINT64_CONSTANT macros.
Similarly, #gfloat is promoted to #gdouble, so you must ensure that the value you provide is a #gdouble, even for a property of type #gfloat.
Since GLib 2.72, all #GObjects are guaranteed to be aligned to at least the alignment of the largest basic GLib type (typically this is #guint64 or #gdouble). If you need larger alignment for an element in a #GObject, you should allocate it on the heap (aligned), or arrange for your #GObject to be appropriately padded.
func NewObjectValist ¶
func NewObjectValist(ObjectTypeVar []interface{}, FirstPropertyNameVar string, VarArgsVar []interface{}) *Object
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
func NewObjectWithProperties ¶
func NewObjectWithProperties(ObjectTypeVar []interface{}, NPropertiesVar uint, NamesVar []string, ValuesVar uintptr) *Object
Creates a new instance of a #GObject subtype and sets its properties using the provided arrays. Both arrays must have exactly @n_properties elements, and the names and values correspond by index.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
func NewObjectv ¶
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
func (*Object) AddToggleRef ¶
func (x *Object) AddToggleRef(NotifyVar *ToggleNotify, DataVar uintptr)
Increases the reference count of the object by one and sets a callback to be called when all other references to the object are dropped, or when this is already the last reference to the object and another reference is established.
This functionality is intended for binding @object to a proxy object managed by another memory manager. This is done with two paired references: the strong reference added by g_object_add_toggle_ref() and a reverse reference to the proxy object which is either a strong reference or weak reference.
The setup is that when there are no other references to @object, only a weak reference is held in the reverse direction from @object to the proxy object, but when there are other references held to @object, a strong reference is held. The @notify callback is called when the reference from @object to the proxy object should be "toggled" from strong to weak (@is_last_ref true) or weak to strong (@is_last_ref false).
Since a (normal) reference must be held to the object before calling g_object_add_toggle_ref(), the initial state of the reverse link is always strong.
Multiple toggle references may be added to the same gobject, however if there are multiple toggle references to an object, none of them will ever be notified until all but one are removed. For this reason, you should only ever use a toggle reference if there is important state in the proxy object.
func (*Object) AddWeakPointer ¶
Adds a weak reference from weak_pointer to @object to indicate that the pointer located at @weak_pointer_location is only valid during the lifetime of @object. When the @object is finalized, @weak_pointer will be set to %NULL.
Note that as with g_object_weak_ref(), the weak references created by this method are not thread-safe: they cannot safely be used in one thread if the object's last g_object_unref() might happen in another thread. Use #GWeakRef if thread-safety is required.
func (*Object) BindProperty ¶
func (x *Object) BindProperty(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags) *Binding
Creates a binding between @source_property on @source and @target_property on @target.
Whenever the @source_property is changed the @target_property is updated using the same value. For instance:
|[<!-- language="C" -->
g_object_bind_property (action, "active", widget, "sensitive", 0);
]|
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: if @target_property on @target changes then the @source_property on @source will be updated as well.
The binding will automatically be removed when either the @source or the @target instances are finalized. To remove the binding without affecting the @source and the @target you can just call g_object_unref() on the returned #GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if the binding, @source and @target are only used from a single thread and it is clear that both @source and @target outlive the binding. Especially it is not safe to rely on this if the binding, @source or @target can be finalized from different threads. Keep another reference to the binding and use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
func (*Object) BindPropertyFull ¶
func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags, TransformToVar *BindingTransformFunc, TransformFromVar *BindingTransformFunc, UserDataVar uintptr, NotifyVar *glib.DestroyNotify) *Binding
Complete version of g_object_bind_property().
Creates a binding between @source_property on @source and @target_property on @target, allowing you to set the transformation functions to be used by the binding.
If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: if @target_property on @target changes then the @source_property on @source will be updated as well. The @transform_from function is only used in case of bidirectional bindings, otherwise it will be ignored
The binding will automatically be removed when either the @source or the @target instances are finalized. This will release the reference that is being held on the #GBinding instance; if you want to hold on to the #GBinding instance, you will need to hold a reference to it.
To remove the binding, call g_binding_unbind().
A #GObject can have multiple bindings.
The same @user_data parameter will be used for both @transform_to and @transform_from transformation functions; the @notify function will be called once, when the binding is removed. If you need different data for each transformation function, please use g_object_bind_property_with_closures() instead.
func (*Object) BindPropertyWithClosures ¶
func (x *Object) BindPropertyWithClosures(SourcePropertyVar string, TargetVar *Object, TargetPropertyVar string, FlagsVar BindingFlags, TransformToVar *Closure, TransformFromVar *Closure) *Binding
Creates a binding between @source_property on @source and @target_property on @target, allowing you to set the transformation functions to be used by the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
func (*Object) Connect ¶
A convenience function to connect multiple signals at once.
The signal specs expected by this function have the form "modifier::signal_name", where modifier can be one of the following: - signal: equivalent to g_signal_connect_data (..., NULL, 0) - object-signal, object_signal: equivalent to g_signal_connect_object (..., 0) - swapped-signal, swapped_signal: equivalent to g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED) - swapped_object_signal, swapped-object-signal: equivalent to g_signal_connect_object (..., G_CONNECT_SWAPPED) - signal_after, signal-after: equivalent to g_signal_connect_data (..., NULL, G_CONNECT_AFTER) - object_signal_after, object-signal-after: equivalent to g_signal_connect_object (..., G_CONNECT_AFTER) - swapped_signal_after, swapped-signal-after: equivalent to g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER) - swapped_object_signal_after, swapped-object-signal-after: equivalent to g_signal_connect_object (..., G_CONNECT_SWAPPED | G_CONNECT_AFTER)
|[<!-- language="C" -->
menu->toplevel = g_object_connect (g_object_new (GTK_TYPE_WINDOW, "type", GTK_WINDOW_POPUP, "child", menu, NULL), "signal::event", gtk_menu_window_event, menu, "signal::size_request", gtk_menu_window_size_request, menu, "signal::destroy", gtk_widget_destroyed, &menu->toplevel, NULL);
]|
func (*Object) ConnectNotify ¶
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with %G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results in ::notify being emitted, even if the new value is the same as the old. If they did pass %G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only when they explicitly call g_object_notify() or g_object_notify_by_pspec(), and common practice is to do that only when the value has actually changed.
This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the g_signal_connect() call, like this:
|[<!-- language="C" --> g_signal_connect (text_view->buffer, "notify::paste-target-list",
G_CALLBACK (gtk_text_view_target_list_notify), text_view)
]|
It is important to note that you must use [canonical parameter names][canonical-parameter-names] as detail strings for the notify signal.
func (Object) ConnectSignal ¶
func (*Object) Disconnect ¶
A convenience function to disconnect multiple signals at once.
The signal specs expected by this function have the form "any_signal", which means to disconnect any signal with matching callback and data, or "any_signal::signal_name", which only disconnects the signal named "signal_name".
func (Object) DisconnectSignal ¶
func (*Object) DupData ¶
func (x *Object) DupData(KeyVar string, DupFuncVar *glib.DuplicateFunc, UserDataVar uintptr) uintptr
This is a variant of g_object_get_data() which returns a 'duplicate' of the value. @dup_func defines the meaning of 'duplicate' in this context, it could e.g. take a reference on a ref-counted object.
If the @key is not set on the object then @dup_func will be called with a %NULL argument.
Note that @dup_func is called while user data of @object is locked.
This function can be useful to avoid races when multiple threads are using object data on the same key on the same object.
func (*Object) DupQdata ¶
func (x *Object) DupQdata(QuarkVar glib.Quark, DupFuncVar *glib.DuplicateFunc, UserDataVar uintptr) uintptr
This is a variant of g_object_get_qdata() which returns a 'duplicate' of the value. @dup_func defines the meaning of 'duplicate' in this context, it could e.g. take a reference on a ref-counted object.
If the @quark is not set on the object then @dup_func will be called with a %NULL argument.
Note that @dup_func is called while user data of @object is locked.
This function can be useful to avoid races when multiple threads are using object data on the same key on the same object.
func (*Object) ForceFloating ¶
func (x *Object) ForceFloating()
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
func (*Object) FreezeNotify ¶
func (x *Object) FreezeNotify()
Increases the freeze count on @object. If the freeze count is non-zero, the emission of "notify" signals on @object is stopped. The signals are queued until the freeze count is decreased to zero. Duplicate notifications are squashed so that at most one #GObject::notify signal is emitted for each property modified while the object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
func (*Object) Get ¶
Gets properties of an object.
In general, a copy is made of the property contents and the caller is responsible for freeing the memory in the appropriate manner for the type, for instance by calling g_free() or g_object_unref().
Here is an example of using g_object_get() to get the contents of three properties: an integer, a string and an object: |[<!-- language="C" -->
gint intval; guint64 uint64val; gchar *strval; GObject *objval; g_object_get (my_object, "int-property", &intval, "uint64-property", &uint64val, "str-property", &strval, "obj-property", &objval, NULL); // Do something with intval, uint64val, strval, objval g_free (strval); g_object_unref (objval);
]|
func (*Object) GetData ¶
Gets a named field from the objects table of associations (see g_object_set_data()).
func (*Object) GetProperty ¶
Gets a property of an object.
The @value can be:
- an empty #GValue initialized by %G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
- a #GValue initialized with the expected type of the property
- a #GValue initialized with a type to which the expected type of the property can be transformed
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
func (*Object) GetQdata ¶
This function gets back user data pointers stored via g_object_set_qdata().
func (*Object) GetValist ¶
Gets properties of an object.
In general, a copy is made of the property contents and the caller is responsible for freeing the memory in the appropriate manner for the type, for instance by calling g_free() or g_object_unref().
See g_object_get().
func (*Object) Getv ¶
Gets @n_properties properties for an @object. Obtained properties will be set to @values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.
func (*Object) IsFloating ¶
Checks whether @object has a [floating][floating-ref] reference.
func (*Object) Notify ¶
Emits a "notify" signal for the property @property_name on @object.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
func (*Object) NotifyByPspec ¶
Emits a "notify" signal for the property specified by @pspec on @object.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
|[<!-- language="C" -->
enum { PROP_0, PROP_FOO, PROP_LAST }; static GParamSpec *properties[PROP_LAST]; static void my_object_class_init (MyObjectClass *klass) { properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo", 0, 100, 50, G_PARAM_READWRITE); g_object_class_install_property (gobject_class, PROP_FOO, properties[PROP_FOO]); }
]|
and then notify a change on the "foo" property with:
|[<!-- language="C" -->
g_object_notify_by_pspec (self, properties[PROP_FOO]);
]|
func (*Object) Ref ¶
Increases the reference count of @object.
Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type of @object will be propagated to the return type (using the GCC typeof() extension), so any casting the caller needs to do on the return type must be explicit.
func (*Object) RefSink ¶
Increase the reference count of @object, and possibly remove the [floating][floating-ref] reference, if @object has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of @object will be propagated to the return type under the same conditions as for g_object_ref().
func (*Object) RemoveToggleRef ¶
func (x *Object) RemoveToggleRef(NotifyVar *ToggleNotify, DataVar uintptr)
Removes a reference added with g_object_add_toggle_ref(). The reference count of the object is decreased by one.
func (*Object) RemoveWeakPointer ¶
Removes a weak reference from @object that was previously added using g_object_add_weak_pointer(). The @weak_pointer_location has to match the one used with g_object_add_weak_pointer().
func (*Object) ReplaceData ¶
func (x *Object) ReplaceData(KeyVar string, OldvalVar uintptr, NewvalVar uintptr, DestroyVar *glib.DestroyNotify, OldDestroyVar *glib.DestroyNotify) bool
Compares the user data for the key @key on @object with @oldval, and if they are the same, replaces @oldval with @newval.
This is like a typical atomic compare-and-exchange operation, for user data on an object.
If the previous value was replaced then ownership of the old value (@oldval) is passed to the caller, including the registered destroy notify for it (passed out in @old_destroy). It’s up to the caller to free this as needed, which may or may not include using @old_destroy as sometimes replacement should not destroy the object in the normal way.
See g_object_set_data() for guidance on using a small, bounded set of values for @key.
func (*Object) ReplaceQdata ¶
func (x *Object) ReplaceQdata(QuarkVar glib.Quark, OldvalVar uintptr, NewvalVar uintptr, DestroyVar *glib.DestroyNotify, OldDestroyVar *glib.DestroyNotify) bool
Compares the user data for the key @quark on @object with @oldval, and if they are the same, replaces @oldval with @newval.
This is like a typical atomic compare-and-exchange operation, for user data on an object.
If the previous value was replaced then ownership of the old value (@oldval) is passed to the caller, including the registered destroy notify for it (passed out in @old_destroy). It’s up to the caller to free this as needed, which may or may not include using @old_destroy as sometimes replacement should not destroy the object in the normal way.
func (*Object) RunDispose ¶
func (x *Object) RunDispose()
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
func (*Object) Set ¶
Sets properties on an object.
The same caveats about passing integer literals as varargs apply as with g_object_new(). In particular, any integer literals set as the values for properties of type #gint64 or #guint64 must be 64 bits wide, using the %G_GINT64_CONSTANT or %G_GUINT64_CONSTANT macros.
Note that the "notify" signals are queued and only emitted (in reverse order) after all properties have been set. See g_object_freeze_notify().
func (*Object) SetData ¶
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the @key is converted to a #GQuark using g_quark_from_string(). This means a copy of @key is kept permanently (even after @object has been finalized) — so it is recommended to only use a small, bounded set of values for @key in your program, to avoid the #GQuark storage growing unbounded.
func (*Object) SetDataFull ¶
func (x *Object) SetDataFull(KeyVar string, DataVar uintptr, DestroyVar *glib.DestroyNotify)
Like g_object_set_data() except it adds notification for when the association is destroyed, either by setting it to a different value or when the object is destroyed.
Note that the @destroy callback is not called if @data is %NULL.
func (*Object) SetGoPointer ¶
func (*Object) SetProperty ¶
Sets a property on an object.
func (*Object) SetQdata ¶
This sets an opaque, named pointer on an object. The name is specified through a #GQuark (retrieved e.g. via g_quark_from_static_string()), and the pointer can be gotten back from the @object with g_object_get_qdata() until the @object is finalized. Setting a previously set user data pointer, overrides (frees) the old pointer set, using #NULL as pointer essentially removes the data stored.
func (*Object) SetQdataFull ¶
This function works like g_object_set_qdata(), but in addition, a void (*destroy) (gpointer) function may be specified which is called with @data as argument when the @object is finalized, or the data is being overwritten by a call to g_object_set_qdata() with the same @quark.
func (*Object) Setv ¶
Sets @n_properties properties for an @object. Properties to be set will be taken from @values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.
func (*Object) StealData ¶
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
func (*Object) StealQdata ¶
This function gets back user data pointers stored via g_object_set_qdata() and removes the @data from object without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier, for example: |[<!-- language="C" --> void object_add_to_user_list (GObject *object,
const gchar *new_string) { // the quark, naming the object data GQuark quark_string_list = g_quark_from_static_string ("my-string-list"); // retrieve the old string list GList *list = g_object_steal_qdata (object, quark_string_list); // prepend new string list = g_list_prepend (list, g_strdup (new_string)); // this changed 'list', so we need to set it again g_object_set_qdata_full (object, quark_string_list, list, free_string_list); }
static void free_string_list (gpointer data)
{ GList *node, *list = data; for (node = list; node; node = node->next) g_free (node->data); g_list_free (list); }
]| Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
func (*Object) TakeRef ¶
If @object is floating, sink it. Otherwise, do nothing.
In other words, this function will convert a floating reference (if present) into a full reference.
Typically you want to use g_object_ref_sink() in order to automatically do the correct thing with respect to floating or non-floating references, but there is one specific scenario where this function is helpful.
The situation where this function is helpful is when creating an API that allows the user to provide a callback function that returns a GObject. We certainly want to allow the user the flexibility to return a non-floating reference from this callback (for the case where the object that is being returned already exists).
At the same time, the API style of some popular GObject-based libraries (such as Gtk) make it likely that for newly-created GObject instances, the user can be saved some typing if they are allowed to return a floating reference.
Using this function on the return value of the user's callback allows the user to do whichever is more convenient for them. The caller will alway receives exactly one full reference to the value: either the one that was returned in the first place, or a floating reference that has been converted to a full reference.
This function has an odd interaction when combined with g_object_ref_sink() running at the same time in another thread on the same #GObject instance. If g_object_ref_sink() runs first then the result will be that the floating reference is converted to a hard reference. If g_object_take_ref() runs first then the result will be that the floating reference is converted to a hard reference and an additional reference on top of that one is added. It is best to avoid this situation.
func (*Object) ThawNotify ¶
func (x *Object) ThawNotify()
Reverts the effect of a previous call to g_object_freeze_notify(). The freeze count is decreased on @object and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
func (*Object) Unref ¶
func (x *Object) Unref()
Decreases the reference count of @object. When its reference count drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
func (*Object) WatchClosure ¶
This function essentially limits the life time of the @closure to the life time of the object. That is, when the object is finalized, the @closure is invalidated by calling g_closure_invalidate() on it, in order to prevent invocations of the closure with a finalized (nonexisting) object. Also, g_object_ref() and g_object_unref() are added as marshal guards to the @closure, to ensure that an extra reference count is held on @object during invocation of the @closure. Usually, this function will be called on closures that use this @object as closure data.
func (*Object) WeakRef ¶
func (x *Object) WeakRef(NotifyVar *WeakNotify, DataVar uintptr)
Adds a weak reference callback to an object. Weak references are used for notification when an object is disposed. They are called "weak references" because they allow you to safely hold a pointer to an object without calling g_object_ref() (g_object_ref() adds a strong reference, that is, forces the object to stay alive).
Note that the weak references created by this method are not thread-safe: they cannot safely be used in one thread if the object's last g_object_unref() might happen in another thread. Use #GWeakRef if thread-safety is required.
func (*Object) WeakUnref ¶
func (x *Object) WeakUnref(NotifyVar *WeakNotify, DataVar uintptr)
Removes a weak reference callback to an object.
type ObjectClass ¶
type ObjectClass struct { GTypeClass uintptr ConstructProperties *glib.SList Flags uint Pdummy uintptr }
The class structure for the GObject type.
|[<!-- language="C" --> // Example of implementing a singleton using a constructor. static MySingleton *the_singleton = NULL;
static GObject* my_singleton_constructor (GType type,
guint n_construct_params, GObjectConstructParam *construct_params) { GObject *object; if (!the_singleton) { object = G_OBJECT_CLASS (parent_class)->constructor (type, n_construct_params, construct_params); the_singleton = MY_SINGLETON (object); } else object = g_object_ref (G_OBJECT (the_singleton)); return object; }
]|
func (*ObjectClass) FindProperty ¶
func (x *ObjectClass) FindProperty(PropertyNameVar string) *ParamSpec
Looks up the #GParamSpec for a property of a class.
func (*ObjectClass) GoPointer ¶
func (x *ObjectClass) GoPointer() uintptr
func (*ObjectClass) InstallProperties ¶
func (x *ObjectClass) InstallProperties(NPspecsVar uint, PspecsVar uintptr)
Installs new properties from an array of #GParamSpecs.
All properties should be installed during the class initializer. It is possible to install properties after that, but doing so is not recommend, and specifically, is not guaranteed to be thread-safe vs. use of properties on the same type on other threads.
The property id of each property is the index of each #GParamSpec in the @pspecs array.
The property id of 0 is treated specially by #GObject and it should not be used to store a #GParamSpec.
This function should be used if you plan to use a static array of #GParamSpecs and g_object_notify_by_pspec(). For instance, this class initialization:
|[<!-- language="C" -->
enum { PROP_0, PROP_FOO, PROP_BAR, N_PROPERTIES };
static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
static void my_object_class_init (MyObjectClass *klass)
{ GObjectClass *gobject_class = G_OBJECT_CLASS (klass); obj_properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "Foo", -1, G_MAXINT, 0, G_PARAM_READWRITE); obj_properties[PROP_BAR] = g_param_spec_string ("bar", "Bar", "Bar", NULL, G_PARAM_READWRITE); gobject_class->set_property = my_object_set_property; gobject_class->get_property = my_object_get_property; g_object_class_install_properties (gobject_class, N_PROPERTIES, obj_properties); }
]|
allows calling g_object_notify_by_pspec() to notify of property changes:
|[<!-- language="C" --> void my_object_set_foo (MyObject *self, gint foo)
{ if (self->foo != foo) { self->foo = foo; g_object_notify_by_pspec (G_OBJECT (self), obj_properties[PROP_FOO]); } }
]|
func (*ObjectClass) InstallProperty ¶
func (x *ObjectClass) InstallProperty(PropertyIdVar uint, PspecVar *ParamSpec)
Installs a new property.
All properties should be installed during the class initializer. It is possible to install properties after that, but doing so is not recommend, and specifically, is not guaranteed to be thread-safe vs. use of properties on the same type on other threads.
Note that it is possible to redefine a property in a derived class, by installing a property with the same name. This can be useful at times, e.g. to change the range of allowed values or the default value.
func (*ObjectClass) ListProperties ¶
func (x *ObjectClass) ListProperties(NPropertiesVar uint) uintptr
Get an array of #GParamSpec* for all properties of a class.
func (*ObjectClass) OverrideProperty ¶
func (x *ObjectClass) OverrideProperty(PropertyIdVar uint, NameVar string)
Registers @property_id as referring to a property with the name @name in a parent class or in an interface implemented by @oclass. This allows this class to "override" a property implementation in a parent class or to provide the implementation of a property from an interface.
Internally, overriding is implemented by creating a property of type #GParamSpecOverride; generally operations that query the properties of the object class, such as g_object_class_find_property() or g_object_class_list_properties() will return the overridden property. However, in one case, the @construct_properties argument of the @constructor virtual function, the #GParamSpecOverride is passed instead, so that the @param_id field of the #GParamSpec will be correct. For virtually all uses, this makes no difference. If you need to get the overridden property, you can call g_param_spec_get_redirect_target().
type ObjectConstructParam ¶
The GObjectConstructParam struct is an auxiliary structure used to hand #GParamSpec/#GValue pairs to the @constructor of a #GObjectClass.
func (*ObjectConstructParam) GoPointer ¶
func (x *ObjectConstructParam) GoPointer() uintptr
type ObjectFinalizeFunc ¶
type ObjectFinalizeFunc func(uintptr)
The type of the @finalize function of #GObjectClass.
type ObjectGetPropertyFunc ¶
The type of the @get_property function of #GObjectClass.
type ObjectSetPropertyFunc ¶
The type of the @set_property function of #GObjectClass.
type ParamFlags ¶
type ParamFlags int
Through the #GParamFlags flag values, certain aspects of parameters can be configured.
See also: %G_PARAM_STATIC_STRINGS
const ( // the parameter is readable GParamReadableValue ParamFlags = 1 // the parameter is writable GParamWritableValue ParamFlags = 2 // alias for %G_PARAM_READABLE | %G_PARAM_WRITABLE GParamReadwriteValue ParamFlags = 3 // the parameter will be set upon object construction GParamConstructValue ParamFlags = 4 // the parameter can only be set upon object construction GParamConstructOnlyValue ParamFlags = 8 // upon parameter conversion (see g_param_value_convert()) // strict validation is not required GParamLaxValidationValue ParamFlags = 16 // the string used as name when constructing the // parameter is guaranteed to remain valid and // unmodified for the lifetime of the parameter. // Since 2.8 GParamStaticNameValue ParamFlags = 32 // internal GParamPrivateValue ParamFlags = 32 // the string used as nick when constructing the // parameter is guaranteed to remain valid and // unmmodified for the lifetime of the parameter. // Since 2.8 GParamStaticNickValue ParamFlags = 64 // the string used as blurb when constructing the // parameter is guaranteed to remain valid and // unmodified for the lifetime of the parameter. // Since 2.8 GParamStaticBlurbValue ParamFlags = 128 // calls to g_object_set_property() for this // property will not automatically result in a "notify" signal being // emitted: the implementation must call g_object_notify() themselves // in case the property actually changes. Since: 2.42. GParamExplicitNotifyValue ParamFlags = 1073741824 // the parameter is deprecated and will be removed // in a future version. A warning will be generated if it is used // while running with G_ENABLE_DIAGNOSTIC=1. // Since 2.26 GParamDeprecatedValue ParamFlags = 2147483648 )
type ParamSpec ¶
type ParamSpec struct {
Ptr uintptr
}
#GParamSpec is an object structure that encapsulates the metadata required to specify parameters, such as e.g. #GObject properties.
## Parameter names # {#canonical-parameter-names}
A property name consists of one or more segments consisting of ASCII letters and digits, separated by either the `-` or `_` character. The first character of a property name must be a letter. These are the same rules as for signal naming (see g_signal_new()).
When creating and looking up a #GParamSpec, either separator can be used, but they cannot be mixed. Using `-` is considerably more efficient, and is the ‘canonical form’. Using `_` is discouraged.
func NewParamSpecBoolean ¶
func NewParamSpecBoolean(NameVar string, NickVar string, BlurbVar string, DefaultValueVar bool, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN property. In many cases, it may be more appropriate to use an enum with g_param_spec_enum(), both to improve code clarity by using explicitly named values, and to allow for more values to be added in future without breaking API.
See g_param_spec_internal() for details on property names.
func NewParamSpecBoxed ¶
func NewParamSpecBoxed(NameVar string, NickVar string, BlurbVar string, BoxedTypeVar []interface{}, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED derived property.
See g_param_spec_internal() for details on property names.
func NewParamSpecChar ¶
func NewParamSpecChar(NameVar string, NickVar string, BlurbVar string, MinimumVar int8, MaximumVar int8, DefaultValueVar int8, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property.
func NewParamSpecDouble ¶
func NewParamSpecDouble(NameVar string, NickVar string, BlurbVar string, MinimumVar float64, MaximumVar float64, DefaultValueVar float64, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE property.
See g_param_spec_internal() for details on property names.
func NewParamSpecEnum ¶
func NewParamSpecEnum(NameVar string, NickVar string, BlurbVar string, EnumTypeVar []interface{}, DefaultValueVar int, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM property.
See g_param_spec_internal() for details on property names.
func NewParamSpecFlags ¶
func NewParamSpecFlags(NameVar string, NickVar string, BlurbVar string, FlagsTypeVar []interface{}, DefaultValueVar uint, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS property.
See g_param_spec_internal() for details on property names.
func NewParamSpecFloat ¶
func NewParamSpecFloat(NameVar string, NickVar string, BlurbVar string, MinimumVar float32, MaximumVar float32, DefaultValueVar float32, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property.
See g_param_spec_internal() for details on property names.
func NewParamSpecInt ¶
func NewParamSpecInt(NameVar string, NickVar string, BlurbVar string, MinimumVar int, MaximumVar int, DefaultValueVar int, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property.
See g_param_spec_internal() for details on property names.
func NewParamSpecInt64 ¶
func NewParamSpecInt64(NameVar string, NickVar string, BlurbVar string, MinimumVar int64, MaximumVar int64, DefaultValueVar int64, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property.
See g_param_spec_internal() for details on property names.
func NewParamSpecLong ¶
func NewParamSpecLong(NameVar string, NickVar string, BlurbVar string, MinimumVar int32, MaximumVar int32, DefaultValueVar int32, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property.
See g_param_spec_internal() for details on property names.
func NewParamSpecObject ¶
func NewParamSpecObject(NameVar string, NickVar string, BlurbVar string, ObjectTypeVar []interface{}, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT derived property.
See g_param_spec_internal() for details on property names.
func NewParamSpecOverride ¶
Creates a new property of type #GParamSpecOverride. This is used to direct operations to another paramspec, and will not be directly useful unless you are implementing a new base type similar to GObject.
func NewParamSpecParam ¶
func NewParamSpecParam(NameVar string, NickVar string, BlurbVar string, ParamTypeVar []interface{}, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM property.
See g_param_spec_internal() for details on property names.
func NewParamSpecPointer ¶
func NewParamSpecPointer(NameVar string, NickVar string, BlurbVar string, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecPointer instance specifying a pointer property. Where possible, it is better to use g_param_spec_object() or g_param_spec_boxed() to expose memory management information.
See g_param_spec_internal() for details on property names.
func NewParamSpecString ¶
func NewParamSpecString(NameVar string, NickVar string, BlurbVar string, DefaultValueVar string, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecString instance.
See g_param_spec_internal() for details on property names.
func NewParamSpecUnichar ¶
func NewParamSpecUnichar(NameVar string, NickVar string, BlurbVar string, DefaultValueVar uint32, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecUnichar instance specifying a %G_TYPE_UINT property. #GValue structures for this property can be accessed with g_value_set_uint() and g_value_get_uint().
See g_param_spec_internal() for details on property names.
func NewParamSpecValueArray ¶
func NewParamSpecValueArray(NameVar string, NickVar string, BlurbVar string, ElementSpecVar *ParamSpec, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecValueArray instance specifying a %G_TYPE_VALUE_ARRAY property. %G_TYPE_VALUE_ARRAY is a %G_TYPE_BOXED type, as such, #GValue structures for this property can be accessed with g_value_set_boxed() and g_value_get_boxed().
See g_param_spec_internal() for details on property names.
func NewParamSpecVariant ¶
func NewParamSpecVariant(NameVar string, NickVar string, BlurbVar string, TypeVar *glib.VariantType, DefaultValueVar *glib.Variant, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecVariant instance specifying a #GVariant property.
If @default_value is floating, it is consumed.
See g_param_spec_internal() for details on property names.
func ObjectInterfaceFindProperty ¶
func ObjectInterfaceFindProperty(GIfaceVar *TypeInterface, PropertyNameVar string) *ParamSpec
Find the #GParamSpec with the given name for an interface. Generally, the interface vtable passed in as @g_iface will be the default vtable from g_type_default_interface_ref(), or, if you know the interface has already been loaded, g_type_default_interface_peek().
func ParamSpecGtype ¶
func ParamSpecGtype(NameVar string, NickVar string, BlurbVar string, IsATypeVar []interface{}, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecGType instance specifying a %G_TYPE_GTYPE property.
See g_param_spec_internal() for details on property names.
func ParamSpecInternal ¶
func ParamSpecInternal(ParamTypeVar []interface{}, NameVar string, NickVar string, BlurbVar string, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpec instance.
See [canonical parameter names][canonical-parameter-names] for details of the rules for @name. Names which violate these rules lead to undefined behaviour.
Beyond the name, #GParamSpecs have two more descriptive strings associated with them, the @nick, which should be suitable for use as a label for the property in a property editor, and the @blurb, which should be a somewhat longer description, suitable for e.g. a tooltip. The @nick and @blurb should ideally be localized.
func ParamSpecUchar ¶
func ParamSpecUchar(NameVar string, NickVar string, BlurbVar string, MinimumVar byte, MaximumVar byte, DefaultValueVar byte, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property.
func ParamSpecUint ¶
func ParamSpecUint(NameVar string, NickVar string, BlurbVar string, MinimumVar uint, MaximumVar uint, DefaultValueVar uint, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property.
See g_param_spec_internal() for details on property names.
func ParamSpecUint64 ¶
func ParamSpecUint64(NameVar string, NickVar string, BlurbVar string, MinimumVar uint64, MaximumVar uint64, DefaultValueVar uint64, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64 property.
See g_param_spec_internal() for details on property names.
func ParamSpecUlong ¶
func ParamSpecUlong(NameVar string, NickVar string, BlurbVar string, MinimumVar uint32, MaximumVar uint32, DefaultValueVar uint32, FlagsVar ParamFlags) *ParamSpec
Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG property.
See g_param_spec_internal() for details on property names.
func (*ParamSpec) GetDefaultValue ¶
Gets the default value of @pspec as a pointer to a #GValue.
The #GValue will remain valid for the life of @pspec.
func (*ParamSpec) GetName ¶
Get the name of a #GParamSpec.
The name is always an "interned" string (as per g_intern_string()). This allows for pointer-value comparisons.
func (*ParamSpec) GetNameQuark ¶
Gets the GQuark for the name.
func (*ParamSpec) GetRedirectTarget ¶
If the paramspec redirects operations to another paramspec, returns that paramspec. Redirect is used typically for providing a new implementation of a property in a derived type while preserving all the properties from the parent type. Redirection is established by creating a property of type #GParamSpecOverride. See g_object_class_override_property() for an example of the use of this capability.
func (*ParamSpec) SetGoPointer ¶
func (*ParamSpec) SetQdata ¶
Sets an opaque, named pointer on a #GParamSpec. The name is specified through a #GQuark (retrieved e.g. via g_quark_from_static_string()), and the pointer can be gotten back from the @pspec with g_param_spec_get_qdata(). Setting a previously set user data pointer, overrides (frees) the old pointer set, using %NULL as pointer essentially removes the data stored.
func (*ParamSpec) SetQdataFull ¶
func (x *ParamSpec) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVar *glib.DestroyNotify)
This function works like g_param_spec_set_qdata(), but in addition, a `void (*destroy) (gpointer)` function may be specified which is called with @data as argument when the @pspec is finalized, or the data is being overwritten by a call to g_param_spec_set_qdata() with the same @quark.
func (*ParamSpec) Sink ¶
func (x *ParamSpec) Sink()
The initial reference count of a newly created #GParamSpec is 1, even though no one has explicitly called g_param_spec_ref() on it yet. So the initial reference count is flagged as "floating", until someone calls `g_param_spec_ref (pspec); g_param_spec_sink (pspec);` in sequence on it, taking over the initial reference count (thus ending up with a @pspec that has a reference count of 1 still, but is not flagged "floating" anymore).
func (*ParamSpec) StealQdata ¶
Gets back user data pointers stored via g_param_spec_set_qdata() and removes the @data from @pspec without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier.
type ParamSpecBoolean ¶
type ParamSpecBoolean struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for boolean properties.
func ParamSpecBooleanNewFromInternalPtr ¶
func ParamSpecBooleanNewFromInternalPtr(ptr uintptr) *ParamSpecBoolean
func (*ParamSpecBoolean) GoPointer ¶
func (c *ParamSpecBoolean) GoPointer() uintptr
func (*ParamSpecBoolean) SetGoPointer ¶
func (c *ParamSpecBoolean) SetGoPointer(ptr uintptr)
type ParamSpecBoxed ¶
type ParamSpecBoxed struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for boxed properties.
func ParamSpecBoxedNewFromInternalPtr ¶
func ParamSpecBoxedNewFromInternalPtr(ptr uintptr) *ParamSpecBoxed
func (*ParamSpecBoxed) GoPointer ¶
func (c *ParamSpecBoxed) GoPointer() uintptr
func (*ParamSpecBoxed) SetGoPointer ¶
func (c *ParamSpecBoxed) SetGoPointer(ptr uintptr)
type ParamSpecChar ¶
type ParamSpecChar struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for character properties.
func ParamSpecCharNewFromInternalPtr ¶
func ParamSpecCharNewFromInternalPtr(ptr uintptr) *ParamSpecChar
func (*ParamSpecChar) GoPointer ¶
func (c *ParamSpecChar) GoPointer() uintptr
func (*ParamSpecChar) SetGoPointer ¶
func (c *ParamSpecChar) SetGoPointer(ptr uintptr)
type ParamSpecClass ¶
The class structure for the GParamSpec type. Normally, GParamSpec classes are filled by g_param_type_register_static().
func (*ParamSpecClass) GoPointer ¶
func (x *ParamSpecClass) GoPointer() uintptr
type ParamSpecDouble ¶
type ParamSpecDouble struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for double properties.
func ParamSpecDoubleNewFromInternalPtr ¶
func ParamSpecDoubleNewFromInternalPtr(ptr uintptr) *ParamSpecDouble
func (*ParamSpecDouble) GoPointer ¶
func (c *ParamSpecDouble) GoPointer() uintptr
func (*ParamSpecDouble) SetGoPointer ¶
func (c *ParamSpecDouble) SetGoPointer(ptr uintptr)
type ParamSpecEnum ¶
type ParamSpecEnum struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for enum properties.
func ParamSpecEnumNewFromInternalPtr ¶
func ParamSpecEnumNewFromInternalPtr(ptr uintptr) *ParamSpecEnum
func (*ParamSpecEnum) GoPointer ¶
func (c *ParamSpecEnum) GoPointer() uintptr
func (*ParamSpecEnum) SetGoPointer ¶
func (c *ParamSpecEnum) SetGoPointer(ptr uintptr)
type ParamSpecFlags ¶
type ParamSpecFlags struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for flags properties.
func ParamSpecFlagsNewFromInternalPtr ¶
func ParamSpecFlagsNewFromInternalPtr(ptr uintptr) *ParamSpecFlags
func (*ParamSpecFlags) GoPointer ¶
func (c *ParamSpecFlags) GoPointer() uintptr
func (*ParamSpecFlags) SetGoPointer ¶
func (c *ParamSpecFlags) SetGoPointer(ptr uintptr)
type ParamSpecFloat ¶
type ParamSpecFloat struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for float properties.
func ParamSpecFloatNewFromInternalPtr ¶
func ParamSpecFloatNewFromInternalPtr(ptr uintptr) *ParamSpecFloat
func (*ParamSpecFloat) GoPointer ¶
func (c *ParamSpecFloat) GoPointer() uintptr
func (*ParamSpecFloat) SetGoPointer ¶
func (c *ParamSpecFloat) SetGoPointer(ptr uintptr)
type ParamSpecGType ¶
type ParamSpecGType struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for #GType properties.
func ParamSpecGTypeNewFromInternalPtr ¶
func ParamSpecGTypeNewFromInternalPtr(ptr uintptr) *ParamSpecGType
func (*ParamSpecGType) GoPointer ¶
func (c *ParamSpecGType) GoPointer() uintptr
func (*ParamSpecGType) SetGoPointer ¶
func (c *ParamSpecGType) SetGoPointer(ptr uintptr)
type ParamSpecInt ¶
type ParamSpecInt struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for integer properties.
func ParamSpecIntNewFromInternalPtr ¶
func ParamSpecIntNewFromInternalPtr(ptr uintptr) *ParamSpecInt
func (*ParamSpecInt) GoPointer ¶
func (c *ParamSpecInt) GoPointer() uintptr
func (*ParamSpecInt) SetGoPointer ¶
func (c *ParamSpecInt) SetGoPointer(ptr uintptr)
type ParamSpecInt64 ¶
type ParamSpecInt64 struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for 64bit integer properties.
func ParamSpecInt64NewFromInternalPtr ¶
func ParamSpecInt64NewFromInternalPtr(ptr uintptr) *ParamSpecInt64
func (*ParamSpecInt64) GoPointer ¶
func (c *ParamSpecInt64) GoPointer() uintptr
func (*ParamSpecInt64) SetGoPointer ¶
func (c *ParamSpecInt64) SetGoPointer(ptr uintptr)
type ParamSpecLong ¶
type ParamSpecLong struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for long integer properties.
func ParamSpecLongNewFromInternalPtr ¶
func ParamSpecLongNewFromInternalPtr(ptr uintptr) *ParamSpecLong
func (*ParamSpecLong) GoPointer ¶
func (c *ParamSpecLong) GoPointer() uintptr
func (*ParamSpecLong) SetGoPointer ¶
func (c *ParamSpecLong) SetGoPointer(ptr uintptr)
type ParamSpecObject ¶
type ParamSpecObject struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for object properties.
func ParamSpecObjectNewFromInternalPtr ¶
func ParamSpecObjectNewFromInternalPtr(ptr uintptr) *ParamSpecObject
func (*ParamSpecObject) GoPointer ¶
func (c *ParamSpecObject) GoPointer() uintptr
func (*ParamSpecObject) SetGoPointer ¶
func (c *ParamSpecObject) SetGoPointer(ptr uintptr)
type ParamSpecOverride ¶
type ParamSpecOverride struct {
ParamSpec
}
A #GParamSpec derived structure that redirects operations to other types of #GParamSpec.
All operations other than getting or setting the value are redirected, including accessing the nick and blurb, validating a value, and so forth.
See g_param_spec_get_redirect_target() for retrieving the overridden property. #GParamSpecOverride is used in implementing g_object_class_override_property(), and will not be directly useful unless you are implementing a new base type similar to GObject.
func ParamSpecOverrideNewFromInternalPtr ¶
func ParamSpecOverrideNewFromInternalPtr(ptr uintptr) *ParamSpecOverride
func (*ParamSpecOverride) GoPointer ¶
func (c *ParamSpecOverride) GoPointer() uintptr
func (*ParamSpecOverride) SetGoPointer ¶
func (c *ParamSpecOverride) SetGoPointer(ptr uintptr)
type ParamSpecParam ¶
type ParamSpecParam struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM properties.
func ParamSpecParamNewFromInternalPtr ¶
func ParamSpecParamNewFromInternalPtr(ptr uintptr) *ParamSpecParam
func (*ParamSpecParam) GoPointer ¶
func (c *ParamSpecParam) GoPointer() uintptr
func (*ParamSpecParam) SetGoPointer ¶
func (c *ParamSpecParam) SetGoPointer(ptr uintptr)
type ParamSpecPointer ¶
type ParamSpecPointer struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for pointer properties.
func ParamSpecPointerNewFromInternalPtr ¶
func ParamSpecPointerNewFromInternalPtr(ptr uintptr) *ParamSpecPointer
func (*ParamSpecPointer) GoPointer ¶
func (c *ParamSpecPointer) GoPointer() uintptr
func (*ParamSpecPointer) SetGoPointer ¶
func (c *ParamSpecPointer) SetGoPointer(ptr uintptr)
type ParamSpecPool ¶
type ParamSpecPool struct { }
A #GParamSpecPool maintains a collection of #GParamSpecs which can be quickly accessed by owner and name.
The implementation of the #GObject property system uses such a pool to store the #GParamSpecs of the properties all object types.
func (*ParamSpecPool) GoPointer ¶
func (x *ParamSpecPool) GoPointer() uintptr
func (*ParamSpecPool) Insert ¶
func (x *ParamSpecPool) Insert(PspecVar *ParamSpec, OwnerTypeVar []interface{})
Inserts a #GParamSpec in the pool.
func (*ParamSpecPool) List ¶
func (x *ParamSpecPool) List(OwnerTypeVar []interface{}, NPspecsPVar uint) uintptr
Gets an array of all #GParamSpecs owned by @owner_type in the pool.
func (*ParamSpecPool) ListOwned ¶
func (x *ParamSpecPool) ListOwned(OwnerTypeVar []interface{}) *glib.List
Gets an #GList of all #GParamSpecs owned by @owner_type in the pool.
func (*ParamSpecPool) Lookup ¶
func (x *ParamSpecPool) Lookup(ParamNameVar string, OwnerTypeVar []interface{}, WalkAncestorsVar bool) *ParamSpec
Looks up a #GParamSpec in the pool.
func (*ParamSpecPool) Remove ¶
func (x *ParamSpecPool) Remove(PspecVar *ParamSpec)
Removes a #GParamSpec from the pool.
type ParamSpecString ¶
type ParamSpecString struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for string properties.
func ParamSpecStringNewFromInternalPtr ¶
func ParamSpecStringNewFromInternalPtr(ptr uintptr) *ParamSpecString
func (*ParamSpecString) GoPointer ¶
func (c *ParamSpecString) GoPointer() uintptr
func (*ParamSpecString) SetGoPointer ¶
func (c *ParamSpecString) SetGoPointer(ptr uintptr)
type ParamSpecTypeInfo ¶
This structure is used to provide the type system with the information required to initialize and destruct (finalize) a parameter's class and instances thereof.
The initialized structure is passed to the g_param_type_register_static() The type system will perform a deep copy of this structure, so its memory does not need to be persistent across invocation of g_param_type_register_static().
func (*ParamSpecTypeInfo) GoPointer ¶
func (x *ParamSpecTypeInfo) GoPointer() uintptr
type ParamSpecUChar ¶
type ParamSpecUChar struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for unsigned character properties.
func ParamSpecUCharNewFromInternalPtr ¶
func ParamSpecUCharNewFromInternalPtr(ptr uintptr) *ParamSpecUChar
func (*ParamSpecUChar) GoPointer ¶
func (c *ParamSpecUChar) GoPointer() uintptr
func (*ParamSpecUChar) SetGoPointer ¶
func (c *ParamSpecUChar) SetGoPointer(ptr uintptr)
type ParamSpecUInt ¶
type ParamSpecUInt struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for unsigned integer properties.
func ParamSpecUIntNewFromInternalPtr ¶
func ParamSpecUIntNewFromInternalPtr(ptr uintptr) *ParamSpecUInt
func (*ParamSpecUInt) GoPointer ¶
func (c *ParamSpecUInt) GoPointer() uintptr
func (*ParamSpecUInt) SetGoPointer ¶
func (c *ParamSpecUInt) SetGoPointer(ptr uintptr)
type ParamSpecUInt64 ¶
type ParamSpecUInt64 struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
func ParamSpecUInt64NewFromInternalPtr ¶
func ParamSpecUInt64NewFromInternalPtr(ptr uintptr) *ParamSpecUInt64
func (*ParamSpecUInt64) GoPointer ¶
func (c *ParamSpecUInt64) GoPointer() uintptr
func (*ParamSpecUInt64) SetGoPointer ¶
func (c *ParamSpecUInt64) SetGoPointer(ptr uintptr)
type ParamSpecULong ¶
type ParamSpecULong struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.
func ParamSpecULongNewFromInternalPtr ¶
func ParamSpecULongNewFromInternalPtr(ptr uintptr) *ParamSpecULong
func (*ParamSpecULong) GoPointer ¶
func (c *ParamSpecULong) GoPointer() uintptr
func (*ParamSpecULong) SetGoPointer ¶
func (c *ParamSpecULong) SetGoPointer(ptr uintptr)
type ParamSpecUnichar ¶
type ParamSpecUnichar struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
func ParamSpecUnicharNewFromInternalPtr ¶
func ParamSpecUnicharNewFromInternalPtr(ptr uintptr) *ParamSpecUnichar
func (*ParamSpecUnichar) GoPointer ¶
func (c *ParamSpecUnichar) GoPointer() uintptr
func (*ParamSpecUnichar) SetGoPointer ¶
func (c *ParamSpecUnichar) SetGoPointer(ptr uintptr)
type ParamSpecValueArray ¶
type ParamSpecValueArray struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for #GValueArray properties.
func ParamSpecValueArrayNewFromInternalPtr ¶
func ParamSpecValueArrayNewFromInternalPtr(ptr uintptr) *ParamSpecValueArray
func (*ParamSpecValueArray) GoPointer ¶
func (c *ParamSpecValueArray) GoPointer() uintptr
func (*ParamSpecValueArray) SetGoPointer ¶
func (c *ParamSpecValueArray) SetGoPointer(ptr uintptr)
type ParamSpecVariant ¶
type ParamSpecVariant struct {
ParamSpec
}
A #GParamSpec derived structure that contains the meta data for #GVariant properties.
When comparing values with g_param_values_cmp(), scalar values with the same type will be compared with g_variant_compare(). Other non-%NULL variants will be checked for equality with g_variant_equal(), and their sort order is otherwise undefined. %NULL is ordered before non-%NULL variants. Two %NULL values compare equal.
func ParamSpecVariantNewFromInternalPtr ¶
func ParamSpecVariantNewFromInternalPtr(ptr uintptr) *ParamSpecVariant
func (*ParamSpecVariant) GoPointer ¶
func (c *ParamSpecVariant) GoPointer() uintptr
func (*ParamSpecVariant) SetGoPointer ¶
func (c *ParamSpecVariant) SetGoPointer(ptr uintptr)
type Parameter ¶
The GParameter struct is an auxiliary structure used to hand parameter name/value pairs to g_object_newv().
type SignalAccumulator ¶
type SignalAccumulator func(*SignalInvocationHint, *Value, *Value, uintptr) bool
The signal accumulator is a special callback function that can be used to collect return values of the various callbacks that are called during a signal emission.
The signal accumulator is specified at signal creation time, if it is left %NULL, no accumulation of callback return values is performed. The return value of signal emissions is then the value returned by the last callback.
type SignalCMarshaller ¶
type SignalCMarshaller = ClosureMarshal
This is the signature of marshaller functions, required to marshall arrays of parameter values to signal emissions into C language callback invocations.
It is merely an alias to #GClosureMarshal since the #GClosure mechanism takes over responsibility of actual function invocation for the signal system.
type SignalCVaMarshaller ¶
type SignalCVaMarshaller = VaClosureMarshal
This is the signature of va_list marshaller functions, an optional marshaller that can be used in some situations to avoid marshalling the signal argument into GValues.
type SignalEmissionHook ¶
type SignalEmissionHook func(*SignalInvocationHint, uint, uintptr, uintptr) bool
A simple function pointer to get invoked when the signal is emitted.
Emission hooks allow you to tie a hook to the signal type, so that it will trap all emissions of that signal, from any object.
You may not attach these to signals created with the %G_SIGNAL_NO_HOOKS flag.
type SignalFlags ¶
type SignalFlags int
The signal flags are used to specify a signal's behaviour.
const ( // Invoke the object method handler in the first emission stage. GSignalRunFirstValue SignalFlags = 1 // Invoke the object method handler in the third emission stage. GSignalRunLastValue SignalFlags = 2 // Invoke the object method handler in the last emission stage. GSignalRunCleanupValue SignalFlags = 4 // Signals being emitted for an object while currently being in // emission for this very object will not be emitted recursively, // but instead cause the first emission to be restarted. GSignalNoRecurseValue SignalFlags = 8 // This signal supports "::detail" appendices to the signal name // upon handler connections and emissions. GSignalDetailedValue SignalFlags = 16 // Action signals are signals that may freely be emitted on alive // objects from user code via g_signal_emit() and friends, without // the need of being embedded into extra code that performs pre or // post emission adjustments on the object. They can also be thought // of as object methods which can be called generically by // third-party code. GSignalActionValue SignalFlags = 32 // No emissions hooks are supported for this signal. GSignalNoHooksValue SignalFlags = 64 // Varargs signal emission will always collect the // arguments, even if there are no signal handlers connected. Since 2.30. GSignalMustCollectValue SignalFlags = 128 // The signal is deprecated and will be removed // in a future version. A warning will be generated if it is connected while // running with G_ENABLE_DIAGNOSTIC=1. Since 2.32. GSignalDeprecatedValue SignalFlags = 256 // Only used in #GSignalAccumulator accumulator // functions for the #GSignalInvocationHint::run_type field to mark the first // call to the accumulator function for a signal emission. Since 2.68. GSignalAccumulatorFirstRunValue SignalFlags = 131072 )
type SignalGroup ¶
type SignalGroup struct {
Object
}
#GSignalGroup manages to simplify the process of connecting many signals to a #GObject as a group. As such there is no API to disconnect a signal from the group.
In particular, this allows you to:
- Change the target instance, which automatically causes disconnection of the signals from the old instance and connecting to the new instance.
- Block and unblock signals as a group
- Ensuring that blocked state transfers across target instances.
One place you might want to use such a structure is with #GtkTextView and #GtkTextBuffer. Often times, you'll need to connect to many signals on #GtkTextBuffer from a #GtkTextView subclass. This allows you to create a signal group during instance construction, simply bind the #GtkTextView:buffer property to #GSignalGroup:target and connect all the signals you need. When the #GtkTextView:buffer property changes all of the signals will be transitioned correctly.
func NewSignalGroup ¶
func NewSignalGroup(TargetTypeVar []interface{}) *SignalGroup
Creates a new #GSignalGroup for target instances of @target_type.
func SignalGroupNewFromInternalPtr ¶
func SignalGroupNewFromInternalPtr(ptr uintptr) *SignalGroup
func (*SignalGroup) Block ¶
func (x *SignalGroup) Block()
Blocks all signal handlers managed by @self so they will not be called during any signal emissions. Must be unblocked exactly the same number of times it has been blocked to become active again.
This blocked state will be kept across changes of the target instance.
func (*SignalGroup) Connect ¶
func (x *SignalGroup) Connect(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
Connects @c_handler to the signal @detailed_signal on the target instance of @self.
You cannot connect a signal handler after #GSignalGroup:target has been set.
func (*SignalGroup) ConnectAfter ¶
func (x *SignalGroup) ConnectAfter(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
Connects @c_handler to the signal @detailed_signal on the target instance of @self.
The @c_handler will be called after the default handler of the signal.
You cannot connect a signal handler after #GSignalGroup:target has been set.
func (*SignalGroup) ConnectBind ¶
func (x *SignalGroup) ConnectBind(cb *func(SignalGroup, uintptr)) uint32
This signal is emitted when #GSignalGroup:target is set to a new value other than %NULL. It is similar to #GObject::notify on `target` except it will not emit when #GSignalGroup:target is %NULL and also allows for receiving the #GObject without a data-race.
func (*SignalGroup) ConnectData ¶
func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr, NotifyVar *ClosureNotify, FlagsVar ConnectFlags)
Connects @c_handler to the signal @detailed_signal on the target instance of @self.
You cannot connect a signal handler after #GSignalGroup:target has been set.
func (*SignalGroup) ConnectObject ¶
func (x *SignalGroup) ConnectObject(DetailedSignalVar string, CHandlerVar *Callback, ObjectVar uintptr, FlagsVar ConnectFlags)
Connects @c_handler to the signal @detailed_signal on #GSignalGroup:target.
Ensures that the @object stays alive during the call to @c_handler by temporarily adding a reference count. When the @object is destroyed the signal handler will automatically be removed.
You cannot connect a signal handler after #GSignalGroup:target has been set.
func (*SignalGroup) ConnectSwapped ¶
func (x *SignalGroup) ConnectSwapped(DetailedSignalVar string, CHandlerVar *Callback, DataVar uintptr)
Connects @c_handler to the signal @detailed_signal on the target instance of @self.
The instance on which the signal is emitted and @data will be swapped when calling @c_handler.
You cannot connect a signal handler after #GSignalGroup:target has been set.
func (*SignalGroup) ConnectUnbind ¶
func (x *SignalGroup) ConnectUnbind(cb *func(SignalGroup)) uint32
This signal is emitted when the target instance of @self is set to a new #GObject.
This signal will only be emitted if the previous target of @self is non-%NULL.
func (*SignalGroup) DupTarget ¶
func (x *SignalGroup) DupTarget() *Object
Gets the target instance used when connecting signals.
func (*SignalGroup) GoPointer ¶
func (c *SignalGroup) GoPointer() uintptr
func (*SignalGroup) SetGoPointer ¶
func (c *SignalGroup) SetGoPointer(ptr uintptr)
func (*SignalGroup) SetTarget ¶
func (x *SignalGroup) SetTarget(TargetVar *Object)
Sets the target instance used when connecting signals. Any signal that has been registered with g_signal_group_connect_object() or similar functions will be connected to this object.
If the target instance was previously set, signals will be disconnected from that object prior to connecting to @target.
func (*SignalGroup) Unblock ¶
func (x *SignalGroup) Unblock()
Unblocks all signal handlers managed by @self so they will be called again during any signal emissions unless it is blocked again. Must be unblocked exactly the same number of times it has been blocked to become active again.
type SignalInvocationHint ¶
type SignalInvocationHint struct { SignalId uint Detail glib.Quark RunType SignalFlags }
The #GSignalInvocationHint structure is used to pass on additional information to callbacks during a signal emission.
func SignalGetInvocationHint ¶
func SignalGetInvocationHint(InstanceVar *Object) *SignalInvocationHint
Returns the invocation hint of the innermost signal emission of instance.
func (*SignalInvocationHint) GoPointer ¶
func (x *SignalInvocationHint) GoPointer() uintptr
type SignalMatchType ¶
type SignalMatchType int
The match types specify what g_signal_handlers_block_matched(), g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() match signals by.
const ( // The signal id must be equal. GSignalMatchIdValue SignalMatchType = 1 // The signal detail must be equal. GSignalMatchDetailValue SignalMatchType = 2 // The closure must be the same. GSignalMatchClosureValue SignalMatchType = 4 // The C closure callback must be the same. GSignalMatchFuncValue SignalMatchType = 8 // The closure data must be the same. GSignalMatchDataValue SignalMatchType = 16 // Only unblocked signals may be matched. GSignalMatchUnblockedValue SignalMatchType = 32 )
type SignalQuery ¶
type SignalQuery struct { SignalId uint SignalName uintptr Itype []interface{} SignalFlags SignalFlags ReturnType []interface{} NParams uint ParamTypes uintptr }
A structure holding in-depth information for a specific signal.
See also: g_signal_query()
func (*SignalQuery) GoPointer ¶
func (x *SignalQuery) GoPointer() uintptr
type ToggleNotify ¶
A callback function used for notification when the state of a toggle reference changes.
See also: g_object_add_toggle_ref()
type Type ¶
type Type = uint
A numerical value which represents the unique identifier of a registered type.
type TypeCValue ¶
type TypeCValue = uintptr
type TypeClass ¶
type TypeClass struct {
GType []interface{}
}
An opaque structure used as the base of all classes.
func TypeCheckClassCast ¶
func TypeClassPeek ¶
func TypeClassPeek(TypeVar []interface{}) *TypeClass
This function is essentially the same as g_type_class_ref(), except that the classes reference count isn't incremented. As a consequence, this function may return %NULL if the class of the type passed in does not currently exist (hasn't been referenced before).
func TypeClassPeekStatic ¶
func TypeClassPeekStatic(TypeVar []interface{}) *TypeClass
A more efficient version of g_type_class_peek() which works only for static types.
func TypeClassRef ¶
func TypeClassRef(TypeVar []interface{}) *TypeClass
Increments the reference count of the class structure belonging to @type. This function will demand-create the class if it doesn't exist already.
func (*TypeClass) AddPrivate ¶
Registers a private structure for an instantiatable type.
When an object is allocated, the private structures for the type and all of its parent types are allocated sequentially in the same memory block as the public structures, and are zero-filled.
Note that the accumulated size of the private structures of a type and all its parent types cannot exceed 64 KiB.
This function should be called in the type's class_init() function. The private structure can be retrieved using the G_TYPE_INSTANCE_GET_PRIVATE() macro.
The following example shows attaching a private structure MyObjectPrivate to an object MyObject defined in the standard GObject fashion in the type's class_init() function.
Note the use of a structure member "priv" to avoid the overhead of repeatedly calling MY_OBJECT_GET_PRIVATE().
|[<!-- language="C" --> typedef struct _MyObject MyObject; typedef struct _MyObjectPrivate MyObjectPrivate;
struct _MyObject { GObject parent; MyObjectPrivate *priv; }; struct _MyObjectPrivate { int some_field; };
static void my_object_class_init (MyObjectClass *klass)
{ g_type_class_add_private (klass, sizeof (MyObjectPrivate)); }
static void my_object_init (MyObject *my_object)
{ my_object->priv = G_TYPE_INSTANCE_GET_PRIVATE (my_object, MY_TYPE_OBJECT, MyObjectPrivate); // my_object->priv->some_field will be automatically initialised to 0 }
static int my_object_get_some_field (MyObject *my_object)
{ MyObjectPrivate *priv; g_return_val_if_fail (MY_IS_OBJECT (my_object), 0); priv = my_object->priv; return priv->some_field; }
]|
func (*TypeClass) GetInstancePrivateOffset ¶
Gets the offset of the private data for instances of @g_class.
This is how many bytes you should add to the instance pointer of a class in order to get the private data for the type represented by @g_class.
You can only call this function after you have registered a private data area for @g_class using g_type_class_add_private().
func (*TypeClass) GetPrivate ¶
func (*TypeClass) PeekParent ¶
This is a convenience function often needed in class initializers. It returns the class structure of the immediate parent type of the class passed in. Since derived classes hold a reference count on their parent classes as long as they are instantiated, the returned class will always exist.
This function is essentially equivalent to: g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)))
func (*TypeClass) Unref ¶
func (x *TypeClass) Unref()
Decrements the reference count of the class structure being passed in. Once the last reference count of a class has been released, classes may be finalized by the type system, so further dereferencing of a class pointer after g_type_class_unref() are invalid.
func (*TypeClass) UnrefUncached ¶
func (x *TypeClass) UnrefUncached()
A variant of g_type_class_unref() for use in #GTypeClassCacheFunc implementations. It unreferences a class without consulting the chain of #GTypeClassCacheFuncs, avoiding the recursion which would occur otherwise.
type TypeClassCacheFunc ¶
A callback function which is called when the reference count of a class drops to zero.
It may use g_type_class_ref() to prevent the class from being freed. You should not call g_type_class_unref() from a #GTypeClassCacheFunc function to prevent infinite recursion, use g_type_class_unref_uncached() instead.
The functions have to check the class id passed in to figure whether they actually want to cache the class of this type, since all classes are routed through the same #GTypeClassCacheFunc chain.
type TypeDebugFlags ¶
type TypeDebugFlags int
These flags used to be passed to g_type_init_with_debug_flags() which is now deprecated.
If you need to enable debugging features, use the GOBJECT_DEBUG environment variable.
const ( // Print no messages GTypeDebugNoneValue TypeDebugFlags = 0 // Print messages about object bookkeeping GTypeDebugObjectsValue TypeDebugFlags = 1 // Print messages about signal emissions GTypeDebugSignalsValue TypeDebugFlags = 2 // Keep a count of instances of each type GTypeDebugInstanceCountValue TypeDebugFlags = 4 // Mask covering all debug flags GTypeDebugMaskValue TypeDebugFlags = 7 )
type TypeFlags ¶
type TypeFlags int
Bit masks used to check or determine characteristics of a type.
const ( // Indicates an abstract type. No instances can be // created for an abstract type GTypeFlagAbstractValue TypeFlags = 16 // Indicates an abstract value type, i.e. a type // that introduces a value table, but can't be used for // g_value_init() GTypeFlagValueAbstractValue TypeFlags = 32 // Indicates a final type. A final type is a non-derivable // leaf node in a deep derivable type hierarchy tree. Since: 2.70 GTypeFlagFinalValue TypeFlags = 64 )
type TypeFundamentalFlags ¶
type TypeFundamentalFlags int
Bit masks used to check or determine specific characteristics of a fundamental type.
const ( // Indicates a classed type GTypeFlagClassedValue TypeFundamentalFlags = 1 // Indicates an instantiatable type (implies classed) GTypeFlagInstantiatableValue TypeFundamentalFlags = 2 // Indicates a flat derivable type GTypeFlagDerivableValue TypeFundamentalFlags = 4 // Indicates a deep derivable type (implies derivable) GTypeFlagDeepDerivableValue TypeFundamentalFlags = 8 )
type TypeFundamentalInfo ¶
type TypeFundamentalInfo struct {
TypeFlags TypeFundamentalFlags
}
A structure that provides information to the type system which is used specifically for managing fundamental types.
func (*TypeFundamentalInfo) GoPointer ¶
func (x *TypeFundamentalInfo) GoPointer() uintptr
type TypeInfo ¶
type TypeInfo struct { ClassSize uint16 BaseInit BaseInitFunc BaseFinalize BaseFinalizeFunc ClassInit ClassInitFunc ClassFinalize ClassFinalizeFunc ClassData uintptr InstanceSize uint16 NPreallocs uint16 InstanceInit InstanceInitFunc ValueTable *TypeValueTable }
This structure is used to provide the type system with the information required to initialize and destruct (finalize) a type's class and its instances.
The initialized structure is passed to the g_type_register_static() function (or is copied into the provided #GTypeInfo structure in the g_type_plugin_complete_type_info()). The type system will perform a deep copy of this structure, so its memory does not need to be persistent across invocation of g_type_register_static().
type TypeInstance ¶
type TypeInstance struct {
GClass *TypeClass
}
An opaque structure used as the base of all type instances.
func TypeCheckInstanceCast ¶
func TypeCheckInstanceCast(InstanceVar *TypeInstance, IfaceTypeVar []interface{}) *TypeInstance
func TypeCreateInstance ¶
func TypeCreateInstance(TypeVar []interface{}) *TypeInstance
Creates and initializes an instance of @type if @type is valid and can be instantiated. The type system only performs basic allocation and structure setups for instances: actual instance creation should happen through functions supplied by the type's fundamental type implementation. So use of g_type_create_instance() is reserved for implementers of fundamental types only. E.g. instances of the #GObject hierarchy should be created via g_object_new() and never directly through g_type_create_instance() which doesn't handle things like singleton objects or object construction.
The extended members of the returned instance are guaranteed to be filled with zeros.
Note: Do not use this function, unless you're implementing a fundamental type. Also language bindings should not use this function, but g_object_new() instead.
func (*TypeInstance) GetPrivate ¶
func (x *TypeInstance) GetPrivate(PrivateTypeVar []interface{}) uintptr
func (*TypeInstance) GoPointer ¶
func (x *TypeInstance) GoPointer() uintptr
type TypeInterface ¶
type TypeInterface struct { GType []interface{} GInstanceType []interface{} }
An opaque structure used as the base of all interface types.
func TypeDefaultInterfacePeek ¶
func TypeDefaultInterfacePeek(GTypeVar []interface{}) *TypeInterface
If the interface type @g_type is currently in use, returns its default interface vtable.
func TypeDefaultInterfaceRef ¶
func TypeDefaultInterfaceRef(GTypeVar []interface{}) *TypeInterface
Increments the reference count for the interface type @g_type, and returns the default interface vtable for the type.
If the type is not currently in use, then the default vtable for the type will be created and initialized by calling the base interface init and default vtable init functions for the type (the @base_init and @class_init members of #GTypeInfo). Calling g_type_default_interface_ref() is useful when you want to make sure that signals and properties for an interface have been installed.
func TypeInterfacePeek ¶
func TypeInterfacePeek(InstanceClassVar *TypeClass, IfaceTypeVar []interface{}) *TypeInterface
Returns the #GTypeInterface structure of an interface to which the passed in class conforms.
func (*TypeInterface) GoPointer ¶
func (x *TypeInterface) GoPointer() uintptr
func (*TypeInterface) PeekParent ¶
func (x *TypeInterface) PeekParent() *TypeInterface
Returns the corresponding #GTypeInterface structure of the parent type of the instance type to which @g_iface belongs. This is useful when deriving the implementation of an interface from the parent type and then possibly overriding some methods.
type TypeInterfaceCheckFunc ¶
type TypeInterfaceCheckFunc func(uintptr, *TypeInterface)
A callback called after an interface vtable is initialized.
See g_type_add_interface_check().
type TypeModule ¶
type TypeModule struct {
Object
}
#GTypeModule provides a simple implementation of the #GTypePlugin interface.
The model of #GTypeModule is a dynamically loaded module which implements some number of types and interface implementations.
When the module is loaded, it registers its types and interfaces using g_type_module_register_type() and g_type_module_add_interface(). As long as any instances of these types and interface implementations are in use, the module is kept loaded. When the types and interfaces are gone, the module may be unloaded. If the types and interfaces become used again, the module will be reloaded. Note that the last reference cannot be released from within the module code, since that would lead to the caller's code being unloaded before g_object_unref() returns to it.
Keeping track of whether the module should be loaded or not is done by using a use count - it starts at zero, and whenever it is greater than zero, the module is loaded. The use count is maintained internally by the type system, but also can be explicitly controlled by g_type_module_use() and g_type_module_unuse(). Typically, when loading a module for the first type, g_type_module_use() will be used to load it so that it can initialize its types. At some later point, when the module no longer needs to be loaded except for the type implementations it contains, g_type_module_unuse() is called.
#GTypeModule does not actually provide any implementation of module loading and unloading. To create a particular module type you must derive from #GTypeModule and implement the load and unload functions in #GTypeModuleClass.
func TypeModuleNewFromInternalPtr ¶
func TypeModuleNewFromInternalPtr(ptr uintptr) *TypeModule
func (*TypeModule) AddInterface ¶
func (x *TypeModule) AddInterface(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, InterfaceInfoVar *InterfaceInfo)
Registers an additional interface for a type, whose interface lives in the given type plugin. If the interface was already registered for the type in this plugin, nothing will be done.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if @module is %NULL this will call g_type_add_interface_static() instead. This can be used when making a static build of the module.
func (*TypeModule) CompleteInterfaceInfo ¶
func (x *TypeModule) CompleteInterfaceInfo(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, InfoVar *InterfaceInfo)
Calls the @complete_interface_info function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
func (*TypeModule) CompleteTypeInfo ¶
func (x *TypeModule) CompleteTypeInfo(GTypeVar []interface{}, InfoVar *TypeInfo, ValueTableVar *TypeValueTable)
Calls the @complete_type_info function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
func (*TypeModule) GoPointer ¶
func (c *TypeModule) GoPointer() uintptr
func (*TypeModule) RegisterEnum ¶
func (x *TypeModule) RegisterEnum(NameVar string, ConstStaticValuesVar *EnumValue) []interface{}
Looks up or registers an enumeration that is implemented with a particular type plugin. If a type with name @type_name was previously registered, the #GType identifier for the type is returned, otherwise the type is newly registered, and the resulting #GType identifier returned.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if @module is %NULL this will call g_type_register_static() instead. This can be used when making a static build of the module.
func (*TypeModule) RegisterFlags ¶
func (x *TypeModule) RegisterFlags(NameVar string, ConstStaticValuesVar *FlagsValue) []interface{}
Looks up or registers a flags type that is implemented with a particular type plugin. If a type with name @type_name was previously registered, the #GType identifier for the type is returned, otherwise the type is newly registered, and the resulting #GType identifier returned.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if @module is %NULL this will call g_type_register_static() instead. This can be used when making a static build of the module.
func (*TypeModule) RegisterType ¶
func (x *TypeModule) RegisterType(ParentTypeVar []interface{}, TypeNameVar string, TypeInfoVar *TypeInfo, FlagsVar TypeFlags) []interface{}
Looks up or registers a type that is implemented with a particular type plugin. If a type with name @type_name was previously registered, the #GType identifier for the type is returned, otherwise the type is newly registered, and the resulting #GType identifier returned.
When reregistering a type (typically because a module is unloaded then reloaded, and reinitialized), @module and @parent_type must be the same as they were previously.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if @module is %NULL this will call g_type_register_static() instead. This can be used when making a static build of the module.
func (*TypeModule) SetGoPointer ¶
func (c *TypeModule) SetGoPointer(ptr uintptr)
func (*TypeModule) SetName ¶
func (x *TypeModule) SetName(NameVar string)
Sets the name for a #GTypeModule
func (*TypeModule) Unuse ¶
func (x *TypeModule) Unuse()
Decreases the use count of a #GTypeModule by one. If the result is zero, the module will be unloaded. (However, the #GTypeModule will not be freed, and types associated with the #GTypeModule are not unregistered. Once a #GTypeModule is initialized, it must exist forever.)
func (*TypeModule) Use ¶
func (x *TypeModule) Use() bool
Increases the use count of a #GTypeModule by one. If the use count was zero before, the plugin will be loaded. If loading the plugin fails, the use count is reset to its prior value.
type TypeModuleClass ¶
type TypeModuleClass struct {
ParentClass uintptr
}
In order to implement dynamic loading of types based on #GTypeModule, the @load and @unload functions in #GTypeModuleClass must be implemented.
func (*TypeModuleClass) GoPointer ¶
func (x *TypeModuleClass) GoPointer() uintptr
type TypePlugin ¶
type TypePlugin interface { GoPointer() uintptr SetGoPointer(uintptr) CompleteInterfaceInfo(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, InfoVar *InterfaceInfo) CompleteTypeInfo(GTypeVar []interface{}, InfoVar *TypeInfo, ValueTableVar *TypeValueTable) Unuse() Use() }
An interface that handles the lifecycle of dynamically loaded types.
The GObject type system supports dynamic loading of types. It goes as follows:
The type is initially introduced (usually upon loading the module the first time, or by your main application that knows what modules introduces what types), like this: |[<!-- language="C" --> new_type_id = g_type_register_dynamic (parent_type_id, "TypeName", new_type_plugin, type_flags); ]| where @new_type_plugin is an implementation of the #GTypePlugin interface.
The type's implementation is referenced, e.g. through g_type_class_ref() or through g_type_create_instance() (this is being called by g_object_new()) or through one of the above done on a type derived from @new_type_id.
This causes the type system to load the type's implementation by calling g_type_plugin_use() and g_type_plugin_complete_type_info() on @new_type_plugin.
At some point the type's implementation isn't required anymore, e.g. after g_type_class_unref() or g_type_free_instance() (called when the reference count of an instance drops to zero).
This causes the type system to throw away the information retrieved from g_type_plugin_complete_type_info() and then it calls g_type_plugin_unuse() on @new_type_plugin.
6. Things may repeat from the second step.
So basically, you need to implement a #GTypePlugin type that carries a use_count, once use_count goes from zero to one, you need to load the implementation to successfully handle the upcoming g_type_plugin_complete_type_info() call. Later, maybe after succeeding use/unuse calls, once use_count drops to zero, you can unload the implementation again. The type system makes sure to call g_type_plugin_use() and g_type_plugin_complete_type_info() again when the type is needed again.
#GTypeModule is an implementation of #GTypePlugin that already implements most of this except for the actual module loading and unloading. It even handles multiple registered types per module.
type TypePluginBase ¶
type TypePluginBase struct {
Ptr uintptr
}
func TypeGetPlugin ¶
func TypeGetPlugin(TypeVar []interface{}) *TypePluginBase
Returns the #GTypePlugin structure for @type.
func TypeInterfaceGetPlugin ¶
func TypeInterfaceGetPlugin(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}) *TypePluginBase
Returns the #GTypePlugin structure for the dynamic interface @interface_type which has been added to @instance_type, or %NULL if @interface_type has not been added to @instance_type or does not have a #GTypePlugin structure. See g_type_add_interface_dynamic().
func (*TypePluginBase) CompleteInterfaceInfo ¶
func (x *TypePluginBase) CompleteInterfaceInfo(InstanceTypeVar []interface{}, InterfaceTypeVar []interface{}, InfoVar *InterfaceInfo)
Calls the @complete_interface_info function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
func (*TypePluginBase) CompleteTypeInfo ¶
func (x *TypePluginBase) CompleteTypeInfo(GTypeVar []interface{}, InfoVar *TypeInfo, ValueTableVar *TypeValueTable)
Calls the @complete_type_info function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
func (*TypePluginBase) GoPointer ¶
func (x *TypePluginBase) GoPointer() uintptr
func (*TypePluginBase) SetGoPointer ¶
func (x *TypePluginBase) SetGoPointer(ptr uintptr)
func (*TypePluginBase) Unuse ¶
func (x *TypePluginBase) Unuse()
Calls the @unuse_plugin function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
func (*TypePluginBase) Use ¶
func (x *TypePluginBase) Use()
Calls the @use_plugin function from the #GTypePluginClass of @plugin. There should be no need to use this function outside of the GObject type system itself.
type TypePluginClass ¶
type TypePluginClass struct { BaseIface uintptr UsePlugin TypePluginUse UnusePlugin TypePluginUnuse CompleteTypeInfo TypePluginCompleteTypeInfo CompleteInterfaceInfo TypePluginCompleteInterfaceInfo }
The #GTypePlugin interface is used by the type system in order to handle the lifecycle of dynamically loaded types.
func (*TypePluginClass) GoPointer ¶
func (x *TypePluginClass) GoPointer() uintptr
type TypePluginCompleteInterfaceInfo ¶
type TypePluginCompleteInterfaceInfo func(uintptr, []interface{}, []interface{}, *InterfaceInfo)
The type of the @complete_interface_info function of #GTypePluginClass.
type TypePluginCompleteTypeInfo ¶
type TypePluginCompleteTypeInfo func(uintptr, []interface{}, *TypeInfo, *TypeValueTable)
The type of the @complete_type_info function of #GTypePluginClass.
type TypePluginUnuse ¶
type TypePluginUnuse func(uintptr)
The type of the @unuse_plugin function of #GTypePluginClass.
type TypePluginUse ¶
type TypePluginUse func(uintptr)
The type of the @use_plugin function of #GTypePluginClass, which gets called to increase the use count of @plugin.
type TypeValueTable ¶
The #GTypeValueTable provides the functions required by the #GValue implementation, to serve as a container for values of a type.
func TypeValueTablePeek ¶
func TypeValueTablePeek(TypeVar []interface{}) *TypeValueTable
Returns the location of the #GTypeValueTable associated with @type.
Note that this function should only be used from source code that implements or has internal knowledge of the implementation of @type.
func (*TypeValueTable) GoPointer ¶
func (x *TypeValueTable) GoPointer() uintptr
type VaClosureMarshal ¶
This is the signature of va_list marshaller functions, an optional marshaller that can be used in some situations to avoid marshalling the signal argument into GValues.
type Value ¶
type Value struct { GType []interface{} Data uintptr }
An opaque structure used to hold different types of values.
The data within the structure has protected scope: it is accessible only to functions within a #GTypeValueTable structure, or implementations of the g_value_*() API. That is, code portions which implement new fundamental types.
#GValue users cannot make any assumptions about how data is stored within the 2 element @data union, and the @g_type member should only be accessed through the G_VALUE_TYPE() macro.
func (*Value) DupBoxed ¶
Get the contents of a %G_TYPE_BOXED derived #GValue. Upon getting, the boxed value is duplicated and needs to be later freed with g_boxed_free(), e.g. like: g_boxed_free (G_VALUE_TYPE (@value), return_value);
func (*Value) DupObject ¶
Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing its reference count. If the contents of the #GValue are %NULL, then %NULL will be returned.
func (*Value) DupParam ¶
Get the contents of a %G_TYPE_PARAM #GValue, increasing its reference count.
func (*Value) DupVariant ¶
Get the contents of a variant #GValue, increasing its refcount. The returned #GVariant is never floating.
func (*Value) FitsPointer ¶
Determines if @value will fit inside the size of a pointer value. This is an internal function introduced mainly for C marshallers.
func (*Value) GetBoolean ¶
Get the contents of a %G_TYPE_BOOLEAN #GValue.
func (*Value) GetChar ¶
Do not use this function; it is broken on platforms where the %char type is unsigned, such as ARM and PowerPC. See g_value_get_schar().
Get the contents of a %G_TYPE_CHAR #GValue.
func (*Value) GetGtype ¶
func (x *Value) GetGtype() []interface{}
Get the contents of a %G_TYPE_GTYPE #GValue.
func (*Value) GetPointer ¶
Get the contents of a pointer #GValue.
func (*Value) GetVariant ¶
Get the contents of a variant #GValue.
func (*Value) InitFromInstance ¶
func (x *Value) InitFromInstance(InstanceVar *TypeInstance)
Initializes and sets @value from an instantiatable type via the value_table's collect_value() function.
Note: The @value will be initialised with the exact type of @instance. If you wish to set the @value's type to a different GType (such as a parent class GType), you need to manually call g_value_init() and g_value_set_instance().
func (*Value) PeekPointer ¶
Returns the value contents as pointer. This function asserts that g_value_fits_pointer() returned %TRUE for the passed in value. This is an internal function introduced mainly for C marshallers.
func (*Value) Reset ¶
Clears the current value in @value and resets it to the default value (as if the value had just been initialized).
func (*Value) SetBoolean ¶
Set the contents of a %G_TYPE_BOOLEAN #GValue to @v_boolean.
func (*Value) SetBoxedTakeOwnership ¶
This is an internal function introduced mainly for C marshallers.
func (*Value) SetGtype ¶
func (x *Value) SetGtype(VGtypeVar []interface{})
Set the contents of a %G_TYPE_GTYPE #GValue to @v_gtype.
func (*Value) SetInstance ¶
Sets @value from an instantiatable type via the value_table's collect_value() function.
func (*Value) SetInternedString ¶
Set the contents of a %G_TYPE_STRING #GValue to @v_string. The string is assumed to be static and interned (canonical, for example from g_intern_string()), and is thus not duplicated when setting the #GValue.
func (*Value) SetObject ¶
Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object.
g_value_set_object() increases the reference count of @v_object (the #GValue holds a reference to @v_object). If you do not wish to increase the reference count of the object (i.e. you wish to pass your current reference to the #GValue because you no longer need it), use g_value_take_object() instead.
It is important that your #GValue holds a reference to @v_object (either its own, or one it has taken) to ensure that the object won't be destroyed while the #GValue still exists).
func (*Value) SetObjectTakeOwnership ¶
This is an internal function introduced mainly for C marshallers.
func (*Value) SetParamTakeOwnership ¶
This is an internal function introduced mainly for C marshallers.
func (*Value) SetPointer ¶
Set the contents of a pointer #GValue to @v_pointer.
func (*Value) SetStaticBoxed ¶
Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.
The boxed value is assumed to be static, and is thus not duplicated when setting the #GValue.
func (*Value) SetStaticString ¶
Set the contents of a %G_TYPE_STRING #GValue to @v_string. The string is assumed to be static, and is thus not duplicated when setting the #GValue.
If the the string is a canonical string, using g_value_set_interned_string() is more appropriate.
func (*Value) SetStringTakeOwnership ¶
This is an internal function introduced mainly for C marshallers.
func (*Value) SetVariant ¶
Set the contents of a variant #GValue to @variant. If the variant is floating, it is consumed.
func (*Value) TakeBoxed ¶
Sets the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed and takes over the ownership of the caller’s reference to @v_boxed; the caller doesn’t have to unref it any more.
func (*Value) TakeObject ¶
Sets the contents of a %G_TYPE_OBJECT derived #GValue to @v_object and takes over the ownership of the caller’s reference to @v_object; the caller doesn’t have to unref it any more (i.e. the reference count of the object is not increased).
If you want the #GValue to hold its own reference to @v_object, use g_value_set_object() instead.
func (*Value) TakeParam ¶
Sets the contents of a %G_TYPE_PARAM #GValue to @param and takes over the ownership of the caller’s reference to @param; the caller doesn’t have to unref it any more.
func (*Value) TakeString ¶
Sets the contents of a %G_TYPE_STRING #GValue to @v_string.
func (*Value) TakeVariant ¶
Set the contents of a variant #GValue to @variant, and takes over the ownership of the caller's reference to @variant; the caller doesn't have to unref it any more (i.e. the reference count of the variant is not increased).
If @variant was floating then its floating reference is converted to a hard reference.
If you want the #GValue to hold its own reference to @variant, use g_value_set_variant() instead.
This is an internal function introduced mainly for C marshallers.
func (*Value) Transform ¶
Tries to cast the contents of @src_value into a type appropriate to store in @dest_value, e.g. to transform a %G_TYPE_INT value into a %G_TYPE_FLOAT value. Performing transformations between value types might incur precision lossage. Especially transformations into strings might reveal seemingly arbitrary results and shouldn't be relied upon for production code (such as rcfile value or object property serialization).
type ValueArray ¶
A #GValueArray contains an array of #GValue elements.
func NewValueArray ¶
func NewValueArray(NPreallocedVar uint) *ValueArray
Allocate and initialize a new #GValueArray, optionally preserve space for @n_prealloced elements. New arrays always contain 0 elements, regardless of the value of @n_prealloced.
func (*ValueArray) Append ¶
func (x *ValueArray) Append(ValueVar *Value) *ValueArray
Insert a copy of @value as last element of @value_array. If @value is %NULL, an uninitialized value is appended.
func (*ValueArray) Copy ¶
func (x *ValueArray) Copy() *ValueArray
Construct an exact copy of a #GValueArray by duplicating all its contents.
func (*ValueArray) GetNth ¶
func (x *ValueArray) GetNth(IndexVar uint) *Value
Return a pointer to the value at @index_ containd in @value_array.
func (*ValueArray) GoPointer ¶
func (x *ValueArray) GoPointer() uintptr
func (*ValueArray) Insert ¶
func (x *ValueArray) Insert(IndexVar uint, ValueVar *Value) *ValueArray
Insert a copy of @value at specified position into @value_array. If @value is %NULL, an uninitialized value is inserted.
func (*ValueArray) Prepend ¶
func (x *ValueArray) Prepend(ValueVar *Value) *ValueArray
Insert a copy of @value as first element of @value_array. If @value is %NULL, an uninitialized value is prepended.
func (*ValueArray) Remove ¶
func (x *ValueArray) Remove(IndexVar uint) *ValueArray
Remove the value at position @index_ from @value_array.
func (*ValueArray) Sort ¶
func (x *ValueArray) Sort(CompareFuncVar *glib.CompareFunc) *ValueArray
Sort @value_array using @compare_func to compare the elements according to the semantics of #GCompareFunc.
The current implementation uses the same sorting algorithm as standard C qsort() function.
func (*ValueArray) SortWithData ¶
func (x *ValueArray) SortWithData(CompareFuncVar *glib.CompareDataFunc, UserDataVar uintptr) *ValueArray
Sort @value_array using @compare_func to compare the elements according to the semantics of #GCompareDataFunc.
The current implementation uses the same sorting algorithm as standard C qsort() function.
type ValueDataUnion ¶
type ValueDataUnion = uintptr
type ValueTransform ¶
The type of value transformation functions which can be registered with g_value_register_transform_func().
@dest_value will be initialized to the correct destination type.
type WeakNotify ¶
A #GWeakNotify function can be added to an object as a callback that gets triggered when the object is finalized.
Since the object is already being disposed when the #GWeakNotify is called, there's not much you could do with the object, apart from e.g. using its address as hash-index or the like.
In particular, this means it’s invalid to call g_object_ref(), g_weak_ref_init(), g_weak_ref_set(), g_object_add_toggle_ref(), g_object_weak_ref(), g_object_add_weak_pointer() or any function which calls them on the object from this callback.
type WeakRef ¶
type WeakRef struct { }
A structure containing a weak reference to a #GObject.
A `GWeakRef` can either be empty (i.e. point to %NULL), or point to an object for as long as at least one "strong" reference to that object exists. Before the object's #GObjectClass.dispose method is called, every #GWeakRef associated with becomes empty (i.e. points to %NULL).
Like #GValue, #GWeakRef can be statically allocated, stack- or heap-allocated, or embedded in larger structures.
Unlike g_object_weak_ref() and g_object_add_weak_pointer(), this weak reference is thread-safe: converting a weak pointer to a reference is atomic with respect to invalidation of weak pointers to destroyed objects.
If the object's #GObjectClass.dispose method results in additional references to the object being held (‘re-referencing’), any #GWeakRefs taken before it was disposed will continue to point to %NULL. Any #GWeakRefs taken during disposal and after re-referencing, or after disposal has returned due to the re-referencing, will continue to point to the object until its refcount goes back to zero, at which point they too will be invalidated.
It is invalid to take a #GWeakRef on an object during #GObjectClass.dispose without first having or creating a strong reference to the object.
func (*WeakRef) Clear ¶
func (x *WeakRef) Clear()
Frees resources associated with a non-statically-allocated #GWeakRef. After this call, the #GWeakRef is left in an undefined state.
You should only call this on a #GWeakRef that previously had g_weak_ref_init() called on it.
func (*WeakRef) Get ¶
If @weak_ref is not empty, atomically acquire a strong reference to the object it points to, and return that reference.
This function is needed because of the potential race between taking the pointer value and g_object_ref() on it, if the object was losing its last reference at the same time in a different thread.
The caller should release the resulting reference in the usual way, by using g_object_unref().
func (*WeakRef) Init ¶
Initialise a non-statically-allocated #GWeakRef.
This function also calls g_weak_ref_set() with @object on the freshly-initialised weak reference.
This function should always be matched with a call to g_weak_ref_clear(). It is not necessary to use this function for a #GWeakRef in static storage because it will already be properly initialised. Just use g_weak_ref_set() directly.