X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-sidebar-page.c;h=fdb8d4afb2b0bdb034557b0bde25402c8de31ff1;hb=f28e9ccf4400e87da3fa9960becc6feb2ed041cb;hp=8e6a33d2e07fc422dfd7cc59582df27386530523;hpb=47fb87e520d1abe31a1965d500602e0e80e899b2;p=evince.git diff --git a/shell/ev-sidebar-page.c b/shell/ev-sidebar-page.c index 8e6a33d2..fdb8d4af 100644 --- a/shell/ev-sidebar-page.c +++ b/shell/ev-sidebar-page.c @@ -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. * */ @@ -22,90 +22,71 @@ #include "config.h" #endif -#include "ev-sidebar-page.h" #include -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; -} +#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_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; + } }