[evolution/gnome-3-6] ECalConfigMeetingTimeSelector: Use G_DEFINE_DYNAMIC_TYPE.



commit 1889a59ae90663481709429f0813206263761ed2
Author: Matthew Barnes <mbarnes redhat com>
Date:   Tue Oct 9 13:35:08 2012 -0400

    ECalConfigMeetingTimeSelector: Use G_DEFINE_DYNAMIC_TYPE.
    
    Follow the usual GObject conventions.
    
    (cherry picked from commit 51e192f235cda7d70d76974ac4522280264fd011)

 .../calendar/e-cal-config-meeting-time-selector.c  |   62 ++++++++++++--------
 .../calendar/e-cal-config-meeting-time-selector.h  |   40 ++++++++++++-
 modules/calendar/evolution-module-calendar.c       |    2 +-
 3 files changed, 77 insertions(+), 27 deletions(-)
---
diff --git a/modules/calendar/e-cal-config-meeting-time-selector.c b/modules/calendar/e-cal-config-meeting-time-selector.c
index c54ccde..3877067 100644
--- a/modules/calendar/e-cal-config-meeting-time-selector.c
+++ b/modules/calendar/e-cal-config-meeting-time-selector.c
@@ -22,12 +22,21 @@
 
 #include "e-cal-config-meeting-time-selector.h"
 
-#include <libebackend/libebackend.h>
-
 #include <shell/e-shell.h>
 #include <calendar/gui/e-meeting-time-sel.h>
 
-static gpointer parent_class;
+#define E_CAL_CONFIG_MEETING_TIME_SELECTOR_GET_PRIVATE(obj) \
+	(G_TYPE_INSTANCE_GET_PRIVATE \
+	((obj), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR, ECalConfigMeetingTimeSelectorPrivate))
+
+struct _ECalConfigMeetingTimeSelectorPrivate {
+	gint placeholder;
+};
+
+G_DEFINE_DYNAMIC_TYPE (
+	ECalConfigMeetingTimeSelector,
+	e_cal_config_meeting_time_selector,
+	E_TYPE_EXTENSION)
 
 static void
 cal_config_meeting_time_selector_constructed (GObject *object)
@@ -59,39 +68,44 @@ cal_config_meeting_time_selector_constructed (GObject *object)
 		G_BINDING_SYNC_CREATE);
 
 	/* Chain up to parent's constructed() method. */
-	G_OBJECT_CLASS (parent_class)->constructed (object);
+	G_OBJECT_CLASS (e_cal_config_meeting_time_selector_parent_class)->
+		constructed (object);
 }
 
 static void
-cal_config_meeting_time_selector_class_init (EExtensionClass *class)
+e_cal_config_meeting_time_selector_class_init (ECalConfigMeetingTimeSelectorClass *class)
 {
 	GObjectClass *object_class;
+	EExtensionClass *extension_class;
 
-	parent_class = g_type_class_peek_parent (class);
+	g_type_class_add_private (
+		class, sizeof (ECalConfigMeetingTimeSelectorPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
 	object_class->constructed = cal_config_meeting_time_selector_constructed;
 
-	class->extensible_type = E_TYPE_MEETING_TIME_SELECTOR;
+	extension_class = E_EXTENSION_CLASS (class);
+	extension_class->extensible_type = E_TYPE_MEETING_TIME_SELECTOR;
+}
+
+static void
+e_cal_config_meeting_time_selector_class_finalize (ECalConfigMeetingTimeSelectorClass *class)
+{
+}
+
+static void
+e_cal_config_meeting_time_selector_init (ECalConfigMeetingTimeSelector *extension)
+{
+	extension->priv =
+		E_CAL_CONFIG_MEETING_TIME_SELECTOR_GET_PRIVATE (extension);
 }
 
 void
-e_cal_config_meeting_time_selector_register_type (GTypeModule *type_module)
+e_cal_config_meeting_time_selector_type_register (GTypeModule *type_module)
 {
-	static const GTypeInfo type_info = {
-		sizeof (EExtensionClass),
-		(GBaseInitFunc) NULL,
-		(GBaseFinalizeFunc) NULL,
-		(GClassInitFunc) cal_config_meeting_time_selector_class_init,
-		(GClassFinalizeFunc) NULL,
-		NULL,  /* class_data */
-		sizeof (EExtension),
-		0,     /* n_preallocs */
-		(GInstanceInitFunc) NULL,
-		NULL   /* value_table */
-	};
-
-	g_type_module_register_type (
-		type_module, E_TYPE_EXTENSION,
-		"ECalConfigMeetingTimeSelector", &type_info, 0);
+	/* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
+	 *     function, so we have to wrap it with a public function in
+	 *     order to register types from a separate compilation unit. */
+	e_cal_config_meeting_time_selector_register_type (type_module);
 }
+
diff --git a/modules/calendar/e-cal-config-meeting-time-selector.h b/modules/calendar/e-cal-config-meeting-time-selector.h
index b244263..a2ede27 100644
--- a/modules/calendar/e-cal-config-meeting-time-selector.h
+++ b/modules/calendar/e-cal-config-meeting-time-selector.h
@@ -19,12 +19,48 @@
 #ifndef E_CAL_CONFIG_MEETING_TIME_SELECTOR_H
 #define E_CAL_CONFIG_MEETING_TIME_SELECTOR_H
 
-#include <glib-object.h>
+#include <libebackend/libebackend.h>
+
+/* Standard GObject macros */
+#define E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR \
+	(e_cal_config_meeting_time_selector_get_type ())
+#define E_CAL_CONFIG_MEETING_TIME_SELECTOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR, ECalConfigMeetingTimeSelector))
+#define E_CAL_CONFIG_MEETING_TIME_SELECTOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR, ECalConfigMeetingTimeSelectorClass))
+#define E_IS_CAL_CONFIG_MEETING_TIME_SELECTOR(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR))
+#define E_IS_CAL_CONFIG_MEETING_TIME_SELECTOR_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR))
+#define E_CAL_CONFIG_MEETING_TIME_SELECTOR_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_CAL_CONFIG_MEETING_TIME_SELECTOR, ECalConfigMeetingTimeSelectorClass))
 
 G_BEGIN_DECLS
 
-void e_cal_config_meeting_time_selector_register_type (GTypeModule *type_module);
+typedef struct _ECalConfigMeetingTimeSelector ECalConfigMeetingTimeSelector;
+typedef struct _ECalConfigMeetingTimeSelectorClass ECalConfigMeetingTimeSelectorClass;
+typedef struct _ECalConfigMeetingTimeSelectorPrivate ECalConfigMeetingTimeSelectorPrivate;
+
+struct _ECalConfigMeetingTimeSelector {
+	EExtension parent;
+	ECalConfigMeetingTimeSelectorPrivate *priv;
+};
+
+struct _ECalConfigMeetingTimeSelectorClass {
+	EExtensionClass parent_class;
+};
+
+GType		e_cal_config_meeting_time_selector_get_type
+						(void) G_GNUC_CONST;
+void		e_cal_config_meeting_time_selector_type_register
+						(GTypeModule *type_module);
 
 G_END_DECLS
 
 #endif /* E_CAL_CONFIG_MEETING_TIME_SELECTOR_H */
+
diff --git a/modules/calendar/evolution-module-calendar.c b/modules/calendar/evolution-module-calendar.c
index f3611c1..1a8a7c2 100644
--- a/modules/calendar/evolution-module-calendar.c
+++ b/modules/calendar/evolution-module-calendar.c
@@ -86,7 +86,7 @@ e_module_load (GTypeModule *type_module)
 	e_cal_config_comp_editor_type_register (type_module);
 	e_cal_config_date_edit_type_register (type_module);
 	e_cal_config_meeting_store_type_register (type_module);
-	e_cal_config_meeting_time_selector_register_type (type_module);
+	e_cal_config_meeting_time_selector_type_register (type_module);
 	e_cal_config_model_register_type (type_module);
 	e_cal_config_view_register_type (type_module);
 



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