diff options
Diffstat (limited to 'modules/calendar/e-task-shell-content.c')
-rw-r--r-- | modules/calendar/e-task-shell-content.c | 93 |
1 files changed, 40 insertions, 53 deletions
diff --git a/modules/calendar/e-task-shell-content.c b/modules/calendar/e-task-shell-content.c index cb2443f19d..67b1e368b3 100644 --- a/modules/calendar/e-task-shell-content.c +++ b/modules/calendar/e-task-shell-content.c @@ -37,6 +37,10 @@ #include "calendar/gui/e-cal-component-preview.h" #include "calendar/gui/e-cal-model-tasks.h" +#define E_TASK_SHELL_CONTENT_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE \ + ((obj), E_TYPE_TASK_SHELL_CONTENT, ETaskShellContentPrivate)) + #define E_TASK_TABLE_DEFAULT_STATE \ "<?xml version=\"1.0\"?>" \ "<ETableState>" \ @@ -68,8 +72,13 @@ enum { PROP_PREVIEW_VISIBLE }; -static gpointer parent_class; -static GType task_shell_content_type; +G_DEFINE_DYNAMIC_TYPE_EXTENDED ( + ETaskShellContent, + e_task_shell_content, + E_TYPE_SHELL_CONTENT, + 0, + G_IMPLEMENT_INTERFACE_DYNAMIC ( + GTK_TYPE_ORIENTABLE, NULL)) static void task_shell_content_display_view_cb (ETaskShellContent *task_shell_content, @@ -271,19 +280,22 @@ task_shell_content_restore_state_cb (EShellWindow *shell_window, { ETaskShellContentPrivate *priv; GSettings *settings; - GObject *object; - priv = E_TASK_SHELL_CONTENT (shell_content)->priv; + priv = E_TASK_SHELL_CONTENT_GET_PRIVATE (shell_content); /* Bind GObject properties to settings keys. */ settings = g_settings_new ("org.gnome.evolution.calendar"); - object = G_OBJECT (priv->paned); - g_settings_bind (settings, "task-hpane-position", object, "hposition", G_SETTINGS_BIND_DEFAULT); + g_settings_bind ( + settings, "task-hpane-position", + priv->paned, "hposition", + G_SETTINGS_BIND_DEFAULT); - object = G_OBJECT (priv->paned); - g_settings_bind (settings, "task-vpane-position", object, "vposition", G_SETTINGS_BIND_DEFAULT); + g_settings_bind ( + settings, "task-vpane-position", + priv->paned, "vposition", + G_SETTINGS_BIND_DEFAULT); g_object_unref (G_OBJECT (settings)); } @@ -363,7 +375,7 @@ task_shell_content_dispose (GObject *object) { ETaskShellContentPrivate *priv; - priv = E_TASK_SHELL_CONTENT (object)->priv; + priv = E_TASK_SHELL_CONTENT_GET_PRIVATE (object); if (priv->paned != NULL) { g_object_unref (priv->paned); @@ -391,7 +403,7 @@ task_shell_content_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_task_shell_content_parent_class)->dispose (object); } static void @@ -399,12 +411,12 @@ task_shell_content_finalize (GObject *object) { ETaskShellContentPrivate *priv; - priv = E_TASK_SHELL_CONTENT (object)->priv; + priv = E_TASK_SHELL_CONTENT_GET_PRIVATE (object); g_free (priv->current_uid); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_task_shell_content_parent_class)->finalize (object); } static void @@ -422,10 +434,10 @@ task_shell_content_constructed (GObject *object) GtkWidget *widget; gint n_targets; - priv = E_TASK_SHELL_CONTENT (object)->priv; + priv = E_TASK_SHELL_CONTENT_GET_PRIVATE (object); /* Chain up to parent's constructed() method. */ - G_OBJECT_CLASS (parent_class)->constructed (object); + G_OBJECT_CLASS (e_task_shell_content_parent_class)->constructed (object); shell_content = E_SHELL_CONTENT (object); shell_view = e_shell_content_get_shell_view (shell_content); @@ -622,18 +634,17 @@ task_shell_content_focus_search_results (EShellContent *shell_content) { ETaskShellContentPrivate *priv; - priv = E_TASK_SHELL_CONTENT (shell_content)->priv; + priv = E_TASK_SHELL_CONTENT_GET_PRIVATE (shell_content); gtk_widget_grab_focus (priv->task_table); } static void -task_shell_content_class_init (ETaskShellContentClass *class) +e_task_shell_content_class_init (ETaskShellContentClass *class) { GObjectClass *object_class; EShellContentClass *shell_content_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (ETaskShellContentPrivate)); object_class = G_OBJECT_CLASS (class); @@ -674,50 +685,26 @@ task_shell_content_class_init (ETaskShellContentClass *class) } static void -task_shell_content_init (ETaskShellContent *task_shell_content) +e_task_shell_content_class_finalize (ETaskShellContentClass *class) { - task_shell_content->priv = G_TYPE_INSTANCE_GET_PRIVATE ( - task_shell_content, E_TYPE_TASK_SHELL_CONTENT, - ETaskShellContentPrivate); - - /* Postpone widget construction until we have a shell view. */ } -GType -e_task_shell_content_get_type (void) +static void +e_task_shell_content_init (ETaskShellContent *task_shell_content) { - return task_shell_content_type; + task_shell_content->priv = + E_TASK_SHELL_CONTENT_GET_PRIVATE (task_shell_content); + + /* Postpone widget construction until we have a shell view. */ } void -e_task_shell_content_register_type (GTypeModule *type_module) +e_task_shell_content_type_register (GTypeModule *type_module) { - static const GTypeInfo type_info = { - sizeof (ETaskShellContentClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) task_shell_content_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (ETaskShellContent), - 0, /* n_preallocs */ - (GInstanceInitFunc) task_shell_content_init, - NULL /* value_table */ - }; - - static const GInterfaceInfo orientable_info = { - (GInterfaceInitFunc) NULL, - (GInterfaceFinalizeFunc) NULL, - NULL /* interface_data */ - }; - - task_shell_content_type = g_type_module_register_type ( - type_module, E_TYPE_SHELL_CONTENT, - "ETaskShellContent", &type_info, 0); - - g_type_module_add_interface ( - type_module, task_shell_content_type, - GTK_TYPE_ORIENTABLE, &orientable_info); + /* 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_task_shell_content_register_type (type_module); } GtkWidget * |