*
* 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 "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);
- }
+#include <gtk/gtk.h>
- return type;
-}
+#include "ev-sidebar-page.h"
+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_default_init (EvSidebarPageInterface *iface)
+{
+ 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;
+ }
+}