From 40c071c469ea6737ae43b90ff47831e9c51717a4 Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Mon, 25 Mar 2019 18:18:25 +0100 Subject: [PATCH] adg: use G_PRIVATE_ADD and friends Use type macros to implement the private data. This in turns changes the way private data is accessed, removing the deprecated calls to g_type_class_add_private() and the cached pointer in the instance data. --- configure.ac | 2 +- src/adg/adg-adim.c | 69 ++++++++++--------------- src/adg/adg-adim.h | 1 - src/adg/adg-alignment.c | 23 +++------ src/adg/adg-alignment.h | 1 - src/adg/adg-arrow.c | 19 +++---- src/adg/adg-arrow.h | 1 - src/adg/adg-canvas.c | 84 ++++++++++++------------------- src/adg/adg-canvas.h.in | 1 - src/adg/adg-color-style.c | 31 ++++-------- src/adg/adg-color-style.h | 1 - src/adg/adg-container.c | 31 ++++-------- src/adg/adg-container.h | 11 ++-- src/adg/adg-dim-style.c | 83 ++++++++++-------------------- src/adg/adg-dim-style.h | 5 +- src/adg/adg-dim.c | 111 ++++++++++++++-------------------------- src/adg/adg-dim.h | 5 +- src/adg/adg-edges.c | 38 +++++--------- src/adg/adg-edges.h | 5 +- src/adg/adg-entity.c | 103 +++++++++++++------------------------ src/adg/adg-entity.h | 6 +-- src/adg/adg-fill-style.c | 29 ++++------- src/adg/adg-fill-style.h | 5 +- src/adg/adg-font-style.c | 63 ++++++++--------------- src/adg/adg-font-style.h | 5 +- src/adg/adg-gtk-area.c | 106 +++++++++++++------------------------- src/adg/adg-gtk-area.h | 5 +- src/adg/adg-gtk-layout.c | 57 +++++++-------------- src/adg/adg-gtk-layout.h | 5 +- src/adg/adg-hatch.c | 40 +++++---------- src/adg/adg-hatch.h | 1 - src/adg/adg-ldim.c | 74 +++++++++------------------ src/adg/adg-ldim.h | 5 +- src/adg/adg-line-style.c | 53 +++++++------------ src/adg/adg-line-style.h | 5 +- src/adg/adg-logo.c | 34 ++++--------- src/adg/adg-logo.h | 1 - src/adg/adg-marker.c | 45 ++++++----------- src/adg/adg-marker.h | 1 - src/adg/adg-model.c | 44 ++++++---------- src/adg/adg-model.h | 5 +- src/adg/adg-pango-style.c | 27 +++------- src/adg/adg-pango-style.h | 5 +- src/adg/adg-path.c | 126 +++++++++++++++++----------------------------- src/adg/adg-path.h | 5 +- src/adg/adg-projection.c | 44 +++++----------- src/adg/adg-projection.h | 1 - src/adg/adg-rdim.c | 54 ++++++-------------- src/adg/adg-rdim.h | 5 +- src/adg/adg-ruled-fill.c | 30 +++-------- src/adg/adg-ruled-fill.h | 5 +- src/adg/adg-stroke.c | 34 ++++--------- src/adg/adg-stroke.h | 1 - src/adg/adg-table-style.c | 4 +- src/adg/adg-table.c | 70 +++++++++----------------- src/adg/adg-table.h | 1 - src/adg/adg-text.c | 51 ++++++------------- src/adg/adg-text.h | 5 +- src/adg/adg-title-block.c | 47 ++++++----------- src/adg/adg-title-block.h | 5 +- src/adg/adg-toy-text.c | 52 ++++++------------- src/adg/adg-toy-text.h | 5 +- src/adg/adg-trail.c | 43 ++++++---------- src/adg/adg-trail.h | 5 +- 64 files changed, 606 insertions(+), 1233 deletions(-) diff --git a/configure.ac b/configure.ac index 795d0a42..8910e491 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ m4_define([adg_lt_version],[7:0:0]) m4_define([cpml_lt_version],[4:0:0]) m4_define([gtkdoc_prereq], [1.12] )dnl Support introspection annotations -m4_define([gobject_prereq], [2.14.0])dnl Required by GRegex +m4_define([gobject_prereq], [2.38.0])dnl Required by G_ADD_PRIVATE m4_define([cairo_prereq], [1.7.4] )dnl Required by cairo_scaled_font_text_to_glyphs() m4_define([gtk2_prereq], [2.18.0])dnl Required by gtk_widget_get_allocation() m4_define([gtk3_prereq], [3.0.0] )dnl First stable release diff --git a/src/adg/adg-adim.c b/src/adg/adg-adim.c index 40d38a92..83a1384d 100644 --- a/src/adg/adg-adim.c +++ b/src/adg/adg-adim.c @@ -60,7 +60,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_adim_parent_class) -G_DEFINE_TYPE(AdgADim, adg_adim, ADG_TYPE_DIM) +G_DEFINE_TYPE_WITH_PRIVATE(AdgADim, adg_adim, ADG_TYPE_DIM) enum { PROP_0, @@ -112,8 +112,6 @@ adg_adim_class_init(AdgADimClass *klass) entity_class = (AdgEntityClass *) klass; dim_class = (AdgDimClass *) klass; - g_type_class_add_private(klass, sizeof(AdgADimPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -162,7 +160,7 @@ adg_adim_init(AdgADim *adim) AdgDimStyle *dim_style; cairo_path_data_t move_to, line_to, arc_to; - data = G_TYPE_INSTANCE_GET_PRIVATE(adim, ADG_TYPE_ADIM, AdgADimPrivate); + data = adg_adim_get_instance_private(adim); move_to.header.type = CPML_MOVE; move_to.header.length = 2; line_to.header.type = CPML_LINE; @@ -189,8 +187,6 @@ adg_adim_init(AdgADim *adim) data->marker1 = NULL; data->marker2 = NULL; - adim->data = data; - /* Override the default style of the dimension dress to express angles in * sexagesimal units */ style = adg_dress_get_fallback(ADG_DRESS_DIMENSION); @@ -215,7 +211,7 @@ _adg_dispose(GObject *object) entity = (AdgEntity *) object; adim = (AdgADim *) entity; - data = adim->data; + data = adg_adim_get_instance_private(adim); _adg_dispose_trail(adim); _adg_dispose_markers(adim); @@ -234,7 +230,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgADimPrivate *data = ((AdgADim *) object)->data; + AdgADimPrivate *data = adg_adim_get_instance_private((AdgADim *) object); switch (prop_id) { case PROP_ORG1: @@ -259,11 +255,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgEntity *entity; - AdgADimPrivate *data; - - entity = (AdgEntity *) object; - data = ((AdgADim *) object)->data; + AdgEntity *entity = (AdgEntity *) object; + AdgADimPrivate *data = adg_adim_get_instance_private((AdgADim *) object); switch (prop_id) { case PROP_ORG1: @@ -550,7 +543,7 @@ adg_adim_get_org1(AdgADim *adim) g_return_val_if_fail(ADG_IS_ADIM(adim), NULL); - data = adim->data; + data = adg_adim_get_instance_private(adim); return data->org1; } @@ -667,7 +660,7 @@ adg_adim_get_org2(AdgADim *adim) g_return_val_if_fail(ADG_IS_ADIM(adim), NULL); - data = adim->data; + data = adg_adim_get_instance_private(adim); return data->org2; } @@ -708,7 +701,7 @@ adg_adim_has_extension1(AdgADim *adim) g_return_val_if_fail(ADG_IS_ADIM(adim), FALSE); - data = adim->data; + data = adg_adim_get_instance_private(adim); return data->has_extension1; } @@ -749,7 +742,7 @@ adg_adim_has_extension2(AdgADim *adim) g_return_val_if_fail(ADG_IS_ADIM(adim), FALSE); - data = adim->data; + data = adg_adim_get_instance_private(adim); return data->has_extension2; } @@ -758,7 +751,7 @@ adg_adim_has_extension2(AdgADim *adim) static void _adg_global_changed(AdgEntity *entity) { - AdgADimPrivate *data = ((AdgADim *) entity)->data; + AdgADimPrivate *data = adg_adim_get_instance_private((AdgADim *) entity); _adg_unset_trail((AdgADim *) entity); @@ -784,11 +777,8 @@ _adg_local_changed(AdgEntity *entity) static void _adg_invalidate(AdgEntity *entity) { - AdgADim *adim; - AdgADimPrivate *data; - - adim = (AdgADim *) entity; - data = adim->data; + AdgADim *adim = (AdgADim *) entity; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); _adg_dispose_trail(adim); _adg_dispose_markers(adim); @@ -824,7 +814,7 @@ _adg_arrange(AdgEntity *entity) return; adim = (AdgADim *) entity; - data = adim->data; + data = adg_adim_get_instance_private(adim); quote = adg_dim_get_quote(dim); _adg_update_entities(adim); @@ -957,7 +947,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) } adim = (AdgADim *) entity; - data = adim->data; + data = adg_adim_get_instance_private(adim); dim_style = adg_dim_get_dim_style(dim); adg_style_apply((AdgStyle *) dim_style, entity, cr); @@ -989,7 +979,7 @@ _adg_default_value(AdgDim *dim) } adim = (AdgADim *) dim; - data = adim->data; + data = adg_adim_get_instance_private(adim); angle = (data->angle2 - data->angle1) * 180 / G_PI; return adg_dim_get_text(dim, angle); @@ -1014,7 +1004,7 @@ _adg_compute_geometry(AdgDim *dim) if (! _adg_get_info(adim, vector, ¢er, &distance)) return FALSE; - data = adim->data; + data = adg_adim_get_instance_private(adim); dim_style = adg_dim_get_dim_style(dim); from_offset = adg_dim_style_get_from_offset(dim_style); to_offset = adg_dim_style_get_to_offset(dim_style); @@ -1073,13 +1063,9 @@ _adg_compute_geometry(AdgDim *dim) static void _adg_update_entities(AdgADim *adim) { - AdgEntity *entity; - AdgADimPrivate *data; - AdgDimStyle *dim_style; - - entity = (AdgEntity *) adim; - data = adim->data; - dim_style = adg_dim_get_dim_style((AdgDim *) adim); + AdgEntity *entity = (AdgEntity *) adim; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); + AdgDimStyle *dim_style = adg_dim_get_dim_style((AdgDim *) adim); if (data->trail == NULL) data->trail = adg_trail_new(_adg_trail_callback, adim); @@ -1098,7 +1084,7 @@ _adg_update_entities(AdgADim *adim) static void _adg_unset_trail(AdgADim *adim) { - AdgADimPrivate *data = adim->data; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); if (data->trail != NULL) adg_model_clear((AdgModel *) data->trail); @@ -1109,7 +1095,7 @@ _adg_unset_trail(AdgADim *adim) static void _adg_dispose_trail(AdgADim *adim) { - AdgADimPrivate *data = adim->data; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); if (data->trail != NULL) { g_object_unref(data->trail); @@ -1120,7 +1106,7 @@ _adg_dispose_trail(AdgADim *adim) static void _adg_dispose_markers(AdgADim *adim) { - AdgADimPrivate *data = adim->data; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); if (data->marker1 != NULL) { g_object_unref(data->marker1); @@ -1145,7 +1131,7 @@ _adg_get_info(AdgADim *adim, CpmlVector vector[], gdouble factor; dim = (AdgDim *) adim; - data = adim->data; + data = adg_adim_get_instance_private(adim); ref1_point = adg_dim_get_ref1(dim); ref2_point = adg_dim_get_ref2(dim); pos_point = adg_dim_get_pos(dim); @@ -1222,11 +1208,8 @@ _adg_get_info(AdgADim *adim, CpmlVector vector[], static cairo_path_t * _adg_trail_callback(AdgTrail *trail, gpointer user_data) { - AdgADim *adim; - AdgADimPrivate *data; - - adim = (AdgADim *) user_data; - data = adim->data; + AdgADim *adim = (AdgADim *) user_data; + AdgADimPrivate *data = adg_adim_get_instance_private(adim); return &data->cairo.path; } diff --git a/src/adg/adg-adim.h b/src/adg/adg-adim.h index 0311aec0..f246878f 100644 --- a/src/adg/adg-adim.h +++ b/src/adg/adg-adim.h @@ -43,7 +43,6 @@ typedef struct _AdgADimClass AdgADimClass; struct _AdgADim { /*< private >*/ AdgDim parent; - gpointer data; }; struct _AdgADimClass { diff --git a/src/adg/adg-alignment.c b/src/adg/adg-alignment.c index d3cfb002..b4d47d66 100644 --- a/src/adg/adg-alignment.c +++ b/src/adg/adg-alignment.c @@ -62,7 +62,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_alignment_parent_class) -G_DEFINE_TYPE(AdgAlignment, adg_alignment, ADG_TYPE_CONTAINER) +G_DEFINE_TYPE_WITH_PRIVATE(AdgAlignment, adg_alignment, ADG_TYPE_CONTAINER) enum { PROP_0, @@ -93,8 +93,6 @@ adg_alignment_class_init(AdgAlignmentClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgAlignmentPrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -112,23 +110,18 @@ adg_alignment_class_init(AdgAlignmentClass *klass) static void adg_alignment_init(AdgAlignment *alignment) { - AdgAlignmentPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(alignment, - ADG_TYPE_ALIGNMENT, - AdgAlignmentPrivate); - + AdgAlignmentPrivate *data = adg_alignment_get_instance_private(alignment); data->factor.x = 0; data->factor.y = 0; data->shift.x = 0; data->shift.y = 0; - - alignment->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgAlignmentPrivate *data = ((AdgAlignment *) object)->data; + AdgAlignmentPrivate *data = adg_alignment_get_instance_private((AdgAlignment *) object); switch (prop_id) { case PROP_FACTOR: @@ -144,11 +137,9 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgAlignmentPrivate *data; + AdgAlignmentPrivate *data = adg_alignment_get_instance_private((AdgAlignment *) object); const CpmlPair *pair; - data = ((AdgAlignment *) object)->data; - switch (prop_id) { case PROP_FACTOR: pair = g_value_get_boxed(value); @@ -264,7 +255,7 @@ adg_alignment_get_factor(AdgAlignment *alignment) g_return_val_if_fail(ADG_IS_ALIGNMENT(alignment), NULL); - data = alignment->data; + data = adg_alignment_get_instance_private(alignment); return &data->factor; } @@ -281,7 +272,7 @@ _adg_arrange(AdgEntity *entity) if (_ADG_OLD_ENTITY_CLASS->arrange == NULL) return; - data = ((AdgAlignment *) entity)->data; + data = adg_alignment_get_instance_private((AdgAlignment *) entity); extents = adg_entity_get_extents(entity); data->shift.x = 0; data->shift.y = 0; @@ -329,7 +320,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) if (_ADG_OLD_ENTITY_CLASS->render == NULL) return; - data = ((AdgAlignment *) entity)->data; + data = adg_alignment_get_instance_private((AdgAlignment *) entity); cairo_translate(cr, data->shift.x, data->shift.y); _ADG_OLD_ENTITY_CLASS->render(entity, cr); diff --git a/src/adg/adg-alignment.h b/src/adg/adg-alignment.h index 6042153d..2e15329d 100644 --- a/src/adg/adg-alignment.h +++ b/src/adg/adg-alignment.h @@ -43,7 +43,6 @@ typedef struct _AdgAlignmentClass AdgAlignmentClass; struct _AdgAlignment { /*< private >*/ AdgContainer parent; - gpointer data; }; struct _AdgAlignmentClass { diff --git a/src/adg/adg-arrow.c b/src/adg/adg-arrow.c index 4b6417b1..1c1c9859 100644 --- a/src/adg/adg-arrow.c +++ b/src/adg/adg-arrow.c @@ -53,7 +53,7 @@ #include "adg-arrow-private.h" -G_DEFINE_TYPE(AdgArrow, adg_arrow, ADG_TYPE_MARKER) +G_DEFINE_TYPE_WITH_PRIVATE(AdgArrow, adg_arrow, ADG_TYPE_MARKER) enum { PROP_0, @@ -87,8 +87,6 @@ adg_arrow_class_init(AdgArrowClass *klass) entity_class = (AdgEntityClass *) klass; marker_class = (AdgMarkerClass *) klass; - g_type_class_add_private(klass, sizeof(AdgArrowPrivate)); - gobject_class->set_property = _adg_set_property; gobject_class->get_property = _adg_get_property; @@ -108,14 +106,10 @@ adg_arrow_class_init(AdgArrowClass *klass) static void adg_arrow_init(AdgArrow *arrow) { - AdgArrowPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(arrow, - ADG_TYPE_ARROW, - AdgArrowPrivate); + AdgArrowPrivate *data = adg_arrow_get_instance_private(arrow); data->angle = G_PI/6; - arrow->data = data; - adg_entity_set_local_mix((AdgEntity *) arrow, ADG_MIX_PARENT); } @@ -123,7 +117,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgArrowPrivate *data = ((AdgArrow *) object)->data; + AdgArrowPrivate *data = adg_arrow_get_instance_private((AdgArrow *) object); switch (prop_id) { case PROP_ANGLE: @@ -139,7 +133,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgArrowPrivate *data = ((AdgArrow *) object)->data; + AdgArrowPrivate *data = adg_arrow_get_instance_private((AdgArrow *) object); switch (prop_id) { case PROP_ANGLE: @@ -227,8 +221,7 @@ adg_arrow_get_angle(AdgArrow *arrow) g_return_val_if_fail(ADG_IS_ARROW(arrow), 0); - data = arrow->data; - + data = adg_arrow_get_instance_private(arrow); return data->angle; } @@ -283,7 +276,7 @@ _adg_create_model(AdgMarker *marker) AdgPath *path; CpmlPair p1, p2; - data = ((AdgArrow *) marker)->data; + data = adg_arrow_get_instance_private((AdgArrow *) marker); path = adg_path_new(); cpml_vector_from_angle(&p1, data->angle / 2); p2.x = p1.x; diff --git a/src/adg/adg-arrow.h b/src/adg/adg-arrow.h index 7640d00e..7ad083f5 100644 --- a/src/adg/adg-arrow.h +++ b/src/adg/adg-arrow.h @@ -42,7 +42,6 @@ typedef struct _AdgArrowClass AdgArrowClass; struct _AdgArrow { /*< private >*/ AdgMarker parent; - gpointer data; }; struct _AdgArrowClass { diff --git a/src/adg/adg-canvas.c b/src/adg/adg-canvas.c index f0b00ea7..917fd429 100644 --- a/src/adg/adg-canvas.c +++ b/src/adg/adg-canvas.c @@ -118,7 +118,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_canvas_parent_class) -G_DEFINE_TYPE(AdgCanvas, adg_canvas, ADG_TYPE_CONTAINER) +G_DEFINE_TYPE_WITH_PRIVATE(AdgCanvas, adg_canvas, ADG_TYPE_CONTAINER) enum { PROP_0, @@ -184,8 +184,6 @@ adg_canvas_class_init(AdgCanvasClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgCanvasPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -305,15 +303,12 @@ adg_canvas_class_init(AdgCanvasClass *klass) static void adg_canvas_init(AdgCanvas *canvas) { - AdgCanvasPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(canvas, - ADG_TYPE_CANVAS, - AdgCanvasPrivate); + AdgCanvasPrivate *data = adg_canvas_get_instance_private(canvas); const gchar *scales[] = { "10:1", "5:1", "3:1", "2:1", "1:1", "1:2", "1:3", "1:5", "1:10", NULL }; - data->size.x = 0; data->size.y = 0; data->factor = 1; @@ -330,18 +325,13 @@ adg_canvas_init(AdgCanvas *canvas) data->right_padding = 15; data->bottom_padding = 15; data->left_padding = 15; - - canvas->data = data; } static void _adg_dispose(GObject *object) { - AdgCanvas *canvas; - AdgCanvasPrivate *data; - - canvas = (AdgCanvas *) object; - data = canvas->data; + AdgCanvas *canvas = (AdgCanvas *) object; + AdgCanvasPrivate *data = adg_canvas_get_instance_private(canvas); if (data->title_block) { g_object_unref(data->title_block); @@ -362,7 +352,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgCanvasPrivate *data = ((AdgCanvas *) object)->data; + AdgCanvasPrivate *data = adg_canvas_get_instance_private((AdgCanvas *) object); switch (prop_id) { case PROP_SIZE: @@ -420,14 +410,11 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgCanvas *canvas; - AdgCanvasPrivate *data; + AdgCanvas *canvas = (AdgCanvas *) object; + AdgCanvasPrivate *data = adg_canvas_get_instance_private(canvas); AdgTitleBlock *title_block; gdouble factor; - canvas = (AdgCanvas *) object; - data = canvas->data; - switch (prop_id) { case PROP_SIZE: cpml_pair_copy(&data->size, g_value_get_boxed(value)); @@ -576,7 +563,7 @@ adg_canvas_get_size(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), NULL); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return &data->size; } @@ -632,7 +619,7 @@ adg_canvas_get_factor(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->factor; } @@ -732,7 +719,7 @@ adg_canvas_get_scales(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), NULL); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->scales; } @@ -765,7 +752,7 @@ adg_canvas_autoscale(AdgCanvas *canvas) g_return_if_fail(ADG_IS_CANVAS(canvas)); g_return_if_fail(_ADG_OLD_ENTITY_CLASS->arrange != NULL); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); entity = (AdgEntity *) canvas; title_block = data->title_block; @@ -851,8 +838,7 @@ adg_canvas_get_background_dress(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), ADG_DRESS_UNDEFINED); - data = canvas->data; - + data = adg_canvas_get_instance_private(canvas); return data->background_dress; } @@ -890,7 +876,7 @@ adg_canvas_get_frame_dress(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), ADG_DRESS_UNDEFINED); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->frame_dress; } @@ -943,7 +929,7 @@ adg_canvas_get_title_block(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), NULL); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->title_block; } @@ -981,7 +967,7 @@ adg_canvas_get_top_margin(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->top_margin; } @@ -1019,7 +1005,7 @@ adg_canvas_get_right_margin(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->right_margin; } @@ -1057,7 +1043,7 @@ adg_canvas_get_bottom_margin(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->bottom_margin; } @@ -1095,7 +1081,7 @@ adg_canvas_get_left_margin(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->left_margin; } @@ -1142,7 +1128,7 @@ adg_canvas_get_margins(AdgCanvas *canvas, g_return_if_fail(ADG_IS_CANVAS(canvas)); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); if (top != NULL) { *top = data->top_margin; @@ -1176,7 +1162,7 @@ adg_canvas_apply_margins(AdgCanvas *canvas, CpmlExtents *extents) g_return_if_fail(extents != NULL); if (extents->is_defined) { - AdgCanvasPrivate *data = canvas->data; + AdgCanvasPrivate *data = adg_canvas_get_instance_private(canvas); extents->org.x -= data->left_margin; extents->org.y -= data->top_margin; @@ -1223,7 +1209,7 @@ adg_canvas_has_frame(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), FALSE); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->has_frame; } @@ -1261,7 +1247,7 @@ adg_canvas_get_top_padding(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->top_padding; } @@ -1299,7 +1285,7 @@ adg_canvas_get_right_padding(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->right_padding; } @@ -1338,7 +1324,7 @@ adg_canvas_get_bottom_padding(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->bottom_padding; } @@ -1376,7 +1362,7 @@ adg_canvas_get_left_padding(AdgCanvas *canvas) g_return_val_if_fail(ADG_IS_CANVAS(canvas), 0.); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); return data->left_padding; } @@ -1423,7 +1409,7 @@ adg_canvas_get_paddings(AdgCanvas *canvas, g_return_if_fail(ADG_IS_CANVAS(canvas)); - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); if (top != NULL) { *top = data->top_padding; @@ -1443,7 +1429,7 @@ adg_canvas_get_paddings(AdgCanvas *canvas, static void _adg_global_changed(AdgEntity *entity) { - AdgCanvasPrivate *data = ((AdgCanvas *) entity)->data; + AdgCanvasPrivate *data = adg_canvas_get_instance_private((AdgCanvas *) entity); if (_ADG_OLD_ENTITY_CLASS->global_changed) _ADG_OLD_ENTITY_CLASS->global_changed(entity); @@ -1455,7 +1441,7 @@ _adg_global_changed(AdgEntity *entity) static void _adg_local_changed(AdgEntity *entity) { - AdgCanvasPrivate *data = ((AdgCanvas *) entity)->data; + AdgCanvasPrivate *data = adg_canvas_get_instance_private((AdgCanvas *) entity); AdgTitleBlock *title_block = data->title_block; if (_ADG_OLD_ENTITY_CLASS->local_changed) @@ -1479,7 +1465,7 @@ _adg_local_changed(AdgEntity *entity) static void _adg_invalidate(AdgEntity *entity) { - AdgCanvasPrivate *data = ((AdgCanvas *) entity)->data; + AdgCanvasPrivate *data = adg_canvas_get_instance_private((AdgCanvas *) entity); if (_ADG_OLD_ENTITY_CLASS->invalidate) _ADG_OLD_ENTITY_CLASS->invalidate(entity); @@ -1504,7 +1490,7 @@ _adg_arrange(AdgEntity *entity) g_return_if_fail(extents.is_defined); canvas = (AdgCanvas *) entity; - data = canvas->data; + data = adg_canvas_get_instance_private(canvas); _adg_apply_paddings(canvas, &extents); @@ -1570,11 +1556,8 @@ _adg_arrange(AdgEntity *entity) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgCanvasPrivate *data; - const CpmlExtents *extents; - - data = ((AdgCanvas *) entity)->data; - extents = adg_entity_get_extents(entity); + AdgCanvasPrivate *data = adg_canvas_get_instance_private((AdgCanvas *) entity); + const CpmlExtents *extents = adg_entity_get_extents(entity); cairo_save(cr); @@ -1607,8 +1590,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) static void _adg_apply_paddings(AdgCanvas *canvas, CpmlExtents *extents) { - AdgCanvasPrivate *data = canvas->data; - + AdgCanvasPrivate *data = adg_canvas_get_instance_private(canvas); extents->org.x -= data->left_padding; extents->size.x += data->left_padding + data->right_padding; extents->org.y -= data->top_padding; diff --git a/src/adg/adg-canvas.h.in b/src/adg/adg-canvas.h.in index 9d50afb9..bcec8256 100644 --- a/src/adg/adg-canvas.h.in +++ b/src/adg/adg-canvas.h.in @@ -43,7 +43,6 @@ typedef struct _AdgCanvasClass AdgCanvasClass; struct _AdgCanvas { /*< private >*/ AdgContainer parent; - gpointer data; }; struct _AdgCanvasClass { diff --git a/src/adg/adg-color-style.c b/src/adg/adg-color-style.c index 3160bd45..8d1cc50c 100644 --- a/src/adg/adg-color-style.c +++ b/src/adg/adg-color-style.c @@ -48,7 +48,7 @@ #include "adg-color-style-private.h" -G_DEFINE_TYPE(AdgColorStyle, adg_color_style, ADG_TYPE_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgColorStyle, adg_color_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -82,8 +82,6 @@ adg_color_style_class_init(AdgColorStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgColorStylePrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -121,23 +119,18 @@ adg_color_style_class_init(AdgColorStyleClass *klass) static void adg_color_style_init(AdgColorStyle *color_style) { - AdgColorStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(color_style, - ADG_TYPE_COLOR_STYLE, - AdgColorStylePrivate); - + AdgColorStylePrivate *data = adg_color_style_get_instance_private(color_style); data->red = 0; data->green = 0; data->blue = 0; data->alpha = 1; - - color_style->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgColorStylePrivate *data = ((AdgColorStyle *) object)->data; + AdgColorStylePrivate *data = adg_color_style_get_instance_private((AdgColorStyle *) object); switch (prop_id) { case PROP_RED: @@ -162,7 +155,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgColorStylePrivate *data = ((AdgColorStyle *) object)->data; + AdgColorStylePrivate *data = adg_color_style_get_instance_private((AdgColorStyle *) object); switch (prop_id) { case PROP_RED: @@ -234,8 +227,7 @@ adg_color_style_get_red(AdgColorStyle *color_style) g_return_val_if_fail(ADG_IS_COLOR_STYLE(color_style), 0.); - data = color_style->data; - + data = adg_color_style_get_instance_private(color_style); return data->red; } @@ -274,8 +266,7 @@ adg_color_style_get_green(AdgColorStyle *color_style) g_return_val_if_fail(ADG_IS_COLOR_STYLE(color_style), 0.); - data = color_style->data; - + data = adg_color_style_get_instance_private(color_style); return data->green; } @@ -314,8 +305,7 @@ adg_color_style_get_blue(AdgColorStyle *color_style) g_return_val_if_fail(ADG_IS_COLOR_STYLE(color_style), 0.); - data = color_style->data; - + data = adg_color_style_get_instance_private(color_style); return data->blue; } @@ -359,7 +349,7 @@ adg_color_style_put_rgb(AdgColorStyle *color_style, g_return_if_fail(ADG_IS_COLOR_STYLE(color_style)); - data = color_style->data; + data = adg_color_style_get_instance_private(color_style); if (red != NULL) *red = data->red; @@ -406,8 +396,7 @@ adg_color_style_get_alpha(AdgColorStyle *color_style) g_return_val_if_fail(ADG_IS_COLOR_STYLE(color_style), 0.); - data = color_style->data; - + data = adg_color_style_get_instance_private(color_style); return data->alpha; } @@ -415,7 +404,7 @@ adg_color_style_get_alpha(AdgColorStyle *color_style) static void _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) { - AdgColorStylePrivate *data = ((AdgColorStyle *) style)->data; + AdgColorStylePrivate *data = adg_color_style_get_instance_private((AdgColorStyle *) style); if (data->alpha == 1.) cairo_set_source_rgb(cr, data->red, data->green, data->blue); diff --git a/src/adg/adg-color-style.h b/src/adg/adg-color-style.h index 83d80501..7dc8281c 100644 --- a/src/adg/adg-color-style.h +++ b/src/adg/adg-color-style.h @@ -43,7 +43,6 @@ typedef struct _AdgColorStyleClass AdgColorStyleClass; struct _AdgColorStyle { /*< private >*/ AdgStyle parent; - gpointer data; }; struct _AdgColorStyleClass { diff --git a/src/adg/adg-container.c b/src/adg/adg-container.c index 4d4cfcdd..1068bcd8 100644 --- a/src/adg/adg-container.c +++ b/src/adg/adg-container.c @@ -68,7 +68,7 @@ #define _ADG_PARENT_ENTITY_CLASS ((AdgEntityClass *) adg_container_parent_class) -G_DEFINE_TYPE(AdgContainer, adg_container, ADG_TYPE_ENTITY) +G_DEFINE_TYPE_WITH_PRIVATE(AdgContainer, adg_container, ADG_TYPE_ENTITY) enum { PROP_0, @@ -117,8 +117,6 @@ adg_container_class_init(AdgContainerClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgContainerPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->set_property = _adg_set_property; @@ -179,23 +177,15 @@ adg_container_class_init(AdgContainerClass *klass) static void adg_container_init(AdgContainer *container) { - AdgContainerPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(container, - ADG_TYPE_CONTAINER, - AdgContainerPrivate); - + AdgContainerPrivate *data = adg_container_get_instance_private(container); data->children = NULL; - - container->data = data; } static void _adg_dispose(GObject *object) { - AdgContainer *container; - AdgContainerPrivate *data; - - container = (AdgContainer *) object; - data = container->data; + AdgContainer *container = (AdgContainer *) object; + AdgContainerPrivate *data = adg_container_get_instance_private(container); /* Remove all the children from the container: these will emit * a "remove" signal for every child and will drop all the @@ -522,7 +512,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) static GSList * _adg_children(AdgContainer *container) { - AdgContainerPrivate *data = container->data; + AdgContainerPrivate *data = adg_container_get_instance_private(container); /* The NULL case is already managed by GLib */ return g_slist_copy(data->children); @@ -545,7 +535,7 @@ _adg_add(AdgContainer *container, AdgEntity *entity) return; } - data = container->data; + data = adg_container_get_instance_private(container); data->children = g_slist_prepend(data->children, entity); g_object_ref_sink(entity); @@ -556,18 +546,15 @@ _adg_add(AdgContainer *container, AdgEntity *entity) static void _adg_remove_from_list(gpointer container, GObject *entity) { - AdgContainerPrivate *data = ((AdgContainer *) container)->data; + AdgContainerPrivate *data = adg_container_get_instance_private((AdgContainer *) container); data->children = g_slist_remove(data->children, entity); } static void _adg_remove(AdgContainer *container, AdgEntity *entity) { - AdgContainerPrivate *data; - GSList *node; - - data = container->data; - node = g_slist_find(data->children, entity); + AdgContainerPrivate *data = adg_container_get_instance_private(container); + GSList *node = g_slist_find(data->children, entity); if (node == NULL) { g_warning(_("Attempting to remove an entity with type %s from a " diff --git a/src/adg/adg-container.h b/src/adg/adg-container.h index 4a65ac33..71430ee1 100644 --- a/src/adg/adg-container.h +++ b/src/adg/adg-container.h @@ -42,22 +42,21 @@ typedef struct _AdgContainerClass AdgContainerClass; struct _AdgContainer { /*< private >*/ - AdgEntity parent; - gpointer data; + AdgEntity parent; }; struct _AdgContainerClass { /*< private >*/ - AdgEntityClass parent_class; + AdgEntityClass parent_class; /*< public >*/ /* Virtual table */ - GSList * (*children) (AdgContainer *container); + GSList * (*children) (AdgContainer *container); /* Signals */ - void (*add) (AdgContainer *container, + void (*add) (AdgContainer *container, AdgEntity *entity); - void (*remove) (AdgContainer *container, + void (*remove) (AdgContainer *container, AdgEntity *entity); }; diff --git a/src/adg/adg-dim-style.c b/src/adg/adg-dim-style.c index e59810d9..23de8b78 100644 --- a/src/adg/adg-dim-style.c +++ b/src/adg/adg-dim-style.c @@ -85,7 +85,7 @@ #define VALID_FORMATS "aieDdMmSs" -G_DEFINE_TYPE(AdgDimStyle, adg_dim_style, ADG_TYPE_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgDimStyle, adg_dim_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -141,8 +141,6 @@ adg_dim_style_class_init(AdgDimStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgDimStylePrivate)); - gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -289,10 +287,7 @@ adg_dim_style_class_init(AdgDimStyleClass *klass) static void adg_dim_style_init(AdgDimStyle *dim_style) { - AdgDimStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(dim_style, - ADG_TYPE_DIM_STYLE, - AdgDimStylePrivate); - + AdgDimStylePrivate *data = adg_dim_style_get_instance_private(dim_style); data->marker1.type = 0; data->marker1.n_parameters = 0; data->marker1.parameters = NULL; @@ -319,14 +314,12 @@ adg_dim_style_init(AdgDimStyle *dim_style) data->number_tag = g_strdup("<>"); data->decimals = 2; data->rounding = 6; - - dim_style->data = data; } static void _adg_finalize(GObject *object) { - AdgDimStylePrivate *data = ((AdgDimStyle *) object)->data; + AdgDimStylePrivate *data = adg_dim_style_get_instance_private((AdgDimStyle *) object); _adg_free_marker(&data->marker1); _adg_free_marker(&data->marker2); @@ -345,7 +338,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgDimStylePrivate *data = ((AdgDimStyle *) object)->data; + AdgDimStylePrivate *data = adg_dim_style_get_instance_private((AdgDimStyle *) object); switch (prop_id) { case PROP_COLOR_DRESS: @@ -409,11 +402,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgDimStyle *dim_style; - AdgDimStylePrivate *data; - - dim_style = (AdgDimStyle *) object; - data = dim_style->data; + AdgDimStyle *dim_style = (AdgDimStyle *) object; + AdgDimStylePrivate *data = adg_dim_style_get_instance_private(dim_style); switch (prop_id) { case PROP_MARKER1: @@ -545,8 +535,7 @@ adg_dim_style_marker1_new(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return _adg_marker_new(&data->marker1); } @@ -594,8 +583,7 @@ adg_dim_style_marker2_new(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return _adg_marker_new(&data->marker2); } @@ -635,8 +623,7 @@ adg_dim_style_get_color_dress(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), ADG_DRESS_UNDEFINED); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->color_dress; } @@ -674,8 +661,7 @@ adg_dim_style_get_value_dress(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), ADG_DRESS_UNDEFINED); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->value_dress; } @@ -712,8 +698,7 @@ adg_dim_style_get_min_dress(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), ADG_DRESS_UNDEFINED); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->min_dress; } @@ -750,8 +735,7 @@ adg_dim_style_get_max_dress(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), ADG_DRESS_UNDEFINED); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->max_dress; } @@ -789,8 +773,7 @@ adg_dim_style_get_line_dress(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), ADG_DRESS_UNDEFINED); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->line_dress; } @@ -828,8 +811,7 @@ adg_dim_style_get_from_offset(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), 0); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->from_offset; } @@ -867,8 +849,7 @@ adg_dim_style_get_to_offset(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), 0); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->to_offset; } @@ -906,8 +887,7 @@ adg_dim_style_get_beyond(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), 0); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->beyond; } @@ -945,8 +925,7 @@ adg_dim_style_get_baseline_spacing(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), 0); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->baseline_spacing; } @@ -983,8 +962,7 @@ adg_dim_style_get_limits_spacing(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), 0); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->limits_spacing; } @@ -1022,8 +1000,7 @@ adg_dim_style_get_quote_shift(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return &data->quote_shift; } @@ -1061,8 +1038,7 @@ adg_dim_style_get_limits_shift(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return &data->limits_shift; } @@ -1153,8 +1129,7 @@ adg_dim_style_get_number_format(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->number_format; } @@ -1199,8 +1174,7 @@ adg_dim_style_get_number_arguments(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->number_arguments; } @@ -1242,8 +1216,7 @@ adg_dim_style_get_number_tag(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), NULL); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->number_tag; } @@ -1281,8 +1254,7 @@ adg_dim_style_get_decimals(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), -2); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->decimals; } @@ -1319,8 +1291,7 @@ adg_dim_style_get_rounding(AdgDimStyle *dim_style) g_return_val_if_fail(ADG_IS_DIM_STYLE(dim_style), -2); - data = dim_style->data; - + data = adg_dim_style_get_instance_private(dim_style); return data->rounding; } @@ -1364,7 +1335,7 @@ adg_dim_style_convert(AdgDimStyle *dim_style, gdouble *value, gchar format) return FALSE; } - data = dim_style->data; + data = adg_dim_style_get_instance_private(dim_style); /* Round the raw value, if requested */ if (data->rounding > -1) { @@ -1447,7 +1418,7 @@ _adg_clone(AdgStyle *style) static void _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) { - AdgDimStylePrivate *data = ((AdgDimStyle *) style)->data; + AdgDimStylePrivate *data = adg_dim_style_get_instance_private((AdgDimStyle *) style); adg_entity_apply_dress(entity, data->color_dress, cr); } diff --git a/src/adg/adg-dim-style.h b/src/adg/adg-dim-style.h index 8fe75063..caff78de 100644 --- a/src/adg/adg-dim-style.h +++ b/src/adg/adg-dim-style.h @@ -42,13 +42,12 @@ typedef struct _AdgDimStyleClass AdgDimStyleClass; struct _AdgDimStyle { /*< private >*/ - AdgStyle parent; - gpointer data; + AdgStyle parent; }; struct _AdgDimStyleClass { /*< private >*/ - AdgStyleClass parent_class; + AdgStyleClass parent_class; }; diff --git a/src/adg/adg-dim.c b/src/adg/adg-dim.c index e46ce865..27c7e7e6 100644 --- a/src/adg/adg-dim.c +++ b/src/adg/adg-dim.c @@ -88,7 +88,7 @@ ADG_THREE_STATE_OFF ) -G_DEFINE_ABSTRACT_TYPE(AdgDim, adg_dim, ADG_TYPE_ENTITY) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(AdgDim, adg_dim, ADG_TYPE_ENTITY) enum { PROP_0, @@ -148,8 +148,6 @@ adg_dim_class_init(AdgDimClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgDimPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; @@ -238,9 +236,7 @@ adg_dim_class_init(AdgDimClass *klass) static void adg_dim_init(AdgDim *dim) { - AdgDimPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(dim, ADG_TYPE_DIM, - AdgDimPrivate); - + AdgDimPrivate *data = adg_dim_get_instance_private(dim); data->dim_dress = ADG_DRESS_DIMENSION; data->ref1 = NULL; data->ref2 = NULL; @@ -252,23 +248,17 @@ adg_dim_init(AdgDim *dim) data->max = NULL; data->geometry.computed = FALSE; data->geometry.notice = NULL; - #if 0 /* This one is G_PARAM_CONSTRUCT, so set by property inizialization */ data->value = NULL #endif - - dim->data = data; } static void _adg_dispose(GObject *object) { - AdgEntity *entity; - AdgDimPrivate *data; - - entity = (AdgEntity *) object; - data = ((AdgDim *) object)->data; + AdgEntity *entity = (AdgEntity *) object; + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) object); if (data->quote.entity) { g_object_unref(data->quote.entity); @@ -291,8 +281,7 @@ _adg_dispose(GObject *object) static void _adg_finalize(GObject *object) { - AdgDimPrivate *data = ((AdgDim *) object)->data; - + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) object); g_free(data->value); g_free(data->min); g_free(data->max); @@ -305,7 +294,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgDimPrivate *data = ((AdgDim *) object)->data; + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) object); switch (prop_id) { case PROP_DIM_DRESS: @@ -348,13 +337,9 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgEntity *entity; - AdgDim *dim; - AdgDimPrivate *data; - - entity = (AdgEntity *) object; - dim = (AdgDim *) object; - data = dim->data; + AdgEntity *entity = (AdgEntity *) object; + AdgDim *dim = (AdgDim *) object; + AdgDimPrivate *data = adg_dim_get_instance_private(dim); switch (prop_id) { case PROP_DIM_DRESS: @@ -414,7 +399,7 @@ adg_dim_get_dim_style(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; + data = adg_dim_get_instance_private(dim); return data->dim_style; } @@ -457,8 +442,7 @@ adg_dim_get_dim_dress(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), ADG_DRESS_UNDEFINED); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->dim_dress; } @@ -578,8 +562,7 @@ adg_dim_get_ref1(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->ref1; } @@ -699,8 +682,7 @@ adg_dim_get_ref2(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->ref2; } @@ -820,8 +802,7 @@ adg_dim_get_pos(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->pos; } @@ -843,9 +824,8 @@ adg_dim_set_level(AdgDim *dim, gdouble level) g_return_if_fail(ADG_IS_DIM(dim)); - data = dim->data; + data = adg_dim_get_instance_private(dim); data->level = level; - g_object_notify((GObject *) dim, "level"); } @@ -866,8 +846,7 @@ adg_dim_get_level(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), 0); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->level; } @@ -908,8 +887,7 @@ adg_dim_get_outside(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), ADG_THREE_STATE_UNKNOWN); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->outside; } @@ -954,8 +932,7 @@ adg_dim_get_detached(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), ADG_THREE_STATE_UNKNOWN); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->detached; } @@ -1003,8 +980,7 @@ adg_dim_get_value(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->value; } @@ -1138,8 +1114,7 @@ adg_dim_get_min(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->min; } @@ -1182,8 +1157,7 @@ adg_dim_get_max(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->max; } @@ -1213,8 +1187,7 @@ adg_dim_get_quote(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->quote.entity; } @@ -1271,8 +1244,7 @@ adg_dim_has_geometry(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), FALSE); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->geometry.computed; } @@ -1297,8 +1269,7 @@ adg_dim_switch_geometry(AdgDim *dim, gboolean computed) g_return_if_fail(ADG_IS_DIM(dim)); - data = dim->data; - + data = adg_dim_get_instance_private(dim); data->geometry.computed = computed; } @@ -1321,8 +1292,7 @@ adg_dim_get_geometry_notice(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), NULL); - data = dim->data; - + data = adg_dim_get_instance_private(dim); return data->geometry.notice; } @@ -1348,9 +1318,9 @@ adg_dim_set_geometry_notice(AdgDim *dim, const gchar *notice) g_return_if_fail(ADG_IS_DIM(dim)); - data = dim->data; + data = adg_dim_get_instance_private(dim); - if (data->geometry.notice) + if (data->geometry.notice != NULL) g_free(data->geometry.notice); data->geometry.notice = g_strdup(notice); @@ -1440,7 +1410,7 @@ adg_dim_compute_geometry(AdgDim *dim) g_return_val_if_fail(ADG_IS_DIM(dim), FALSE); - data = dim->data; + data = adg_dim_get_instance_private(dim); if (data->geometry.computed) return TRUE; @@ -1458,7 +1428,7 @@ adg_dim_compute_geometry(AdgDim *dim) static void _adg_global_changed(AdgEntity *entity) { - AdgDimPrivate *data = ((AdgDim *) entity)->data; + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) entity); if (_ADG_OLD_ENTITY_CLASS->global_changed) _ADG_OLD_ENTITY_CLASS->global_changed(entity); @@ -1470,7 +1440,7 @@ _adg_global_changed(AdgEntity *entity) static void _adg_local_changed(AdgEntity *entity) { - AdgDimPrivate *data = ((AdgDim *) entity)->data; + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) entity); if (_ADG_OLD_ENTITY_CLASS->local_changed) _ADG_OLD_ENTITY_CLASS->local_changed(entity); @@ -1482,7 +1452,7 @@ _adg_local_changed(AdgEntity *entity) static void _adg_invalidate(AdgEntity *entity) { - AdgDimPrivate *data = ((AdgDim *) entity)->data; + AdgDimPrivate *data = adg_dim_get_instance_private((AdgDim *) entity); if (data->quote.value) { g_object_unref(data->quote.value); @@ -1521,7 +1491,7 @@ _adg_arrange(AdgEntity *entity) cairo_matrix_t map; dim = (AdgDim *) entity; - data = dim->data; + data = adg_dim_get_instance_private(dim); /* Resolve the dim style */ if (data->dim_style == NULL) @@ -1670,13 +1640,12 @@ _adg_set_outside(AdgDim *dim, AdgThreeState outside) g_return_val_if_fail(adg_is_enum_value(outside, ADG_TYPE_THREE_STATE), FALSE); - data = dim->data; + data = adg_dim_get_instance_private(dim); if (data->outside == outside) return FALSE; data->outside = outside; - return TRUE; } @@ -1685,25 +1654,21 @@ _adg_set_detached(AdgDim *dim, AdgThreeState detached) { AdgDimPrivate *data; - g_return_val_if_fail(adg_is_enum_value(detached, ADG_TYPE_THREE_STATE), - FALSE); + g_return_val_if_fail(adg_is_enum_value(detached, ADG_TYPE_THREE_STATE), FALSE); - data = dim->data; + data = adg_dim_get_instance_private(dim); if (data->detached == detached) return FALSE; data->detached = detached; - return TRUE; } static gboolean _adg_set_value(AdgDim *dim, const gchar *value) { - AdgDimPrivate *data; - - data = dim->data; + AdgDimPrivate *data = adg_dim_get_instance_private(dim); if (g_strcmp0(value, data->value) == 0) return FALSE; @@ -1722,7 +1687,7 @@ _adg_set_value(AdgDim *dim, const gchar *value) static gboolean _adg_set_min(AdgDim *dim, const gchar *min) { - AdgDimPrivate *data = dim->data; + AdgDimPrivate *data = adg_dim_get_instance_private(dim); if (g_strcmp0(min, data->min) == 0) return FALSE; @@ -1741,7 +1706,7 @@ _adg_set_min(AdgDim *dim, const gchar *min) static gboolean _adg_set_max(AdgDim *dim, const gchar *max) { - AdgDimPrivate *data = dim->data; + AdgDimPrivate *data = adg_dim_get_instance_private(dim); if (g_strcmp0(max, data->max) == 0) return FALSE; diff --git a/src/adg/adg-dim.h b/src/adg/adg-dim.h index 6d2b446c..f8925e1f 100644 --- a/src/adg/adg-dim.h +++ b/src/adg/adg-dim.h @@ -41,13 +41,12 @@ typedef struct _AdgDimClass AdgDimClass; struct _AdgDim { /*< private >*/ - AdgEntity parent; - gpointer data; + AdgEntity parent; }; struct _AdgDimClass { /*< private >*/ - AdgEntityClass parent_class; + AdgEntityClass parent_class; /*< public >*/ /* Virtual table */ diff --git a/src/adg/adg-edges.c b/src/adg/adg-edges.c index 8d7e7877..8a32f008 100644 --- a/src/adg/adg-edges.c +++ b/src/adg/adg-edges.c @@ -62,7 +62,7 @@ #define DEFAULT_CRITICAL_ANGLE (G_PI / 180) -G_DEFINE_TYPE(AdgEdges, adg_edges, ADG_TYPE_TRAIL) +G_DEFINE_TYPE_WITH_PRIVATE(AdgEdges, adg_edges, ADG_TYPE_TRAIL) enum { PROP_0, @@ -107,8 +107,6 @@ adg_edges_class_init(AdgEdgesClass *klass) model_class = (AdgModelClass *) klass; trail_class = (AdgTrailClass *) klass; - g_type_class_add_private(klass, sizeof(AdgEdgesPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; @@ -143,17 +141,12 @@ adg_edges_class_init(AdgEdgesClass *klass) static void adg_edges_init(AdgEdges *edges) { - AdgEdgesPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(edges, ADG_TYPE_EDGES, - AdgEdgesPrivate); - + AdgEdgesPrivate *data = adg_edges_get_instance_private(edges); data->source = NULL; data->critical_angle = DEFAULT_CRITICAL_ANGLE; data->axis_angle = 0; - data->cairo.path.status = CAIRO_STATUS_INVALID_PATH_DATA; data->cairo.array = NULL; - - edges->data = data; } static void @@ -180,11 +173,8 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgEdges *edges; - AdgEdgesPrivate *data; - - edges = (AdgEdges *) object; - data = edges->data; + AdgEdges *edges = (AdgEdges *) object; + AdgEdgesPrivate *data = adg_edges_get_instance_private(edges); switch (prop_id) { case PROP_SOURCE: @@ -206,14 +196,11 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgEdges *edges; - AdgEdgesPrivate *data; + AdgEdges *edges = (AdgEdges *) object; + AdgEdgesPrivate *data = adg_edges_get_instance_private(edges); gpointer tmp_pointer; gdouble tmp_double; - edges = (AdgEdges *) object; - data = edges->data; - switch (prop_id) { case PROP_SOURCE: tmp_pointer = data->source; @@ -304,8 +291,7 @@ adg_edges_get_source(AdgEdges *edges) g_return_val_if_fail(ADG_IS_EDGES(edges), NULL); - data = edges->data; - + data = adg_edges_get_instance_private(edges); return data->source; } @@ -366,7 +352,7 @@ adg_edges_get_axis_angle(AdgEdges *edges) g_return_val_if_fail(ADG_IS_EDGES(edges), 0); - data = edges->data; + data = adg_edges_get_instance_private(edges); return data->axis_angle; } @@ -410,7 +396,7 @@ adg_edges_get_critical_angle(AdgEdges *edges) g_return_val_if_fail(ADG_IS_EDGES(edges), 0); - data = edges->data; + data = adg_edges_get_instance_private(edges); return data->critical_angle; } @@ -435,7 +421,7 @@ _adg_get_cairo_path(AdgTrail *trail) cairo_matrix_t map; edges = (AdgEdges *) trail; - data = edges->data; + data = adg_edges_get_instance_private(edges); /* Check for cached path */ if (data->cairo.path.status == CAIRO_STATUS_SUCCESS) @@ -485,14 +471,14 @@ _adg_get_cairo_path(AdgTrail *trail) static void _adg_unset_source(AdgEdges *edges) { - AdgEdgesPrivate *data = edges->data; + AdgEdgesPrivate *data = adg_edges_get_instance_private(edges); data->source = NULL; } static void _adg_clear_cairo_path(AdgEdges *edges) { - AdgEdgesPrivate *data = edges->data; + AdgEdgesPrivate *data = adg_edges_get_instance_private(edges); if (data->cairo.array != NULL) { g_array_free(data->cairo.array, TRUE); diff --git a/src/adg/adg-edges.h b/src/adg/adg-edges.h index beb8f626..9803d7c1 100644 --- a/src/adg/adg-edges.h +++ b/src/adg/adg-edges.h @@ -42,13 +42,12 @@ typedef struct _AdgEdgesClass AdgEdgesClass; struct _AdgEdges { /*< private >*/ - AdgTrail parent; - gpointer data; + AdgTrail parent; }; struct _AdgEdgesClass { /*< private >*/ - AdgTrailClass parent_class; + AdgTrailClass parent_class; }; diff --git a/src/adg/adg-entity.c b/src/adg/adg-entity.c index 974bb5db..e3f2952e 100644 --- a/src/adg/adg-entity.c +++ b/src/adg/adg-entity.c @@ -100,7 +100,7 @@ #define _ADG_OLD_OBJECT_CLASS ((GObjectClass *) adg_entity_parent_class) -G_DEFINE_ABSTRACT_TYPE(AdgEntity, adg_entity, G_TYPE_INITIALLY_UNOWNED) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(AdgEntity, adg_entity, G_TYPE_INITIALLY_UNOWNED) enum { PROP_0, @@ -155,8 +155,6 @@ adg_entity_class_init(AdgEntityClass *klass) gobject_class = (GObjectClass *) klass; - g_type_class_add_private(klass, sizeof(AdgEntityPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -349,9 +347,7 @@ adg_entity_class_init(AdgEntityClass *klass) static void adg_entity_init(AdgEntity *entity) { - AdgEntityPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(entity, - ADG_TYPE_ENTITY, - AdgEntityPrivate); + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); data->floating = FALSE; data->parent = NULL; cairo_matrix_init_identity(&data->global_map); @@ -363,18 +359,13 @@ adg_entity_init(AdgEntity *entity) data->local.is_defined = FALSE; adg_matrix_copy(&data->local.matrix, adg_matrix_null()); data->extents.is_defined = FALSE; - - entity->data = data; } static void _adg_dispose(GObject *object) { - AdgEntity *entity; - AdgEntityPrivate *data; - - entity = (AdgEntity *) object; - data = entity->data; + AdgEntity *entity = (AdgEntity *) object; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); /* This call will emit a "notify" signal for parent. * Consequentially, the references to the old parent is dropped. */ @@ -393,11 +384,8 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgEntity *entity; - AdgEntityPrivate *data; - - entity = (AdgEntity *) object; - data = entity->data; + AdgEntity *entity = (AdgEntity *) object; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); switch (prop_id) { case PROP_FLOATING: @@ -425,7 +413,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgEntityPrivate *data = ((AdgEntity *) object)->data; + AdgEntityPrivate *data = adg_entity_get_instance_private((AdgEntity *) object); switch (prop_id) { case PROP_FLOATING: @@ -514,8 +502,7 @@ adg_entity_switch_floating(AdgEntity *entity, gboolean new_state) g_return_if_fail(ADG_IS_ENTITY(entity)); g_return_if_fail(adg_is_boolean_value(new_state)); - data = entity->data; - + data = adg_entity_get_instance_private(entity); data->floating = new_state; } @@ -539,8 +526,7 @@ adg_entity_has_floating(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), FALSE); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return data->floating; } @@ -613,8 +599,7 @@ adg_entity_get_parent(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return data->parent; } @@ -666,7 +651,7 @@ adg_entity_transform_global_map(AdgEntity *entity, g_return_if_fail(ADG_IS_ENTITY(entity)); g_return_if_fail(transformation != NULL); - data = entity->data; + data = adg_entity_get_instance_private(entity); adg_matrix_copy(&map, &data->global_map); adg_matrix_transform(&map, transformation, mode); @@ -692,8 +677,7 @@ adg_entity_get_global_map(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return &data->global_map; } @@ -719,8 +703,7 @@ adg_entity_get_global_matrix(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return &data->global.matrix; } @@ -772,7 +755,7 @@ adg_entity_transform_local_map(AdgEntity *entity, g_return_if_fail(ADG_IS_ENTITY(entity)); g_return_if_fail(transformation != NULL); - data = entity->data; + data = adg_entity_get_instance_private(entity); adg_matrix_copy(&map, &data->local_map); adg_matrix_transform(&map, transformation, mode); @@ -797,8 +780,7 @@ adg_entity_get_local_map(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return &data->local_map; } @@ -824,8 +806,7 @@ adg_entity_get_local_matrix(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return &data->local.matrix; } @@ -871,8 +852,7 @@ adg_entity_get_local_mix(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), ADG_MIX_UNDEFINED); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return data->local_mix; } @@ -897,7 +877,7 @@ adg_entity_set_extents(AdgEntity *entity, const CpmlExtents *extents) g_return_if_fail(ADG_IS_ENTITY(entity)); - data = entity->data; + data = adg_entity_get_instance_private(entity); if (extents == NULL) data->extents.is_defined = FALSE; @@ -932,8 +912,7 @@ adg_entity_get_extents(AdgEntity *entity) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; - + data = adg_entity_get_instance_private(entity); return &data->extents; } @@ -962,7 +941,7 @@ adg_entity_set_style(AdgEntity *entity, AdgDress dress, AdgStyle *style) g_return_if_fail(ADG_IS_ENTITY(entity)); - data = entity->data; + data = adg_entity_get_instance_private(entity); if (data->hash_styles == NULL && style == NULL) return; @@ -1017,7 +996,7 @@ adg_entity_get_style(AdgEntity *entity, AdgDress dress) g_return_val_if_fail(ADG_IS_ENTITY(entity), NULL); - data = entity->data; + data = adg_entity_get_instance_private(entity); if (data->hash_styles == NULL) return NULL; @@ -1061,7 +1040,7 @@ adg_entity_style(AdgEntity *entity, AdgDress dress) style = adg_entity_get_style(entity, dress); if (style == NULL) { - AdgEntityPrivate *data = entity->data; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); if (data->parent != NULL) style = adg_entity_style(data->parent, dress); @@ -1261,11 +1240,8 @@ _adg_destroy(AdgEntity *entity) static void _adg_set_parent(AdgEntity *entity, AdgEntity *parent) { - AdgEntityPrivate *data; - AdgEntity *old_parent; - - data = entity->data; - old_parent = data->parent; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); + AdgEntity *old_parent = data->parent; data->parent = parent; data->global.is_defined = FALSE; @@ -1277,13 +1253,9 @@ _adg_set_parent(AdgEntity *entity, AdgEntity *parent) static void _adg_global_changed(AdgEntity *entity) { - AdgEntityPrivate *data; - const cairo_matrix_t *map; - cairo_matrix_t *matrix; - - data = entity->data; - map = &data->global_map; - matrix = &data->global.matrix; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); + const cairo_matrix_t *map = &data->global_map; + cairo_matrix_t *matrix = &data->global.matrix; if (data->parent) { adg_matrix_copy(matrix, adg_entity_get_global_matrix(data->parent)); @@ -1296,13 +1268,9 @@ _adg_global_changed(AdgEntity *entity) static void _adg_local_changed(AdgEntity *entity) { - AdgEntityPrivate *data; - const cairo_matrix_t *map; - cairo_matrix_t *matrix; - - data = entity->data; - map = &data->local_map; - matrix = &data->local.matrix; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); + const cairo_matrix_t *map = &data->local_map; + cairo_matrix_t *matrix = &data->local.matrix; switch (data->local_mix) { case ADG_MIX_DISABLED: @@ -1359,7 +1327,7 @@ static void _adg_real_invalidate(AdgEntity *entity) { AdgEntityClass *klass = ADG_ENTITY_GET_CLASS(entity); - AdgEntityPrivate *data = entity->data; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); /* Do not raise any warning if invalidate() is not defined, * assuming entity does not have additional cache to be cleared */ @@ -1372,11 +1340,8 @@ _adg_real_invalidate(AdgEntity *entity) static void _adg_real_arrange(AdgEntity *entity) { - AdgEntityClass *klass; - AdgEntityPrivate *data; - - klass = ADG_ENTITY_GET_CLASS(entity); - data = entity->data; + AdgEntityClass *klass = ADG_ENTITY_GET_CLASS(entity); + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); /* Update the global matrix, if required */ if (!data->global.is_defined) { @@ -1421,7 +1386,7 @@ _adg_real_render(AdgEntity *entity, cairo_t *cr) cairo_restore(cr); if (_adg_show_extents) { - AdgEntityPrivate *data = entity->data; + AdgEntityPrivate *data = adg_entity_get_instance_private(entity); CpmlExtents *extents = &data->extents; if (extents->is_defined) { diff --git a/src/adg/adg-entity.h b/src/adg/adg-entity.h index 7559b9ca..05804398 100644 --- a/src/adg/adg-entity.h +++ b/src/adg/adg-entity.h @@ -42,13 +42,13 @@ typedef struct _AdgEntityClass AdgEntityClass; struct _AdgEntity { /*< private >*/ - GInitiallyUnowned parent; - gpointer data; + GInitiallyUnowned parent; }; struct _AdgEntityClass { /*< private >*/ - GInitiallyUnownedClass parent_class; + GInitiallyUnownedClass + parent_class; /*< public >*/ /* Signals */ void (*destroy) (AdgEntity *entity); diff --git a/src/adg/adg-fill-style.c b/src/adg/adg-fill-style.c index 46df1380..6a00faf2 100644 --- a/src/adg/adg-fill-style.c +++ b/src/adg/adg-fill-style.c @@ -60,7 +60,7 @@ #include "adg-fill-style-private.h" -G_DEFINE_ABSTRACT_TYPE(AdgFillStyle, adg_fill_style, ADG_TYPE_STYLE) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(AdgFillStyle, adg_fill_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -94,8 +94,6 @@ adg_fill_style_class_init(AdgFillStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgFillStylePrivate)); - gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -115,19 +113,14 @@ adg_fill_style_class_init(AdgFillStyleClass *klass) static void adg_fill_style_init(AdgFillStyle *fill_style) { - AdgFillStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(fill_style, - ADG_TYPE_FILL_STYLE, - AdgFillStylePrivate); - + AdgFillStylePrivate *data = adg_fill_style_get_instance_private(fill_style); data->pattern = NULL; - - fill_style->data = data; } static void _adg_finalize(GObject *object) { - AdgFillStylePrivate *data = ((AdgFillStyle *) object)->data; + AdgFillStylePrivate *data = adg_fill_style_get_instance_private((AdgFillStyle *) object); if (data->pattern != NULL) { cairo_pattern_destroy(data->pattern); @@ -139,7 +132,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgFillStylePrivate *data = ((AdgFillStyle *) object)->data; + AdgFillStylePrivate *data = adg_fill_style_get_instance_private((AdgFillStyle *) object); switch (prop_id) { case PROP_PATTERN: @@ -155,7 +148,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgFillStylePrivate *data = ((AdgFillStyle *) object)->data; + AdgFillStylePrivate *data = adg_fill_style_get_instance_private((AdgFillStyle *) object); cairo_pattern_t *old_pattern; switch (prop_id) { @@ -215,8 +208,7 @@ adg_fill_style_get_pattern(AdgFillStyle *fill_style) g_return_val_if_fail(ADG_IS_FILL_STYLE(fill_style), NULL); - data = fill_style->data; - + data = adg_fill_style_get_instance_private(fill_style); return data->pattern; } @@ -274,8 +266,7 @@ adg_fill_style_get_extents(AdgFillStyle *fill_style) g_return_val_if_fail(ADG_IS_FILL_STYLE(fill_style), NULL); - data = fill_style->data; - + data = adg_fill_style_get_instance_private(fill_style); return &data->extents; } @@ -283,8 +274,7 @@ adg_fill_style_get_extents(AdgFillStyle *fill_style) static void _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) { - AdgFillStylePrivate *data = ((AdgFillStyle *) style)->data; - + AdgFillStylePrivate *data = adg_fill_style_get_instance_private((AdgFillStyle *) style); if (data->pattern == NULL) g_warning(_("%s: pattern undefined for type '%s'"), G_STRLOC, g_type_name(G_OBJECT_TYPE(style))); @@ -295,7 +285,6 @@ _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) static void _adg_set_extents(AdgFillStyle *fill_style, const CpmlExtents *extents) { - AdgFillStylePrivate *data = fill_style->data; - + AdgFillStylePrivate *data = adg_fill_style_get_instance_private(fill_style); cpml_extents_copy(&data->extents, extents); } diff --git a/src/adg/adg-fill-style.h b/src/adg/adg-fill-style.h index 95292e92..04820159 100644 --- a/src/adg/adg-fill-style.h +++ b/src/adg/adg-fill-style.h @@ -42,13 +42,12 @@ typedef struct _AdgFillStyleClass AdgFillStyleClass; struct _AdgFillStyle { /*< private >*/ - AdgStyle parent; - gpointer data; + AdgStyle parent; }; struct _AdgFillStyleClass { /*< private >*/ - AdgStyleClass parent_class; + AdgStyleClass parent_class; /*< public >*/ /* Virtual table */ diff --git a/src/adg/adg-font-style.c b/src/adg/adg-font-style.c index 46c15fc1..564ffd8a 100644 --- a/src/adg/adg-font-style.c +++ b/src/adg/adg-font-style.c @@ -50,7 +50,7 @@ #define _ADG_OLD_OBJECT_CLASS ((GObjectClass *) adg_font_style_parent_class) -G_DEFINE_TYPE(AdgFontStyle, adg_font_style, ADG_TYPE_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgFontStyle, adg_font_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -90,8 +90,6 @@ adg_font_style_class_init(AdgFontStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgFontStylePrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -167,10 +165,7 @@ adg_font_style_class_init(AdgFontStyleClass *klass) static void adg_font_style_init(AdgFontStyle *font_style) { - AdgFontStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(font_style, - ADG_TYPE_FONT_STYLE, - AdgFontStylePrivate); - + AdgFontStylePrivate *data = adg_font_style_get_instance_private(font_style); data->color_dress = ADG_DRESS_COLOR; data->family = NULL; data->slant = CAIRO_FONT_SLANT_NORMAL; @@ -181,15 +176,13 @@ adg_font_style_init(AdgFontStyle *font_style) data->hint_style = CAIRO_HINT_STYLE_DEFAULT; data->hint_metrics = CAIRO_HINT_METRICS_DEFAULT; data->font = NULL; - - font_style->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgFontStylePrivate *data = ((AdgFontStyle *) object)->data; + AdgFontStylePrivate *data = adg_font_style_get_instance_private((AdgFontStyle *) object); switch (prop_id) { case PROP_COLOR_DRESS: @@ -229,13 +222,9 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgStyle *style; - AdgFontStyle *font_style; - AdgFontStylePrivate *data; - - style = (AdgStyle *) object; - font_style = (AdgFontStyle *) object; - data = font_style->data; + AdgStyle *style = (AdgStyle *) object; + AdgFontStyle *font_style = (AdgFontStyle *) object; + AdgFontStylePrivate *data = adg_font_style_get_instance_private(font_style); switch (prop_id) { case PROP_COLOR_DRESS: @@ -316,7 +305,7 @@ adg_font_style_new_options(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), NULL); - data = font_style->data; + data = adg_font_style_get_instance_private(font_style); options = cairo_font_options_create(); /* Check for cached font */ @@ -355,7 +344,7 @@ adg_font_style_get_scaled_font(AdgFontStyle *font_style, g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), NULL); g_return_val_if_fail(ctm != NULL, NULL); - data = font_style->data; + data = adg_font_style_get_instance_private(font_style); /* Check for cached font */ if (data->font != NULL) { @@ -428,8 +417,7 @@ adg_font_style_get_color_dress(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), ADG_DRESS_UNDEFINED); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->color_dress; } @@ -467,8 +455,7 @@ adg_font_style_get_family(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), NULL); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->family; } @@ -507,8 +494,7 @@ adg_font_style_get_slant(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_FONT_SLANT_NORMAL); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->slant; } @@ -547,8 +533,7 @@ adg_font_style_get_weight(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_FONT_WEIGHT_NORMAL); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->weight; } @@ -585,8 +570,7 @@ adg_font_style_get_size(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), 0.); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->size; } @@ -625,8 +609,7 @@ adg_font_style_get_antialias(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_ANTIALIAS_DEFAULT); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->antialias; } @@ -667,8 +650,7 @@ adg_font_style_get_subpixel_order(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_SUBPIXEL_ORDER_DEFAULT); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->subpixel_order; } @@ -708,8 +690,7 @@ adg_font_style_get_hint_style(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_HINT_STYLE_DEFAULT); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->hint_style; } @@ -748,8 +729,7 @@ adg_font_style_get_hint_metrics(AdgFontStyle *font_style) g_return_val_if_fail(ADG_IS_FONT_STYLE(font_style), CAIRO_HINT_METRICS_DEFAULT); - data = font_style->data; - + data = adg_font_style_get_instance_private(font_style); return data->hint_metrics; } @@ -757,11 +737,8 @@ adg_font_style_get_hint_metrics(AdgFontStyle *font_style) static void _adg_invalidate(AdgStyle *style) { - AdgFontStyle *font_style; - AdgFontStylePrivate *data; - - font_style = (AdgFontStyle *) style; - data = font_style->data; + AdgFontStyle *font_style = (AdgFontStyle *) style; + AdgFontStylePrivate *data = adg_font_style_get_instance_private(font_style); if (data->font != NULL) { cairo_scaled_font_destroy(data->font); @@ -783,7 +760,7 @@ _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) cairo_scaled_font_t *font; font_style = (AdgFontStyle *) style; - data = font_style->data; + data = adg_font_style_get_instance_private(font_style); adg_entity_apply_dress(entity, data->color_dress, cr); diff --git a/src/adg/adg-font-style.h b/src/adg/adg-font-style.h index 041953f8..8a3b1981 100644 --- a/src/adg/adg-font-style.h +++ b/src/adg/adg-font-style.h @@ -42,13 +42,12 @@ typedef struct _AdgFontStyleClass AdgFontStyleClass; struct _AdgFontStyle { /*< private >*/ - AdgStyle parent; - gpointer data; + AdgStyle parent; }; struct _AdgFontStyleClass { /*< private >*/ - AdgStyleClass parent_class; + AdgStyleClass parent_class; }; diff --git a/src/adg/adg-gtk-area.c b/src/adg/adg-gtk-area.c index b2e558e9..af335d9b 100644 --- a/src/adg/adg-gtk-area.c +++ b/src/adg/adg-gtk-area.c @@ -95,7 +95,7 @@ #define _ADG_OLD_WIDGET_CLASS ((GtkWidgetClass *) adg_gtk_area_parent_class) -G_DEFINE_TYPE(AdgGtkArea, adg_gtk_area, GTK_TYPE_DRAWING_AREA) +G_DEFINE_TYPE_WITH_PRIVATE(AdgGtkArea, adg_gtk_area, GTK_TYPE_DRAWING_AREA) enum { PROP_0, @@ -118,14 +118,11 @@ static guint _adg_signals[LAST_SIGNAL] = { 0 }; static const CpmlExtents * _adg_get_extents(AdgGtkArea *area) { - AdgGtkAreaPrivate *data; - AdgCanvas *canvas; - CpmlExtents old_extents; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private(area); + CpmlExtents old_extents = data->extents;; + AdgCanvas *canvas = data->canvas;; - data = area->data; - old_extents = data->extents; data->extents.is_defined = FALSE; - canvas = data->canvas; if (ADG_IS_CANVAS(canvas)) { const CpmlExtents *extents; @@ -154,7 +151,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgGtkAreaPrivate *data = ((AdgGtkArea *) object)->data; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) object); switch (prop_id) { case PROP_CANVAS: @@ -179,13 +176,9 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgGtkArea *area; - AdgGtkAreaPrivate *data; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) object); AdgCanvas *new_canvas, *old_canvas; - area = (AdgGtkArea *) object; - data = area->data; - switch (prop_id) { case PROP_CANVAS: new_canvas = g_value_get_object(value); @@ -196,7 +189,7 @@ _adg_set_property(GObject *object, guint prop_id, if (old_canvas != NULL) g_object_unref(old_canvas); data->canvas = new_canvas; - g_signal_emit(area, _adg_signals[CANVAS_CHANGED], 0, old_canvas); + g_signal_emit(object, _adg_signals[CANVAS_CHANGED], 0, old_canvas); } break; case PROP_FACTOR: @@ -218,7 +211,7 @@ _adg_set_property(GObject *object, guint prop_id, static void _adg_dispose(GObject *object) { - AdgGtkAreaPrivate *data = ((AdgGtkArea *) object)->data; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) object); if (data->canvas) { g_object_unref(data->canvas); @@ -248,8 +241,8 @@ _adg_dispose(GObject *object) static void _adg_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { - AdgGtkArea *area; - AdgGtkAreaPrivate *data; + AdgGtkArea *area = (AdgGtkArea *) widget; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private(area); const CpmlExtents *sheet; CpmlVector size; gdouble factor; @@ -257,9 +250,6 @@ _adg_size_allocate(GtkWidget *widget, GtkAllocation *allocation) if (_ADG_OLD_WIDGET_CLASS->size_allocate) _ADG_OLD_WIDGET_CLASS->size_allocate(widget, allocation); - area = (AdgGtkArea *) widget; - data = area->data; - sheet = _adg_get_extents(area); if (!sheet->is_defined || sheet->size.x <= 0 || sheet->size.y <= 0) return; @@ -297,11 +287,9 @@ static gboolean _adg_get_map(GtkWidget *widget, gboolean local_space, cairo_matrix_t *map, cairo_matrix_t *inverted) { - AdgGtkAreaPrivate *data; - AdgEntity *entity; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); + AdgEntity *entity = (AdgEntity *) data->canvas; - data = ((AdgGtkArea *) widget)->data; - entity = (AdgEntity *) data->canvas; if (entity == NULL) return FALSE; @@ -324,11 +312,8 @@ _adg_set_map(GtkWidget *widget, gboolean local_space, const cairo_matrix_t *map) { - AdgGtkAreaPrivate *data; - AdgEntity *entity; - - data = ((AdgGtkArea *) widget)->data; - entity = (AdgEntity *) data->canvas; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); + AdgEntity *entity = (AdgEntity *) data->canvas; if (entity == NULL) return; @@ -349,8 +334,6 @@ _adg_scroll_event(GtkWidget *widget, GdkEventScroll *event) { gboolean zoom_in, zoom_out, local_space, global_space; cairo_matrix_t map, inverted; - AdgGtkAreaPrivate *data; - double factor, x, y; zoom_in = event->direction == GDK_SCROLL_UP; zoom_out = event->direction == GDK_SCROLL_DOWN; @@ -359,10 +342,10 @@ _adg_scroll_event(GtkWidget *widget, GdkEventScroll *event) if ((zoom_in || zoom_out) && (local_space || global_space) && _adg_get_map(widget, local_space, &map, &inverted)) { - data = ((AdgGtkArea *) widget)->data; - factor = zoom_in ? data->factor : 1. / data->factor; - x = event->x; - y = event->y; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); + double factor = zoom_in ? data->factor : 1. / data->factor; + gdouble x = event->x; + gdouble y = event->y; cairo_matrix_transform_point(&inverted, &x, &y); cairo_matrix_scale(&map, factor, factor); @@ -386,9 +369,8 @@ _adg_scroll_event(GtkWidget *widget, GdkEventScroll *event) static gboolean _adg_button_press_event(GtkWidget *widget, GdkEventButton *event) { - AdgGtkAreaPrivate *data = ((AdgGtkArea *) widget)->data; - if (event->type == GDK_BUTTON_PRESS && event->button == 2) { + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); /* Remember the starting coordinates of a (probable) translation */ data->x_event = event->x; data->y_event = event->y; @@ -405,8 +387,6 @@ _adg_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) { gboolean translating, local_space, global_space; cairo_matrix_t map, inverted; - AdgGtkAreaPrivate *data; - double x, y; translating = (event->state & GDK_BUTTON2_MASK) == GDK_BUTTON2_MASK; local_space = (event->state & ADG_GTK_MODIFIERS) == 0; @@ -414,9 +394,9 @@ _adg_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) if (translating && (local_space || global_space) && _adg_get_map(widget, local_space, &map, &inverted)) { - data = ((AdgGtkArea *) widget)->data; - x = event->x - data->x_event; - y = event->y - data->y_event; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); + gdouble x = event->x - data->x_event; + gdouble y = event->y - data->y_event; cairo_matrix_transform_distance(&inverted, &x, &y); cairo_matrix_translate(&map, x, y); @@ -441,7 +421,7 @@ _adg_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) static void _adg_canvas_changed(AdgGtkArea *area, AdgCanvas *old_canvas) { - AdgGtkAreaPrivate *data = area->data; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private(area); data->initialized = FALSE; } @@ -450,11 +430,8 @@ _adg_canvas_changed(AdgGtkArea *area, AdgCanvas *old_canvas) static void _adg_size_request(GtkWidget *widget, GtkRequisition *requisition) { - AdgGtkArea *area; - const CpmlExtents *extents; - - area = (AdgGtkArea *) widget; - extents = _adg_get_extents(area); + AdgGtkArea *area = (AdgGtkArea *) widget; + const CpmlExtents *extents = _adg_get_extents(area); if (extents->is_defined) { requisition->width = extents->size.x; @@ -555,11 +532,8 @@ _adg_get_preferred_width_for_height(GtkWidget *widget, gint height, static gboolean _adg_draw(GtkWidget *widget, cairo_t *cr) { - AdgGtkAreaPrivate *data; - AdgCanvas *canvas; - - data = ((AdgGtkArea *) widget)->data; - canvas = data->canvas; + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget); + AdgCanvas *canvas = data->canvas; if (canvas != NULL) { cairo_transform(cr, &data->render_map); @@ -581,8 +555,6 @@ adg_gtk_area_class_init(AdgGtkAreaClass *klass) gobject_class = (GObjectClass *) klass; widget_class = (GtkWidgetClass *) klass; - g_type_class_add_private(klass, sizeof(AdgGtkAreaPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -682,21 +654,15 @@ adg_gtk_area_class_init(AdgGtkAreaClass *klass) static void adg_gtk_area_init(AdgGtkArea *area) { - AdgGtkAreaPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(area, - ADG_GTK_TYPE_AREA, - AdgGtkAreaPrivate); - + AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private(area); data->canvas = NULL; data->factor = 1.05; data->autozoom = FALSE; cairo_matrix_init_identity(&data->render_map); - data->initialized = FALSE; data->x_event = 0; data->y_event = 0; - area->data = data; - /* Enable GDK events to catch wheel rotation and drag */ gtk_widget_add_events((GtkWidget *) area, GDK_BUTTON_PRESS_MASK | @@ -778,8 +744,7 @@ adg_gtk_area_get_canvas(AdgGtkArea *area) g_return_val_if_fail(ADG_GTK_IS_AREA(area), NULL); - data = area->data; - + data = adg_gtk_area_get_instance_private(area); return data->canvas; } @@ -841,7 +806,7 @@ adg_gtk_area_transform_render_map(AdgGtkArea *area, g_return_if_fail(ADG_GTK_IS_AREA(area)); g_return_if_fail(transformation != NULL); - data = area->data; + data = adg_gtk_area_get_instance_private(area); adg_matrix_copy(&map, &data->render_map); adg_matrix_transform(&map, transformation, mode); @@ -866,8 +831,7 @@ adg_gtk_area_get_render_map(AdgGtkArea *area) g_return_val_if_fail(ADG_GTK_IS_AREA(area), NULL); - data = area->data; - + data = adg_gtk_area_get_instance_private(area); return &data->render_map; } @@ -921,7 +885,7 @@ adg_gtk_area_get_zoom(AdgGtkArea *area) g_return_val_if_fail(ADG_GTK_IS_AREA(area), 0.); - data = area->data; + data = adg_gtk_area_get_instance_private(area); return data->render_map.xx; } @@ -962,7 +926,7 @@ adg_gtk_area_get_factor(AdgGtkArea *area) g_return_val_if_fail(ADG_GTK_IS_AREA(area), 0.); - data = area->data; + data = adg_gtk_area_get_instance_private(area); return data->factor; } @@ -1004,7 +968,7 @@ adg_gtk_area_has_autozoom(AdgGtkArea *area) g_return_val_if_fail(ADG_GTK_IS_AREA(area), FALSE); - data = area->data; + data = adg_gtk_area_get_instance_private(area); return data->autozoom; } @@ -1028,7 +992,7 @@ adg_gtk_area_reset(AdgGtkArea *area) g_return_if_fail(ADG_GTK_IS_AREA(area)); - data = area->data; + data = adg_gtk_area_get_instance_private(area); cairo_matrix_init_identity(&data->render_map); sheet = _adg_get_extents(area); diff --git a/src/adg/adg-gtk-area.h b/src/adg/adg-gtk-area.h index 00ad5194..6bb5a887 100644 --- a/src/adg/adg-gtk-area.h +++ b/src/adg/adg-gtk-area.h @@ -41,13 +41,12 @@ typedef struct _AdgGtkAreaClass AdgGtkAreaClass; struct _AdgGtkArea { /*< private >*/ - GtkDrawingArea parent; - gpointer data; + GtkDrawingArea parent; }; struct _AdgGtkAreaClass { /*< private >*/ - GtkDrawingAreaClass parent_class; + GtkDrawingAreaClass parent_class; /*< public >*/ /* Signals */ diff --git a/src/adg/adg-gtk-layout.c b/src/adg/adg-gtk-layout.c index 19ae439f..3ecab006 100644 --- a/src/adg/adg-gtk-layout.c +++ b/src/adg/adg-gtk-layout.c @@ -63,7 +63,7 @@ enum { PROP_VADJUSTMENT }; -G_DEFINE_TYPE(AdgGtkLayout, adg_gtk_layout, ADG_GTK_TYPE_AREA) +G_DEFINE_TYPE_WITH_PRIVATE(AdgGtkLayout, adg_gtk_layout, ADG_GTK_TYPE_AREA) static void _adg_set_scroll_adjustments(GtkWidget *widget, @@ -87,7 +87,8 @@ enum { }; G_DEFINE_TYPE_WITH_CODE(AdgGtkLayout, adg_gtk_layout, ADG_GTK_TYPE_AREA, - G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL)) + G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL) + G_ADD_PRIVATE(AdgGtkLayout)) #endif @@ -106,7 +107,7 @@ _adg_set_parent_size(AdgGtkLayout *layout) if (gtk_widget_get_realized(widget)) return; - data = layout->data; + data = adg_gtk_layout_get_instance_private(layout); parent = gtk_widget_get_parent(widget); if (!GTK_IS_WIDGET(parent)) return; @@ -156,15 +157,13 @@ _adg_parent_set(GtkWidget *widget, GtkWidget *old_parent) static void _adg_update_adjustments(AdgGtkLayout *layout) { - AdgGtkArea *area; - AdgCanvas *canvas; + AdgGtkArea *area = (AdgGtkArea *) layout; + AdgCanvas *canvas = adg_gtk_area_get_canvas(area); const CpmlExtents *sheet, *viewport; AdgGtkLayoutPrivate *data; GtkAdjustment *hadj, *vadj; CpmlExtents surface; - area = (AdgGtkArea *) layout; - canvas = adg_gtk_area_get_canvas(area); if (canvas == NULL) return; @@ -172,7 +171,7 @@ _adg_update_adjustments(AdgGtkLayout *layout) if (sheet == NULL || !sheet->is_defined) return; - data = layout->data; + data = adg_gtk_layout_get_instance_private(layout); hadj = data->hadjustment; vadj = data->vadjustment; viewport = &data->viewport; @@ -210,11 +209,8 @@ _adg_update_adjustments(AdgGtkLayout *layout) static void _adg_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { - AdgGtkLayout *layout; - AdgGtkLayoutPrivate *data; - - layout = (AdgGtkLayout *) widget; - data = layout->data; + AdgGtkLayout *layout = (AdgGtkLayout *) widget; + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private(layout); if (_ADG_OLD_WIDGET_CLASS->size_allocate != NULL) _ADG_OLD_WIDGET_CLASS->size_allocate(widget, allocation); @@ -233,11 +229,8 @@ _adg_size_allocate(GtkWidget *widget, GtkAllocation *allocation) static void _adg_canvas_changed(AdgGtkArea *area, AdgCanvas *old_canvas) { - AdgGtkLayout *layout; - AdgGtkLayoutPrivate *data; - - layout = (AdgGtkLayout *) area; - data = layout->data; + AdgGtkLayout *layout = (AdgGtkLayout *) area; + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private(layout); if (_ADG_OLD_AREA_CLASS->canvas_changed != NULL) _ADG_OLD_AREA_CLASS->canvas_changed(area, old_canvas); @@ -274,7 +267,7 @@ _adg_value_changed(AdgGtkLayout *layout) return; area = (AdgGtkArea *) layout; - data = layout->data; + data = adg_gtk_layout_get_instance_private(layout); org.x = gtk_adjustment_get_value(data->hadjustment); org.y = gtk_adjustment_get_value(data->vadjustment); @@ -312,7 +305,7 @@ _adg_set_adjustment(AdgGtkLayout *layout, static void _adg_dispose(GObject *object) { - AdgGtkLayoutPrivate *data = ((AdgGtkLayout *) object)->data; + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private((AdgGtkLayout *) object); if (data->hadjustment != NULL) { g_object_unref(data->hadjustment); @@ -332,7 +325,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgGtkLayoutPrivate *data = ((AdgGtkLayout *) object)->data; + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private((AdgGtkLayout *) object); switch (prop_id) { case PROP_HADJUSTMENT: @@ -359,13 +352,10 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgGtkLayout *layout; - AdgGtkLayoutPrivate *data; + AdgGtkLayout *layout = (AdgGtkLayout *) object; + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private(layout); GtkAdjustment *adjustment; - layout = (AdgGtkLayout *) object; - data = layout->data; - switch (prop_id) { case PROP_HADJUSTMENT: adjustment = g_value_get_object(value); @@ -406,8 +396,6 @@ adg_gtk_layout_class_init(AdgGtkLayoutClass *klass) widget_class = (GtkWidgetClass *) klass; area_class = (AdgGtkAreaClass *) klass; - g_type_class_add_private(klass, sizeof(AdgGtkLayoutPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -468,16 +456,11 @@ adg_gtk_layout_class_init(AdgGtkLayoutClass *klass) static void adg_gtk_layout_init(AdgGtkLayout *layout) { - AdgGtkLayoutPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(layout, - ADG_GTK_TYPE_LAYOUT, - AdgGtkLayoutPrivate); - + AdgGtkLayoutPrivate *data = adg_gtk_layout_get_instance_private(layout); data->hadjustment = NULL; data->vadjustment = NULL; data->policy_stored = FALSE; data->viewport.is_defined = FALSE; - - layout->data = data; } @@ -558,8 +541,7 @@ adg_gtk_layout_get_hadjustment(AdgGtkLayout *layout) g_return_val_if_fail(ADG_GTK_IS_LAYOUT(layout), NULL); - data = layout->data; - + data = adg_gtk_layout_get_instance_private(layout); return data->hadjustment; } @@ -604,7 +586,6 @@ adg_gtk_layout_get_vadjustment(AdgGtkLayout *layout) g_return_val_if_fail(ADG_GTK_IS_LAYOUT(layout), NULL); - data = layout->data; - + data = adg_gtk_layout_get_instance_private(layout); return data->vadjustment; } diff --git a/src/adg/adg-gtk-layout.h b/src/adg/adg-gtk-layout.h index a1397a3b..29d79d57 100644 --- a/src/adg/adg-gtk-layout.h +++ b/src/adg/adg-gtk-layout.h @@ -41,13 +41,12 @@ typedef struct _AdgGtkLayoutClass AdgGtkLayoutClass; struct _AdgGtkLayout { /*< private >*/ - AdgGtkArea parent; - gpointer data; + AdgGtkArea parent; }; struct _AdgGtkLayoutClass { /*< private >*/ - AdgGtkAreaClass parent_class; + AdgGtkAreaClass parent_class; }; diff --git a/src/adg/adg-hatch.c b/src/adg/adg-hatch.c index 73ec8032..3ff72521 100644 --- a/src/adg/adg-hatch.c +++ b/src/adg/adg-hatch.c @@ -51,7 +51,7 @@ #include "adg-hatch-private.h" -G_DEFINE_TYPE(AdgHatch, adg_hatch, ADG_TYPE_STROKE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgHatch, adg_hatch, ADG_TYPE_STROKE) enum { PROP_0, @@ -81,8 +81,6 @@ adg_hatch_class_init(AdgHatchClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgHatchPrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -99,19 +97,15 @@ adg_hatch_class_init(AdgHatchClass *klass) static void adg_hatch_init(AdgHatch *hatch) { - AdgHatchPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(hatch, ADG_TYPE_HATCH, - AdgHatchPrivate); - + AdgHatchPrivate *data = adg_hatch_get_instance_private(hatch); data->fill_dress = ADG_DRESS_FILL_HATCH; - - hatch->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgHatchPrivate *data = ((AdgHatch *) object)->data; + AdgHatchPrivate *data = adg_hatch_get_instance_private((AdgHatch *) object); switch (prop_id) { case PROP_FILL_DRESS: @@ -127,11 +121,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgHatch *hatch; - AdgHatchPrivate *data; - - hatch = (AdgHatch *) object; - data = hatch->data; + AdgHatch *hatch = (AdgHatch *) object; + AdgHatchPrivate *data = adg_hatch_get_instance_private(hatch); switch (prop_id) { case PROP_FILL_DRESS: @@ -201,8 +192,7 @@ adg_hatch_get_fill_dress(AdgHatch *hatch) g_return_val_if_fail(ADG_IS_HATCH(hatch), ADG_DRESS_UNDEFINED); - data = hatch->data; - + data = adg_hatch_get_instance_private(hatch); return data->fill_dress; } @@ -210,19 +200,15 @@ adg_hatch_get_fill_dress(AdgHatch *hatch) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgHatch *hatch; - AdgStroke *stroke; - AdgHatchPrivate *data; - const cairo_path_t *cairo_path; - - hatch = (AdgHatch *) entity; - stroke = (AdgStroke *) entity; - data = hatch->data; - cairo_path = adg_trail_get_cairo_path(adg_stroke_get_trail(stroke)); + AdgHatch *hatch = (AdgHatch *) entity; + AdgStroke *stroke = (AdgStroke *) entity; + AdgTrail *trail = adg_stroke_get_trail(stroke); + const cairo_path_t *cairo_path = adg_trail_get_cairo_path(trail); if (cairo_path != NULL) { - AdgFillStyle *fill_style = (AdgFillStyle *) - adg_entity_style(entity, data->fill_dress); + AdgHatchPrivate *data = adg_hatch_get_instance_private(hatch); + AdgFillStyle *fill_style = + (AdgFillStyle *) adg_entity_style(entity, data->fill_dress); adg_fill_style_set_extents(fill_style, adg_entity_get_extents(entity)); diff --git a/src/adg/adg-hatch.h b/src/adg/adg-hatch.h index a7d64b47..124f232e 100644 --- a/src/adg/adg-hatch.h +++ b/src/adg/adg-hatch.h @@ -42,7 +42,6 @@ typedef struct _AdgHatchClass AdgHatchClass; struct _AdgHatch { /*< private >*/ AdgStroke parent; - gpointer data; }; struct _AdgHatchClass { diff --git a/src/adg/adg-ldim.c b/src/adg/adg-ldim.c index c5711716..cd1b30e8 100644 --- a/src/adg/adg-ldim.c +++ b/src/adg/adg-ldim.c @@ -59,7 +59,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_ldim_parent_class) -G_DEFINE_TYPE(AdgLDim, adg_ldim, ADG_TYPE_DIM) +G_DEFINE_TYPE_WITH_PRIVATE(AdgLDim, adg_ldim, ADG_TYPE_DIM) enum { PROP_0, @@ -118,8 +118,6 @@ adg_ldim_class_init(AdgLDimClass *klass) entity_class = (AdgEntityClass *) klass; dim_class = (AdgDimClass *) klass; - g_type_class_add_private(klass, sizeof(AdgLDimPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -156,10 +154,9 @@ adg_ldim_class_init(AdgLDimClass *klass) static void adg_ldim_init(AdgLDim *ldim) { - AdgLDimPrivate *data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); cairo_path_data_t move_to, line_to; - data = G_TYPE_INSTANCE_GET_PRIVATE(ldim, ADG_TYPE_LDIM, AdgLDimPrivate); move_to.header.type = CPML_MOVE; move_to.header.length = 2; line_to.header.type = CPML_LINE; @@ -186,8 +183,6 @@ adg_ldim_init(AdgLDim *ldim) data->trail = NULL; data->marker1 = NULL; data->marker2 = NULL; - - ldim->data = data; } static void @@ -206,7 +201,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgLDimPrivate *data = ((AdgLDim *) object)->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private((AdgLDim *) object); switch (prop_id) { case PROP_DIRECTION: @@ -228,11 +223,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgLDim *ldim; - AdgLDimPrivate *data; - - ldim = (AdgLDim *) object; - data = ldim->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private((AdgLDim *) object); switch (prop_id) { case PROP_DIRECTION: @@ -418,8 +409,7 @@ adg_ldim_get_direction(AdgLDim *ldim) g_return_val_if_fail(ADG_IS_LDIM(ldim), 0); - data = ldim->data; - + data = adg_ldim_get_instance_private(ldim); return data->direction; } @@ -459,8 +449,7 @@ adg_ldim_has_extension1(AdgLDim *ldim) g_return_val_if_fail(ADG_IS_LDIM(ldim), FALSE); - data = ldim->data; - + data = adg_ldim_get_instance_private(ldim); return data->has_extension1; } @@ -500,8 +489,7 @@ adg_ldim_has_extension2(AdgLDim *ldim) g_return_val_if_fail(ADG_IS_LDIM(ldim), FALSE); - data = ldim->data; - + data = adg_ldim_get_instance_private(ldim); return data->has_extension2; } @@ -509,7 +497,7 @@ adg_ldim_has_extension2(AdgLDim *ldim) static void _adg_global_changed(AdgEntity *entity) { - AdgLDimPrivate *data = ((AdgLDim *) entity)->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private((AdgLDim *) entity); _adg_unset_trail((AdgLDim *) entity); @@ -566,7 +554,7 @@ _adg_arrange(AdgEntity *entity) return; ldim = (AdgLDim *) entity; - data = ldim->data; + data = adg_ldim_get_instance_private(ldim); quote = adg_dim_get_quote(dim); _adg_update_entities(ldim); @@ -695,7 +683,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) return; ldim = (AdgLDim *) entity; - data = ldim->data; + data = adg_ldim_get_instance_private(ldim); dim_style = adg_dim_get_dim_style(dim); adg_style_apply((AdgStyle *) dim_style, entity, cr); @@ -726,7 +714,7 @@ _adg_default_value(AdgDim *dim) return g_strdup("undef"); ldim = (AdgLDim *) dim; - data = ldim->data; + data = adg_ldim_get_instance_private(ldim); value = data->geometry.distance; return adg_dim_get_text(dim, value); @@ -769,7 +757,7 @@ _adg_compute_geometry(AdgDim *dim) pos = (CpmlPair *) pos_point; ldim = (AdgLDim *) dim; - data = ldim->data; + data = adg_ldim_get_instance_private(ldim); cpml_vector_from_angle(&extension, data->direction); cpml_pair_copy(&baseline, &extension); @@ -799,14 +787,12 @@ _adg_compute_geometry(AdgDim *dim) static void _adg_update_shift(AdgLDim *ldim) { - AdgLDimPrivate *data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); AdgDimStyle *dim_style; gdouble from_offset, to_offset; gdouble baseline_spacing, level; CpmlVector vector; - data = ldim->data; - if (data->shift.is_arranged) return; @@ -831,13 +817,9 @@ _adg_update_shift(AdgLDim *ldim) static void _adg_update_entities(AdgLDim *ldim) { - AdgEntity *entity; - AdgLDimPrivate *data; - AdgDimStyle *dim_style; - - entity = (AdgEntity *) ldim; - data = ldim->data; - dim_style = adg_dim_get_dim_style((AdgDim *) ldim); + AdgEntity *entity = (AdgEntity *) ldim; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); + AdgDimStyle *dim_style = adg_dim_get_dim_style((AdgDim *) ldim); if (data->trail == NULL) data->trail = adg_trail_new(_adg_trail_callback, ldim); @@ -875,7 +857,7 @@ _adg_choose_flags(AdgLDim *ldim, gboolean *to_outside, gboolean *to_detach) detached != ADG_THREE_STATE_UNKNOWN) return; - data = ldim->data; + data = adg_ldim_get_instance_private(ldim); local = adg_entity_get_local_matrix((AdgEntity *) ldim); global = adg_entity_get_global_matrix((AdgEntity *) ldim); local_factor = abs(local->xx + local->yy) / 2; @@ -937,7 +919,7 @@ _adg_update_quote(AdgLDim *ldim, CpmlPair *base1, CpmlPair *base2, CpmlPair *pos if (quote_entity == NULL) return; - data = (AdgLDimPrivate *) ldim->data; + data = adg_ldim_get_instance_private(ldim); middle.x = (base1->x + base2->x) / 2; middle.y = (base1->y + base2->y) / 2; dir.x = base2->x - base1->x; @@ -1018,14 +1000,12 @@ _adg_update_quote(AdgLDim *ldim, CpmlPair *base1, CpmlPair *base2, CpmlPair *pos static void _adg_update_extents(AdgLDim *ldim) { - AdgLDimPrivate *data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); + AdgEntity *quote = (AdgEntity *) adg_dim_get_quote((AdgDim *) ldim); CpmlExtents new_extents; const CpmlExtents *extents; - AdgEntity *quote; AdgEntity *marker_entity; - data = ldim->data; - quote = (AdgEntity *) adg_dim_get_quote((AdgDim *) ldim); new_extents.is_defined = FALSE; /* The quote is always present (otherwise something bad happened) */ @@ -1063,7 +1043,7 @@ _adg_update_extents(AdgLDim *ldim) static void _adg_unset_trail(AdgLDim *ldim) { - AdgLDimPrivate *data = ldim->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); if (data->trail != NULL) adg_model_clear((AdgModel *) data->trail); @@ -1074,7 +1054,7 @@ _adg_unset_trail(AdgLDim *ldim) static void _adg_dispose_trail(AdgLDim *ldim) { - AdgLDimPrivate *data = ldim->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); if (data->trail != NULL) { g_object_unref(data->trail); @@ -1085,7 +1065,7 @@ _adg_dispose_trail(AdgLDim *ldim) static void _adg_dispose_markers(AdgLDim *ldim) { - AdgLDimPrivate *data = ldim->data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); if (data->marker1 != NULL) { g_object_unref(data->marker1); @@ -1101,11 +1081,7 @@ _adg_dispose_markers(AdgLDim *ldim) static cairo_path_t * _adg_trail_callback(AdgTrail *trail, gpointer user_data) { - AdgLDim *ldim; - AdgLDimPrivate *data; - - ldim = (AdgLDim *) user_data; - data = ldim->data; - + AdgLDim *ldim = (AdgLDim *) user_data; + AdgLDimPrivate *data = adg_ldim_get_instance_private(ldim); return &data->cairo.path; } diff --git a/src/adg/adg-ldim.h b/src/adg/adg-ldim.h index 7043f6ab..59d16b23 100644 --- a/src/adg/adg-ldim.h +++ b/src/adg/adg-ldim.h @@ -42,13 +42,12 @@ typedef struct _AdgLDimClass AdgLDimClass; struct _AdgLDim { /*< private >*/ - AdgDim parent; - gpointer data; + AdgDim parent; }; struct _AdgLDimClass { /*< private >*/ - AdgDimClass parent_class; + AdgDimClass parent_class; }; diff --git a/src/adg/adg-line-style.c b/src/adg/adg-line-style.c index 7a145dc7..7f488dd5 100644 --- a/src/adg/adg-line-style.c +++ b/src/adg/adg-line-style.c @@ -48,7 +48,7 @@ #include "adg-line-style-private.h" -G_DEFINE_TYPE(AdgLineStyle, adg_line_style, ADG_TYPE_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgLineStyle, adg_line_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -87,8 +87,6 @@ adg_line_style_class_init(AdgLineStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgLineStylePrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -145,10 +143,7 @@ adg_line_style_class_init(AdgLineStyleClass *klass) static void adg_line_style_init(AdgLineStyle *line_style) { - AdgLineStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(line_style, - ADG_TYPE_LINE_STYLE, - AdgLineStylePrivate); - + AdgLineStylePrivate *data = adg_line_style_get_instance_private(line_style); data->color_dress = ADG_DRESS_COLOR; data->width = 2.; data->cap = CAIRO_LINE_CAP_ROUND; @@ -156,15 +151,13 @@ adg_line_style_init(AdgLineStyle *line_style) data->miter_limit = 10.; data->antialias = CAIRO_ANTIALIAS_DEFAULT; data->dash = NULL; - - line_style->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgLineStylePrivate *data = ((AdgLineStyle *) object)->data; + AdgLineStylePrivate *data = adg_line_style_get_instance_private((AdgLineStyle *) object); switch (prop_id) { case PROP_COLOR_DRESS: @@ -198,11 +191,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgLineStyle *line_style; - AdgLineStylePrivate *data; - - line_style = (AdgLineStyle *) object; - data = line_style->data; + AdgLineStyle *line_style = (AdgLineStyle *) object; + AdgLineStylePrivate *data = adg_line_style_get_instance_private(line_style); switch (prop_id) { case PROP_COLOR_DRESS: @@ -289,8 +279,7 @@ adg_line_style_get_color_dress(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), ADG_DRESS_UNDEFINED); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->color_dress; } @@ -327,8 +316,7 @@ adg_line_style_get_width(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), 0.); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->width; } @@ -348,9 +336,8 @@ adg_line_style_set_cap(AdgLineStyle *line_style, cairo_line_cap_t cap) g_return_if_fail(ADG_IS_LINE_STYLE(line_style)); - data = line_style->data; + data = adg_line_style_get_instance_private(line_style); data->cap = cap; - g_object_notify((GObject *) line_style, "cap"); } @@ -372,8 +359,7 @@ adg_line_style_get_cap(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), CAIRO_LINE_CAP_BUTT); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->cap; } @@ -393,9 +379,8 @@ adg_line_style_set_join(AdgLineStyle *line_style, cairo_line_join_t join) g_return_if_fail(ADG_IS_LINE_STYLE(line_style)); - data = line_style->data; + data = adg_line_style_get_instance_private(line_style); data->join = join; - g_object_notify((GObject *) line_style, "join"); } @@ -417,8 +402,7 @@ adg_line_style_get_join(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), CAIRO_LINE_JOIN_MITER); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->join; } @@ -456,8 +440,7 @@ adg_line_style_get_miter_limit(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), 0.); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->miter_limit; } @@ -478,9 +461,8 @@ adg_line_style_set_antialias(AdgLineStyle *line_style, g_return_if_fail(ADG_IS_LINE_STYLE(line_style)); - data = line_style->data; + data = adg_line_style_get_instance_private(line_style); data->antialias = antialias; - g_object_notify((GObject *) line_style, "antialias"); } @@ -502,8 +484,7 @@ adg_line_style_get_antialias(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), CAIRO_ANTIALIAS_DEFAULT); - data = line_style->data; - + data = adg_line_style_get_instance_private(line_style); return data->antialias; } @@ -577,7 +558,7 @@ adg_line_style_get_dash(AdgLineStyle *line_style) g_return_val_if_fail(ADG_IS_LINE_STYLE(line_style), NULL); - data = line_style->data; + data = adg_line_style_get_instance_private(line_style); return data->dash; } @@ -585,7 +566,7 @@ adg_line_style_get_dash(AdgLineStyle *line_style) static gboolean _adg_change_dash(AdgLineStyle *line_style, const AdgDash *dash) { - AdgLineStylePrivate *data = line_style->data; + AdgLineStylePrivate *data = adg_line_style_get_instance_private(line_style); if (data->dash == dash) return FALSE; @@ -605,7 +586,7 @@ _adg_change_dash(AdgLineStyle *line_style, const AdgDash *dash) static void _adg_apply(AdgStyle *style, AdgEntity *entity, cairo_t *cr) { - AdgLineStylePrivate *data = ((AdgLineStyle *) style)->data; + AdgLineStylePrivate *data = adg_line_style_get_instance_private((AdgLineStyle *) style); adg_entity_apply_dress(entity, data->color_dress, cr); cairo_set_line_width(cr, data->width); diff --git a/src/adg/adg-line-style.h b/src/adg/adg-line-style.h index d483f55d..415e8c22 100644 --- a/src/adg/adg-line-style.h +++ b/src/adg/adg-line-style.h @@ -42,13 +42,12 @@ typedef struct _AdgLineStyleClass AdgLineStyleClass; struct _AdgLineStyle { /*< private >*/ - AdgStyle parent; - gpointer data; + AdgStyle parent; }; struct _AdgLineStyleClass { /*< private >*/ - AdgStyleClass parent_class; + AdgStyleClass parent_class; }; diff --git a/src/adg/adg-logo.c b/src/adg/adg-logo.c index 32fb36b2..a75fdd5c 100644 --- a/src/adg/adg-logo.c +++ b/src/adg/adg-logo.c @@ -48,7 +48,7 @@ #include "adg-logo-private.h" -G_DEFINE_TYPE(AdgLogo, adg_logo, ADG_TYPE_ENTITY) +G_DEFINE_TYPE_WITH_PRIVATE(AdgLogo, adg_logo, ADG_TYPE_ENTITY) enum { PROP_0, @@ -83,8 +83,6 @@ adg_logo_class_init(AdgLogoClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgLogoPrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -130,21 +128,17 @@ adg_logo_class_init(AdgLogoClass *klass) static void adg_logo_init(AdgLogo *logo) { - AdgLogoPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(logo, ADG_TYPE_LOGO, - AdgLogoPrivate); - + AdgLogoPrivate *data = adg_logo_get_instance_private(logo); data->symbol_dress = ADG_DRESS_LINE; data->screen_dress = ADG_DRESS_LINE; data->frame_dress = ADG_DRESS_LINE; - - logo->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgLogoPrivate *data = ((AdgLogo *) object)->data; + AdgLogoPrivate *data = adg_logo_get_instance_private((AdgLogo *) object); switch (prop_id) { case PROP_SYMBOL_DRESS: @@ -166,11 +160,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgLogo *logo; - AdgLogoPrivate *data; - - logo = (AdgLogo *) object; - data = logo->data; + AdgLogoPrivate *data = adg_logo_get_instance_private((AdgLogo *) object); switch (prop_id) { case PROP_SYMBOL_DRESS: @@ -244,8 +234,7 @@ adg_logo_get_symbol_dress(AdgLogo *logo) g_return_val_if_fail(ADG_IS_LOGO(logo), ADG_DRESS_UNDEFINED); - data = logo->data; - + data = adg_logo_get_instance_private(logo); return data->symbol_dress; } @@ -290,8 +279,7 @@ adg_logo_get_screen_dress(AdgLogo *logo) g_return_val_if_fail(ADG_IS_LOGO(logo), ADG_DRESS_UNDEFINED); - data = logo->data; - + data = adg_logo_get_instance_private(logo); return data->screen_dress; } @@ -336,8 +324,7 @@ adg_logo_get_frame_dress(AdgLogo *logo) g_return_val_if_fail(ADG_IS_LOGO(logo), ADG_DRESS_UNDEFINED); - data = logo->data; - + data = adg_logo_get_instance_private(logo); return data->frame_dress; } @@ -432,13 +419,10 @@ _adg_arrange_class(AdgLogoClass *logo_class) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgLogoClassPrivate *data_class; - AdgLogoPrivate *data; + AdgLogoClassPrivate *data_class = ADG_LOGO_GET_CLASS(entity)->data_class; + AdgLogoPrivate *data = adg_logo_get_instance_private((AdgLogo *) entity); const cairo_path_t *cairo_path; - data_class = ADG_LOGO_GET_CLASS(entity)->data_class; - data = ((AdgLogo *) entity)->data; - cairo_transform(cr, adg_entity_get_global_matrix(entity)); cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); diff --git a/src/adg/adg-logo.h b/src/adg/adg-logo.h index 2c7f0b5b..b6a2a591 100644 --- a/src/adg/adg-logo.h +++ b/src/adg/adg-logo.h @@ -42,7 +42,6 @@ typedef struct _AdgLogoClass AdgLogoClass; struct _AdgLogo { /*< private >*/ AdgEntity parent; - gpointer data; }; struct _AdgLogoClass { diff --git a/src/adg/adg-marker.c b/src/adg/adg-marker.c index 94884344..afb5422f 100644 --- a/src/adg/adg-marker.c +++ b/src/adg/adg-marker.c @@ -81,7 +81,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_marker_parent_class) -G_DEFINE_ABSTRACT_TYPE(AdgMarker, adg_marker, ADG_TYPE_ENTITY) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(AdgMarker, adg_marker, ADG_TYPE_ENTITY) enum { PROP_0, @@ -121,8 +121,6 @@ adg_marker_class_init(AdgMarkerClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgMarkerPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->set_property = _adg_set_property; gobject_class->get_property = _adg_get_property; @@ -171,9 +169,7 @@ adg_marker_class_init(AdgMarkerClass *klass) static void adg_marker_init(AdgMarker *marker) { - AdgMarkerPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(marker, - ADG_TYPE_MARKER, - AdgMarkerPrivate); + AdgMarkerPrivate *data = adg_marker_get_instance_private(marker); data->trail = NULL; data->n_segment = 0; data->backup_segment = NULL; @@ -181,8 +177,6 @@ adg_marker_init(AdgMarker *marker) data->pos = 0; data->size = 10; data->model = NULL; - - marker->data = data; } static void @@ -202,7 +196,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgMarkerPrivate *data = ((AdgMarker *) object)->data; + AdgMarkerPrivate *data = adg_marker_get_instance_private((AdgMarker *) object); switch (prop_id) { case PROP_TRAIL: @@ -231,7 +225,7 @@ _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { AdgMarker *marker = (AdgMarker *) object; - AdgMarkerPrivate *data = ((AdgMarker *) object)->data; + AdgMarkerPrivate *data = adg_marker_get_instance_private(marker); AdgModel *old_model; switch (prop_id) { @@ -307,8 +301,7 @@ adg_marker_get_trail(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->trail; } @@ -349,8 +342,7 @@ adg_marker_get_n_segment(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), 0); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->n_segment; } @@ -403,8 +395,7 @@ adg_marker_get_segment(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return &data->segment; } @@ -436,7 +427,7 @@ adg_marker_backup_segment(AdgMarker *marker) g_return_if_fail(ADG_IS_MARKER(marker)); - data = marker->data; + data = adg_marker_get_instance_private(marker); if (data->n_segment > 0) { g_return_if_fail(data->trail != NULL); @@ -483,8 +474,7 @@ adg_marker_get_backup_segment(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->backup_segment; } @@ -524,8 +514,7 @@ adg_marker_get_pos(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), 0); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->pos; } @@ -563,8 +552,7 @@ adg_marker_get_size(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), 0); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->size; } @@ -614,8 +602,7 @@ adg_marker_get_model(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - data = marker->data; - + data = adg_marker_get_instance_private(marker); return data->model; } @@ -643,7 +630,7 @@ adg_marker_model(AdgMarker *marker) g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - data = marker->data; + data = adg_marker_get_instance_private(marker); if (data->model == NULL) { /* Model not found: regenerate it */ @@ -660,7 +647,7 @@ adg_marker_model(AdgMarker *marker) static void _adg_local_changed(AdgEntity *entity) { - AdgMarkerPrivate *data = ((AdgMarker *) entity)->data; + AdgMarkerPrivate *data = adg_marker_get_instance_private((AdgMarker *) entity); /* On invalid segments, segment.data is not set: do not crash */ if (data->segment.data != NULL) { @@ -698,7 +685,7 @@ _adg_invalidate(AdgEntity *entity) static void _adg_clear_trail(AdgMarker *marker) { - AdgMarkerPrivate *data = marker->data; + AdgMarkerPrivate *data = adg_marker_get_instance_private(marker); if (data->trail && data->backup_segment) { /* Restore the original segment in the old trail */ @@ -723,7 +710,7 @@ _adg_set_segment(AdgMarker *marker, AdgTrail *trail, guint n_segment) if (trail && n_segment > 0 && !adg_trail_put_segment(trail, n_segment, &segment)) return FALSE; - data = marker->data; + data = adg_marker_get_instance_private(marker); /* Do not try to cache results! Although @trail and @n_segment * could be the same, the internal CpmlSegment could change. diff --git a/src/adg/adg-marker.h b/src/adg/adg-marker.h index 985d5852..98f1ba90 100644 --- a/src/adg/adg-marker.h +++ b/src/adg/adg-marker.h @@ -42,7 +42,6 @@ typedef struct _AdgMarkerClass AdgMarkerClass; struct _AdgMarker { /*< private >*/ AdgEntity parent; - gpointer data; }; struct _AdgMarkerClass { diff --git a/src/adg/adg-model.c b/src/adg/adg-model.c index 4f3e5812..9c27dd22 100644 --- a/src/adg/adg-model.c +++ b/src/adg/adg-model.c @@ -120,7 +120,7 @@ #define _ADG_OLD_OBJECT_CLASS ((GObjectClass *) adg_model_parent_class) -G_DEFINE_ABSTRACT_TYPE(AdgModel, adg_model, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(AdgModel, adg_model, G_TYPE_OBJECT) enum { PROP_0, @@ -171,8 +171,6 @@ adg_model_class_init(AdgModelClass *klass) gobject_class = (GObjectClass *) klass; - g_type_class_add_private(klass, sizeof(AdgModelPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->set_property = _adg_set_property; @@ -329,12 +327,8 @@ adg_model_class_init(AdgModelClass *klass) static void adg_model_init(AdgModel *model) { - AdgModelPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(model, ADG_TYPE_MODEL, - AdgModelPrivate); - + AdgModelPrivate *data = adg_model_get_instance_private(model); data->dependencies = NULL; - - model->data = data; } static void @@ -343,13 +337,10 @@ _adg_dispose(GObject *object) static gboolean is_disposed = FALSE; if (G_UNLIKELY(!is_disposed)) { - AdgModel *model; - AdgModelPrivate *data; + AdgModel *model = (AdgModel *) object; + AdgModelPrivate *data = adg_model_get_instance_private(model); AdgEntity *entity; - model = (AdgModel *) object; - data = model->data; - /* Remove all the dependencies: this will emit a * "remove-dependency" signal for every dependency, dropping * all references from entities to this model */ @@ -447,8 +438,7 @@ adg_model_get_dependencies(AdgModel *model) g_return_val_if_fail(ADG_IS_MODEL(model), NULL); - data = model->data; - + data = adg_model_get_instance_private(model); return data->dependencies; } @@ -473,7 +463,7 @@ adg_model_foreach_dependency(AdgModel *model, AdgDependencyFunc callback, g_return_if_fail(ADG_IS_MODEL(model)); g_return_if_fail(callback != NULL); - data = model->data; + data = adg_model_get_instance_private(model); dependency = data->dependencies; while (dependency) { @@ -593,7 +583,7 @@ adg_model_foreach_named_pair(AdgModel *model, AdgNamedPairFunc callback, g_return_if_fail(ADG_IS_MODEL(model)); g_return_if_fail(callback != NULL); - data = model->data; + data = adg_model_get_instance_private(model); if (data->named_pairs == NULL) return; @@ -671,7 +661,7 @@ _adg_add_dependency(AdgModel *model, AdgEntity *entity) if (entity == NULL) return; - data = model->data; + data = adg_model_get_instance_private(model); /* The prepend operation is more efficient */ data->dependencies = g_slist_prepend(data->dependencies, entity); @@ -682,11 +672,8 @@ _adg_add_dependency(AdgModel *model, AdgEntity *entity) static void _adg_remove_dependency(AdgModel *model, AdgEntity *entity) { - AdgModelPrivate *data; - GSList *node; - - data = model->data; - node = g_slist_find(data->dependencies, entity); + AdgModelPrivate *data = adg_model_get_instance_private(model); + GSList *node = g_slist_find(data->dependencies, entity); if (node == NULL) { g_warning(_("%s: attempting to remove the nonexistent dependency " @@ -704,7 +691,7 @@ _adg_remove_dependency(AdgModel *model, AdgEntity *entity) static void _adg_reset(AdgModel *model) { - AdgModelPrivate *data = model->data; + AdgModelPrivate *data = adg_model_get_instance_private(model); adg_model_clear(model); @@ -717,14 +704,11 @@ _adg_reset(AdgModel *model) static void _adg_set_named_pair(AdgModel *model, const gchar *name, const CpmlPair *pair) { - AdgModelPrivate *data; - GHashTable **hash; + AdgModelPrivate *data = adg_model_get_instance_private(model); + GHashTable **hash = &data->named_pairs; gchar *key; CpmlPair *value; - data = model->data; - hash = &data->named_pairs; - if (pair == NULL) { /* Delete mode: raise a warning if @name is not found */ if (*hash == NULL || !g_hash_table_remove(*hash, name)) @@ -747,7 +731,7 @@ _adg_set_named_pair(AdgModel *model, const gchar *name, const CpmlPair *pair) static const CpmlPair * _adg_named_pair(AdgModel *model, const gchar *name) { - AdgModelPrivate *data = model->data; + AdgModelPrivate *data = adg_model_get_instance_private(model); if (data->named_pairs == NULL) return NULL; diff --git a/src/adg/adg-model.h b/src/adg/adg-model.h index c7b880ee..286798f4 100644 --- a/src/adg/adg-model.h +++ b/src/adg/adg-model.h @@ -49,13 +49,12 @@ typedef void (*AdgNamedPairFunc) (AdgModel *model, struct _AdgModel { /*< private >*/ - GObject parent; - gpointer data; + GObject parent; }; struct _AdgModelClass { /*< private >*/ - GObjectClass parent_class; + GObjectClass parent_class; /*< public >*/ /* Virtual table */ diff --git a/src/adg/adg-pango-style.c b/src/adg/adg-pango-style.c index 26e34194..25813e8d 100644 --- a/src/adg/adg-pango-style.c +++ b/src/adg/adg-pango-style.c @@ -51,7 +51,7 @@ #define _ADG_OLD_STYLE_CLASS ((AdgStyleClass *) adg_pango_style_parent_class) -G_DEFINE_TYPE(AdgPangoStyle, adg_pango_style, ADG_TYPE_FONT_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgPangoStyle, adg_pango_style, ADG_TYPE_FONT_STYLE) enum { PROP_0, @@ -83,8 +83,6 @@ adg_pango_style_class_init(AdgPangoStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgPangoStylePrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -102,21 +100,16 @@ adg_pango_style_class_init(AdgPangoStyleClass *klass) static void adg_pango_style_init(AdgPangoStyle *pango_style) { - AdgPangoStylePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(pango_style, - ADG_TYPE_PANGO_STYLE, - AdgPangoStylePrivate); - + AdgPangoStylePrivate *data = adg_pango_style_get_instance_private(pango_style); data->font_description = NULL; data->spacing = 0; - - pango_style->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgPangoStylePrivate *data = ((AdgPangoStyle *) object)->data; + AdgPangoStylePrivate *data = adg_pango_style_get_instance_private((AdgPangoStyle *) object); switch (prop_id) { case PROP_SPACING: @@ -132,7 +125,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgPangoStylePrivate *data = ((AdgPangoStyle *) object)->data; + AdgPangoStylePrivate *data = adg_pango_style_get_instance_private((AdgPangoStyle *) object); switch (prop_id) { case PROP_SPACING: @@ -178,7 +171,7 @@ adg_pango_style_get_description(AdgPangoStyle *pango_style) g_return_val_if_fail(ADG_IS_PANGO_STYLE(pango_style), NULL); - data = pango_style->data; + data = adg_pango_style_get_instance_private(pango_style); if (data->font_description == NULL) { AdgFontStyle *font_style; @@ -267,8 +260,7 @@ adg_pango_style_get_spacing(AdgPangoStyle *pango_style) g_return_val_if_fail(ADG_IS_PANGO_STYLE(pango_style), 0); - data = pango_style->data; - + data = adg_pango_style_get_instance_private(pango_style); return data->spacing; } @@ -276,11 +268,8 @@ adg_pango_style_get_spacing(AdgPangoStyle *pango_style) static void _adg_invalidate(AdgStyle *style) { - AdgPangoStyle *pango_style; - AdgPangoStylePrivate *data; - - pango_style = (AdgPangoStyle *) style; - data = pango_style->data; + AdgPangoStyle *pango_style = (AdgPangoStyle *) style; + AdgPangoStylePrivate *data = adg_pango_style_get_instance_private(pango_style); if (data->font_description != NULL) { pango_font_description_free(data->font_description); diff --git a/src/adg/adg-pango-style.h b/src/adg/adg-pango-style.h index 1fb0ba7c..374ab3ad 100644 --- a/src/adg/adg-pango-style.h +++ b/src/adg/adg-pango-style.h @@ -42,13 +42,12 @@ typedef struct _AdgPangoStyleClass AdgPangoStyleClass; struct _AdgPangoStyle { /*< private >*/ - AdgFontStyle parent; - gpointer data; + AdgFontStyle parent; }; struct _AdgPangoStyleClass { /*< private >*/ - AdgFontStyleClass parent_class; + AdgFontStyleClass parent_class; }; diff --git a/src/adg/adg-path.c b/src/adg/adg-path.c index ebb65f77..59db36a5 100644 --- a/src/adg/adg-path.c +++ b/src/adg/adg-path.c @@ -77,7 +77,7 @@ (gpointer) ((guint8 *) (ptr) - (guint8 *) (from) + (guint8 *) (to)) -G_DEFINE_TYPE(AdgPath, adg_path, ADG_TYPE_TRAIL) +G_DEFINE_TYPE_WITH_PRIVATE(AdgPath, adg_path, ADG_TYPE_TRAIL) static void _adg_finalize (GObject *object); @@ -135,8 +135,6 @@ adg_path_class_init(AdgPathClass *klass) model_class = (AdgModelClass *) klass; trail_class = (AdgTrailClass *) klass; - g_type_class_add_private(klass, sizeof(AdgPathPrivate)); - gobject_class->finalize = _adg_finalize; model_class->clear = _adg_clear; @@ -148,9 +146,7 @@ adg_path_class_init(AdgPathClass *klass) static void adg_path_init(AdgPath *path) { - AdgPathPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(path, ADG_TYPE_PATH, - AdgPathPrivate); - + AdgPathPrivate *data = adg_path_get_instance_private(path); data->cp_is_valid = FALSE; data->cp.x = 0; data->cp.y = 0; @@ -165,18 +161,13 @@ adg_path_init(AdgPath *path) data->over.org = NULL; data->over.data = NULL; data->operation.action = ADG_ACTION_NONE; - - path->data = data; } static void _adg_finalize(GObject *object) { - AdgPath *path; - AdgPathPrivate *data; - - path = (AdgPath *) object; - data = path->data; + AdgPath *path = (AdgPath *) object; + AdgPathPrivate *data = adg_path_get_instance_private(path); g_array_free(data->cairo.array, TRUE); _adg_clear_operation(path); @@ -228,7 +219,7 @@ adg_path_get_current_point(AdgPath *path) g_return_val_if_fail(ADG_IS_PATH(path), NULL); - data = path->data; + data = adg_path_get_instance_private(path); if (!data->cp_is_valid) return NULL; @@ -254,8 +245,7 @@ adg_path_has_current_point(AdgPath *path) g_return_val_if_fail(ADG_IS_PATH(path), FALSE); - data = path->data; - + data = adg_path_get_instance_private(path); return data->cp_is_valid; } @@ -281,7 +271,7 @@ adg_path_last_primitive(AdgPath *path) g_return_val_if_fail(ADG_IS_PATH(path), NULL); - data = path->data; + data = adg_path_get_instance_private(path); /* Directly return NULL instead of returning an undefined primitive */ if (data->last.org == NULL || data->last.data == NULL) @@ -315,7 +305,7 @@ adg_path_over_primitive(AdgPath *path) g_return_val_if_fail(ADG_IS_PATH(path), NULL); - data = path->data; + data = adg_path_get_instance_private(path); /* Directly return NULL instead of returning an undefined primitive */ if (data->over.org == NULL || data->over.data == NULL) @@ -433,12 +423,11 @@ adg_path_append_array(AdgPath *path, CpmlPrimitiveType type, /* Not enough pairs have been provided */ g_warning(_("%s: null pair caught while parsing arguments"), G_STRLOC); } else { - AdgPathPrivate *data; + AdgPathPrivate *data = adg_path_get_instance_private(path); CpmlPrimitive primitive; cairo_path_data_t org; /* Save a copy of the current point as primitive origin */ - data = path->data; cpml_pair_to_cairo(&data->cp, &org); /* Prepend the cairo header */ @@ -481,7 +470,7 @@ adg_path_append_primitive(AdgPath *path, const CpmlPrimitive *primitive) g_return_if_fail(primitive->org != NULL); g_return_if_fail(primitive->data != NULL); - data = path->data; + data = adg_path_get_instance_private(path); g_return_if_fail(primitive->org->point.x == data->cp.x && primitive->org->point.y == data->cp.y); @@ -515,7 +504,7 @@ adg_path_append_segment(AdgPath *path, const CpmlSegment *segment) g_return_if_fail(segment->data != NULL); - data = path->data; + data = adg_path_get_instance_private(path); _adg_clear_parent((AdgModel *) path); data->cairo.array = g_array_append_vals(data->cairo.array, @@ -541,7 +530,7 @@ adg_path_append_cairo_path(AdgPath *path, const cairo_path_t *cairo_path) g_return_if_fail(ADG_IS_PATH(path)); g_return_if_fail(cairo_path != NULL); - data = path->data; + data = adg_path_get_instance_private(path); _adg_clear_parent((AdgModel *) path); data->cairo.array = g_array_append_vals(data->cairo.array, @@ -597,14 +586,15 @@ adg_path_append_trail(AdgPath *path, AdgTrail *trail) void adg_path_remove_primitive(AdgPath *path) { + AdgPathPrivate *data; const CpmlPrimitive *over; guint len; g_return_if_fail(ADG_IS_PATH(path)); - AdgPathPrivate *data = path->data; - + data = adg_path_get_instance_private(path); over = adg_path_over_primitive(path); + if (over) { cairo_path_data_t *end = over->data + over->data->header.length; len = end - (cairo_path_data_t *) (data->cairo.array)->data; @@ -860,7 +850,8 @@ adg_path_arc(AdgPath *path, const CpmlPair *center, gdouble r, g_return_if_fail(ADG_IS_PATH(path)); g_return_if_fail(center != NULL); - data = path->data; + data = adg_path_get_instance_private(path); + cpml_vector_from_angle(&p[0], start); cpml_vector_from_angle(&p[1], (start+end) / 2); cpml_vector_from_angle(&p[2], end); @@ -1111,11 +1102,8 @@ adg_path_reflect_explicit(AdgPath *path, gdouble x, gdouble y) static void _adg_clear(AdgModel *model) { - AdgPath *path; - AdgPathPrivate *data; - - path = (AdgPath *) model; - data = path->data; + AdgPath *path = (AdgPath *) model; + AdgPathPrivate *data = adg_path_get_instance_private(path); g_array_set_size(data->cairo.array, 0); _adg_clear_operation(path); @@ -1148,7 +1136,7 @@ _adg_get_cairo_path(AdgTrail *trail) static cairo_path_t * _adg_read_cairo_path(AdgPath *path) { - AdgPathPrivate *data = path->data; + AdgPathPrivate *data = adg_path_get_instance_private(path); cairo_path_t *cairo_path = &data->cairo.path; GArray *array = data->cairo.array; @@ -1188,13 +1176,11 @@ _adg_primitive_remap(CpmlPrimitive *primitive, gpointer to, static void _adg_rescan(AdgPath *path) { - AdgPathPrivate *data; + AdgPathPrivate *data = adg_path_get_instance_private(path); + CpmlPrimitive *last = &data->last; + CpmlPrimitive *over = &data->over; CpmlSegment segment; - CpmlPrimitive current, *last, *over; - - data = path->data; - last = &data->last; - over = &data->over; + CpmlPrimitive current; last->segment = NULL; last->org = NULL; @@ -1229,18 +1215,13 @@ _adg_rescan(AdgPath *path) static void _adg_append_primitive(AdgPath *path, CpmlPrimitive *current) { - AdgPathPrivate *data; - cairo_path_data_t *path_data; - CpmlPrimitiveType type; - int length; + AdgPathPrivate *data = adg_path_get_instance_private(path); + cairo_path_data_t *path_data = current->data; + int length = path_data->header.length; + CpmlPrimitiveType type = path_data->header.type; gconstpointer old_data; gpointer new_data; - data = path->data; - path_data = current->data; - length = path_data->header.length; - type = path_data->header.type; - /* Execute any pending operation */ _adg_do_operation(path, path_data); @@ -1285,11 +1266,8 @@ _adg_append_primitive(AdgPath *path, CpmlPrimitive *current) static void _adg_clear_operation(AdgPath *path) { - AdgPathPrivate *data; - AdgOperation *operation; - - data = path->data; - operation = &data->operation; + AdgPathPrivate *data = adg_path_get_instance_private(path); + AdgOperation *operation = &data->operation; if (operation->action != ADG_ACTION_NONE) { g_warning(_("%s: a '%s' operation is still active while clearing the path"), @@ -1305,14 +1283,11 @@ _adg_clear_operation(AdgPath *path) static gboolean _adg_append_operation(AdgPath *path, gint action, ...) { - AdgPathPrivate *data; + AdgPathPrivate *data = adg_path_get_instance_private(path); + AdgAction real_action = (AdgAction) action; AdgOperation *operation; - AdgAction real_action; va_list var_args; - real_action = (AdgAction) action; - data = path->data; - if (data->last.data == NULL) { g_warning(_("%s: requested a '%s' operation on a path without current primitive"), G_STRLOC, _adg_action_name(real_action)); @@ -1400,14 +1375,12 @@ _adg_append_operation(AdgPath *path, gint action, ...) static void _adg_do_operation(AdgPath *path, cairo_path_data_t *path_data) { - AdgPathPrivate *data; - AdgAction action; + AdgPathPrivate *data = adg_path_get_instance_private(path); + AdgAction action = data->operation.action; CpmlSegment segment; CpmlPrimitive current; cairo_path_data_t current_org; - data = path->data; - action = data->operation.action; cpml_segment_from_cairo(&segment, _adg_read_cairo_path(path)); /* Construct the current primitive, that is the primitive to be @@ -1444,17 +1417,13 @@ _adg_do_action(AdgPath *path, AdgAction action, CpmlPrimitive *primitive) static void _adg_do_chamfer(AdgPath *path, CpmlPrimitive *current) { - AdgPathPrivate *data; - CpmlPrimitive *last; - gdouble delta1, delta2; - gdouble len1, len2; + AdgPathPrivate *data = adg_path_get_instance_private(path); + CpmlPrimitive *last = &data->last; + gdouble delta1 = data->operation.data.chamfer.delta1; + gdouble len1 = cpml_primitive_get_length(last); + gdouble delta2, len2; CpmlPair pair; - data = path->data; - last = &data->last; - delta1 = data->operation.data.chamfer.delta1; - len1 = cpml_primitive_get_length(last); - if (delta1 >= len1) { g_warning(_("%s: first chamfer delta of %lf is greather than the available %lf length"), G_STRLOC, delta1, len1); @@ -1486,18 +1455,15 @@ _adg_do_chamfer(AdgPath *path, CpmlPrimitive *current) static void _adg_do_fillet(AdgPath *path, CpmlPrimitive *current) { - AdgPathPrivate *data; - CpmlPrimitive *last, *current_dup, *last_dup; - gdouble radius, offset, pos; + AdgPathPrivate *data = adg_path_get_instance_private(path); + CpmlPrimitive *last = &data->last; + CpmlPrimitive *current_dup = cpml_primitive_deep_dup(current); + CpmlPrimitive *last_dup = cpml_primitive_deep_dup(last); + gdouble radius = data->operation.data.fillet.radius; + gdouble offset = _adg_is_convex(last_dup, current_dup) ? -radius : radius; + gdouble pos; CpmlPair center, vector, p[3]; - data = path->data; - last = &data->last; - current_dup = cpml_primitive_deep_dup(current); - last_dup = cpml_primitive_deep_dup(last); - radius = data->operation.data.fillet.radius; - offset = _adg_is_convex(last_dup, current_dup) ? -radius : radius; - /* Find the center of the fillet from the intersection between * the last and current primitives offseted by radius */ cpml_primitive_offset(current_dup, offset); diff --git a/src/adg/adg-path.h b/src/adg/adg-path.h index 7731cf9c..d17bd5ce 100644 --- a/src/adg/adg-path.h +++ b/src/adg/adg-path.h @@ -41,13 +41,12 @@ typedef struct _AdgPathClass AdgPathClass; struct _AdgPath { /*< private >*/ - AdgTrail parent; - gpointer data; + AdgTrail parent; }; struct _AdgPathClass { /*< private >*/ - AdgTrailClass parent_class; + AdgTrailClass parent_class; }; diff --git a/src/adg/adg-projection.c b/src/adg/adg-projection.c index e56798cb..7ea30b46 100644 --- a/src/adg/adg-projection.c +++ b/src/adg/adg-projection.c @@ -49,7 +49,7 @@ #include "adg-projection-private.h" -G_DEFINE_TYPE(AdgProjection, adg_projection, ADG_TYPE_ENTITY) +G_DEFINE_TYPE_WITH_PRIVATE(AdgProjection, adg_projection, ADG_TYPE_ENTITY) enum { PROP_0, @@ -85,8 +85,6 @@ adg_projection_class_init(AdgProjectionClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgProjectionPrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -133,21 +131,17 @@ adg_projection_class_init(AdgProjectionClass *klass) static void adg_projection_init(AdgProjection *projection) { - AdgProjectionPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(projection, ADG_TYPE_PROJECTION, - AdgProjectionPrivate); - + AdgProjectionPrivate *data = adg_projection_get_instance_private(projection); data->symbol_dress = ADG_DRESS_LINE; data->axis_dress = ADG_DRESS_LINE; data->scheme = ADG_PROJECTION_SCHEME_UNDEFINED; - - projection->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgProjectionPrivate *data = ((AdgProjection *) object)->data; + AdgProjectionPrivate *data = adg_projection_get_instance_private((AdgProjection *) object); switch (prop_id) { case PROP_SYMBOL_DRESS: @@ -169,11 +163,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgProjection *projection; - AdgProjectionPrivate *data; - - projection = (AdgProjection *) object; - data = projection->data; + AdgProjectionPrivate *data = adg_projection_get_instance_private((AdgProjection *) object); switch (prop_id) { case PROP_SYMBOL_DRESS: @@ -252,8 +242,7 @@ adg_projection_get_symbol_dress(AdgProjection *projection) g_return_val_if_fail(ADG_IS_PROJECTION(projection), ADG_DRESS_UNDEFINED); - data = projection->data; - + data = adg_projection_get_instance_private(projection); return data->symbol_dress; } @@ -297,8 +286,7 @@ adg_projection_get_axis_dress(AdgProjection *projection) g_return_val_if_fail(ADG_IS_PROJECTION(projection), ADG_DRESS_UNDEFINED); - data = projection->data; - + data = adg_projection_get_instance_private(projection); return data->axis_dress; } @@ -338,8 +326,7 @@ adg_projection_get_scheme(AdgProjection *projection) g_return_val_if_fail(ADG_IS_PROJECTION(projection), ADG_PROJECTION_SCHEME_UNDEFINED); - data = projection->data; - + data = adg_projection_get_instance_private(projection); return data->scheme; } @@ -347,15 +334,11 @@ adg_projection_get_scheme(AdgProjection *projection) static void _adg_arrange(AdgEntity *entity) { - AdgProjectionPrivate *data; - AdgProjectionClass *projection_class; - AdgProjectionClassPrivate *data_class; + AdgProjectionPrivate *data = adg_projection_get_instance_private((AdgProjection *) entity); + AdgProjectionClass *projection_class = ADG_PROJECTION_GET_CLASS(entity); + AdgProjectionClassPrivate *data_class = projection_class->data_class; CpmlExtents extents; - data = ((AdgProjection *) entity)->data; - projection_class = ADG_PROJECTION_GET_CLASS(entity); - data_class = projection_class->data_class; - _adg_arrange_class(projection_class, data->scheme); cpml_extents_copy(&extents, &data_class->extents); @@ -446,13 +429,10 @@ _adg_arrange_class(AdgProjectionClass *projection_class, static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgProjectionClassPrivate *data_class; - AdgProjectionPrivate *data; + AdgProjectionPrivate *data = adg_projection_get_instance_private((AdgProjection *) entity); + AdgProjectionClassPrivate *data_class = ADG_PROJECTION_GET_CLASS(entity)->data_class; const cairo_path_t *cairo_path; - data_class = ADG_PROJECTION_GET_CLASS(entity)->data_class; - data = ((AdgProjection *) entity)->data; - cairo_transform(cr, adg_entity_get_global_matrix(entity)); if (data_class->symbol != NULL) { diff --git a/src/adg/adg-projection.h b/src/adg/adg-projection.h index 8dfe5175..ef308042 100644 --- a/src/adg/adg-projection.h +++ b/src/adg/adg-projection.h @@ -42,7 +42,6 @@ typedef struct _AdgProjectionClass AdgProjectionClass; struct _AdgProjection { /*< private >*/ AdgEntity parent; - gpointer data; }; struct _AdgProjectionClass { diff --git a/src/adg/adg-rdim.c b/src/adg/adg-rdim.c index 6a80ad1e..e65e0aa8 100644 --- a/src/adg/adg-rdim.c +++ b/src/adg/adg-rdim.c @@ -61,7 +61,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_rdim_parent_class) -G_DEFINE_TYPE(AdgRDim, adg_rdim, ADG_TYPE_DIM) +G_DEFINE_TYPE_WITH_PRIVATE(AdgRDim, adg_rdim, ADG_TYPE_DIM) enum { PROP_0, @@ -96,8 +96,6 @@ adg_rdim_class_init(AdgRDimClass *klass) entity_class = (AdgEntityClass *) klass; dim_class = (AdgDimClass *) klass; - g_type_class_add_private(klass, sizeof(AdgRDimPrivate)); - gobject_class->dispose = _adg_dispose; entity_class->global_changed = _adg_global_changed; @@ -113,12 +111,11 @@ adg_rdim_class_init(AdgRDimClass *klass) static void adg_rdim_init(AdgRDim *rdim) { - AdgRDimPrivate *data; + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); AdgStyle *style; AdgDimStyle *dim_style; cairo_path_data_t move_to, line_to; - data = G_TYPE_INSTANCE_GET_PRIVATE(rdim, ADG_TYPE_RDIM, AdgRDimPrivate); move_to.header.type = CPML_MOVE; move_to.header.length = 2; line_to.header.type = CPML_LINE; @@ -139,8 +136,6 @@ adg_rdim_init(AdgRDim *rdim) data->cairo.path.data[4] = move_to; data->cairo.path.data[6] = line_to; - rdim->data = data; - /* Override the default dimension style to prefix the quote with an R */ style = adg_dress_get_fallback(ADG_DRESS_DIMENSION); dim_style = (AdgDimStyle *) adg_style_clone(style); @@ -293,9 +288,10 @@ adg_rdim_new_full_from_model(AdgModel *model, const gchar *center, static void _adg_global_changed(AdgEntity *entity) { - AdgRDimPrivate *data = ((AdgRDim *) entity)->data; + AdgRDim *rdim = (AdgRDim *) entity; + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); - _adg_clear_trail((AdgRDim *) entity); + _adg_clear_trail(rdim); if (_ADG_OLD_ENTITY_CLASS->global_changed) _ADG_OLD_ENTITY_CLASS->global_changed(entity); @@ -349,7 +345,7 @@ _adg_arrange(AdgEntity *entity) return; rdim = (AdgRDim *) entity; - data = rdim->data; + data = adg_rdim_get_instance_private(rdim); quote = adg_dim_get_quote(dim); quote_entity = (AdgEntity *) quote; @@ -454,7 +450,6 @@ static void _adg_render(AdgEntity *entity, cairo_t *cr) { AdgDim *dim; - AdgRDim *rdim; AdgRDimPrivate *data; AdgDimStyle *dim_style; AdgDress dress; @@ -467,8 +462,7 @@ _adg_render(AdgEntity *entity, cairo_t *cr) return; } - rdim = (AdgRDim *) entity; - data = rdim->data; + data = adg_rdim_get_instance_private((AdgRDim *) dim); dim_style = adg_dim_get_dim_style(dim); adg_style_apply((AdgStyle *) dim_style, entity, cr); @@ -489,22 +483,18 @@ _adg_render(AdgEntity *entity, cairo_t *cr) static gchar * _adg_default_value(AdgDim *dim) { - AdgRDim *rdim; AdgRDimPrivate *data; if (! adg_dim_compute_geometry(dim)) return g_strdup("undef"); - rdim = (AdgRDim *) dim; - data = rdim->data; - + data = adg_rdim_get_instance_private((AdgRDim *) dim); return adg_dim_get_text(dim, data->radius); } static gboolean _adg_compute_geometry(AdgDim *dim) { - AdgRDim *rdim; AdgRDimPrivate *data; AdgDimStyle *dim_style; AdgPoint *ref1_point, *ref2_point, *pos_point; @@ -537,8 +527,7 @@ _adg_compute_geometry(AdgDim *dim) return FALSE; } - rdim = (AdgRDim *) dim; - data = rdim->data; + data = adg_rdim_get_instance_private((AdgRDim *) dim); pos = (CpmlPair *) pos_point; dim_style = adg_dim_get_dim_style(dim); spacing = adg_dim_style_get_baseline_spacing(dim_style); @@ -575,13 +564,9 @@ _adg_compute_geometry(AdgDim *dim) static void _adg_update_entities(AdgRDim *rdim) { - AdgEntity *entity; - AdgRDimPrivate *data; - AdgDimStyle *dim_style; - - entity = (AdgEntity *) rdim; - data = rdim->data; - dim_style = adg_dim_get_dim_style((AdgDim *) rdim); + AdgEntity *entity = (AdgEntity *) rdim; + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); + AdgDimStyle *dim_style = adg_dim_get_dim_style((AdgDim *) rdim); if (data->trail == NULL) data->trail = adg_trail_new(_adg_trail_callback, rdim); @@ -595,7 +580,7 @@ _adg_update_entities(AdgRDim *rdim) static void _adg_clear_trail(AdgRDim *rdim) { - AdgRDimPrivate *data = rdim->data; + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); if (data->trail != NULL) adg_model_clear((AdgModel *) data->trail); @@ -606,8 +591,7 @@ _adg_clear_trail(AdgRDim *rdim) static void _adg_dispose_trail(AdgRDim *rdim) { - AdgRDimPrivate *data = rdim->data; - + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); if (data->trail != NULL) { g_object_unref(data->trail); data->trail = NULL; @@ -617,8 +601,7 @@ _adg_dispose_trail(AdgRDim *rdim) static void _adg_dispose_marker(AdgRDim *rdim) { - AdgRDimPrivate *data = rdim->data; - + AdgRDimPrivate *data = adg_rdim_get_instance_private(rdim); if (data->marker != NULL) { g_object_unref(data->marker); data->marker = NULL; @@ -628,11 +611,6 @@ _adg_dispose_marker(AdgRDim *rdim) static cairo_path_t * _adg_trail_callback(AdgTrail *trail, gpointer user_data) { - AdgRDim *rdim; - AdgRDimPrivate *data; - - rdim = (AdgRDim *) user_data; - data = rdim->data; - + AdgRDimPrivate *data = adg_rdim_get_instance_private((AdgRDim *) user_data); return &data->cairo.path; } diff --git a/src/adg/adg-rdim.h b/src/adg/adg-rdim.h index a861f4a8..789c56cb 100644 --- a/src/adg/adg-rdim.h +++ b/src/adg/adg-rdim.h @@ -42,13 +42,12 @@ typedef struct _AdgRDimClass AdgRDimClass; struct _AdgRDim { /*< private >*/ - AdgDim parent; - gpointer data; + AdgDim parent; }; struct _AdgRDimClass { /*< private >*/ - AdgDimClass parent_class; + AdgDimClass parent_class; }; diff --git a/src/adg/adg-ruled-fill.c b/src/adg/adg-ruled-fill.c index 1a893dea..859bbd63 100644 --- a/src/adg/adg-ruled-fill.c +++ b/src/adg/adg-ruled-fill.c @@ -55,7 +55,7 @@ #define _ADG_OLD_FILL_STYLE_CLASS ((AdgFillStyleClass *) adg_ruled_fill_parent_class) -G_DEFINE_TYPE(AdgRuledFill, adg_ruled_fill, ADG_TYPE_FILL_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgRuledFill, adg_ruled_fill, ADG_TYPE_FILL_STYLE) enum { PROP_0, @@ -98,8 +98,6 @@ adg_ruled_fill_class_init(AdgRuledFillClass *klass) style_class = (AdgStyleClass *) klass; fill_style_class = (AdgFillStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgRuledFillPrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -132,22 +130,17 @@ adg_ruled_fill_class_init(AdgRuledFillClass *klass) static void adg_ruled_fill_init(AdgRuledFill *ruled_fill) { - AdgRuledFillPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(ruled_fill, - ADG_TYPE_RULED_FILL, - AdgRuledFillPrivate); - + AdgRuledFillPrivate *data = adg_ruled_fill_get_instance_private(ruled_fill); data->line_dress = ADG_DRESS_LINE_FILL; data->angle = G_PI_4; data->spacing = 16; - - ruled_fill->data = data; } static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgRuledFillPrivate *data = ((AdgRuledFill *) object)->data; + AdgRuledFillPrivate *data = adg_ruled_fill_get_instance_private((AdgRuledFill *) object); switch (prop_id) { case PROP_LINE_DRESS: @@ -169,11 +162,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgRuledFill *ruled_fill; - AdgRuledFillPrivate *data; - - ruled_fill = (AdgRuledFill *) object; - data = ruled_fill->data; + AdgRuledFillPrivate *data = adg_ruled_fill_get_instance_private((AdgRuledFill *) object); switch (prop_id) { case PROP_LINE_DRESS: @@ -242,8 +231,7 @@ adg_ruled_fill_get_line_dress(AdgRuledFill *ruled_fill) g_return_val_if_fail(ADG_IS_RULED_FILL(ruled_fill), ADG_DRESS_UNDEFINED); - data = ruled_fill->data; - + data = adg_ruled_fill_get_instance_private(ruled_fill); return data->line_dress; } @@ -280,8 +268,7 @@ adg_ruled_fill_get_spacing(AdgRuledFill *ruled_fill) g_return_val_if_fail(ADG_IS_RULED_FILL(ruled_fill), 0); - data = ruled_fill->data; - + data = adg_ruled_fill_get_instance_private(ruled_fill); return data->spacing; } @@ -318,8 +305,7 @@ adg_ruled_fill_get_angle(AdgRuledFill *ruled_fill) g_return_val_if_fail(ADG_IS_RULED_FILL(ruled_fill), 0); - data = ruled_fill->data; - + data = adg_ruled_fill_get_instance_private(ruled_fill); return data->angle; } @@ -390,7 +376,7 @@ _adg_create_pattern(AdgRuledFill *ruled_fill, AdgEntity *entity, cairo_t *cr) if (!extents->is_defined) return NULL; - data = ruled_fill->data; + data = adg_ruled_fill_get_instance_private(ruled_fill); line_style = adg_entity_style(entity, data->line_dress); surface = cairo_surface_create_similar(cairo_get_target(cr), CAIRO_CONTENT_COLOR_ALPHA, diff --git a/src/adg/adg-ruled-fill.h b/src/adg/adg-ruled-fill.h index 126ba2ac..2c52b371 100644 --- a/src/adg/adg-ruled-fill.h +++ b/src/adg/adg-ruled-fill.h @@ -42,13 +42,12 @@ typedef struct _AdgRuledFillClass AdgRuledFillClass; struct _AdgRuledFill { /*< private >*/ - AdgFillStyle parent; - gpointer data; + AdgFillStyle parent; }; struct _AdgRuledFillClass { /*< private >*/ - AdgFillStyleClass parent_class; + AdgFillStyleClass parent_class; }; diff --git a/src/adg/adg-stroke.c b/src/adg/adg-stroke.c index 039d8017..4d5038ce 100644 --- a/src/adg/adg-stroke.c +++ b/src/adg/adg-stroke.c @@ -53,7 +53,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_stroke_parent_class) -G_DEFINE_TYPE(AdgStroke, adg_stroke, ADG_TYPE_ENTITY) +G_DEFINE_TYPE_WITH_PRIVATE(AdgStroke, adg_stroke, ADG_TYPE_ENTITY) enum { PROP_0, @@ -89,8 +89,6 @@ adg_stroke_class_init(AdgStrokeClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgStrokePrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -118,14 +116,9 @@ adg_stroke_class_init(AdgStrokeClass *klass) static void adg_stroke_init(AdgStroke *stroke) { - AdgStrokePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(stroke, - ADG_TYPE_STROKE, - AdgStrokePrivate); - + AdgStrokePrivate *data = adg_stroke_get_instance_private(stroke); data->line_dress = ADG_DRESS_LINE_STROKE; data->trail = NULL; - - stroke->data = data; } static void @@ -143,7 +136,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgStrokePrivate *data = ((AdgStroke *) object)->data; + AdgStrokePrivate *data = adg_stroke_get_instance_private((AdgStroke *) object); switch (prop_id) { case PROP_LINE_DRESS: @@ -162,7 +155,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgStrokePrivate *data = ((AdgStroke *) object)->data; + AdgStrokePrivate *data = adg_stroke_get_instance_private((AdgStroke *) object); AdgTrail *old_trail; switch (prop_id) { @@ -255,8 +248,7 @@ adg_stroke_get_line_dress(AdgStroke *stroke) g_return_val_if_fail(ADG_IS_STROKE(stroke), ADG_DRESS_UNDEFINED); - data = stroke->data; - + data = adg_stroke_get_instance_private(stroke); return data->line_dress; } @@ -295,8 +287,7 @@ adg_stroke_get_trail(AdgStroke *stroke) g_return_val_if_fail(ADG_IS_STROKE(stroke), NULL); - data = stroke->data; - + data = adg_stroke_get_instance_private(stroke); return data->trail; } @@ -322,7 +313,6 @@ _adg_local_changed(AdgEntity *entity) static void _adg_arrange(AdgEntity *entity) { - AdgStroke *stroke; AdgStrokePrivate *data; const CpmlExtents *trail_extents; CpmlExtents extents; @@ -331,8 +321,7 @@ _adg_arrange(AdgEntity *entity) if (adg_entity_get_extents(entity)->is_defined) return; - stroke = (AdgStroke *) entity; - data = stroke->data; + data = adg_stroke_get_instance_private((AdgStroke *) entity); trail_extents = adg_trail_get_extents(data->trail); /* Ensure a trail is bound to this entity */ @@ -348,13 +337,8 @@ _adg_arrange(AdgEntity *entity) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgStroke *stroke; - AdgStrokePrivate *data; - const cairo_path_t *cairo_path; - - stroke = (AdgStroke *) entity; - data = stroke->data; - cairo_path = adg_trail_get_cairo_path(data->trail); + AdgStrokePrivate *data = adg_stroke_get_instance_private((AdgStroke *) entity); + const cairo_path_t *cairo_path = adg_trail_get_cairo_path(data->trail); if (cairo_path != NULL) { cairo_transform(cr, adg_entity_get_global_matrix(entity)); diff --git a/src/adg/adg-stroke.h b/src/adg/adg-stroke.h index f1022070..2bd8cd1f 100644 --- a/src/adg/adg-stroke.h +++ b/src/adg/adg-stroke.h @@ -42,7 +42,6 @@ typedef struct _AdgStrokeClass AdgStrokeClass; struct _AdgStroke { /*< private >*/ AdgEntity parent; - gpointer data; }; struct _AdgStrokeClass { diff --git a/src/adg/adg-table-style.c b/src/adg/adg-table-style.c index 4ed5a32c..01e9bca9 100644 --- a/src/adg/adg-table-style.c +++ b/src/adg/adg-table-style.c @@ -46,7 +46,7 @@ #include "adg-table-style-private.h" -G_DEFINE_TYPE(AdgTableStyle, adg_table_style, ADG_TYPE_STYLE) +G_DEFINE_TYPE_WITH_PRIVATE(AdgTableStyle, adg_table_style, ADG_TYPE_STYLE) enum { PROP_0, @@ -84,8 +84,6 @@ adg_table_style_class_init(AdgTableStyleClass *klass) gobject_class = (GObjectClass *) klass; style_class = (AdgStyleClass *) klass; - g_type_class_add_private(klass, sizeof(AdgTableStylePrivate)); - gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; diff --git a/src/adg/adg-table.c b/src/adg/adg-table.c index f0df3b81..05a8f178 100644 --- a/src/adg/adg-table.c +++ b/src/adg/adg-table.c @@ -69,7 +69,7 @@ #define _ADG_OLD_ENTITY_CLASS ((AdgEntityClass *) adg_table_parent_class) -G_DEFINE_TYPE(AdgTable, adg_table, ADG_TYPE_ENTITY) +G_DEFINE_TYPE_WITH_PRIVATE(AdgTable, adg_table, ADG_TYPE_ENTITY) enum { PROP_0, @@ -128,8 +128,6 @@ adg_table_class_init(AdgTableClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgTablePrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; @@ -160,21 +158,14 @@ adg_table_class_init(AdgTableClass *klass) static void adg_table_init(AdgTable *table) { - AdgTablePrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(table, - ADG_TYPE_TABLE, - AdgTablePrivate); - + AdgTablePrivate *data = adg_table_get_instance_private(table); data->table_dress = ADG_DRESS_TABLE; data->has_frame = TRUE; - data->table_style = NULL; data->grid = NULL; data->frame = NULL; data->rows = NULL; data->cell_names = NULL; - - table->data = data; - adg_entity_set_local_mix((AdgEntity *) table, ADG_MIX_DISABLED); } @@ -182,7 +173,7 @@ static void _adg_dispose(GObject *object) { AdgTable *table = (AdgTable *) object; - AdgTablePrivate *data = table->data; + AdgTablePrivate *data = adg_table_get_instance_private(table); adg_table_invalidate_grid(table); @@ -204,11 +195,7 @@ _adg_dispose(GObject *object) static void _adg_finalize(GObject *object) { - AdgTable *table; - AdgTablePrivate *data; - - table = (AdgTable *) object; - data = table->data; + AdgTablePrivate *data = adg_table_get_instance_private((AdgTable *) object); if (data->rows) { g_slist_foreach(data->rows, (GFunc) adg_table_row_free, NULL); @@ -226,7 +213,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgTablePrivate *data = ((AdgTable *) object)->data; + AdgTablePrivate *data = adg_table_get_instance_private((AdgTable *) object); switch (prop_id) { case PROP_TABLE_DRESS: @@ -245,7 +232,7 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgTablePrivate *data = ((AdgTable *) object)->data; + AdgTablePrivate *data = adg_table_get_instance_private((AdgTable *) object); switch (prop_id) { case PROP_TABLE_DRESS: @@ -296,7 +283,7 @@ adg_table_insert(AdgTable *table, AdgTableRow *table_row, g_return_if_fail(ADG_IS_TABLE(table)); g_return_if_fail(table_row != NULL); - data = table->data; + data = adg_table_get_instance_private(table); if (before_row == NULL) { data->rows = g_slist_append(data->rows, table_row); @@ -327,7 +314,7 @@ adg_table_remove(AdgTable *table, AdgTableRow *table_row) g_return_if_fail(ADG_IS_TABLE(table)); g_return_if_fail(table_row != NULL); - data = table->data; + data = adg_table_get_instance_private(table); data->rows = g_slist_remove(data->rows, table_row); } @@ -349,11 +336,12 @@ adg_table_remove(AdgTable *table, AdgTableRow *table_row) void adg_table_foreach(AdgTable *table, GCallback callback, gpointer user_data) { - AdgTablePrivate *data = table->data; + AdgTablePrivate *data; g_return_if_fail(table != NULL); g_return_if_fail(callback != NULL); + data = adg_table_get_instance_private(table); g_slist_foreach(data->rows, (GFunc) callback, user_data); } @@ -410,7 +398,7 @@ adg_table_set_cell(AdgTable *table, const gchar *name, g_return_if_fail(ADG_IS_TABLE(table)); g_return_if_fail(name != NULL || table_cell != NULL); - data = table->data; + data = adg_table_get_instance_private(table); if (data->cell_names == NULL) { /* Check if trying to remove from an empty hash table */ @@ -453,7 +441,7 @@ adg_table_get_table_style(AdgTable *table) g_return_val_if_fail(ADG_IS_TABLE(table), NULL); - data = table->data; + data = adg_table_get_instance_private(table); return (AdgStyle *) data->table_style; } @@ -479,8 +467,7 @@ adg_table_get_cell(AdgTable *table, const gchar *name) g_return_val_if_fail(ADG_IS_TABLE(table), NULL); - data = table->data; - + data = adg_table_get_instance_private(table); if (data->cell_names == NULL) return NULL; @@ -527,8 +514,7 @@ adg_table_get_table_dress(AdgTable *table) g_return_val_if_fail(ADG_IS_TABLE(table), ADG_DRESS_UNDEFINED); - data = table->data; - + data = adg_table_get_instance_private(table); return data->table_dress; } @@ -567,8 +553,7 @@ adg_table_has_frame(AdgTable *table) g_return_val_if_fail(ADG_IS_TABLE(table), FALSE); - data = table->data; - + data = adg_table_get_instance_private(table); return data->has_frame; } @@ -590,8 +575,7 @@ adg_table_invalidate_grid(AdgTable *table) g_return_if_fail(ADG_IS_TABLE(table)); - data = table->data; - + data = adg_table_get_instance_private(table); if (data->grid) { g_object_unref(data->grid); data->grid = NULL; @@ -635,8 +619,8 @@ _adg_invalidate(AdgEntity *entity) static void _adg_arrange(AdgEntity *entity) { - AdgTable *table; - AdgTablePrivate *data; + AdgTable *table = (AdgTable *) entity; + AdgTablePrivate *data = adg_table_get_instance_private(table); CpmlExtents extents = { 0 }; CpmlExtents row_layout; const CpmlExtents *row_extents; @@ -645,9 +629,6 @@ _adg_arrange(AdgEntity *entity) GSList *row_node; AdgTableRow *row; - table = (AdgTable *) entity; - data = table->data; - /* Resolve the table style */ if (data->table_style == NULL) data->table_style = (AdgTableStyle *) @@ -689,15 +670,12 @@ _adg_arrange(AdgEntity *entity) static void _adg_arrange_grid(AdgEntity *entity) { - AdgTable *table; - AdgTablePrivate *data; + AdgTable *table = (AdgTable *) entity; + AdgTablePrivate *data = adg_table_get_instance_private(table); AdgPath *path; AdgTrail *trail; AdgDress dress; - table = (AdgTable *) entity; - data = table->data; - if (data->grid) return; @@ -721,14 +699,12 @@ _adg_arrange_grid(AdgEntity *entity) static void _adg_arrange_frame(AdgEntity *entity, const CpmlExtents *extents) { - AdgTablePrivate *data; + AdgTablePrivate *data = adg_table_get_instance_private((AdgTable *) entity); AdgPath *path; AdgTrail *trail; CpmlPair pair; AdgDress dress; - data = ((AdgTable *) entity)->data; - if (data->frame || !data->has_frame) return; @@ -757,7 +733,7 @@ _adg_arrange_frame(AdgEntity *entity, const CpmlExtents *extents) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgTablePrivate *data = ((AdgTable *) entity)->data; + AdgTablePrivate *data = adg_table_get_instance_private((AdgTable *) entity); adg_style_apply((AdgStyle *) data->table_style, entity, cr); @@ -777,7 +753,7 @@ _adg_propagate(AdgTable *table, const gchar *detailed_signal, ...) } va_start(proxy_data.var_args, detailed_signal); - data = table->data; + data = adg_table_get_instance_private(table); if (data->frame) { G_VA_COPY(var_copy, proxy_data.var_args); diff --git a/src/adg/adg-table.h b/src/adg/adg-table.h index e6b53ddd..fcf25677 100644 --- a/src/adg/adg-table.h +++ b/src/adg/adg-table.h @@ -43,7 +43,6 @@ typedef struct _AdgTableClass AdgTableClass; struct _AdgTable { /*< private >*/ AdgEntity parent; - gpointer data; }; struct _AdgTableClass { diff --git a/src/adg/adg-text.c b/src/adg/adg-text.c index 0df0d43e..77eddae7 100644 --- a/src/adg/adg-text.c +++ b/src/adg/adg-text.c @@ -67,7 +67,8 @@ static void _adg_iface_init (AdgTextualIface *iface); G_DEFINE_TYPE_WITH_CODE(AdgText, adg_text, ADG_TYPE_ENTITY, - G_IMPLEMENT_INTERFACE(ADG_TYPE_TEXTUAL, _adg_iface_init)) + G_IMPLEMENT_INTERFACE(ADG_TYPE_TEXTUAL, _adg_iface_init) + G_ADD_PRIVATE(AdgText)) enum { PROP_0, @@ -111,8 +112,6 @@ adg_text_class_init(AdgTextClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgTextPrivate)); - gobject_class->dispose = _adg_dispose; gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; @@ -141,15 +140,10 @@ _adg_iface_init(AdgTextualIface *iface) static void adg_text_init(AdgText *text) { - AdgTextPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(text, ADG_TYPE_TEXT, - AdgTextPrivate); - + AdgTextPrivate *data = adg_text_get_instance_private(text); data->font_dress = ADG_DRESS_FONT_TEXT; data->text = NULL; data->layout = NULL; - - text->data = data; - adg_entity_set_local_mix((AdgEntity *) text, ADG_MIX_ANCESTORS_NORMALIZED); } @@ -167,11 +161,7 @@ _adg_dispose(GObject *object) static void _adg_finalize(GObject *object) { - AdgText *text; - AdgTextPrivate *data; - - text = (AdgText *) object; - data = text->data; + AdgTextPrivate *data = adg_text_get_instance_private((AdgText *) object); g_free(data->text); @@ -183,7 +173,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgTextPrivate *data = ((AdgText *) object)->data; + AdgTextPrivate *data = adg_text_get_instance_private((AdgText *) object); switch (prop_id) { case PROP_FONT_DRESS: @@ -202,11 +192,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgText *text; - AdgTextPrivate *data; - - text = (AdgText *) object; - data = text->data; + AdgText *text = (AdgText *) object; + AdgTextPrivate *data = adg_text_get_instance_private(text); switch (prop_id) { case PROP_FONT_DRESS: @@ -273,13 +260,10 @@ _adg_invalidate(AdgEntity *entity) static void _adg_arrange(AdgEntity *entity) { - AdgText *text; - AdgTextPrivate *data; + AdgText *text = (AdgText *) entity;; + AdgTextPrivate *data = adg_text_get_instance_private(text); PangoRectangle size; - text = (AdgText *) entity; - data = text->data; - if (adg_is_string_empty(data->text)) { /* Undefined text */ CpmlExtents new_extents; @@ -347,11 +331,8 @@ _adg_arrange(AdgEntity *entity) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgText *text; - AdgTextPrivate *data; - - text = (AdgText *) entity; - data = text->data; + AdgText *text = (AdgText *) entity;; + AdgTextPrivate *data = adg_text_get_instance_private(text); if (data->layout != NULL) { adg_entity_apply_dress(entity, data->font_dress, cr); @@ -376,7 +357,7 @@ _adg_set_font_dress(AdgTextual *textual, AdgDress dress) static AdgDress _adg_get_font_dress(AdgTextual *textual) { - AdgTextPrivate *data = ((AdgText *) textual)->data; + AdgTextPrivate *data = adg_text_get_instance_private((AdgText *) textual); return data->font_dress; } @@ -389,20 +370,18 @@ _adg_set_text(AdgTextual *textual, const gchar *text) static gchar * _adg_dup_text(AdgTextual *textual) { - AdgTextPrivate *data = ((AdgText *) textual)->data; + AdgTextPrivate *data = adg_text_get_instance_private((AdgText *) textual); return g_strdup(data->text); } static void _adg_refresh_extents(AdgText *text) { - AdgTextPrivate *data; + AdgTextPrivate *data = adg_text_get_instance_private(text); AdgEntity *entity; cairo_matrix_t ctm; CpmlExtents new_extents; - data = text->data; - if (! data->raw_extents.is_defined) return; @@ -424,7 +403,7 @@ _adg_refresh_extents(AdgText *text) static void _adg_clear_layout(AdgText *text) { - AdgTextPrivate *data = text->data; + AdgTextPrivate *data = adg_text_get_instance_private(text); if (data->layout != NULL) { g_object_unref(data->layout); diff --git a/src/adg/adg-text.h b/src/adg/adg-text.h index 5b2806db..fe4affdc 100644 --- a/src/adg/adg-text.h +++ b/src/adg/adg-text.h @@ -41,13 +41,12 @@ typedef struct _AdgTextClass AdgTextClass; struct _AdgText { /*< private >*/ - AdgEntity parent; - gpointer data; + AdgEntity parent; }; struct _AdgTextClass { /*< private >*/ - AdgEntityClass parent_class; + AdgEntityClass parent_class; }; diff --git a/src/adg/adg-title-block.c b/src/adg/adg-title-block.c index 2e738563..3fa31503 100644 --- a/src/adg/adg-title-block.c +++ b/src/adg/adg-title-block.c @@ -56,7 +56,7 @@ #define _ADG_OLD_OBJECT_CLASS ((GObjectClass *) adg_title_block_parent_class) -G_DEFINE_TYPE(AdgTitleBlock, adg_title_block, ADG_TYPE_TABLE); +G_DEFINE_TYPE_WITH_PRIVATE(AdgTitleBlock, adg_title_block, ADG_TYPE_TABLE); enum { PROP_0, @@ -90,8 +90,6 @@ adg_title_block_class_init(AdgTitleBlockClass *klass) gobject_class = (GObjectClass *) klass; - g_type_class_add_private(klass, sizeof(AdgTitleBlockPrivate)); - gobject_class->finalize = _adg_finalize; gobject_class->set_property = _adg_set_property; gobject_class->get_property = _adg_get_property; @@ -157,10 +155,8 @@ static void adg_title_block_init(AdgTitleBlock *title_block) { AdgTable *table = (AdgTable *) title_block; + AdgTitleBlockPrivate *data = adg_title_block_get_instance_private(title_block); AdgTableRow *row; - AdgTitleBlockPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(title_block, - ADG_TYPE_TITLE_BLOCK, - AdgTitleBlockPrivate); data->author = NULL; data->title = NULL; @@ -171,8 +167,6 @@ adg_title_block_init(AdgTitleBlock *title_block) data->date = NULL; data->projection = NULL; - title_block->data = data; - /* By default the title block should be floating */ adg_entity_switch_floating((AdgEntity *) title_block, TRUE); @@ -200,7 +194,7 @@ adg_title_block_init(AdgTitleBlock *title_block) static void _adg_finalize(GObject *object) { - AdgTitleBlockPrivate *data = ((AdgTitleBlock *) object)->data; + AdgTitleBlockPrivate *data = adg_title_block_get_instance_private((AdgTitleBlock *) object); g_free(data->title); g_free(data->drawing); @@ -217,7 +211,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgTitleBlockPrivate *data = ((AdgTitleBlock *) object)->data; + AdgTitleBlockPrivate *data = adg_title_block_get_instance_private((AdgTitleBlock *) object); switch (prop_id) { case PROP_TITLE: @@ -254,15 +248,10 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgTitleBlock *title_block; - AdgTitleBlockPrivate *data; - AdgTable *table; + AdgTitleBlockPrivate *data = adg_title_block_get_instance_private((AdgTitleBlock *) object); + AdgTable *table = (AdgTable *) object; AdgTableCell *cell; - title_block = (AdgTitleBlock *) object; - data = title_block->data; - table = (AdgTable *) object; - switch (prop_id) { case PROP_TITLE: g_free(data->title); @@ -382,8 +371,7 @@ adg_title_block_get_title(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->title; } @@ -422,8 +410,7 @@ adg_title_block_get_drawing(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->drawing; } @@ -464,8 +451,7 @@ adg_title_block_get_size(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->size; } @@ -502,8 +488,7 @@ adg_title_block_get_scale(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->scale; } @@ -540,8 +525,7 @@ adg_title_block_get_author(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->author; } @@ -588,8 +572,7 @@ adg_title_block_get_date(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->date; } @@ -633,8 +616,7 @@ adg_title_block_logo(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->logo; } @@ -680,7 +662,6 @@ adg_title_block_projection(AdgTitleBlock *title_block) g_return_val_if_fail(ADG_IS_TITLE_BLOCK(title_block), NULL); - data = title_block->data; - + data = adg_title_block_get_instance_private(title_block); return data->projection; } diff --git a/src/adg/adg-title-block.h b/src/adg/adg-title-block.h index 3e842073..1173439a 100644 --- a/src/adg/adg-title-block.h +++ b/src/adg/adg-title-block.h @@ -41,13 +41,12 @@ typedef struct _AdgTitleBlockClass AdgTitleBlockClass; struct _AdgTitleBlock { /*< private >*/ - AdgTable parent; - gpointer data; + AdgTable parent; }; struct _AdgTitleBlockClass { /*< private >*/ - AdgTableClass parent_class; + AdgTableClass parent_class; }; diff --git a/src/adg/adg-toy-text.c b/src/adg/adg-toy-text.c index 95cd20c4..b5cfa333 100644 --- a/src/adg/adg-toy-text.c +++ b/src/adg/adg-toy-text.c @@ -63,7 +63,8 @@ static void _adg_iface_init (AdgTextualIface *iface); G_DEFINE_TYPE_WITH_CODE(AdgToyText, adg_toy_text, ADG_TYPE_ENTITY, - G_IMPLEMENT_INTERFACE(ADG_TYPE_TEXTUAL, _adg_iface_init)) + G_IMPLEMENT_INTERFACE(ADG_TYPE_TEXTUAL, _adg_iface_init) + G_ADD_PRIVATE(AdgToyText)) enum { PROP_0, @@ -106,8 +107,6 @@ adg_toy_text_class_init(AdgToyTextClass *klass) gobject_class = (GObjectClass *) klass; entity_class = (AdgEntityClass *) klass; - g_type_class_add_private(klass, sizeof(AdgToyTextPrivate)); - gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -135,27 +134,18 @@ _adg_iface_init(AdgTextualIface *iface) static void adg_toy_text_init(AdgToyText *toy_text) { - AdgToyTextPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(toy_text, - ADG_TYPE_TOY_TEXT, - AdgToyTextPrivate); - + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); data->font_dress = ADG_DRESS_FONT_TEXT; data->text = NULL; data->glyphs = NULL; - - toy_text->data = data; - adg_entity_set_local_mix((AdgEntity *) toy_text, ADG_MIX_ANCESTORS_NORMALIZED); } static void _adg_finalize(GObject *object) { - AdgToyText *toy_text; - AdgToyTextPrivate *data; - - toy_text = (AdgToyText *) object; - data = toy_text->data; + AdgToyText *toy_text = (AdgToyText *) object; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); g_free(data->text); _adg_clear_font(toy_text); @@ -169,7 +159,7 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgToyTextPrivate *data = ((AdgToyText *) object)->data; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private((AdgToyText *) object); switch (prop_id) { case PROP_FONT_DRESS: @@ -188,11 +178,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgToyText *toy_text; - AdgToyTextPrivate *data; - - toy_text = (AdgToyText *) object; - data = toy_text->data; + AdgToyText *toy_text = (AdgToyText *) object; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); switch (prop_id) { case PROP_FONT_DRESS: @@ -260,13 +247,10 @@ _adg_invalidate(AdgEntity *entity) static void _adg_arrange(AdgEntity *entity) { - AdgToyText *toy_text; - AdgToyTextPrivate *data; + AdgToyText *toy_text = (AdgToyText *) entity; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); CpmlExtents extents; - toy_text = (AdgToyText *) entity; - data = toy_text->data; - if (data->font == NULL) { AdgDress dress; AdgFontStyle *font_style; @@ -319,11 +303,8 @@ _adg_arrange(AdgEntity *entity) static void _adg_render(AdgEntity *entity, cairo_t *cr) { - AdgToyText *toy_text; - AdgToyTextPrivate *data; - - toy_text = (AdgToyText *) entity; - data = toy_text->data; + AdgToyText *toy_text = (AdgToyText *) entity; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); if (data->glyphs != NULL) { adg_entity_apply_dress(entity, data->font_dress, cr); @@ -342,7 +323,7 @@ _adg_set_font_dress(AdgTextual *textual, AdgDress dress) static AdgDress _adg_get_font_dress(AdgTextual *textual) { - AdgToyTextPrivate *data = ((AdgToyText *) textual)->data; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private((AdgToyText *) textual); return data->font_dress; } @@ -355,22 +336,21 @@ _adg_set_text(AdgTextual *textual, const gchar *text) static gchar * _adg_dup_text(AdgTextual *textual) { - AdgToyTextPrivate *data = ((AdgToyText *) textual)->data; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private((AdgToyText *) textual); return g_strdup(data->text); } static void _adg_clear_font(AdgToyText *toy_text) { - AdgToyTextPrivate *data = toy_text->data; - + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); data->font = NULL; } static void _adg_clear_glyphs(AdgToyText *toy_text) { - AdgToyTextPrivate *data = toy_text->data; + AdgToyTextPrivate *data = adg_toy_text_get_instance_private(toy_text); if (data->glyphs != NULL) { cairo_glyph_free(data->glyphs); diff --git a/src/adg/adg-toy-text.h b/src/adg/adg-toy-text.h index 1289e42e..764af601 100644 --- a/src/adg/adg-toy-text.h +++ b/src/adg/adg-toy-text.h @@ -41,13 +41,12 @@ typedef struct _AdgToyTextClass AdgToyTextClass; struct _AdgToyText { /*< private >*/ - AdgEntity parent; - gpointer data; + AdgEntity parent; }; struct _AdgToyTextClass { /*< private >*/ - AdgEntityClass parent_class; + AdgEntityClass parent_class; }; diff --git a/src/adg/adg-trail.c b/src/adg/adg-trail.c index 29cff2d0..f4a2759d 100644 --- a/src/adg/adg-trail.c +++ b/src/adg/adg-trail.c @@ -87,7 +87,7 @@ #define EMPTY_PATH(p) ((p) == NULL || (p)->data == NULL || (p)->num_data <= 0) -G_DEFINE_TYPE(AdgTrail, adg_trail, ADG_TYPE_MODEL) +G_DEFINE_TYPE_WITH_PRIVATE(AdgTrail, adg_trail, ADG_TYPE_MODEL) enum { PROP_0, @@ -121,8 +121,6 @@ adg_trail_class_init(AdgTrailClass *klass) gobject_class = (GObjectClass *) klass; model_class = (AdgModelClass *) klass; - g_type_class_add_private(klass, sizeof(AdgTrailPrivate)); - gobject_class->finalize = _adg_finalize; gobject_class->get_property = _adg_get_property; gobject_class->set_property = _adg_set_property; @@ -142,9 +140,7 @@ adg_trail_class_init(AdgTrailClass *klass) static void adg_trail_init(AdgTrail *trail) { - AdgTrailPrivate *data = G_TYPE_INSTANCE_GET_PRIVATE(trail, ADG_TYPE_TRAIL, - AdgTrailPrivate); - + AdgTrailPrivate *data = adg_trail_get_instance_private(trail); data->cairo_path.status = CAIRO_STATUS_INVALID_PATH_DATA; data->cairo_path.data = NULL; data->cairo_path.num_data = 0; @@ -153,8 +149,6 @@ adg_trail_init(AdgTrail *trail) data->max_angle = G_PI_2; data->in_construction = FALSE; data->extents.is_defined = FALSE; - - trail->data = data; } static void @@ -170,11 +164,8 @@ static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - AdgTrail *trail; - AdgTrailPrivate *data; - - trail = (AdgTrail *) object; - data = trail->data; + AdgTrail *trail = (AdgTrail *) object; + AdgTrailPrivate *data = adg_trail_get_instance_private(trail); switch (prop_id) { case PROP_MAX_ANGLE: @@ -190,11 +181,8 @@ static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - AdgTrail *trail; - AdgTrailPrivate *data; - - trail = (AdgTrail *) object; - data = trail->data; + AdgTrail *trail = (AdgTrail *) object; + AdgTrailPrivate *data = adg_trail_get_instance_private(trail); switch (prop_id) { case PROP_MAX_ANGLE: @@ -223,11 +211,8 @@ _adg_set_property(GObject *object, guint prop_id, AdgTrail * adg_trail_new(AdgTrailCallback callback, gpointer user_data) { - AdgTrail *trail; - AdgTrailPrivate *data; - - trail = g_object_new(ADG_TYPE_TRAIL, NULL); - data = trail->data; + AdgTrail *trail = g_object_new(ADG_TYPE_TRAIL, NULL); + AdgTrailPrivate *data = adg_trail_get_instance_private(trail); data->callback = callback; data->user_data = user_data; @@ -264,7 +249,7 @@ adg_trail_get_cairo_path(AdgTrail *trail) g_return_val_if_fail(ADG_IS_TRAIL(trail), NULL); - data = trail->data; + data = adg_trail_get_instance_private(trail); /* Check for cached result */ if (data->cairo_path.data != NULL) @@ -332,7 +317,7 @@ adg_trail_cairo_path(AdgTrail *trail) if (klass->get_cairo_path == NULL) return NULL; - data = trail->data; + data = adg_trail_get_instance_private(trail); if (data->in_construction) { g_warning(_("%s: you cannot access the path from the callback you provided to build it"), G_STRLOC); @@ -444,7 +429,7 @@ adg_trail_get_extents(AdgTrail *trail) g_return_val_if_fail(ADG_IS_TRAIL(trail), NULL); - data = trail->data; + data = adg_trail_get_instance_private(trail); if (!data->extents.is_defined) { cairo_path_t *cairo_path; @@ -544,7 +529,7 @@ adg_trail_get_max_angle(AdgTrail *trail) g_return_val_if_fail(ADG_IS_TRAIL(trail), 0); - data = trail->data; + data = adg_trail_get_instance_private(trail); return data->max_angle; } @@ -552,7 +537,7 @@ adg_trail_get_max_angle(AdgTrail *trail) static void _adg_clear(AdgModel *model) { - AdgTrailPrivate *data = ((AdgTrail *) model)->data; + AdgTrailPrivate *data = adg_trail_get_instance_private((AdgTrail *) model); g_free(data->cairo_path.data); @@ -568,7 +553,7 @@ _adg_clear(AdgModel *model) static cairo_path_t * _adg_get_cairo_path(AdgTrail *trail) { - AdgTrailPrivate *data = trail->data; + AdgTrailPrivate *data = adg_trail_get_instance_private(trail); if (data->callback == NULL) { g_warning(_("%s: callback not defined for instance of type '%s'"), diff --git a/src/adg/adg-trail.h b/src/adg/adg-trail.h index 7c4ce71a..630c1d47 100644 --- a/src/adg/adg-trail.h +++ b/src/adg/adg-trail.h @@ -43,13 +43,12 @@ typedef cairo_path_t * (*AdgTrailCallback) (AdgTrail *trail, gpointer user_data) struct _AdgTrail { /*< private >*/ - AdgModel parent; - gpointer data; + AdgModel parent; }; struct _AdgTrailClass { /*< private >*/ - AdgModelClass parent_class; + AdgModelClass parent_class; /*< public >*/ /* Virtual table */ -- 2.11.4.GIT