[monet] [mn-widget] add boilerplate code for MnWidget gobject
- From: Thomas Wood <thos src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [monet] [mn-widget] add boilerplate code for MnWidget gobject
- Date: Tue, 11 Aug 2009 22:47:38 +0000 (UTC)
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]