[monet] [mn-widget] add boilerplate code for MnWidget gobject



commit 9522c4e61ac0c301099a67fcc944de826103f8b0
Author: Thomas Wood <thos gnome org>
Date:   Tue Aug 11 23:04:08 2009 +0100

    [mn-widget] add boilerplate code for MnWidget gobject
    
    Add the skeleton gobject code required for creating a basic object.
    
    Also adds a test to create and destroy the object.de

 monet/Makefile.am    |    3 +-
 monet/mn-widget.c    |   72 ++++++++++++++++++++++++++++++++++++++++++++++++++
 monet/mn-widget.h    |   54 +++++++++++++++++++++++++++++++++++++
 monet/monet.h        |    2 +
 tests/test-drawing.c |   13 ++++++++-
 5 files changed, 142 insertions(+), 2 deletions(-)
---
diff --git a/monet/Makefile.am b/monet/Makefile.am
index 1565528..3e49f42 100644
--- a/monet/Makefile.am
+++ b/monet/Makefile.am
@@ -10,6 +10,7 @@ STAMP_FILES = \
 source_h = \
 	mn-parts.h \
 	mn-types.h \
+	mn-widget.h \
 	monet.h
 
 mn-enum-types.h: stamp-mn-enum-types.h Makefile
@@ -33,7 +34,7 @@ mn-enum-types.c: stamp-mn-enum-types.h mn-enum-types.c.in
 
 
 lib_LTLIBRARIES = libmonet.la
-libmonet_la_SOURCES = $(source_h) monet.c
+libmonet_la_SOURCES = $(source_h) monet.c mn-widget.c
 libmonet_la_LIBADD = $(MONET_LIBS)
 
 monetincludedir = $(includedir)/monet-1.0/monet
diff --git a/monet/mn-widget.c b/monet/mn-widget.c
new file mode 100644
index 0000000..1d04d3b
--- /dev/null
+++ b/monet/mn-widget.c
@@ -0,0 +1,72 @@
+/* mn-widget.c */
+
+#include "mn-widget.h"
+
+G_DEFINE_TYPE (MnWidget, mn_widget, G_TYPE_OBJECT)
+
+#define WIDGET_PRIVATE(o) \
+  (G_TYPE_INSTANCE_GET_PRIVATE ((o), MN_TYPE_WIDGET, MnWidgetPrivate))
+
+struct _MnWidgetPrivate
+{
+  gpointer dummy;
+};
+
+static void
+mn_widget_get_property (GObject *object, guint property_id,
+                              GValue *value, GParamSpec *pspec)
+{
+  switch (property_id)
+    {
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    }
+}
+
+static void
+mn_widget_set_property (GObject *object, guint property_id,
+                              const GValue *value, GParamSpec *pspec)
+{
+  switch (property_id)
+    {
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    }
+}
+
+static void
+mn_widget_dispose (GObject *object)
+{
+  G_OBJECT_CLASS (mn_widget_parent_class)->dispose (object);
+}
+
+static void
+mn_widget_finalize (GObject *object)
+{
+  G_OBJECT_CLASS (mn_widget_parent_class)->finalize (object);
+}
+
+static void
+mn_widget_class_init (MnWidgetClass *klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+  g_type_class_add_private (klass, sizeof (MnWidgetPrivate));
+
+  object_class->get_property = mn_widget_get_property;
+  object_class->set_property = mn_widget_set_property;
+  object_class->dispose = mn_widget_dispose;
+  object_class->finalize = mn_widget_finalize;
+}
+
+static void
+mn_widget_init (MnWidget *self)
+{
+  self->priv = WIDGET_PRIVATE (self);
+}
+
+MnWidget *
+mn_widget_new (void)
+{
+  return g_object_new (MN_TYPE_WIDGET, NULL);
+}
diff --git a/monet/mn-widget.h b/monet/mn-widget.h
new file mode 100644
index 0000000..9c19d25
--- /dev/null
+++ b/monet/mn-widget.h
@@ -0,0 +1,54 @@
+/* mn-widget.h */
+
+#ifndef _MN_WIDGET_H
+#define _MN_WIDGET_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define MN_TYPE_WIDGET mn_widget_get_type()
+
+#define MN_WIDGET(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+  MN_TYPE_WIDGET, MnWidget))
+
+#define MN_WIDGET_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), \
+  MN_TYPE_WIDGET, MnWidgetClass))
+
+#define MN_IS_WIDGET(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+  MN_TYPE_WIDGET))
+
+#define MN_IS_WIDGET_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+  MN_TYPE_WIDGET))
+
+#define MN_WIDGET_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+  MN_TYPE_WIDGET, MnWidgetClass))
+
+typedef struct _MnWidget MnWidget;
+typedef struct _MnWidgetClass MnWidgetClass;
+typedef struct _MnWidgetPrivate MnWidgetPrivate;
+
+struct _MnWidget
+{
+  GObject parent;
+
+  MnWidgetPrivate *priv;
+};
+
+struct _MnWidgetClass
+{
+  GObjectClass parent_class;
+};
+
+GType mn_widget_get_type (void);
+
+MnWidget *mn_widget_new (void);
+
+G_END_DECLS
+
+#endif /* _MN_WIDGET_H */
diff --git a/monet/monet.h b/monet/monet.h
index a2c22b7..56ad1e2 100644
--- a/monet/monet.h
+++ b/monet/monet.h
@@ -1,3 +1,5 @@
 #include <glib-object.h>
 
+#include <monet/mn-widget.h>
+
 void monet_init (gint *argc, gchar ***argv);
diff --git a/tests/test-drawing.c b/tests/test-drawing.c
index 1fd6c60..c35b38d 100644
--- a/tests/test-drawing.c
+++ b/tests/test-drawing.c
@@ -5,6 +5,17 @@
 int
 main (int argc, char **argv)
 {
+  MnWidget *widget;
+
   monet_init (&argc, &argv);
-  printf ("Hello World\n");
+
+  printf ("* Monet initialised\n");
+
+  widget = mn_widget_new ();
+
+  printf ("* MnWidget created: %p\n", widget);
+
+  g_object_unref (widget);
+
+  printf ("* MnWidget destroyed.\n");
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]