[gnumeric] write correct viewbox when exporting custom shapes to ODF
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] write correct viewbox when exporting custom shapes to ODF
- Date: Thu, 18 Jul 2013 17:08:53 +0000 (UTC)
commit 514ee6c3e1dbf3dc5b3847fd5fe72bad699c2f72
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Thu Jul 18 11:07:54 2013 -0600
write correct viewbox when exporting custom shapes to ODF
2013-07-18 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/gnm-so-path.c (gnm_so_path_class_init): add new property
(gnm_so_path_set_property): ditto
(gnm_so_path_get_property): ditto
2013-07-18 Andreas J. Guelzow <aguelzow pyrshep ca>
* openoffice-write.c (odf_write_custom_shape): write teh correct
viewbox
ChangeLog | 6 ++++++
plugins/openoffice/ChangeLog | 5 +++++
plugins/openoffice/openoffice-write.c | 11 +++++------
src/gnm-so-path.c | 19 ++++++++++++++++---
4 files changed, 32 insertions(+), 9 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index efd04ef..23bd596 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-07-18 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * src/gnm-so-path.c (gnm_so_path_class_init): add new property
+ (gnm_so_path_set_property): ditto
+ (gnm_so_path_get_property): ditto
+
2013-07-18 Jean Brefort <jean brefort normalesup org>
* src/gnm-so-path.c (so_path_view_set_bounds),
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index 367b656..83c1973 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,3 +1,8 @@
+2013-07-18 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * openoffice-write.c (odf_write_custom_shape): write teh correct
+ viewbox
+
2013-07-17 Andreas J. Guelzow <aguelzow pyrshep ca>
* openoffice-write.c (odf_write_sheet_object_styles): write object
diff --git a/plugins/openoffice/openoffice-write.c b/plugins/openoffice/openoffice-write.c
index cb8ba6f..c6081a6 100644
--- a/plugins/openoffice/openoffice-write.c
+++ b/plugins/openoffice/openoffice-write.c
@@ -3005,10 +3005,6 @@ odf_write_frame (GnmOOExport *state, SheetObject *so)
gsf_xml_out_end_element (state->xml); /* DRAW "frame" */
}
-/*
-<draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="mso-spt202" draw:enhanced-path="M 0 0 L
21600 0 21600 21600 0 21600 0 0 Z N"/>
-*/
-
static void
custom_shape_path_collector (GOPath *path, GString *gstr)
{
@@ -3029,8 +3025,10 @@ odf_write_custom_shape (GnmOOExport *state, SheetObject *so)
GOPath *path = NULL;
GPtrArray *paths;
char *path_string = NULL;
+ char *view_box = NULL;
- g_object_get (G_OBJECT (so), "text", &text, "markup", &markup, "path", &path, "paths", &paths, NULL);
+ g_object_get (G_OBJECT (so), "text", &text, "markup", &markup, "path", &path,
+ "paths", &paths, "viewbox", &view_box, NULL);
gsf_xml_out_start_element (state->xml, DRAW "custom-shape");
@@ -3058,7 +3056,7 @@ odf_write_custom_shape (GnmOOExport *state, SheetObject *so)
}
if (path_string) {
gsf_xml_out_start_element (state->xml, DRAW "enhanced-geometry");
- gsf_xml_out_add_cstr (state->xml, SVG "viewBox", "0 0 21600 21600");
+ gsf_xml_out_add_cstr (state->xml, SVG "viewBox", view_box);
gsf_xml_out_add_cstr (state->xml, DRAW "enhanced-path", path_string);
gsf_xml_out_end_element (state->xml); /* DRAW "enhanced-geometry" */
}
@@ -3066,6 +3064,7 @@ odf_write_custom_shape (GnmOOExport *state, SheetObject *so)
g_free (text);
g_free (path_string);
+ g_free (view_box);
if (markup)
pango_attr_list_unref (markup);
if (paths)
diff --git a/src/gnm-so-path.c b/src/gnm-so-path.c
index b875753..a683fda 100644
--- a/src/gnm-so-path.c
+++ b/src/gnm-so-path.c
@@ -1,3 +1,4 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* gnm-so-path.c
*
@@ -159,7 +160,8 @@ enum {
SOP_PROP_PATH,
SOP_PROP_TEXT,
SOP_PROP_MARKUP,
- SOP_PROP_PATHS
+ SOP_PROP_PATHS,
+ SOP_PROP_VIEWBOX
};
@@ -357,7 +359,7 @@ gnm_so_path_draw_cairo (SheetObject const *so, cairo_t *cr,
static void
gnm_so_path_write_xml_sax (SheetObject const *so, GsfXMLOut *output,
- GnmConventions const *convs)
+ G_GNUC_UNUSED GnmConventions const *convs)
{
GnmSOPath const *sop = GNM_SO_PATH (so);
char *svg;
@@ -424,7 +426,7 @@ sop_sax_style (GsfXMLIn *xin, xmlChar const **attrs)
static void
gnm_so_path_prep_sax_parser (SheetObject *so, GsfXMLIn *xin,
xmlChar const **attrs,
- GnmConventions const *convs)
+ G_GNUC_UNUSED GnmConventions const *convs)
{
static GsfXMLInNode const dtd[] = {
GSF_XML_IN_NODE (SOPATH, SOPATH, -1, "SheetObjectPath", GSF_XML_NO_CONTENT, NULL, NULL),
@@ -573,6 +575,8 @@ gnm_so_path_set_property (GObject *obj, guint param_id,
pango_attr_list_ref (sop->markup);
break;
+ case SOP_PROP_VIEWBOX:
+ /* not settable */
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, param_id, pspec);
return;
@@ -600,6 +604,12 @@ gnm_so_path_get_property (GObject *obj, guint param_id,
case SOP_PROP_MARKUP :
g_value_set_boxed (value, sop->markup);
break;
+ case SOP_PROP_VIEWBOX :
+ g_value_take_string
+ (value,
+ g_strdup_printf ("%0.0f %0.0f %0.0f %0.0f", sop->x_offset, sop->y_offset,
+ sop->width + sop->x_offset, sop->height + sop->y_offset));
+ break;
default :
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, param_id, pspec);
break;
@@ -666,6 +676,9 @@ gnm_so_path_class_init (GObjectClass *gobject_class)
g_object_class_install_property (gobject_class, SOP_PROP_PATHS,
g_param_spec_boxed ("paths", NULL, NULL, G_TYPE_PTR_ARRAY,
GSF_PARAM_STATIC | G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, SOP_PROP_VIEWBOX,
+ g_param_spec_string ("viewbox", NULL, NULL, NULL,
+ GSF_PARAM_STATIC | G_PARAM_READABLE));
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]