glib-0.12.4: Binding to the GLIB library for Gtk2Hs.

Portabilityportable (depends on GHC)
Stabilityprovisional
Maintainergtk2hs-users@lists.sourceforge.net
Safe HaskellNone

System.Glib.GObject

Contents

Description

The base object type for all glib objects

Synopsis

Types

class GObjectClass o whereSource

Methods

toGObject :: o -> GObjectSource

Safe upcast.

unsafeCastGObject :: GObject -> oSource

Unchecked downcast.

castToGObject :: GObjectClass obj => obj -> objSource

objectUnref :: FinalizerPtr aSource

Decrease the reference counter of an object

Low level binding functions

All these functions are internal and are only interesting to people writing bindings to GObject-style C libraries.

objectNew :: GType -> [(String, GValue)] -> IO (Ptr GObject)Source

Construct a new object (should rairly be used directly)

objectRef :: GObjectClass obj => Ptr obj -> IO ()Source

Increase the reference counter of an object

objectRefSink :: GObjectClass obj => Ptr obj -> IO ()Source

Reference and sink an object.

makeNewGObjectSource

Arguments

:: GObjectClass obj 
=> (ForeignPtr obj -> obj, FinalizerPtr obj)

constructor for the Haskell object and finalizer C function

-> IO (Ptr obj)

action which yields a pointer to the C object

-> IO obj 

This function wraps any object that does not derive from Object. It should be used whenever a function returns a pointer to an existing GObject (as opposed to a function that constructs a new object).

  • The first argument is the contructor of the specific object.

constructNewGObject :: GObjectClass obj => (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO objSource

This function wraps any newly created objects that derives from GInitiallyUnowned also known as objects with "floating-references". The object will be refSink (for glib versions >= 2.10). On non-floating objects, this function behaves exactly the same as makeNewGObject.

wrapNewGObject :: GObjectClass obj => (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO objSource

This function wraps any newly created object that does not derived from GInitiallyUnowned (that is a GObject with no floating reference). Since newly created GObjects have a reference count of one, they don't need ref'ing.

GType queries

gTypeGObject :: GTypeSource

The type constant to check if an instance is of GObject type.

isA :: GObjectClass o => o -> GType -> BoolSource

Determine if this is an instance of a particular GTK type

Callback support

type DestroyNotify = FunPtr (Ptr () -> IO ())Source

destroyFunPtr :: DestroyNotifySource

Many methods in classes derived from GObject take a callback function and a destructor function which is called to free that callback function when it is no longer required. This constants is an address of a functions in C land that will free a function pointer.

destroyStablePtr :: DestroyNotifySource

The address of a function freeing a StablePtr. See destroyFunPtr.

User-Defined Attributes

quarkFromString :: String -> IO QuarkSource

Create a unique id based on the given string.

objectCreateAttribute :: GObjectClass o => IO (Attr o (Maybe a))Source

Add an attribute to this object.

  • The function returns a new attribute that can be set or retrieved from any GObject. The attribute is wrapped in a Maybe type to reflect the circumstance when the attribute is not set or if it should be unset.

objectSetAttribute :: GObjectClass o => Quark -> o -> Maybe a -> IO ()Source

Set the value of an association.

objectGetAttributeUnsafe :: GObjectClass o => Quark -> o -> IO (Maybe a)Source

Get the value of an association.

  • Note that this function may crash the Haskell run-time since the returned type can be forced to be anything. See objectCreateAttribute for a safe wrapper around this funciton.