Lines 50-56
static void copy_to_window (DiaRenderer *renderer,
Link Here
|
50 |
gpointer window, |
50 |
gpointer window, |
51 |
int x, int y, int width, int height); |
51 |
int x, int y, int width, int height); |
52 |
|
52 |
|
53 |
static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface) |
53 |
typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer; |
|
|
54 |
struct _DiaGdkInteractiveRenderer |
55 |
{ |
56 |
DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */ |
57 |
}; |
58 |
typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass; |
59 |
struct _DiaGdkInteractiveRendererClass |
60 |
{ |
61 |
DiaGdkRendererClass parent_class; /*!< the base class */ |
62 |
}; |
63 |
#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ()) |
64 |
#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer)) |
65 |
|
66 |
static void |
67 |
dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface) |
54 |
{ |
68 |
{ |
55 |
iface->clip_region_clear = clip_region_clear; |
69 |
iface->clip_region_clear = clip_region_clear; |
56 |
iface->clip_region_add_rect = clip_region_add_rect; |
70 |
iface->clip_region_add_rect = clip_region_add_rect; |
Lines 61-95
static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
Link Here
|
61 |
iface->set_size = set_size; |
75 |
iface->set_size = set_size; |
62 |
} |
76 |
} |
63 |
|
77 |
|
|
|
78 |
G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER, |
79 |
G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init)); |
80 |
|
81 |
static void |
82 |
dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass) |
83 |
{ |
84 |
} |
85 |
static void |
86 |
dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object) |
87 |
{ |
88 |
DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object); |
89 |
DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object); |
90 |
DiaRenderer *dia_renderer = DIA_RENDERER(object); |
91 |
|
92 |
dia_renderer->is_interactive = 1; |
93 |
|
94 |
renderer->gc = NULL; |
95 |
renderer->pixmap = NULL; |
96 |
renderer->clip_region = NULL; |
97 |
} |
98 |
|
64 |
DiaRenderer * |
99 |
DiaRenderer * |
65 |
new_gdk_renderer(DDisplay *ddisp) |
100 |
new_gdk_renderer(DDisplay *ddisp) |
66 |
{ |
101 |
{ |
67 |
DiaGdkRenderer *renderer; |
102 |
DiaGdkRenderer *renderer; |
68 |
GType renderer_type = 0; |
103 |
GType renderer_type = 0; |
69 |
|
104 |
|
70 |
renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL); |
105 |
renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL); |
71 |
renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor); |
106 |
renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor); |
72 |
if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer)) |
|
|
73 |
{ |
74 |
static const GInterfaceInfo irenderer_iface_info = |
75 |
{ |
76 |
(GInterfaceInitFunc) dia_gdk_renderer_iface_init, |
77 |
NULL, /* iface_finalize */ |
78 |
NULL /* iface_data */ |
79 |
}; |
80 |
|
81 |
renderer_type = DIA_TYPE_GDK_RENDERER; |
82 |
/* register the interactive renderer interface */ |
83 |
g_type_add_interface_static (renderer_type, |
84 |
DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, |
85 |
&irenderer_iface_info); |
86 |
|
87 |
} |
88 |
renderer->parent_instance.is_interactive = 1; |
89 |
renderer->gc = NULL; |
90 |
|
91 |
renderer->pixmap = NULL; |
92 |
renderer->clip_region = NULL; |
93 |
|
107 |
|
94 |
return DIA_RENDERER(renderer); |
108 |
return DIA_RENDERER(renderer); |
95 |
} |
109 |
} |
96 |
- |
|
|