diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2008-03-03 15:01:17 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2008-03-03 15:01:17 (GMT) |
commit | 0c06dc4d1656051c9613973e8bef9c7dbfaa151d (patch) | |
tree | 1868f30331d8c596718c24c17b9c52073ed8060b /libdocument | |
parent | a00ee8735a6691f65905515d6d405c49b31beb2e (diff) |
Use g_type_module_add_interface instead of g_type_add_interface_static.
2008-03-03 Carlos Garcia Campos <carlosgc@gnome.org>
* backend/comics/comics-document.c:
* backend/djvu/djvu-document.c:
* backend/impress/impress-document.c:
* backend/pdf/ev-poppler.cc:
* backend/pixbuf/pixbuf-document.c:
* backend/ps/ev-spectre.c:
* backend/ps/ps-document.c:
* backend/tiff/tiff-document.c:
* libdocument/ev-document.h:
* properties/ev-properties-main.c:
Use g_type_module_add_interface instead of
g_type_add_interface_static. Fixes bug #519679.
svn path=/trunk/; revision=2942
Diffstat (limited to 'libdocument')
-rw-r--r-- | libdocument/ev-document.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index 6e7232b..bc040d1 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -126,6 +126,24 @@ cairo_surface_t *ev_document_render (EvDocument *document, gint ev_rect_cmp (EvRectangle *a, EvRectangle *b); +/* convenience macro to ease interface addition in the CODE + * section of EV_BACKEND_REGISTER_WITH_CODE (this macro relies on + * the g_define_type_id present within EV_BACKEND_REGISTER_WITH_CODE()). + * usage example: + * EV_BACKEND_REGISTER_WITH_CODE (PdfDocument, pdf_document, + * EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + * pdf_document_document_thumbnails_iface_init)); + */ +#define EV_BACKEND_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init) { \ + const GInterfaceInfo g_implement_interface_info = { \ + (GInterfaceInitFunc) iface_init, NULL, NULL \ + }; \ + g_type_module_add_interface (module, \ + g_define_type_id, \ + TYPE_IFACE, \ + &g_implement_interface_info); \ +} + /* * Utility macro used to register backends * @@ -174,8 +192,8 @@ register_evince_backend (GTypeModule *module) \ #BackendName, \ &our_info, \ (GTypeFlags)0); \ - \ - G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT, \ + \ + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT, \ backend_name##_document_iface_init); \ \ CODE \ |