diff options
author | Dom Lachowicz <doml@src.gnome.org> | 2006-02-06 04:41:56 +0000 |
---|---|---|
committer | Dom Lachowicz <doml@src.gnome.org> | 2006-02-06 04:41:56 +0000 |
commit | 8de888596efd1cf206a474e262924bd3756a0609 (patch) | |
tree | 5b2d3503c1804c3899bb805ee78882583fcec609 | |
parent | f6305a37c1451154029e090c666a8224b0a785a7 (diff) | |
download | librsvg-8de888596efd1cf206a474e262924bd3756a0609.tar.gz |
Export RsvgHandle and RsvgHandleClass to the outside world so you can
* rsvg.h: Export RsvgHandle and RsvgHandleClass to the outside world so you can subclass them
* *.c: Changes necessary for ^^^
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | rsvg-base.c | 212 | ||||
-rw-r--r-- | rsvg-cairo-render.c | 14 | ||||
-rw-r--r-- | rsvg-defs.c | 2 | ||||
-rw-r--r-- | rsvg-filter.c | 34 | ||||
-rw-r--r-- | rsvg-gobject.c | 74 | ||||
-rw-r--r-- | rsvg-image.c | 2 | ||||
-rw-r--r-- | rsvg-marker.c | 2 | ||||
-rw-r--r-- | rsvg-mask.c | 4 | ||||
-rw-r--r-- | rsvg-paint-server.c | 14 | ||||
-rw-r--r-- | rsvg-private.h | 9 | ||||
-rw-r--r-- | rsvg-shapes.c | 12 | ||||
-rw-r--r-- | rsvg-structure.c | 14 | ||||
-rw-r--r-- | rsvg-styles.c | 24 | ||||
-rw-r--r-- | rsvg-text.c | 8 | ||||
-rw-r--r-- | rsvg.c | 2 | ||||
-rw-r--r-- | rsvg.h | 19 |
17 files changed, 232 insertions, 219 deletions
@@ -1,5 +1,10 @@ 2006-02-05 Dom Lachowicz <cinamod@hotmail.com> + * rsvg.h: Export RsvgHandle and RsvgHandleClass to the outside world so you can subclass them + * *.c: Changes necessary for ^^^ + +2006-02-05 Dom Lachowicz <cinamod@hotmail.com> + * rsvg-cairo-render.c: Bug #323114; work-around for a nasty cairo bug wrt pixel dirt * rsvg.c: Ditto diff --git a/rsvg-base.c b/rsvg-base.c index 2dccbca8..e4e9353f 100644 --- a/rsvg-base.c +++ b/rsvg-base.c @@ -110,10 +110,10 @@ rsvg_style_handler_end (RsvgSaxHandler *self, const xmlChar *name) if (!strcmp ((char *)name, "style")) { - if (ctx->handler != NULL) + if (ctx->priv->handler != NULL) { - ctx->handler->free (ctx->handler); - ctx->handler = prev; + ctx->priv->handler->free (ctx->priv->handler); + ctx->priv->handler = prev; } } } @@ -131,8 +131,8 @@ rsvg_start_style (RsvgHandle *ctx, RsvgPropertyBag *atts) handler->style = g_string_new (NULL); - handler->parent = (RsvgSaxHandlerDefs*)ctx->handler; - ctx->handler = &handler->super; + handler->parent = (RsvgSaxHandlerDefs*)ctx->priv->handler; + ctx->priv->handler = &handler->super; } @@ -257,15 +257,15 @@ rsvg_standard_element_start (RsvgHandle *ctx, const xmlChar *name, { newnode->type = g_string_new((char *)name); rsvg_node_set_atts(newnode, ctx, atts); - rsvg_defs_register_memory(ctx->defs, newnode); - if (ctx->currentnode) { - rsvg_node_group_pack(ctx->currentnode, newnode); - ctx->currentnode = newnode; + rsvg_defs_register_memory(ctx->priv->defs, newnode); + if (ctx->priv->currentnode) { + rsvg_node_group_pack(ctx->priv->currentnode, newnode); + ctx->priv->currentnode = newnode; } else if (!strcmp ((char *)name, "svg")) { newnode->parent = NULL; - ctx->treebase = newnode; - ctx->currentnode = newnode; + ctx->priv->treebase = newnode; + ctx->priv->currentnode = newnode; } } } @@ -301,7 +301,7 @@ rsvg_desc_handler_characters (RsvgSaxHandler *self, const xmlChar *ch, int len) string = utf8; } - g_string_append (ctx->desc, string); + g_string_append (ctx->priv->desc, string); g_free (string); } @@ -319,10 +319,10 @@ rsvg_desc_handler_end (RsvgSaxHandler *self, const xmlChar *name) if (!strcmp((char *)name, "desc")) { - if (ctx->handler != NULL) + if (ctx->priv->handler != NULL) { - ctx->handler->free (ctx->handler); - ctx->handler = NULL; + ctx->priv->handler->free (ctx->priv->handler); + ctx->priv->handler = NULL; } } } @@ -338,8 +338,8 @@ rsvg_start_desc (RsvgHandle *ctx, RsvgPropertyBag *atts) handler->super.end_element = rsvg_desc_handler_end; handler->ctx = ctx; - ctx->desc = g_string_new (NULL); - ctx->handler = &handler->super; + ctx->priv->desc = g_string_new (NULL); + ctx->priv->handler = &handler->super; } /* end desc */ @@ -375,7 +375,7 @@ rsvg_title_handler_characters (RsvgSaxHandler *self, const xmlChar *ch, int len) string = utf8; } - g_string_append (ctx->title, string); + g_string_append (ctx->priv->title, string); g_free (string); } @@ -393,10 +393,10 @@ rsvg_title_handler_end (RsvgSaxHandler *self, const xmlChar *name) if (!strcmp((char *)name, "title")) { - if (ctx->handler != NULL) + if (ctx->priv->handler != NULL) { - ctx->handler->free (ctx->handler); - ctx->handler = NULL; + ctx->priv->handler->free (ctx->priv->handler); + ctx->priv->handler = NULL; } } } @@ -412,8 +412,8 @@ rsvg_start_title (RsvgHandle *ctx, RsvgPropertyBag *atts) handler->super.end_element = rsvg_title_handler_end; handler->ctx = ctx; - ctx->title = g_string_new (NULL); - ctx->handler = &handler->super; + ctx->priv->title = g_string_new (NULL); + ctx->priv->handler = &handler->super; } /* end title */ @@ -449,7 +449,7 @@ rsvg_metadata_handler_characters (RsvgSaxHandler *self, const xmlChar *ch, int l string = utf8; } - g_string_append (ctx->metadata, string); + g_string_append (ctx->priv->metadata, string); g_free (string); } @@ -469,9 +469,9 @@ rsvg_metadata_handler_start (RsvgSaxHandler *self, const xmlChar *name, RsvgSaxHandlerMetadata *z = (RsvgSaxHandlerMetadata *)self; RsvgHandle *ctx = z->ctx; - g_string_append_printf (ctx->metadata, "<%s ", name); - rsvg_property_bag_enumerate (atts, rsvg_metadata_props_enumerate, ctx->metadata); - g_string_append (ctx->metadata, ">\n"); + g_string_append_printf (ctx->priv->metadata, "<%s ", name); + rsvg_property_bag_enumerate (atts, rsvg_metadata_props_enumerate, ctx->priv->metadata); + g_string_append (ctx->priv->metadata, ">\n"); } static void @@ -482,14 +482,14 @@ rsvg_metadata_handler_end (RsvgSaxHandler *self, const xmlChar *name) if (!strcmp((char *)name, "metadata")) { - if (ctx->handler != NULL) + if (ctx->priv->handler != NULL) { - ctx->handler->free (ctx->handler); - ctx->handler = NULL; + ctx->priv->handler->free (ctx->priv->handler); + ctx->priv->handler = NULL; } } else - g_string_append_printf (ctx->metadata, "</%s>\n", name); + g_string_append_printf (ctx->priv->metadata, "</%s>\n", name); } static void @@ -503,8 +503,8 @@ rsvg_start_metadata (RsvgHandle *ctx, RsvgPropertyBag *atts) handler->super.end_element = rsvg_metadata_handler_end; handler->ctx = ctx; - ctx->metadata = g_string_new (NULL); - ctx->handler = &handler->super; + ctx->priv->metadata = g_string_new (NULL); + ctx->priv->handler = &handler->super; } /* end metadata */ @@ -519,11 +519,11 @@ rsvg_start_element (void *data, const xmlChar *name, bag = rsvg_property_bag_new(atts); - if (ctx->handler) + if (ctx->priv->handler) { - ctx->handler_nest++; - if (ctx->handler->start_element != NULL) - ctx->handler->start_element (ctx->handler, name, bag); + ctx->priv->handler_nest++; + if (ctx->priv->handler->start_element != NULL) + ctx->priv->handler->start_element (ctx->priv->handler, name, bag); } else { @@ -551,11 +551,11 @@ rsvg_end_element (void *data, const xmlChar *name) { RsvgHandle *ctx = (RsvgHandle *)data; - if (ctx->handler_nest > 0 && ctx->handler != NULL) + if (ctx->priv->handler_nest > 0 && ctx->priv->handler != NULL) { - if (ctx->handler->end_element != NULL) - ctx->handler->end_element (ctx->handler, name); - ctx->handler_nest--; + if (ctx->priv->handler->end_element != NULL) + ctx->priv->handler->end_element (ctx->priv->handler, name); + ctx->priv->handler_nest--; } else { @@ -563,13 +563,13 @@ rsvg_end_element (void *data, const xmlChar *name) for (tempname = name; *tempname != '\0'; tempname++) if (*tempname == ':') name = tempname + 1; - if (ctx->handler != NULL) + if (ctx->priv->handler != NULL) { - ctx->handler->free (ctx->handler); - ctx->handler = NULL; + ctx->priv->handler->free (ctx->priv->handler); + ctx->priv->handler = NULL; } - if (!strcmp ((char *)name, ctx->currentnode->type->str)) + if (!strcmp ((char *)name, ctx->priv->currentnode->type->str)) rsvg_pop_def_group(ctx); } @@ -590,9 +590,9 @@ rsvg_characters (void *data, const xmlChar *ch, int len) RsvgNodeChars * self; GString * string; - if (ctx->handler && ctx->handler->characters != NULL) + if (ctx->priv->handler && ctx->priv->handler->characters != NULL) { - ctx->handler->characters (ctx->handler, ch, len); + ctx->priv->handler->characters (ctx->priv->handler, ch, len); return; } @@ -615,9 +615,9 @@ rsvg_characters (void *data, const xmlChar *ch, int len) self->super.free = _rsvg_node_chars_free; self->super.state->cond_true = FALSE; - rsvg_defs_register_memory(ctx->defs, (RsvgNode *)self); - if (ctx->currentnode) - rsvg_node_group_pack(ctx->currentnode, (RsvgNode *)self); + rsvg_defs_register_memory(ctx->priv->defs, (RsvgNode *)self); + if (ctx->priv->currentnode) + rsvg_node_group_pack(ctx->priv->currentnode, (RsvgNode *)self); } #if LIBXML_VERSION >= 20621 @@ -633,7 +633,7 @@ rsvg_get_entity (void *data, const xmlChar *name) RsvgHandle *ctx = (RsvgHandle *)data; xmlEntityPtr entity; - entity = g_hash_table_lookup (ctx->entities, name); + entity = g_hash_table_lookup (ctx->priv->entities, name); return entity; #else @@ -647,7 +647,7 @@ rsvg_entity_decl (void *data, const xmlChar *name, int type, { #ifdef RSVG_ENABLE_ENTITIES RsvgHandle *ctx = (RsvgHandle *)data; - GHashTable *entities = ctx->entities; + GHashTable *entities = ctx->priv->entities; xmlEntityPtr entity; xmlChar *dupname; @@ -736,10 +736,10 @@ void rsvg_handle_set_base_uri (RsvgHandle *handle, g_return_if_fail(handle); if (base_uri) { - if (handle->base_uri) - g_free (handle->base_uri); - handle->base_uri = g_strdup (base_uri); - rsvg_defs_set_base_uri(handle->defs, handle->base_uri); + if (handle->priv->base_uri) + g_free (handle->priv->base_uri); + handle->priv->base_uri = g_strdup (base_uri); + rsvg_defs_set_base_uri(handle->priv->defs, handle->priv->base_uri); } } @@ -755,7 +755,7 @@ void rsvg_handle_set_base_uri (RsvgHandle *handle, G_CONST_RETURN char *rsvg_handle_get_base_uri (RsvgHandle *handle) { g_return_val_if_fail(handle, NULL); - return handle->base_uri; + return handle->priv->base_uri; } /** @@ -785,21 +785,21 @@ rsvg_handle_write_impl (RsvgHandle *handle, g_return_val_if_fail (handle != NULL, FALSE); int result; - handle->error = &real_error; - if (handle->ctxt == NULL) + handle->priv->error = &real_error; + if (handle->priv->ctxt == NULL) { - handle->ctxt = xmlCreatePushParserCtxt (&rsvgSAXHandlerStruct, handle, NULL, 0, NULL); - handle->ctxt->replaceEntities = TRUE; + handle->priv->ctxt = xmlCreatePushParserCtxt (&rsvgSAXHandlerStruct, handle, NULL, 0, NULL); + handle->priv->ctxt->replaceEntities = TRUE; } - result = xmlParseChunk (handle->ctxt, (char*)buf, count, 0); + result = xmlParseChunk (handle->priv->ctxt, (char*)buf, count, 0); if (result != 0) { g_set_error (error, rsvg_error_quark (), 0, _("Error parsing XML data")); return FALSE; } - handle->error = NULL; + handle->priv->error = NULL; if (real_error != NULL) { @@ -816,17 +816,17 @@ rsvg_handle_close_impl (RsvgHandle *handle, { GError *real_error = NULL; - handle->error = &real_error; + handle->priv->error = &real_error; - if (handle->ctxt != NULL) + if (handle->priv->ctxt != NULL) { xmlDocPtr xmlDoc; int result; - xmlDoc = handle->ctxt->myDoc; + xmlDoc = handle->priv->ctxt->myDoc; - result = xmlParseChunk (handle->ctxt, "", 0, TRUE); - xmlFreeParserCtxt (handle->ctxt); + result = xmlParseChunk (handle->priv->ctxt, "", 0, TRUE); + xmlFreeParserCtxt (handle->priv->ctxt); xmlFreeDoc(xmlDoc); if (result != 0) { @@ -836,9 +836,9 @@ rsvg_handle_close_impl (RsvgHandle *handle, } } - rsvg_defs_resolve_all(handle->defs); - handle->finished = TRUE; - handle->error = NULL; + rsvg_defs_resolve_all(handle->priv->defs); + handle->priv->finished = TRUE; + handle->priv->error = NULL; if (real_error != NULL) { @@ -891,8 +891,8 @@ G_CONST_RETURN char *rsvg_handle_get_metadata (RsvgHandle *handle) { g_return_val_if_fail(handle, NULL); - if (handle->metadata) - return handle->metadata->str; + if (handle->priv->metadata) + return handle->priv->metadata->str; else return NULL; } @@ -912,8 +912,8 @@ G_CONST_RETURN char *rsvg_handle_get_title (RsvgHandle *handle) { g_return_val_if_fail(handle, NULL); - if (handle->title) - return handle->title->str; + if (handle->priv->title) + return handle->priv->title->str; else return NULL; } @@ -933,8 +933,8 @@ G_CONST_RETURN char *rsvg_handle_get_desc (RsvgHandle *handle) { g_return_val_if_fail(handle, NULL); - if (handle->desc) - return handle->desc->str; + if (handle->priv->desc) + return handle->priv->desc->str; else return NULL; } @@ -1046,17 +1046,17 @@ _rsvg_find_bbox (RsvgHandle *handle) ctx->state_allocator = g_mem_chunk_create (RsvgState, 256, G_ALLOC_AND_FREE); - ctx->defs = handle->defs; - ctx->base_uri = g_strdup(handle->base_uri); - ctx->dpi_x = handle->dpi_x; - ctx->dpi_y = handle->dpi_y; + ctx->defs = handle->priv->defs; + ctx->base_uri = g_strdup(handle->priv->base_uri); + ctx->dpi_x = handle->priv->dpi_x; + ctx->dpi_y = handle->priv->dpi_y; ctx->vb.w = 512; ctx->vb.h = 512; ctx->pango_context = NULL; rsvg_state_push(ctx); _rsvg_affine_identity(rsvg_state_current(ctx)->affine); - _rsvg_node_draw_children ((RsvgNode *)handle->treebase, ctx, 0); + _rsvg_node_draw_children ((RsvgNode *)handle->priv->treebase, ctx, 0); rsvg_state_pop(ctx); output = render->bbox; @@ -1084,7 +1084,7 @@ rsvg_handle_get_dimensions(RsvgHandle * handle, RsvgDimensionData * dimension_da memset(dimension_data, 0, sizeof(RsvgDimensionData)); g_return_if_fail(handle); - sself = (RsvgNodeSvg *)handle->treebase; + sself = (RsvgNodeSvg *)handle->priv->treebase; if(!sself) return; @@ -1101,16 +1101,16 @@ rsvg_handle_get_dimensions(RsvgHandle * handle, RsvgDimensionData * dimension_da else bbox = _rsvg_find_bbox(handle); } - dimension_data->width = _rsvg_css_hand_normalize_length(&sself->w, handle->dpi_x, + dimension_data->width = _rsvg_css_hand_normalize_length(&sself->w, handle->priv->dpi_x, bbox.w + bbox.x * 2, 12); - dimension_data->height = _rsvg_css_hand_normalize_length(&sself->h, handle->dpi_y, + dimension_data->height = _rsvg_css_hand_normalize_length(&sself->h, handle->priv->dpi_y, bbox.h + bbox.y * 2, 12); dimension_data->em = dimension_data->width; dimension_data->ex = dimension_data->height; - if (handle->size_func) - (* handle->size_func) (&dimension_data->width, &dimension_data->height, handle->user_data); + if (handle->priv->size_func) + (* handle->priv->size_func) (&dimension_data->width, &dimension_data->height, handle->priv->user_data); } /** @@ -1189,14 +1189,14 @@ rsvg_handle_set_dpi_x_y (RsvgHandle * handle, double dpi_x, double dpi_y) g_return_if_fail (handle != NULL); if (dpi_x <= 0.) - handle->dpi_x = rsvg_internal_dpi_x; + handle->priv->dpi_x = rsvg_internal_dpi_x; else - handle->dpi_x = dpi_x; + handle->priv->dpi_x = dpi_x; if (dpi_y <= 0.) - handle->dpi_y = rsvg_internal_dpi_y; + handle->priv->dpi_y = rsvg_internal_dpi_y; else - handle->dpi_y = dpi_y; + handle->priv->dpi_y = dpi_y; } /** @@ -1222,12 +1222,12 @@ rsvg_handle_set_size_callback (RsvgHandle *handle, { g_return_if_fail (handle != NULL); - if (handle->user_data_destroy) - (* handle->user_data_destroy) (handle->user_data); + if (handle->priv->user_data_destroy) + (* handle->priv->user_data_destroy) (handle->priv->user_data); - handle->size_func = size_func; - handle->user_data = user_data; - handle->user_data_destroy = user_data_destroy; + handle->priv->size_func = size_func; + handle->priv->user_data = user_data; + handle->priv->user_data_destroy = user_data_destroy; } /** @@ -1253,23 +1253,23 @@ rsvg_handle_write (RsvgHandle *handle, { g_return_val_if_fail(handle, FALSE); - if (handle->first_write) { - handle->first_write = FALSE; + if (handle->priv->first_write) { + handle->priv->first_write = FALSE; /* test for GZ marker. todo: store the first 2 bytes in the odd circumstance that someone calls * write() in 1 byte increments */ if ((count >= 2) && (buf[0] == (guchar)0x1f) && (buf[1] == (guchar)0x8b)) { - handle->is_gzipped = TRUE; + handle->priv->is_gzipped = TRUE; #ifdef HAVE_SVGZ - handle->gzipped_data = GSF_OUTPUT (gsf_output_memory_new ()); + handle->priv->gzipped_data = GSF_OUTPUT (gsf_output_memory_new ()); #endif } } - if (handle->is_gzipped) { + if (handle->priv->is_gzipped) { #ifdef HAVE_SVGZ - return gsf_output_write (handle->gzipped_data, count, buf); + return gsf_output_write (handle->priv->gzipped_data, count, buf); #else return FALSE; #endif @@ -1297,14 +1297,14 @@ rsvg_handle_close (RsvgHandle *handle, g_return_val_if_fail(handle, FALSE); #if HAVE_SVGZ - if (handle->is_gzipped) { + if (handle->priv->is_gzipped) { GsfInput * gzip; const guchar * bytes; gsize size; gsize remaining; - bytes = gsf_output_memory_get_bytes (GSF_OUTPUT_MEMORY (handle->gzipped_data)); - size = gsf_output_size (handle->gzipped_data); + bytes = gsf_output_memory_get_bytes (GSF_OUTPUT_MEMORY (handle->priv->gzipped_data)); + size = gsf_output_size (handle->priv->gzipped_data); gzip = GSF_INPUT (gsf_input_gzip_new (GSF_INPUT (gsf_input_memory_new (bytes, size, FALSE)), error)); remaining = gsf_input_remaining (gzip); @@ -1335,7 +1335,7 @@ rsvg_handle_close (RsvgHandle *handle, g_object_unref (G_OBJECT (gzip)); /* close parent */ - gsf_output_close (handle->gzipped_data); + gsf_output_close (handle->priv->gzipped_data); } #endif diff --git a/rsvg-cairo-render.c b/rsvg-cairo-render.c index 43c1f322..8d1ae335 100644 --- a/rsvg-cairo-render.c +++ b/rsvg-cairo-render.c @@ -98,10 +98,10 @@ rsvg_cairo_new_drawing_ctx (cairo_t *cr, RsvgHandle *handle) /* should this be G_ALLOC_ONLY? */ draw->state_allocator = g_mem_chunk_create (RsvgState, 256, G_ALLOC_AND_FREE); - draw->defs = handle->defs; - draw->base_uri = g_strdup(handle->base_uri); - draw->dpi_x = handle->dpi_x; - draw->dpi_y = handle->dpi_y; + draw->defs = handle->priv->defs; + draw->base_uri = g_strdup(handle->priv->base_uri); + draw->dpi_x = handle->priv->dpi_x; + draw->dpi_y = handle->priv->dpi_y; draw->vb.w = data.em; draw->vb.h = data.ex; draw->pango_context = NULL; @@ -143,7 +143,7 @@ rsvg_handle_render_cairo_sub (RsvgHandle *handle, cairo_t *cr, const char * id) g_return_if_fail (handle != NULL); - if (!handle->finished) + if (!handle->priv->finished) return; draw = rsvg_cairo_new_drawing_ctx (cr, handle); @@ -151,7 +151,7 @@ rsvg_handle_render_cairo_sub (RsvgHandle *handle, cairo_t *cr, const char * id) return; if(id && *id) - drawsub = rsvg_defs_lookup (handle->defs, id); + drawsub = rsvg_defs_lookup (handle->priv->defs, id); while (drawsub != NULL){ draw->drawsub_stack = g_slist_prepend(draw->drawsub_stack, drawsub); @@ -159,7 +159,7 @@ rsvg_handle_render_cairo_sub (RsvgHandle *handle, cairo_t *cr, const char * id) } rsvg_state_push(draw); - rsvg_node_draw((RsvgNode *)handle->treebase, draw, 0); + rsvg_node_draw((RsvgNode *)handle->priv->treebase, draw, 0); rsvg_state_pop(draw); rsvg_drawing_ctx_free(draw); } diff --git a/rsvg-defs.c b/rsvg-defs.c index 41b10a48..67dee653 100644 --- a/rsvg-defs.c +++ b/rsvg-defs.c @@ -113,7 +113,7 @@ rsvg_defs_extern_lookup (const RsvgDefs *defs, const char *filename, const char } if (file != NULL) - return (RsvgNode *)g_hash_table_lookup (file->defs->hash, name); + return (RsvgNode *)g_hash_table_lookup (file->priv->defs->hash, name); else return NULL; } diff --git a/rsvg-filter.c b/rsvg-filter.c index 1825b898..c0e54581 100644 --- a/rsvg-filter.c +++ b/rsvg-filter.c @@ -745,7 +745,7 @@ rsvg_filter_set_args (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super); } } @@ -1030,7 +1030,7 @@ rsvg_filter_primitive_blend_set_atts (RsvgNode * node, RsvgHandle * ctx, RsvgPro if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->super.height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -1285,7 +1285,7 @@ rsvg_filter_primitive_convolve_matrix_set_atts (RsvgNode * self, filter->edgemode = 0; } if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } if (filter->divisor == 0) @@ -1572,7 +1572,7 @@ rsvg_filter_primitive_gaussian_blur_set_atts (RsvgNode * self, &filter->sdx, &filter->sdy); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -1712,7 +1712,7 @@ rsvg_filter_primitive_offset_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPr if ((value = rsvg_property_bag_lookup (atts, "dy"))) filter->dy = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -1810,7 +1810,7 @@ rsvg_filter_primitive_merge_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPro if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->super.height =_rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -2030,7 +2030,7 @@ rsvg_filter_primitive_colour_matrix_set_atts (RsvgNode * self, RsvgHandle * ctx, type = 0; } if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } if (type == 0) @@ -2334,7 +2334,7 @@ rsvg_filter_primitive_component_transfer_set_atts (RsvgNode * self, RsvgHandle * if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->super.height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -2575,7 +2575,7 @@ rsvg_filter_primitive_erode_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPro filter->mode = 1; } if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -2812,7 +2812,7 @@ rsvg_filter_primitive_composite_set_atts (RsvgNode * self, RsvgHandle * ctx, Rsv if ((value = rsvg_property_bag_lookup (atts, "k4"))) filter->k4 = g_ascii_strtod(value, NULL) * 255.; if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -2917,7 +2917,7 @@ rsvg_filter_primitive_flood_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPro if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, id = value, &filter->super); + rsvg_defs_register_name (ctx->priv->defs, id = value, &filter->super); rsvg_parse_style_attrs (ctx, self->state, "feFlood", NULL, id, atts); } } @@ -3101,7 +3101,7 @@ rsvg_filter_primitive_displacement_map_set_atts (RsvgNode * self, RsvgHandle * c if ((value = rsvg_property_bag_lookup (atts, "scale"))) filter->scale = g_ascii_strtod(value, NULL); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -3466,7 +3466,7 @@ rsvg_filter_primitive_turbulence_set_atts (RsvgNode * self, RsvgHandle * ctx, Rs if ((value = rsvg_property_bag_lookup (atts, "type"))) filter->bFractalSum = (!strcmp(value, "fractalNoise")); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -3697,7 +3697,7 @@ rsvg_filter_primitive_image_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPro if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->super.height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -4265,7 +4265,7 @@ rsvg_filter_primitive_diffuse_lighting_set_atts (RsvgNode * self, RsvgHandle * c if ((value = rsvg_property_bag_lookup (atts, "surfaceScale"))) filter->surfaceScale = g_ascii_strtod(value, NULL); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -4449,7 +4449,7 @@ rsvg_filter_primitive_specular_lighting_set_atts (RsvgNode * self, RsvgHandle * if ((value = rsvg_property_bag_lookup (atts, "surfaceScale"))) filter->surfaceScale = g_ascii_strtod(value, NULL); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } @@ -4577,7 +4577,7 @@ rsvg_filter_primitive_tile_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgProp if ((value = rsvg_property_bag_lookup (atts, "height"))) filter->super.height = _rsvg_css_parse_length(value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, &filter->super.super); + rsvg_defs_register_name (ctx->priv->defs, value, &filter->super.super); } } diff --git a/rsvg-gobject.c b/rsvg-gobject.c index 40541400..2e4ad2a0 100644 --- a/rsvg-gobject.c +++ b/rsvg-gobject.c @@ -46,24 +46,25 @@ static GObjectClass *rsvg_parent_class = NULL; static void instance_init (RsvgHandle *self) { - self->defs = rsvg_defs_new (); - self->handler_nest = 0; - self->entities = g_hash_table_new (g_str_hash, g_str_equal); - self->dpi_x = rsvg_internal_dpi_x; - self->dpi_y = rsvg_internal_dpi_y; + self->priv = g_new0(RsvgHandlePrivate, 1); + self->priv->defs = rsvg_defs_new (); + self->priv->handler_nest = 0; + self->priv->entities = g_hash_table_new (g_str_hash, g_str_equal); + self->priv->dpi_x = rsvg_internal_dpi_x; + self->priv->dpi_y = rsvg_internal_dpi_y; - self->css_props = g_hash_table_new_full (g_str_hash, g_str_equal, + self->priv->css_props = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); rsvg_SAX_handler_struct_init (); - self->ctxt = NULL; - self->currentnode = NULL; - self->treebase = NULL; + self->priv->ctxt = NULL; + self->priv->currentnode = NULL; + self->priv->treebase = NULL; - self->finished = 0; - self->first_write = TRUE; + self->priv->finished = 0; + self->priv->first_write = TRUE; - self->is_disposed = FALSE; + self->priv->is_disposed = FALSE; } static void @@ -86,32 +87,31 @@ instance_dispose (GObject *instance) { RsvgHandle *self = (RsvgHandle*) instance; - if (self->is_disposed) - return; - - self->is_disposed = TRUE; + self->priv->is_disposed = TRUE; #if HAVE_SVGZ - if (self->is_gzipped) - g_object_unref (G_OBJECT (self->gzipped_data)); + if (self->priv->is_gzipped) + g_object_unref (G_OBJECT (self->priv->gzipped_data)); #endif - g_hash_table_foreach (self->entities, rsvg_ctx_free_helper, NULL); - g_hash_table_destroy (self->entities); - rsvg_defs_free (self->defs); - g_hash_table_destroy (self->css_props); + g_hash_table_foreach (self->priv->entities, rsvg_ctx_free_helper, NULL); + g_hash_table_destroy (self->priv->entities); + rsvg_defs_free (self->priv->defs); + g_hash_table_destroy (self->priv->css_props); - if (self->user_data_destroy) - (* self->user_data_destroy) (self->user_data); - - if (self->title) - g_string_free (self->title, TRUE); - if (self->desc) - g_string_free (self->desc, TRUE); - if (self->metadata) - g_string_free (self->metadata, TRUE); - if (self->base_uri) - g_free (self->base_uri); + if (self->priv->user_data_destroy) + (* self->priv->user_data_destroy) (self->priv->user_data); + + if (self->priv->title) + g_string_free (self->priv->title, TRUE); + if (self->priv->desc) + g_string_free (self->priv->desc, TRUE); + if (self->priv->metadata) + g_string_free (self->priv->metadata, TRUE); + if (self->priv->base_uri) + g_free (self->priv->base_uri); + + g_free(self->priv); rsvg_parent_class->dispose (G_OBJECT (self)); } @@ -126,10 +126,10 @@ set_property (GObject *instance, switch (prop_id) { case PROP_DPI_X: - rsvg_handle_set_dpi_x_y (self, g_value_get_double (value), self->dpi_y); + rsvg_handle_set_dpi_x_y (self, g_value_get_double (value), self->priv->dpi_y); break; case PROP_DPI_Y: - rsvg_handle_set_dpi_x_y (self, self->dpi_x, g_value_get_double (value)); + rsvg_handle_set_dpi_x_y (self, self->priv->dpi_x, g_value_get_double (value)); break; case PROP_BASE_URI: rsvg_handle_set_base_uri (self, g_value_get_string (value)); @@ -150,10 +150,10 @@ get_property (GObject *instance, switch (prop_id) { case PROP_DPI_X: - g_value_set_double (value, self->dpi_x); + g_value_set_double (value, self->priv->dpi_x); break; case PROP_DPI_Y: - g_value_set_double (value, self->dpi_y); + g_value_set_double (value, self->priv->dpi_y); break; case PROP_BASE_URI: g_value_set_string (value, rsvg_handle_get_base_uri (self)); diff --git a/rsvg-image.c b/rsvg-image.c index d9f7c881..5f989389 100644 --- a/rsvg-image.c +++ b/rsvg-image.c @@ -567,7 +567,7 @@ rsvg_node_image_set_atts (RsvgNode *self, RsvgHandle *ctx, RsvgPropertyBag *atts if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, id, &image->super); + rsvg_defs_register_name (ctx->priv->defs, id, &image->super); } if ((value = rsvg_property_bag_lookup (atts, "preserveAspectRatio"))) image->preserve_aspect_ratio = rsvg_css_parse_aspect_ratio (value); diff --git a/rsvg-marker.c b/rsvg-marker.c index 13bd8191..7a334ced 100644 --- a/rsvg-marker.c +++ b/rsvg-marker.c @@ -48,7 +48,7 @@ rsvg_node_marker_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *at if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, id, &marker->super); + rsvg_defs_register_name (ctx->priv->defs, id, &marker->super); } if ((value = rsvg_property_bag_lookup (atts, "class"))) klazz = value; diff --git a/rsvg-mask.c b/rsvg-mask.c index fef4ede7..a646109a 100644 --- a/rsvg-mask.c +++ b/rsvg-mask.c @@ -62,7 +62,7 @@ rsvg_mask_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts) if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name(ctx->defs, id, &mask->super); + rsvg_defs_register_name(ctx->priv->defs, id, &mask->super); } if ((value = rsvg_property_bag_lookup (atts, "class"))) klazz = value; @@ -139,7 +139,7 @@ rsvg_clip_path_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name(ctx->defs, id, &clip_path->super); + rsvg_defs_register_name(ctx->priv->defs, id, &clip_path->super); } if ((value = rsvg_property_bag_lookup (atts, "class"))) klazz = value; diff --git a/rsvg-paint-server.c b/rsvg-paint-server.c index 745289b8..744dcddd 100644 --- a/rsvg-paint-server.c +++ b/rsvg-paint-server.c @@ -230,7 +230,7 @@ rsvg_stop_set_atts (RsvgNode *self, RsvgHandle *ctx, rsvg_parse_style_pairs (ctx, self->state, atts); } - self->parent = ctx->currentnode; + self->parent = ctx->priv->currentnode; rsvg_state_init(&state); rsvg_state_reconstruct(&state, self); if (is_current_color) @@ -259,7 +259,7 @@ rsvg_linear_gradient_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag if (rsvg_property_bag_size (atts)) { if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); if ((value = rsvg_property_bag_lookup (atts, "x1"))){ grad->x1 = _rsvg_css_parse_length (value); grad->hasx1 = TRUE; @@ -290,7 +290,7 @@ rsvg_linear_gradient_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag grad->hasspread = TRUE; } if ((value = rsvg_property_bag_lookup (atts, "xlink:href"))) - rsvg_defs_add_resolver (ctx->defs, &grad->fallback, value); + rsvg_defs_add_resolver (ctx->priv->defs, &grad->fallback, value); if ((value = rsvg_property_bag_lookup (atts, "gradientTransform"))){ rsvg_parse_transform (grad->affine, value); grad->hastransform = TRUE; @@ -337,7 +337,7 @@ rsvg_radial_gradient_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag if (rsvg_property_bag_size (atts)) { if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); if ((value = rsvg_property_bag_lookup (atts, "cx"))){ grad->cx = _rsvg_css_parse_length (value); grad->hascx = TRUE; @@ -363,7 +363,7 @@ rsvg_radial_gradient_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag grad->hasfy = TRUE; } if ((value = rsvg_property_bag_lookup (atts, "xlink:href"))) - rsvg_defs_add_resolver (ctx->defs, &grad->fallback, value); + rsvg_defs_add_resolver (ctx->priv->defs, &grad->fallback, value); if ((value = rsvg_property_bag_lookup (atts, "gradientTransform"))){ rsvg_parse_transform (grad->affine, value); grad->hastransform = TRUE; @@ -418,7 +418,7 @@ rsvg_pattern_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts) if (rsvg_property_bag_size (atts)) { if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); if ((value = rsvg_property_bag_lookup (atts, "viewBox"))){ pattern->vbox = rsvg_css_parse_vbox (value); pattern->hasvbox = TRUE; @@ -440,7 +440,7 @@ rsvg_pattern_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts) pattern->hasheight = TRUE; } if ((value = rsvg_property_bag_lookup (atts, "xlink:href"))) - rsvg_defs_add_resolver (ctx->defs, (RsvgNode **)&pattern->fallback, value); + rsvg_defs_add_resolver (ctx->priv->defs, (RsvgNode **)&pattern->fallback, value); if ((value = rsvg_property_bag_lookup (atts, "patternTransform"))){ rsvg_parse_transform (pattern->affine, value); pattern->hastransform = TRUE; diff --git a/rsvg-private.h b/rsvg-private.h index 95a855d4..220e182b 100644 --- a/rsvg-private.h +++ b/rsvg-private.h @@ -73,14 +73,7 @@ struct RsvgSaxHandler { void (*characters) (RsvgSaxHandler *self, const xmlChar *ch, int len); }; -struct RsvgHandleClass { - GObjectClass parent; -}; - -/* Contextual information for the parsing phase*/ - -struct RsvgHandle { - GObject parent; +struct RsvgHandlePrivate { gboolean is_disposed; RsvgSizeFunc size_func; diff --git a/rsvg-shapes.c b/rsvg-shapes.c index 1f570cb5..324a7b97 100644 --- a/rsvg-shapes.c +++ b/rsvg-shapes.c @@ -80,7 +80,7 @@ rsvg_node_path_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "path", klazz, id, atts); @@ -130,7 +130,7 @@ _rsvg_node_poly_set_atts(RsvgNode * self, RsvgHandle *ctx, if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, (poly->is_polyline ? "polyline" : "polygon"), klazz, id, atts); @@ -244,7 +244,7 @@ _rsvg_node_line_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *att if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "line", klazz, id, atts); @@ -331,7 +331,7 @@ _rsvg_node_rect_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *att if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "rect", klazz, id, atts); @@ -499,7 +499,7 @@ _rsvg_node_circle_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *a if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "circle", klazz, id, atts); @@ -630,7 +630,7 @@ _rsvg_node_ellipse_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag * if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "ellipse", klazz, id, atts); diff --git a/rsvg-structure.c b/rsvg-structure.c index ea004d8f..5cda68ec 100644 --- a/rsvg-structure.c +++ b/rsvg-structure.c @@ -136,7 +136,7 @@ rsvg_node_group_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *att if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "g", klazz, id, atts); @@ -157,8 +157,8 @@ rsvg_new_group (void) void rsvg_pop_def_group (RsvgHandle *ctx) { - if (ctx->currentnode != NULL) - ctx->currentnode = ctx->currentnode->parent; + if (ctx->priv->currentnode != NULL) + ctx->priv->currentnode = ctx->priv->currentnode->parent; } void @@ -348,7 +348,7 @@ rsvg_node_svg_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts) if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, &svg->super); + rsvg_defs_register_name (ctx->priv->defs, value, &svg->super); } } } @@ -392,10 +392,10 @@ rsvg_node_use_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts) if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, &use->super); + rsvg_defs_register_name (ctx->priv->defs, value, &use->super); } if ((value = rsvg_property_bag_lookup (atts, "xlink:href"))) - rsvg_defs_add_resolver (ctx->defs, &use->link, value); + rsvg_defs_add_resolver (ctx->priv->defs, &use->link, value); rsvg_parse_style_attrs (ctx, self->state, "use", klazz, id, atts); } @@ -431,7 +431,7 @@ rsvg_node_symbol_set_atts(RsvgNode *self, RsvgHandle *ctx, RsvgPropertyBag *atts if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, &symbol->super); + rsvg_defs_register_name (ctx->priv->defs, value, &symbol->super); } if ((value = rsvg_property_bag_lookup (atts, "viewBox"))) symbol->vbox = rsvg_css_parse_vbox (value); diff --git a/rsvg-styles.c b/rsvg-styles.c index 349530f0..6ad75130 100644 --- a/rsvg-styles.c +++ b/rsvg-styles.c @@ -45,7 +45,7 @@ rsvg_viewport_percentage (gdouble width, gdouble height) gdouble rsvg_dpi_percentage (RsvgHandle * ctx) { - return sqrt(ctx->dpi_x * ctx->dpi_y); + return sqrt(ctx->priv->dpi_x * ctx->priv->dpi_y); } void @@ -371,7 +371,7 @@ rsvg_parse_style_arg (RsvgHandle *ctx, RsvgState *state, const char *str) state->has_flood_opacity = TRUE; } else if (rsvg_css_param_match (str, "filter")) - state->filter = rsvg_filter_parse(ctx->defs, str + arg_off); + state->filter = rsvg_filter_parse(ctx->priv->defs, str + arg_off); else if (rsvg_css_param_match (str, "a:adobe-blending-mode")) { if (!strcmp (str + arg_off, "normal")) @@ -402,10 +402,10 @@ rsvg_parse_style_arg (RsvgHandle *ctx, RsvgState *state, const char *str) state->adobe_blend = 0; } else if (rsvg_css_param_match (str, "mask")) - state->mask = rsvg_mask_parse(ctx->defs, str + arg_off); + state->mask = rsvg_mask_parse(ctx->priv->defs, str + arg_off); else if (rsvg_css_param_match (str, "clip-path")) { - state->clip_path_ref = rsvg_clip_path_parse(ctx->defs, str + arg_off); + state->clip_path_ref = rsvg_clip_path_parse(ctx->priv->defs, str + arg_off); } else if (rsvg_css_param_match (str, "overflow")) { @@ -444,7 +444,7 @@ rsvg_parse_style_arg (RsvgHandle *ctx, RsvgState *state, const char *str) else if (rsvg_css_param_match (str, "fill")) { RsvgPaintServer * fill = state->fill; - state->fill = rsvg_paint_server_parse (&state->has_fill_server, ctx->defs, str + arg_off, 0); + state->fill = rsvg_paint_server_parse (&state->has_fill_server, ctx->priv->defs, str + arg_off, 0); rsvg_paint_server_unref (fill); } else if (rsvg_css_param_match (str, "fill-opacity")) @@ -476,7 +476,7 @@ rsvg_parse_style_arg (RsvgHandle *ctx, RsvgState *state, const char *str) { RsvgPaintServer * stroke = state->stroke; - state->stroke = rsvg_paint_server_parse (&state->has_stroke_server, ctx->defs, str + arg_off, 0); + state->stroke = rsvg_paint_server_parse (&state->has_stroke_server, ctx->priv->defs, str + arg_off, 0); rsvg_paint_server_unref (stroke); } @@ -649,17 +649,17 @@ rsvg_parse_style_arg (RsvgHandle *ctx, RsvgState *state, const char *str) } else if (rsvg_css_param_match (str, "marker-start")) { - state->startMarker = rsvg_marker_parse(ctx->defs, str + arg_off); + state->startMarker = rsvg_marker_parse(ctx->priv->defs, str + arg_off); state->has_startMarker = TRUE; } else if (rsvg_css_param_match (str, "marker-mid")) { - state->middleMarker = rsvg_marker_parse(ctx->defs, str + arg_off); + state->middleMarker = rsvg_marker_parse(ctx->priv->defs, str + arg_off); state->has_middleMarker = TRUE; } else if (rsvg_css_param_match (str, "marker-end")) { - state->endMarker = rsvg_marker_parse(ctx->defs, str + arg_off); + state->endMarker = rsvg_marker_parse(ctx->priv->defs, str + arg_off); state->has_endMarker = TRUE; } else if (rsvg_css_param_match (str, "stroke-miterlimit")) @@ -840,12 +840,12 @@ rsvg_css_define_style (RsvgHandle *ctx, const gchar * style_name, const char * s char * existing = NULL; /* push name/style pair into HT */ - existing = (char *)g_hash_table_lookup (ctx->css_props, style_name); + existing = (char *)g_hash_table_lookup (ctx->priv->css_props, style_name); if (existing != NULL) g_string_append_len (str, existing, strlen (existing)); /* will destroy the existing key and value for us */ - g_hash_table_insert (ctx->css_props, (gpointer)g_strdup ((gchar *)style_name), (gpointer)str->str); + g_hash_table_insert (ctx->priv->css_props, (gpointer)g_strdup ((gchar *)style_name), (gpointer)str->str); g_string_free (str, FALSE); } @@ -1233,7 +1233,7 @@ rsvg_parse_transform_attr (RsvgHandle *ctx, RsvgState *state, const char *str) static gboolean rsvg_lookup_apply_css_style (RsvgHandle *ctx, const char * target, RsvgState *state) { - const char * value = (const char *)g_hash_table_lookup (ctx->css_props, target); + const char * value = (const char *)g_hash_table_lookup (ctx->priv->css_props, target); if (value != NULL) { diff --git a/rsvg-text.c b/rsvg-text.c index 5d57c6f4..84e3ef7d 100644 --- a/rsvg-text.c +++ b/rsvg-text.c @@ -144,7 +144,7 @@ _rsvg_node_text_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *att if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "text", klazz, id, atts); @@ -338,7 +338,7 @@ _rsvg_node_tspan_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *at if ((value = rsvg_property_bag_lookup (atts, "id"))) { id = value; - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } rsvg_parse_style_attrs (ctx, self->state, "tspan", klazz, id, atts); @@ -383,9 +383,9 @@ _rsvg_node_tref_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *att if (rsvg_property_bag_size (atts)) { if ((value = rsvg_property_bag_lookup (atts, "xlink:href"))) - rsvg_defs_add_resolver (ctx->defs, &text->link, value); + rsvg_defs_add_resolver (ctx->priv->defs, &text->link, value); if ((value = rsvg_property_bag_lookup (atts, "id"))) - rsvg_defs_register_name (ctx->defs, value, self); + rsvg_defs_register_name (ctx->priv->defs, value, self); } } @@ -76,7 +76,7 @@ rsvg_handle_get_pixbuf_sub (RsvgHandle *handle, const char * id) g_return_val_if_fail (handle != NULL, NULL); - if (!handle->finished) + if (!handle->priv->finished) return NULL; rsvg_handle_get_dimensions (handle, &dimensions); @@ -54,10 +54,25 @@ GQuark rsvg_error_quark (void) G_GNUC_CONST; /** * The RsvgHandle is an object representing the parsed form of a SVG */ -typedef struct RsvgHandle RsvgHandle; -typedef struct RsvgHandleClass RsvgHandleClass; +typedef struct _RsvgHandle RsvgHandle; +typedef struct RsvgHandlePrivate RsvgHandlePrivate; +typedef struct _RsvgHandleClass RsvgHandleClass; typedef struct _RsvgDimensionData RsvgDimensionData; +struct _RsvgHandleClass { + GObjectClass parent; + + gpointer _abi_padding[15]; +}; + +struct _RsvgHandle { + GObject parent; + + RsvgHandlePrivate *priv; + + gpointer _abi_padding[15]; +}; + /* RsvgDimensionData */ struct _RsvgDimensionData { |