Closure.this

Allocates a struct of the given size and initializes the initial part as a gobject.Closure This function is mainly useful when implementing new types of closures.

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;
}
  1. this(GClosure* gClosure, bool ownedRef)
  2. this(uint sizeofClosure, ObjectG object)
  3. this(uint sizeofClosure, void* data)
    class Closure
    this
    (,
    void* data
    )

Parameters

sizeofClosure uint

the size of the structure to allocate, must be at least sizeof (GClosure)

data void*

data to store in the data field of the newly allocated gobject.Closure

Return Value

a floating reference to a new gobject.Closure

Throws

ConstructionException GTK+ fails to create the object.