summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-06-12 21:33:11 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-08-05 00:31:06 +0000
commitbbf828d9ae370e9aede9702e520c106c380a3867 (patch)
tree1995e3e38ee25046906073df927999988e445941 /src/extension
parentRevert changes (diff)
downloadinkscape-bbf828d9ae370e9aede9702e520c106c380a3867.tar.gz
inkscape-bbf828d9ae370e9aede9702e520c106c380a3867.zip
Refactor with Tav help
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/internal/cairo-render-context.cpp2
-rw-r--r--src/extension/internal/emf-inout.cpp44
-rw-r--r--src/extension/internal/emf-print.cpp8
-rw-r--r--src/extension/internal/javafx-out.cpp4
-rw-r--r--src/extension/internal/latex-pstricks.cpp2
-rw-r--r--src/extension/internal/wmf-inout.cpp18
-rw-r--r--src/extension/internal/wmf-print.cpp6
7 files changed, 52 insertions, 32 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp
index da0797600..4727f1e4e 100644
--- a/src/extension/internal/cairo-render-context.cpp
+++ b/src/extension/internal/cairo-render-context.cpp
@@ -1436,7 +1436,7 @@ CairoRenderContext::_setStrokeStyle(SPStyle const *style, Geom::OptRect const &p
size_t ndashes = style->stroke_dasharray.values.size();
double* dashes =(double*)malloc(ndashes*sizeof(double));
for( unsigned i = 0; i < ndashes; ++i ) {
- dashes[i] = style->stroke_dasharray.values[i];
+ dashes[i] = style->stroke_dasharray.values[i].value;
}
cairo_set_dash(_cr, dashes, ndashes, style->stroke_dashoffset.value);
free(dashes);
diff --git a/src/extension/internal/emf-inout.cpp b/src/extension/internal/emf-inout.cpp
index d0556e467..3e3b6ec43 100644
--- a/src/extension/internal/emf-inout.cpp
+++ b/src/extension/internal/emf-inout.cpp
@@ -45,6 +45,7 @@
#include "display/drawing-item.h"
#include "clear-n_.h"
#include "svg/svg.h"
+#include "svg/css-ostringstream.h"
#include "util/units.h" // even though it is included indirectly by emf-inout.h
#include "inkscape.h" // even though it is included indirectly by emf-inout.h
@@ -984,7 +985,7 @@ Emf::output_style(PEMF_CALLBACK_DATA d, int iType)
for (unsigned i=0; i<d->dc[d->level].style.stroke_dasharray.values.size(); i++) {
if (i)
tmp_style << ",";
- tmp_style << d->dc[d->level].style.stroke_dasharray.values[i];
+ tmp_style << d->dc[d->level].style.stroke_dasharray.values[i].value;
}
tmp_style << ";";
tmp_style << "stroke-dashoffset:0;";
@@ -1094,20 +1095,24 @@ Emf::select_pen(PEMF_CALLBACK_DATA d, int index)
case U_PS_DASHDOT:
case U_PS_DASHDOTDOT:
{
+ SPILength spilength;
+ spilength.read("1");
int penstyle = (pEmr->lopn.lopnStyle & U_PS_STYLE_MASK);
if (!d->dc[d->level].style.stroke_dasharray.values.empty() && (d->level==0 || (d->level>0 && d->dc[d->level].style.stroke_dasharray.values!=d->dc[d->level-1].style.stroke_dasharray.values)))
d->dc[d->level].style.stroke_dasharray.values.clear();
if (penstyle==U_PS_DASH || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 3 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ spilength.read("3");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ spilength.read("1");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DOT || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
d->dc[d->level].style.stroke_dasharray.set = 1;
@@ -1181,9 +1186,13 @@ Emf::select_extpen(PEMF_CALLBACK_DATA d, int index)
if (pEmr->elp.elpNumEntries) {
if (!d->dc[d->level].style.stroke_dasharray.values.empty() && (d->level==0 || (d->level>0 && d->dc[d->level].style.stroke_dasharray.values!=d->dc[d->level-1].style.stroke_dasharray.values)))
d->dc[d->level].style.stroke_dasharray.values.clear();
+ SPILength spilength;
for (unsigned int i=0; i<pEmr->elp.elpNumEntries; i++) {
double dash_length = pix_to_abs_size( d, pEmr->elp.elpStyleEntry[i] );
- d->dc[d->level].style.stroke_dasharray.values.push_back(dash_length);
+ Inkscape::CSSOStringStream osarray;
+ osarray << dash_length;
+ spilength.read(osarray.str().c_str());
+ d->dc[d->level].style.stroke_dasharray.values.push_back(spilength);
}
d->dc[d->level].style.stroke_dasharray.set = 1;
} else {
@@ -1200,17 +1209,24 @@ Emf::select_extpen(PEMF_CALLBACK_DATA d, int index)
int penstyle = (pEmr->elp.elpPenStyle & U_PS_STYLE_MASK);
if (!d->dc[d->level].style.stroke_dasharray.values.empty() && (d->level==0 || (d->level>0 && d->dc[d->level].style.stroke_dasharray.values!=d->dc[d->level-1].style.stroke_dasharray.values)))
d->dc[d->level].style.stroke_dasharray.values.clear();
+ SPILength spilength;
if (penstyle==U_PS_DASH || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 3 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 2 );
+ spilength.read("3");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ spilength.read("2");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DOT || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 2 );
+ spilength.read("1");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ spilength.read("2");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 2 );
+ spilength.read("1");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ spilength.read("2");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
d->dc[d->level].style.stroke_dasharray.set = 1;
diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp
index 254000db3..ee698ea4a 100644
--- a/src/extension/internal/emf-print.cpp
+++ b/src/extension/internal/emf-print.cpp
@@ -695,7 +695,7 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
} else {
unsigned i = 0;
while ((linestyle != U_PS_USERSTYLE) && (i < style->stroke_dasharray.values.size())) {
- if (style->stroke_dasharray.values[i] > 0.00000001) {
+ if (style->stroke_dasharray.values[i].value > 0.00000001) {
linestyle = U_PS_USERSTYLE;
}
i++;
@@ -705,7 +705,7 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
n_dash = style->stroke_dasharray.values.size();
dash = new uint32_t[n_dash];
for (i = 0; i < n_dash; i++) {
- dash[i] = MAX(1, (uint32_t) round(scale * style->stroke_dasharray.values[i] * PX2WORLD));
+ dash[i] = MAX(1, (uint32_t) round(scale * style->stroke_dasharray.values[i].value * PX2WORLD));
}
}
}
@@ -1458,7 +1458,7 @@ unsigned int PrintEmf::stroke(
// go around the dash array repeatedly until the entire path is consumed (but not beyond).
while (slength < tlength) {
- elength = slength + style->stroke_dasharray.values[i++];
+ elength = slength + style->stroke_dasharray.values[i++].value;
if (elength > tlength) {
elength = tlength;
}
@@ -1469,7 +1469,7 @@ unsigned int PrintEmf::stroke(
first_frag = fragment;
}
slength = elength;
- slength += style->stroke_dasharray.values[i++]; // the gap
+ slength += style->stroke_dasharray.values[i++].value; // the gap
if (i >= n_dash) {
i = 0;
}
diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp
index ad8fa855d..ffe50bc7d 100644
--- a/src/extension/internal/javafx-out.cpp
+++ b/src/extension/internal/javafx-out.cpp
@@ -441,9 +441,9 @@ bool JavaFXOutput::doStyle(SPStyle *style)
out(" strokeDashArray: [ ");
for(unsigned i = 0; i < style->stroke_dasharray.values.size(); i++ ) {
if (i > 0) {
- out(", %.2lf", style->stroke_dasharray.values[i]);
+ out(", %.2lf", style->stroke_dasharray.values[i].value);
}else {
- out(" %.2lf", style->stroke_dasharray.values[i]);
+ out(" %.2lf", style->stroke_dasharray.values[i].value);
}
}
out(" ]\n");
diff --git a/src/extension/internal/latex-pstricks.cpp b/src/extension/internal/latex-pstricks.cpp
index f3bf06708..4f0eb7709 100644
--- a/src/extension/internal/latex-pstricks.cpp
+++ b/src/extension/internal/latex-pstricks.cpp
@@ -244,7 +244,7 @@ unsigned int PrintLatex::stroke(Inkscape::Extension::Print * /*mod*/,
if ((i)) {
os << " ";
}
- os << style->stroke_dasharray.values[i];
+ os << style->stroke_dasharray.values[i].value;
}
}
diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp
index 72d44e123..b6d0b8ba1 100644
--- a/src/extension/internal/wmf-inout.cpp
+++ b/src/extension/internal/wmf-inout.cpp
@@ -892,7 +892,7 @@ Wmf::output_style(PWMF_CALLBACK_DATA d)
for (unsigned i=0; i<d->dc[d->level].style.stroke_dasharray.values.size(); i++) {
if (i)
tmp_style << ",";
- tmp_style << d->dc[d->level].style.stroke_dasharray.values[i];
+ tmp_style << d->dc[d->level].style.stroke_dasharray.values[i].value;
}
tmp_style << ";";
tmp_style << "stroke-dashoffset:0;";
@@ -985,19 +985,23 @@ Wmf::select_pen(PWMF_CALLBACK_DATA d, int index)
case U_PS_DASHDOTDOT:
{
int penstyle = (up.Style & U_PS_STYLE_MASK);
+ SPILength spilength;
+ spilength.read("1");
if (!d->dc[d->level].style.stroke_dasharray.values.empty() && (d->level==0 || (d->level>0 && d->dc[d->level].style.stroke_dasharray.values!=d->dc[d->level-1].style.stroke_dasharray.values)))
d->dc[d->level].style.stroke_dasharray.values.clear();
if (penstyle==U_PS_DASH || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 3 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ spilength.read("3");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ spilength.read("1");
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DOT || penstyle==U_PS_DASHDOT || penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
if (penstyle==U_PS_DASHDOTDOT) {
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
- d->dc[d->level].style.stroke_dasharray.values.push_back( 1 );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
+ d->dc[d->level].style.stroke_dasharray.values.push_back( spilength );
}
d->dc[d->level].style.stroke_dasharray.set = 1;
diff --git a/src/extension/internal/wmf-print.cpp b/src/extension/internal/wmf-print.cpp
index 613ae3f04..3419ac89a 100644
--- a/src/extension/internal/wmf-print.cpp
+++ b/src/extension/internal/wmf-print.cpp
@@ -603,7 +603,7 @@ int PrintWmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
int mark_long =0;
int i;
for (i=0;i<n_dash;i++) {
- int mark = style->stroke_dasharray.values[i];
+ int mark = style->stroke_dasharray.values[i].value;
if (mark>mark_long) { mark_long = mark; }
if (mark<mark_short) { mark_short = mark; }
}
@@ -890,7 +890,7 @@ unsigned int PrintWmf::stroke(
// go around the dash array repeatedly until the entire path is consumed (but not beyond).
while (slength < tlength) {
- elength = slength + style->stroke_dasharray.values[i++];
+ elength = slength + style->stroke_dasharray.values[i++].value;
if (elength > tlength) {
elength = tlength;
}
@@ -901,7 +901,7 @@ unsigned int PrintWmf::stroke(
first_frag = fragment;
}
slength = elength;
- slength += style->stroke_dasharray.values[i++]; // the gap
+ slength += style->stroke_dasharray.values[i++].value; // the gap
if (i >= n_dash) {
i = 0;
}