Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-sidebar-page.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-04-19 08:57:50 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2005-04-19 08:57:50 (GMT)
commite6e647fb236b236df1399ff4dba8faf0172002a1 (patch)
treeed7cd98953cd68ebc0449fbbc1324e71aaf08008 /shell/ev-sidebar-page.c
parent7ffb31c1dccfa67e3920e4a746dba023af2c9c08 (diff)
Small rework of sidebar pages handling. See bug #164811 for details
Diffstat (limited to 'shell/ev-sidebar-page.c')
-rw-r--r--shell/ev-sidebar-page.c98
1 files changed, 98 insertions, 0 deletions
diff --git a/shell/ev-sidebar-page.c b/shell/ev-sidebar-page.c
new file mode 100644
index 0000000..dfd21d3
--- /dev/null
+++ b/shell/ev-sidebar-page.c
@@ -0,0 +1,98 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
+/*
+ * Copyright (C) 2005 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "ev-sidebar-page.h"
+
+GType
+ev_sidebar_page_get_type (void)
+{
+ static GType type = 0;
+
+ if (G_UNLIKELY (type == 0))
+ {
+ static const GTypeInfo sidebar_page_info =
+ {
+ sizeof (EvDocumentIface),
+ NULL,
+ NULL,
+ NULL
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE,
+ "EvSidebarPage",
+ &sidebar_page_info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+
+gboolean
+ev_sidebar_page_support_document (EvSidebarPage *sidebar_page,
+ EvDocument *document)
+{
+ EvSidebarPageIface *iface;
+
+ g_return_val_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page), FALSE);
+ g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE);
+
+ iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page);
+
+ g_return_val_if_fail (iface->set_document, FALSE);
+
+ return iface->support_document (sidebar_page, document);
+}
+
+void
+ev_sidebar_page_set_document (EvSidebarPage *sidebar_page,
+ EvDocument *document)
+{
+ EvSidebarPageIface *iface;
+
+ g_return_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page));
+ g_return_if_fail (EV_IS_DOCUMENT (document));
+
+ iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page);
+
+ g_return_if_fail (iface->set_document);
+
+ iface->set_document (sidebar_page, document);
+
+ return;
+}
+
+const gchar*
+ev_sidebar_page_get_label (EvSidebarPage *sidebar_page)
+{
+ EvSidebarPageIface *iface;
+
+ g_return_val_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page), NULL);
+
+ iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page);
+
+ g_return_val_if_fail (iface->get_label, NULL);
+
+ return iface->get_label (sidebar_page);
+}
+