aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-sidebar.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell-sidebar.c')
-rw-r--r--shell/e-shell-sidebar.c46
1 files changed, 12 insertions, 34 deletions
diff --git a/shell/e-shell-sidebar.c b/shell/e-shell-sidebar.c
index 5701321f24..d293f08aca 100644
--- a/shell/e-shell-sidebar.c
+++ b/shell/e-shell-sidebar.c
@@ -22,6 +22,7 @@
#include "e-shell-sidebar.h"
#include <e-util/e-binding.h>
+#include <e-util/e-extensible.h>
#include <e-util/e-unicode.h>
#include <shell/e-shell-view.h>
@@ -48,7 +49,9 @@ enum {
PROP_SHELL_VIEW
};
-static gpointer parent_class;
+G_DEFINE_TYPE_WITH_CODE (
+ EShellSidebar, e_shell_sidebar, GTK_TYPE_BIN,
+ G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL))
static void
shell_sidebar_set_shell_view (EShellSidebar *shell_sidebar,
@@ -147,7 +150,7 @@ shell_sidebar_dispose (GObject *object)
}
/* Chain up to parent's dispose() method. */
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ G_OBJECT_CLASS (e_shell_sidebar_parent_class)->dispose (object);
}
static void
@@ -162,7 +165,7 @@ shell_sidebar_finalize (GObject *object)
g_free (priv->secondary_text);
/* Chain up to parent's finalize() method. */
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (e_shell_sidebar_parent_class)->finalize (object);
}
static void
@@ -191,6 +194,8 @@ shell_sidebar_constructed (GObject *object)
g_object_get (action, "label", &label, NULL);
e_shell_sidebar_set_primary_text (shell_sidebar, label);
g_free (label);
+
+ e_extensible_load_extensions (E_EXTENSIBLE (object));
}
static void
@@ -211,7 +216,7 @@ shell_sidebar_destroy (GtkObject *gtk_object)
}
/* Chain up to parent's destroy() method. */
- GTK_OBJECT_CLASS (parent_class)->destroy (gtk_object);
+ GTK_OBJECT_CLASS (e_shell_sidebar_parent_class)->destroy (gtk_object);
}
static void
@@ -282,19 +287,18 @@ shell_sidebar_forall (GtkContainer *container,
callback (priv->event_box, callback_data);
/* Chain up to parent's forall() method. */
- GTK_CONTAINER_CLASS (parent_class)->forall (
+ GTK_CONTAINER_CLASS (e_shell_sidebar_parent_class)->forall (
container, include_internals, callback, callback_data);
}
static void
-shell_sidebar_class_init (EShellSidebarClass *class)
+e_shell_sidebar_class_init (EShellSidebarClass *class)
{
GObjectClass *object_class;
GtkObjectClass *gtk_object_class;
GtkWidgetClass *widget_class;
GtkContainerClass *container_class;
- parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (EShellSidebarPrivate));
object_class = G_OBJECT_CLASS (class);
@@ -378,7 +382,7 @@ shell_sidebar_class_init (EShellSidebarClass *class)
}
static void
-shell_sidebar_init (EShellSidebar *shell_sidebar)
+e_shell_sidebar_init (EShellSidebar *shell_sidebar)
{
GtkStyle *style;
GtkWidget *widget;
@@ -446,32 +450,6 @@ shell_sidebar_init (EShellSidebar *shell_sidebar)
e_binding_new (shell_sidebar, "secondary-text", widget, "label");
}
-GType
-e_shell_sidebar_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- static const GTypeInfo type_info = {
- sizeof (EShellSidebarClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) shell_sidebar_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (EShellSidebar),
- 0, /* n_preallocs */
- (GInstanceInitFunc) shell_sidebar_init,
- NULL /* value_table */
- };
-
- type = g_type_register_static (
- GTK_TYPE_BIN, "EShellSidebar", &type_info, 0);
- }
-
- return type;
-}
-
/**
* e_shell_sidebar_new:
* @shell_view: an #EShellView