]>
Commit | Line | Data |
---|---|---|
4c662dd4 AM |
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 | |
5 | gpointer window, | |
6 | int x, int y, int width, int height); | |
7 | ||
8 | -static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface) | |
9 | +typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer; | |
10 | +struct _DiaGdkInteractiveRenderer | |
11 | +{ | |
12 | + DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */ | |
13 | +}; | |
14 | +typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass; | |
15 | +struct _DiaGdkInteractiveRendererClass | |
16 | +{ | |
17 | + DiaGdkRendererClass parent_class; /*!< the base class */ | |
18 | +}; | |
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)) | |
21 | + | |
22 | +static void | |
23 | +dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface) | |
24 | { | |
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; | |
29 | } | |
30 | ||
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)); | |
33 | + | |
34 | +static void | |
35 | +dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass) | |
36 | +{ | |
37 | +} | |
38 | +static void | |
39 | +dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object) | |
40 | +{ | |
41 | + DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object); | |
42 | + DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object); | |
43 | + DiaRenderer *dia_renderer = DIA_RENDERER(object); | |
44 | + | |
45 | + dia_renderer->is_interactive = 1; | |
46 | + | |
47 | + renderer->gc = NULL; | |
48 | + renderer->pixmap = NULL; | |
49 | + renderer->clip_region = NULL; | |
50 | +} | |
51 | + | |
52 | DiaRenderer * | |
53 | new_gdk_renderer(DDisplay *ddisp) | |
54 | { | |
55 | DiaGdkRenderer *renderer; | |
56 | GType renderer_type = 0; | |
57 | ||
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)) | |
62 | - { | |
63 | - static const GInterfaceInfo irenderer_iface_info = | |
64 | - { | |
65 | - (GInterfaceInitFunc) dia_gdk_renderer_iface_init, | |
66 | - NULL, /* iface_finalize */ | |
67 | - NULL /* iface_data */ | |
68 | - }; | |
69 | - | |
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); | |
75 | - | |
76 | - } | |
77 | - renderer->parent_instance.is_interactive = 1; | |
78 | - renderer->gc = NULL; | |
79 | - | |
80 | - renderer->pixmap = NULL; | |
81 | - renderer->clip_region = NULL; | |
82 | - | |
83 | return DIA_RENDERER(renderer); | |
84 | } | |
85 |