]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-sidebar-page.c
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / shell / ev-sidebar-page.c
index 6043ec5c04e3e92b9f3d736e95343b8f3d51e5e8..fdb8d4afb2b0bdb034557b0bde25402c8de31ff1 100644 (file)
@@ -14,7 +14,7 @@
  *
  *  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.
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
 
 #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;
-}
-
+G_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;
+        EvSidebarPageInterface *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);
+        g_return_val_if_fail (iface->support_document, FALSE);
        
         return iface->support_document (sidebar_page, document);    
 }
 
-void 
-ev_sidebar_page_set_document      (EvSidebarPage    *sidebar_page,
-                                  EvDocument *document)
+void
+ev_sidebar_page_set_model (EvSidebarPage   *sidebar_page,
+                          EvDocumentModel *model)
 {
-       EvSidebarPageIface *iface;
+       EvSidebarPageInterface *iface;
 
         g_return_if_fail (EV_IS_SIDEBAR_PAGE (sidebar_page));
-       g_return_if_fail (EV_IS_DOCUMENT (document));
+       g_return_if_fail (EV_IS_DOCUMENT_MODEL (model));
 
        iface = EV_SIDEBAR_PAGE_GET_IFACE (sidebar_page);
 
-       g_return_if_fail (iface->set_document);
-       
-       iface->set_document (sidebar_page, document);
-       
-       return;
+       g_assert (iface->set_model);
+
+       iface->set_model (sidebar_page, model);
 }
 
-const gchar*
-ev_sidebar_page_get_label (EvSidebarPage    *sidebar_page)
+const gchar *
+ev_sidebar_page_get_label (EvSidebarPage *sidebar_page)
 {
-       EvSidebarPageIface *iface;
+       EvSidebarPageInterface *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);
+       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_default_init (EvSidebarPageInterface *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;
+       }
 }