diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-01-24 18:10:43 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2009-01-24 18:10:43 (GMT) |
commit | b2c387604ca233c9c70a0595a24d381ddfafd1d4 (patch) | |
tree | d3f5779c0eba2145e1206126a1177d708015e829 /shell | |
parent | ab26fbf217460c766111850bf40725e5e65a5533 (diff) |
Use EV_DEFINE_INTERFACE to define EvSidebarPage interface. See bug
2009-01-24 Carlos Garcia Campos <carlosgc@gnome.org>
* shell/ev-sidebar-page.c:
Use EV_DEFINE_INTERFACE to define EvSidebarPage interface. See bug
#568228.
svn path=/trunk/; revision=3380
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ev-sidebar-page.c | 64 |
1 files changed, 22 insertions, 42 deletions
diff --git a/shell/ev-sidebar-page.c b/shell/ev-sidebar-page.c index 6043ec5..14bb847 100644 --- a/shell/ev-sidebar-page.c +++ b/shell/ev-sidebar-page.c @@ -26,35 +26,11 @@ #include "ev-sidebar-page.h" -static void ev_sidebar_page_iface_init (gpointer iface); - -GType -ev_sidebar_page_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) - { - const GTypeInfo sidebar_page_info = - { - sizeof (EvSidebarPageIface), - NULL, - NULL, - (GClassInitFunc)ev_sidebar_page_iface_init, - }; - - type = g_type_register_static (G_TYPE_INTERFACE, - "EvSidebarPage", - &sidebar_page_info, (GTypeFlags)0); - } - - return type; -} - +EV_DEFINE_INTERFACE (EvSidebarPage, ev_sidebar_page, 0) gboolean -ev_sidebar_page_support_document (EvSidebarPage *sidebar_page, - EvDocument *document) +ev_sidebar_page_support_document (EvSidebarPage *sidebar_page, + EvDocument *document) { EvSidebarPageIface *iface; @@ -69,8 +45,8 @@ ev_sidebar_page_support_document (EvSidebarPage *sidebar_page, } void -ev_sidebar_page_set_document (EvSidebarPage *sidebar_page, - EvDocument *document) +ev_sidebar_page_set_document (EvSidebarPage *sidebar_page, + EvDocument *document) { EvSidebarPageIface *iface; @@ -79,15 +55,13 @@ ev_sidebar_page_set_document (EvSidebarPage *sidebar_page, iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page); - g_return_if_fail (iface->set_document); + g_assert (iface->set_document); iface->set_document (sidebar_page, document); - - return; } -const gchar* -ev_sidebar_page_get_label (EvSidebarPage *sidebar_page) +const gchar * +ev_sidebar_page_get_label (EvSidebarPage *sidebar_page) { EvSidebarPageIface *iface; @@ -95,18 +69,24 @@ ev_sidebar_page_get_label (EvSidebarPage *sidebar_page) iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page); - g_return_val_if_fail (iface->get_label, NULL); + g_assert (iface->get_label); return iface->get_label (sidebar_page); } -static void ev_sidebar_page_iface_init (gpointer iface) +static void +ev_sidebar_page_class_init (EvSidebarPageIface *iface) { - g_object_interface_install_property (iface, - g_param_spec_object ("main-widget", - "Main Widget", - "Main page widget, used to handle focus", - GTK_TYPE_WIDGET, - G_PARAM_READABLE)); + static gboolean initialized = FALSE; + + if (!initialized) { + g_object_interface_install_property (iface, + g_param_spec_object ("main-widget", + "Main Widget", + "Main page widget, used to handle focus", + GTK_TYPE_WIDGET, + G_PARAM_READABLE)); + initialized = TRUE; + } } |