diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-06-12 21:33:11 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-08-05 00:31:06 +0000 |
| commit | bbf828d9ae370e9aede9702e520c106c380a3867 (patch) | |
| tree | 1995e3e38ee25046906073df927999988e445941 /src/extension | |
| parent | Revert changes (diff) | |
| download | inkscape-bbf828d9ae370e9aede9702e520c106c380a3867.tar.gz inkscape-bbf828d9ae370e9aede9702e520c106c380a3867.zip | |
Refactor with Tav help
Diffstat (limited to 'src/extension')
| -rw-r--r-- | src/extension/internal/cairo-render-context.cpp | 2 | ||||
| -rw-r--r-- | src/extension/internal/emf-inout.cpp | 44 | ||||
| -rw-r--r-- | src/extension/internal/emf-print.cpp | 8 | ||||
| -rw-r--r-- | src/extension/internal/javafx-out.cpp | 4 | ||||
| -rw-r--r-- | src/extension/internal/latex-pstricks.cpp | 2 | ||||
| -rw-r--r-- | src/extension/internal/wmf-inout.cpp | 18 | ||||
| -rw-r--r-- | src/extension/internal/wmf-print.cpp | 6 |
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; } |
