]> Pileus Git - grits/blobdiff - src/objects/grits-callback.c
More reference counting updates
[grits] / src / objects / grits-callback.c
index 89dada46427be40eadbc3bef7e8e3297e02215bb..2532c993bfbda714737c76277d306647a9932ab1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2010 Andy Spencer <andy753421@gmail.com>
+ * Copyright (C) 2009-2011 Andy Spencer <andy753421@gmail.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  */
 
 /**
- * SECTION:gis-callback
+ * SECTION:grits-callback
  * @short_description: Custom callback objects
  *
- * #GisCallback objects are used for custom drawing functions. A common example
+ * #GritsCallback objects are used for custom drawing functions. A common example
  * of this would be to render something which does not easily fit into a normal
  * object. For instance, a Heads-Up-Display overlay.
  *
- * Callbacks are an alternate to extending GisObject with a new class and
+ * Callbacks are an alternate to extending GritsObject with a new class and
  * should be used when only once instance of the object will be needed.
  */
 
 #include <config.h>
-#include "gis-callback.h"
+#include "grits-callback.h"
 
 /**
- * gis_callback_new:
+ * grits_callback_new:
  * @callback:  the function to call to draw the object
  * @user_data: user data to pass to the drawing function
  *
- * Create a #GisCallback object with an associated function and user data.
+ * Create a #GritsCallback object with an associated function and user data.
  *
- * Returns: the new #GisCallback
+ * Returns: the new #GritsCallback
  */
-GisCallback *gis_callback_new(GisCallbackFunc draw_cb, gpointer user_data)
+GritsCallback *grits_callback_new(GritsCallbackFunc draw_cb, gpointer user_data)
 {
-       GisCallback *cb = g_object_new(GIS_TYPE_CALLBACK, NULL);
+       GritsCallback *cb = g_object_new(GRITS_TYPE_CALLBACK, NULL);
        cb->draw      = draw_cb;
        cb->user_data = user_data;
        return cb;
 }
 
 /* Proxy class methods to per-object methods */
-static void proxy_draw(GisObject *_cb, GisOpenGL *opengl)
+static void proxy_draw(GritsObject *_cb, GritsOpenGL *opengl)
 {
-       GisCallback *cb = GIS_CALLBACK(_cb);
+       GritsCallback *cb = GRITS_CALLBACK(_cb);
        if (cb->draw)
                cb->draw(cb, opengl, cb->user_data);
 }
 
-/* GisCallback */
-G_DEFINE_TYPE(GisCallback, gis_callback, GIS_TYPE_OBJECT);
-static void gis_callback_init(GisCallback *cb)
+/* GritsCallback */
+G_DEFINE_TYPE(GritsCallback, grits_callback, GRITS_TYPE_OBJECT);
+static void grits_callback_finalize(GObject *cb)
 {
+       g_debug("GritsCallback: finalize");
+       G_OBJECT_CLASS(grits_callback_parent_class)->finalize(cb);
+}
+static void grits_callback_init(GritsCallback *cb)
+{
+       g_debug("GritsCallback: init");
 }
 
-static void gis_callback_class_init(GisCallbackClass *klass)
+static void grits_callback_class_init(GritsCallbackClass *klass)
 {
-       GisObjectClass *object_class = GIS_OBJECT_CLASS(klass);
-       object_class->draw = proxy_draw;
+       GritsObjectClass *grits_class  = GRITS_OBJECT_CLASS(klass);
+       GObjectClass     *object_class = G_OBJECT_CLASS(klass);
+       grits_class->draw      = proxy_draw;
+       object_class->finalize = grits_callback_finalize;
 }