1 diff -up dia-0.97.2/app/render_gdk.c.glib dia-0.97.2/app/render_gdk.c
2 --- dia-0.97.2/app/render_gdk.c.glib 2013-05-02 14:23:22.294850484 +0200
3 +++ dia-0.97.2/app/render_gdk.c 2013-05-02 14:26:51.176963531 +0200
4 @@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer
6 int x, int y, int width, int height);
8 -static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
9 +typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer;
10 +struct _DiaGdkInteractiveRenderer
12 + DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */
14 +typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass;
15 +struct _DiaGdkInteractiveRendererClass
17 + DiaGdkRendererClass parent_class; /*!< the base class */
19 +#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ())
20 +#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer))
23 +dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
25 iface->clip_region_clear = clip_region_clear;
26 iface->clip_region_add_rect = clip_region_add_rect;
27 @@ -61,36 +75,35 @@ static void dia_gdk_renderer_iface_init
28 iface->set_size = set_size;
31 +G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER,
32 + G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init));
35 +dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass)
39 +dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object)
41 + DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object);
42 + DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object);
43 + DiaRenderer *dia_renderer = DIA_RENDERER(object);
45 + dia_renderer->is_interactive = 1;
47 + renderer->gc = NULL;
48 + renderer->pixmap = NULL;
49 + renderer->clip_region = NULL;
53 new_gdk_renderer(DDisplay *ddisp)
55 DiaGdkRenderer *renderer;
56 GType renderer_type = 0;
58 - renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL);
59 + renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL);
60 renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor);
61 - if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
63 - static const GInterfaceInfo irenderer_iface_info =
65 - (GInterfaceInitFunc) dia_gdk_renderer_iface_init,
66 - NULL, /* iface_finalize */
67 - NULL /* iface_data */
70 - renderer_type = DIA_TYPE_GDK_RENDERER;
71 - /* register the interactive renderer interface */
72 - g_type_add_interface_static (renderer_type,
73 - DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
74 - &irenderer_iface_info);
77 - renderer->parent_instance.is_interactive = 1;
78 - renderer->gc = NULL;
80 - renderer->pixmap = NULL;
81 - renderer->clip_region = NULL;
83 return DIA_RENDERER(renderer);