glib

package
v0.0.0-...-7a6ce3e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2014 License: ISC Imports: 8 Imported by: 41

Documentation

Overview

Package glib provides Go bindings for GLib 2. Supports version 2.36 and later.

Index

Constants

View Source
const USER_N_DIRECTORIES int = C.G_USER_N_DIRECTORIES

Variables

This section is empty.

Functions

func ClosureNew

func ClosureNew(f interface{}, marshalData ...interface{}) (*C.GClosure, error)

ClosureNew creates a new GClosure and adds its callback function to the internally-maintained map. It's exported for visibility to other gotk3 packages and shouldn't be used in application code.

func GetUserSpecialDir

func GetUserSpecialDir(directory UserDirectory) (string, error)

GetUserSpecialDir is a wrapper around g_get_user_special_dir(). A non-nil error is returned in the case that g_get_user_special_dir() returns NULL to differentiate between NULL and an empty string.

func RegisterGValueMarshalers

func RegisterGValueMarshalers(tm []TypeMarshaler)

RegisterGValueMarshalers adds marshalers for several types to the internal marshalers map. Once registered, calling GoValue on any Value witha registered type will return the data returned by the marshaler.

func ToGObject

func ToGObject(p unsafe.Pointer) *C.GObject

ToGObject type converts an unsafe.Pointer as a native C GObject. This function is exported for visibility in other gotk3 packages and is not meant to be used by applications.

Types

type GValueMarshaler

type GValueMarshaler func(uintptr) (interface{}, error)

GValueMarshaler is a marshal function to convert a GValue into an appropiate Go type. The uintptr parameter is a *C.GValue.

type IObject

type IObject interface {
	// contains filtered or unexported methods
}

IObject is an interface type implemented by Object and all types which embed an Object. It is meant to be used as a type for function arguments which require GObjects or any subclasses thereof.

type InitiallyUnowned

type InitiallyUnowned struct {
	// This must be a pointer so copies of the ref-sinked object
	// do not outlive the original object, causing an unref
	// finalizer to prematurely run.
	*Object
}

InitiallyUnowned is a representation of GLib's GInitiallyUnowned.

func (*InitiallyUnowned) Native

func (v *InitiallyUnowned) Native() uintptr

Native returns a pointer to the underlying GObject. This is implemented here rather than calling Native on the embedded Object to prevent a nil pointer dereference.

type List

type List struct {
	Data uintptr
	Next *List
	Prev *List
}

List is a representation of Glib's GList.

func (*List) Append

func (v *List) Append(data uintptr) *List

Append is a wrapper around g_list_append.

func (*List) Insert

func (v *List) Insert(data uintptr, position int) *List

Insert is a wrapper around g_list_insert().

func (*List) Prepend

func (v *List) Prepend(data uintptr) *List

Prepend is a wrapper around g_list_prepend.

type Object

type Object struct {
	GObject *C.GObject
}

Object is a representation of GLib's GObject.

func (*Object) Connect

func (v *Object) Connect(detailedSignal string, f interface{}, userData ...interface{}) (SignalHandle, error)

Connect is a wrapper around g_signal_connect_closure(). f must be a function with a signaure matching the callback signature for detailedSignal. userData must either 0 or 1 elements which can be optionally passed to f. If f takes less arguments than it is passed from the GLib runtime, the extra arguments are ignored.

Arguments for f must be a matching Go equivalent type for the C callback, or an interface type which the value may be packed in. If the type is not suitable, a runtime panic will occur when the signal is emitted.

func (*Object) Emit

func (v *Object) Emit(s string, args ...interface{}) (interface{}, error)

Emit is a wrapper around g_signal_emitv() and emits the signal specified by the string s to an Object. Arguments to callback functions connected to this signal must be specified in args. Emit() returns an interface{} which must be type asserted as the Go equivalent type to the return value for native C callback.

Note that this code is unsafe in that the types of values in args are not checked against whether they are suitable for the callback.

func (*Object) ForceFloating

func (v *Object) ForceFloating()

ForceFloating is a wrapper around g_object_force_floating().

func (*Object) HandlerBlock

func (v *Object) HandlerBlock(handle SignalHandle)

HandlerBlock is a wrapper around g_signal_handler_block().

func (*Object) HandlerDisconnect

func (v *Object) HandlerDisconnect(handle SignalHandle)

HandlerDisconnect is a wrapper around g_signal_handler_disconnect().

func (*Object) HandlerUnblock

func (v *Object) HandlerUnblock(handle SignalHandle)

HandlerUnblock is a wrapper around g_signal_handler_unblock().

func (*Object) IsA

func (v *Object) IsA(typ Type) bool

IsA is a wrapper around g_type_is_a().

func (*Object) IsFloating

func (v *Object) IsFloating() bool

IsFloating is a wrapper around g_object_is_floating().

func (*Object) Native

func (v *Object) Native() uintptr

Native returns a pointer to the underlying GObject.

func (*Object) Ref

func (v *Object) Ref()

Ref is a wrapper around g_object_ref().

func (*Object) RefSink

func (v *Object) RefSink()

RefSink is a wrapper around g_object_ref_sink().

func (*Object) Set

func (v *Object) Set(name string, value interface{}) error

Set is a wrapper around g_object_set(). However, unlike g_object_set(), this function only sets one name value pair. Make multiple calls to this function to set multiple properties.

func (*Object) StopEmission

func (v *Object) StopEmission(s string)

StopEmission is a wrapper around g_signal_stop_emission_by_name().

func (*Object) TypeFromInstance

func (v *Object) TypeFromInstance() Type

TypeFromInstance is a wrapper around g_type_from_instance().

func (*Object) Unref

func (v *Object) Unref()

Unref is a wrapper around g_object_unref().

type SList

type SList struct {
	Data uintptr
	Next *SList
}

SList is a representation of Glib's GSList.

type SignalHandle

type SignalHandle uint

type SourceHandle

type SourceHandle uint

func IdleAdd

func IdleAdd(f interface{}, args ...interface{}) (SourceHandle, error)

IdleAdd adds an idle source to the default main event loop context. After running once, the source func will be removed from the main event loop, unless f returns a single bool true.

This function will cause a panic when f eventually runs if the types of args do not match those of f.

func TimeoutAdd

func TimeoutAdd(timeout uint, f interface{}, args ...interface{}) (SourceHandle, error)

TimeoutAdd adds an timeout source to the default main event loop context. After running once, the source func will be removed from the main event loop, unless f returns a single bool true.

This function will cause a panic when f eventually runs if the types of args do not match those of f. timeout is in milliseconds

type Type

type Type uint

Type is a representation of GLib's GType.

const (
	TYPE_INVALID   Type = C.G_TYPE_INVALID
	TYPE_NONE      Type = C.G_TYPE_NONE
	TYPE_INTERFACE Type = C.G_TYPE_INTERFACE
	TYPE_CHAR      Type = C.G_TYPE_CHAR
	TYPE_UCHAR     Type = C.G_TYPE_UCHAR
	TYPE_BOOLEAN   Type = C.G_TYPE_BOOLEAN
	TYPE_INT       Type = C.G_TYPE_INT
	TYPE_UINT      Type = C.G_TYPE_UINT
	TYPE_LONG      Type = C.G_TYPE_LONG
	TYPE_ULONG     Type = C.G_TYPE_ULONG
	TYPE_INT64     Type = C.G_TYPE_INT64
	TYPE_UINT64    Type = C.G_TYPE_UINT64
	TYPE_ENUM      Type = C.G_TYPE_ENUM
	TYPE_FLAGS     Type = C.G_TYPE_FLAGS
	TYPE_FLOAT     Type = C.G_TYPE_FLOAT
	TYPE_DOUBLE    Type = C.G_TYPE_DOUBLE
	TYPE_STRING    Type = C.G_TYPE_STRING
	TYPE_POINTER   Type = C.G_TYPE_POINTER
	TYPE_BOXED     Type = C.G_TYPE_BOXED
	TYPE_PARAM     Type = C.G_TYPE_PARAM
	TYPE_OBJECT    Type = C.G_TYPE_OBJECT
	TYPE_VARIANT   Type = C.G_TYPE_VARIANT
)

func (Type) Depth

func (t Type) Depth() uint

Depth is a wrapper around g_type_depth().

func (Type) Name

func (t Type) Name() string

Name is a wrapper around g_type_name().

func (Type) Parent

func (t Type) Parent() Type

Parent is a wrapper around g_type_parent().

type TypeMarshaler

type TypeMarshaler struct {
	T Type
	F GValueMarshaler
}

TypeMarshaler represents an actual type and it's associated marshaler.

type UserDirectory

type UserDirectory int

UserDirectory is a representation of GLib's GUserDirectory.

const (
	USER_DIRECTORY_DESKTOP      UserDirectory = C.G_USER_DIRECTORY_DESKTOP
	USER_DIRECTORY_DOCUMENTS    UserDirectory = C.G_USER_DIRECTORY_DOCUMENTS
	USER_DIRECTORY_DOWNLOAD     UserDirectory = C.G_USER_DIRECTORY_DOWNLOAD
	USER_DIRECTORY_MUSIC        UserDirectory = C.G_USER_DIRECTORY_MUSIC
	USER_DIRECTORY_PICTURES     UserDirectory = C.G_USER_DIRECTORY_PICTURES
	USER_DIRECTORY_PUBLIC_SHARE UserDirectory = C.G_USER_DIRECTORY_PUBLIC_SHARE
	USER_DIRECTORY_TEMPLATES    UserDirectory = C.G_USER_DIRECTORY_TEMPLATES
	USER_DIRECTORY_VIDEOS       UserDirectory = C.G_USER_DIRECTORY_VIDEOS
)

type Value

type Value struct {
	GValue C.GValue
}

Value is a representation of GLib's GValue.

Don't allocate Values on the stack or heap manually as they may not be properly unset when going out of scope. Instead, use ValueAlloc(), which will set the runtime finalizer to unset the Value after it has left scope.

func GValue

func GValue(v interface{}) (gvalue *Value, err error)

GValue converts a Go type to a comparable GValue. GValue() returns a non-nil error if the conversion was unsuccessful.

func ValueAlloc

func ValueAlloc() (*Value, error)

ValueAlloc allocates a Value and sets a runtime finalizer to call g_value_unset() on the underlying GValue after leaving scope. ValueAlloc() returns a non-nil error if the allocation failed.

func ValueInit

func ValueInit(t Type) (*Value, error)

ValueInit is a wrapper around g_value_init() and allocates and initializes a new Value with the Type t. A runtime finalizer is set to call g_value_unset() on the underlying GValue after leaving scope. ValueInit() returns a non-nil error if the allocation failed.

func (*Value) GetString

func (v *Value) GetString() (string, error)

GetString is a wrapper around g_value_get_string(). GetString() returns a non-nil error if g_value_get_string() returned a NULL pointer to distinguish between returning a NULL pointer and returning an empty string.

func (*Value) GoValue

func (v *Value) GoValue() (interface{}, error)

GoValue converts a Value to comparable Go type. GoValue() returns a non-nil error if the conversion was unsuccessful. The returned interface{} must be type asserted as the actual Go representation of the Value.

This function is a wrapper around the many g_value_get_*() functions, depending on the type of the Value.

func (*Value) Native

func (v *Value) Native() uintptr

Native returns a pointer to the underlying GValue.

func (*Value) SetBool

func (v *Value) SetBool(val bool)

SetBool is a wrapper around g_value_set_boolean().

func (*Value) SetDouble

func (v *Value) SetDouble(val float64)

SetDouble is a wrapper around g_value_set_double().

func (*Value) SetFloat

func (v *Value) SetFloat(val float32)

SetFloat is a wrapper around g_value_set_float().

func (*Value) SetInstance

func (v *Value) SetInstance(instance uintptr)

SetInstance is a wrapper around g_value_set_instance().

func (*Value) SetInt

func (v *Value) SetInt(val int)

SetInt is a wrapper around g_value_set_int().

func (*Value) SetInt64

func (v *Value) SetInt64(val int64)

SetInt64 is a wrapper around g_value_set_int64().

func (*Value) SetPointer

func (v *Value) SetPointer(p uintptr)

SetPointer is a wrapper around g_value_set_pointer().

func (*Value) SetSChar

func (v *Value) SetSChar(val int8)

SetSChar is a wrapper around g_value_set_schar().

func (*Value) SetString

func (v *Value) SetString(val string)

SetString is a wrapper around g_value_set_string().

func (*Value) SetUChar

func (v *Value) SetUChar(val uint8)

SetUChar is a wrapper around g_value_set_uchar().

func (*Value) SetUInt

func (v *Value) SetUInt(val uint)

SetUInt is a wrapper around g_value_set_uint().

func (*Value) SetUInt64

func (v *Value) SetUInt64(val uint64)

SetUInt64 is a wrapper around g_value_set_uint64().

func (*Value) Type

func (v *Value) Type() (actual Type, fundamental Type, err error)

Type is a wrapper around the G_VALUE_HOLDS_GTYPE() macro and the g_value_get_gtype() function. GetType() returns TYPE_INVALID if v does not hold a Type, or otherwise returns the Type of v.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL