dia r4060 - in trunk: . lib plug-ins/cairo plug-ins/libart
- From: hans svn gnome org
- To: svn-commits-list gnome org
- Subject: dia r4060 - in trunk: . lib plug-ins/cairo plug-ins/libart
- Date: Fri, 30 May 2008 15:21:44 +0000 (UTC)
Author: hans
Date: Fri May 30 15:21:44 2008
New Revision: 4060
URL: http://svn.gnome.org/viewvc/dia?rev=4060&view=rev
Log:
2008-05-30 Hans Breuer <hans breuer org>
* lib/filter.h plug-ins/cairo/diacairo.c plug-ins/libart/dialibart.c :
put the renderer tpye in the export filter struct, at least it avoids
optimizing away it's side effect
* plug-ins/libart/dialibartrenderer.c plug-ins/libart/render_libart.c :
now the libart renderer has always the interactive interface which
make it work as display renderer again
Modified:
trunk/ChangeLog
trunk/lib/filter.h
trunk/plug-ins/cairo/diacairo.c
trunk/plug-ins/libart/dialibart.c
trunk/plug-ins/libart/dialibartrenderer.c
trunk/plug-ins/libart/render_libart.c
Modified: trunk/lib/filter.h
==============================================================================
--- trunk/lib/filter.h (original)
+++ trunk/lib/filter.h Fri May 30 15:21:44 2008
@@ -49,6 +49,8 @@
const gchar *unique_name;
/* additional hints for export */
guint hints;
+ /* optional, holding the renderers type */
+ GType renderer_type;
};
/* returns FALSE on error loading diagram */
Modified: trunk/plug-ins/cairo/diacairo.c
==============================================================================
--- trunk/plug-ins/cairo/diacairo.c (original)
+++ trunk/plug-ins/cairo/diacairo.c Fri May 30 15:21:44 2008
@@ -447,6 +447,9 @@
_plugin_unload))
return DIA_PLUGIN_INIT_ERROR;
+ /* FIXME: need to think about of proper way of registartion, see also app/display.c */
+ png_export_filter.renderer_type = dia_cairo_interactive_renderer_get_type ();
+
#ifdef CAIRO_HAS_PS_SURFACE
filter_register_export(&ps_export_filter);
#endif
@@ -471,9 +474,6 @@
#if GTK_CHECK_VERSION (2,10,0)
filter_register_callback (&cb_gtk_print);
#endif
-
- /* FIXME: need to think about of proper way of registartion, see also app/display.c */
- dia_cairo_interactive_renderer_get_type ();
return DIA_PLUGIN_INIT_OK;
}
Modified: trunk/plug-ins/libart/dialibart.c
==============================================================================
--- trunk/plug-ins/libart/dialibart.c (original)
+++ trunk/plug-ins/libart/dialibart.c Fri May 30 15:21:44 2008
@@ -62,14 +62,11 @@
return DIA_PLUGIN_INIT_ERROR;
#if defined(HAVE_LIBPNG) && defined(HAVE_LIBART)
+ /* FIXME: need to think about of proper way of registartion, see also app/display.c */
+ png_export_filter.renderer_type = dia_libart_renderer_get_type ();
/* PNG with libart rendering */
filter_register_export(&png_export_filter);
#endif
-#ifdef HAVE_LIBART
- /* FIXME: need to think about of proper way of registartion, see also app/display.c */
- dia_libart_renderer_get_type ();
-#endif
-
return DIA_PLUGIN_INIT_OK;
}
Modified: trunk/plug-ins/libart/dialibartrenderer.c
==============================================================================
--- trunk/plug-ins/libart/dialibartrenderer.c (original)
+++ trunk/plug-ins/libart/dialibartrenderer.c Fri May 30 15:21:44 2008
@@ -1372,6 +1372,9 @@
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+extern void
+dia_libart_renderer_iface_init (DiaInteractiveRendererInterface* iface);
+
GType
dia_libart_renderer_get_type (void)
{
@@ -1392,9 +1395,21 @@
(GInstanceInitFunc)renderer_init /* init */
};
+ static const GInterfaceInfo irenderer_iface_info =
+ {
+ (GInterfaceInitFunc) dia_libart_renderer_iface_init,
+ NULL, /* iface_finalize */
+ NULL /* iface_data */
+ };
+
object_type = g_type_register_static (DIA_TYPE_RENDERER,
"DiaLibartRenderer",
&object_info, 0);
+
+ /* register the interactive renderer interface */
+ g_type_add_interface_static (object_type,
+ DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
+ &irenderer_iface_info);
}
return object_type;
Modified: trunk/plug-ins/libart/render_libart.c
==============================================================================
--- trunk/plug-ins/libart/render_libart.c (original)
+++ trunk/plug-ins/libart/render_libart.c Fri May 30 15:21:44 2008
@@ -53,7 +53,7 @@
int x, int y, int width, int height);
-static void
+void
dia_libart_renderer_iface_init (DiaInteractiveRendererInterface* iface)
{
iface->clip_region_clear = clip_region_clear;
@@ -74,22 +74,6 @@
renderer = g_object_new(DIA_TYPE_LIBART_RENDERER, NULL);
renderer->transform = trans;
-
- if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
- {
- static const GInterfaceInfo irenderer_iface_info =
- {
- (GInterfaceInitFunc) dia_libart_renderer_iface_init,
- NULL, /* iface_finalize */
- NULL /* iface_data */
- };
-
- renderer_type = DIA_TYPE_LIBART_RENDERER;
- /* register the interactive renderer interface */
- g_type_add_interface_static (renderer_type,
- DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
- &irenderer_iface_info);
- }
renderer->parent_instance.is_interactive = interactive;
return DIA_RENDERER (renderer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]