summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-07-12 15:21:12 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-07-12 15:21:12 +0000
commite93821409140f74f3c27b3f8a42bda8b16dd4dfe (patch)
tree22b89b397781a11e95c256008b6a0bc03315ba02 /src/extension
parentenable writing "H/h" and "V/v" to SVG ! (diff)
downloadinkscape-e93821409140f74f3c27b3f8a42bda8b16dd4dfe.tar.gz
inkscape-e93821409140f74f3c27b3f8a42bda8b16dd4dfe.zip
2geomify print, fill and stroke methods of extensions
(bzr r6274)
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/implementation/implementation.cpp4
-rw-r--r--src/extension/implementation/implementation.h5
-rw-r--r--src/extension/internal/emf-win32-print.cpp16
-rw-r--r--src/extension/internal/emf-win32-print.h4
-rw-r--r--src/extension/internal/latex-pstricks.cpp16
-rw-r--r--src/extension/internal/latex-pstricks.h4
-rw-r--r--src/extension/internal/pdf-cairo.cpp13
-rw-r--r--src/extension/internal/pdf-cairo.h4
-rw-r--r--src/extension/internal/ps.cpp13
-rw-r--r--src/extension/internal/ps.h4
-rw-r--r--src/extension/print.cpp8
-rw-r--r--src/extension/print.h4
12 files changed, 58 insertions, 37 deletions
diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp
index 83b865cdb..0f2580eb9 100644
--- a/src/extension/implementation/implementation.cpp
+++ b/src/extension/implementation/implementation.cpp
@@ -166,14 +166,14 @@ Implementation::comment(Inkscape::Extension::Print */*module*/, char const */*co
}
unsigned int
-Implementation::fill(Inkscape::Extension::Print */*module*/, const_NRBPath const */*bpath*/, NR::Matrix const */*ctm*/, SPStyle const */*style*/,
+Implementation::fill(Inkscape::Extension::Print */*module*/, Geom::PathVector const &/*pathv*/, NR::Matrix const */*ctm*/, SPStyle const */*style*/,
NRRect const */*pbox*/, NRRect const */*dbox*/, NRRect const */*bbox*/)
{
return 0;
}
unsigned int
-Implementation::stroke(Inkscape::Extension::Print */*module*/, const_NRBPath const */*bpath*/, NR::Matrix const */*transform*/, SPStyle const */*style*/,
+Implementation::stroke(Inkscape::Extension::Print */*module*/, Geom::PathVector const &/*pathv*/, NR::Matrix const */*transform*/, SPStyle const */*style*/,
NRRect const */*pbox*/, NRRect const */*dbox*/, NRRect const */*bbox*/)
{
return 0;
diff --git a/src/extension/implementation/implementation.h b/src/extension/implementation/implementation.h
index 29366ddf5..d90d2e7a9 100644
--- a/src/extension/implementation/implementation.h
+++ b/src/extension/implementation/implementation.h
@@ -21,6 +21,7 @@
#include "libnr/nr-forward.h"
#include "libnr/nr-point.h"
#include "xml/node.h"
+#include <2geom/forward.h>
namespace Inkscape {
namespace Extension {
@@ -104,14 +105,14 @@ public:
virtual unsigned release(Inkscape::Extension::Print *module);
virtual unsigned comment(Inkscape::Extension::Print *module, const char * comment);
virtual unsigned fill(Inkscape::Extension::Print *module,
- const_NRBPath const *bpath,
+ Geom::PathVector const &pathv,
NR::Matrix const *ctm,
SPStyle const *style,
NRRect const *pbox,
NRRect const *dbox,
NRRect const *bbox);
virtual unsigned stroke(Inkscape::Extension::Print *module,
- const_NRBPath const *bpath,
+ Geom::PathVector const &pathv,
NR::Matrix const *transform,
SPStyle const *style,
NRRect const *pbox,
diff --git a/src/extension/internal/emf-win32-print.cpp b/src/extension/internal/emf-win32-print.cpp
index 0e231a608..e696df06d 100644
--- a/src/extension/internal/emf-win32-print.cpp
+++ b/src/extension/internal/emf-win32-print.cpp
@@ -43,6 +43,7 @@
#include "libnr/nr-matrix-fns.h"
#include "libnr/nr-path.h"
#include "libnr/nr-pixblock.h"
+#include <libnr/n-art-bpath-2geom.h>
#include "display/canvas-bpath.h"
#include "sp-item.h"
@@ -501,7 +502,7 @@ PrintEmfWin32::release(Inkscape::Extension::Print *mod)
unsigned int
PrintEmfWin32::fill(Inkscape::Extension::Print *mod,
- const_NRBPath const *bpath, NR::Matrix const *transform, SPStyle const *style,
+ Geom::PathVector const &pathv, NR::Matrix const *transform, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!hdc) return 0;
@@ -518,7 +519,9 @@ PrintEmfWin32::fill(Inkscape::Extension::Print *mod,
return 0;
}
- fill_path = copy_bpath( bpath->path );
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ fill_path = copy_bpath( bpath );
+ g_free(bpath);
fill_transform = tf;
fill_pbox = *pbox;
@@ -530,14 +533,16 @@ PrintEmfWin32::fill(Inkscape::Extension::Print *mod,
unsigned int
PrintEmfWin32::stroke (Inkscape::Extension::Print *mod,
- const const_NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+ Geom::PathVector const &pathv, const NR::Matrix *transform, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox)
{
if (!hdc) return 0;
NR::Matrix tf = m_tr_stack.top();
- stroke_and_fill = ( cmp_bpath( bpath->path, fill_path ) == 0 );
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+
+ stroke_and_fill = ( cmp_bpath( bpath, fill_path ) == 0 );
if (!stroke_and_fill) {
flush_fill(); // flush any pending fills
@@ -550,7 +555,7 @@ PrintEmfWin32::stroke (Inkscape::Extension::Print *mod,
return 0;
}
- print_bpath(bpath->path, &tf, pbox);
+ print_bpath(bpath, &tf, pbox);
if (stroke_and_fill) {
if (!simple_shape)
@@ -563,6 +568,7 @@ PrintEmfWin32::stroke (Inkscape::Extension::Print *mod,
StrokePath( hdc );
}
+ g_free(bpath);
destroy_pen();
return 0;
diff --git a/src/extension/internal/emf-win32-print.h b/src/extension/internal/emf-win32-print.h
index b885efbe1..11b265dcc 100644
--- a/src/extension/internal/emf-win32-print.h
+++ b/src/extension/internal/emf-win32-print.h
@@ -71,10 +71,10 @@ public:
virtual unsigned int bind(Inkscape::Extension::Print *module, NR::Matrix const *transform, float opacity);
virtual unsigned int release(Inkscape::Extension::Print *module);
virtual unsigned int fill (Inkscape::Extension::Print * module,
- const const_NRBPath *bpath, const NR::Matrix *ctm, const SPStyle *style,
+ Geom::PathVector const &pathv, const NR::Matrix *ctm, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
virtual unsigned int stroke (Inkscape::Extension::Print * module,
- const const_NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+ Geom::PathVector const &pathv, const NR::Matrix *transform, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
virtual unsigned int comment(Inkscape::Extension::Print *module, const char * comment);
virtual unsigned int text(Inkscape::Extension::Print *module, char const *text,
diff --git a/src/extension/internal/latex-pstricks.cpp b/src/extension/internal/latex-pstricks.cpp
index 1496b75f6..1ef5c57ab 100644
--- a/src/extension/internal/latex-pstricks.cpp
+++ b/src/extension/internal/latex-pstricks.cpp
@@ -27,7 +27,7 @@
#include "libnr/nr-scale-translate-ops.h"
#include "libnr/nr-translate-scale-ops.h"
#include <libnr/nr-matrix-fns.h>
-
+#include <libnr/n-art-bpath-2geom.h>
#include "libnr/n-art-bpath.h"
#include "sp-item.h"
@@ -201,8 +201,8 @@ unsigned int PrintLatex::comment (Inkscape::Extension::Print * module,
unsigned int
PrintLatex::fill(Inkscape::Extension::Print *mod,
- const_NRBPath const *bpath, NR::Matrix const *transform, SPStyle const *style,
- NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
+ Geom::PathVector const &pathv, NR::Matrix const *transform, SPStyle const *style,
+ NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -217,7 +217,9 @@ PrintLatex::fill(Inkscape::Extension::Print *mod,
os << "\\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]\n{\n";
- print_bpath(os, bpath->path, transform);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(os, bpath, transform);
+ g_free(bpath);
os << "}\n}\n";
@@ -228,7 +230,7 @@ PrintLatex::fill(Inkscape::Extension::Print *mod,
}
unsigned int
-PrintLatex::stroke (Inkscape::Extension::Print *mod, const const_NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+PrintLatex::stroke (Inkscape::Extension::Print *mod, Geom::PathVector const &pathv, const NR::Matrix *transform, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -260,7 +262,9 @@ PrintLatex::stroke (Inkscape::Extension::Print *mod, const const_NRBPath *bpath,
os <<"]\n{\n";
- print_bpath(os, bpath->path, transform);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(os, bpath, transform);
+ g_free(bpath);
os << "}\n}\n";
diff --git a/src/extension/internal/latex-pstricks.h b/src/extension/internal/latex-pstricks.h
index 56600023a..d70afc54e 100644
--- a/src/extension/internal/latex-pstricks.h
+++ b/src/extension/internal/latex-pstricks.h
@@ -49,9 +49,9 @@ public:
virtual unsigned int bind(Inkscape::Extension::Print *module, NR::Matrix const *transform, float opacity);
virtual unsigned int release(Inkscape::Extension::Print *module);
- virtual unsigned int fill (Inkscape::Extension::Print * module, const const_NRBPath *bpath, const NR::Matrix *ctm, const SPStyle *style,
+ virtual unsigned int fill (Inkscape::Extension::Print * module, Geom::PathVector const &pathv, const NR::Matrix *ctm, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
- virtual unsigned int stroke (Inkscape::Extension::Print * module, const const_NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+ virtual unsigned int stroke (Inkscape::Extension::Print * module, Geom::PathVector const &pathv, const NR::Matrix *transform, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
virtual unsigned int comment(Inkscape::Extension::Print *module, const char * comment);
bool textToPath (Inkscape::Extension::Print * ext);
diff --git a/src/extension/internal/pdf-cairo.cpp b/src/extension/internal/pdf-cairo.cpp
index dd6956a1e..6dfed9e82 100644
--- a/src/extension/internal/pdf-cairo.cpp
+++ b/src/extension/internal/pdf-cairo.cpp
@@ -33,6 +33,7 @@
#include <errno.h>
#include <libnr/n-art-bpath.h>
+#include <libnr/n-art-bpath-2geom.h>
#include <glib/gmem.h>
#include <gtk/gtkstock.h>
@@ -584,7 +585,7 @@ PrintCairoPDF::print_fill_style(cairo_t *cr, SPStyle const *const style, NRRect
}
unsigned int
-PrintCairoPDF::fill(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *const style,
+PrintCairoPDF::fill(Inkscape::Extension::Print *mod, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *const style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -599,7 +600,9 @@ PrintCairoPDF::fill(Inkscape::Extension::Print *mod, const_NRBPath const *bpath,
cairo_save(cr);
print_fill_style(cr, style, pbox);
- print_bpath(cr, bpath->path);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(cr, bpath);
+ g_free(bpath);
if (style->fill_rule.computed == SP_WIND_RULE_EVENODD) {
cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
} else {
@@ -684,7 +687,7 @@ PrintCairoPDF::print_stroke_style(cairo_t *cr, SPStyle const *style, NRRect cons
}
unsigned int
-PrintCairoPDF::stroke(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *style,
+PrintCairoPDF::stroke(Inkscape::Extension::Print *mod, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -697,7 +700,9 @@ PrintCairoPDF::stroke(Inkscape::Extension::Print *mod, const_NRBPath const *bpat
cairo_save(cr);
print_stroke_style(cr, style, pbox);
- print_bpath(cr, bpath->path);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(cr, bpath);
+ g_free(bpath);
cairo_stroke(cr);
cairo_restore(cr);
diff --git a/src/extension/internal/pdf-cairo.h b/src/extension/internal/pdf-cairo.h
index b37cfe22d..8e2764fa4 100644
--- a/src/extension/internal/pdf-cairo.h
+++ b/src/extension/internal/pdf-cairo.h
@@ -78,9 +78,9 @@ public:
virtual unsigned int bind(Inkscape::Extension::Print *module, NR::Matrix const *transform, float opacity);
virtual unsigned int release(Inkscape::Extension::Print *module);
virtual unsigned int comment(Inkscape::Extension::Print *module, char const *comment);
- virtual unsigned int fill(Inkscape::Extension::Print *module, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *style,
+ virtual unsigned int fill(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
- virtual unsigned int stroke(Inkscape::Extension::Print *module, const_NRBPath const *bpath, NR::Matrix const *transform, SPStyle const *style,
+ virtual unsigned int stroke(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, NR::Matrix const *transform, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
virtual unsigned int image(Inkscape::Extension::Print *module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs,
NR::Matrix const *transform, SPStyle const *style);
diff --git a/src/extension/internal/ps.cpp b/src/extension/internal/ps.cpp
index 299157555..7670c3a86 100644
--- a/src/extension/internal/ps.cpp
+++ b/src/extension/internal/ps.cpp
@@ -33,6 +33,7 @@
#include <libnr/n-art-bpath.h>
#include <libnr/nr-matrix-fns.h>
+#include <libnr/n-art-bpath-2geom.h>
#include <glib/gmem.h>
#include <glib/gstrfuncs.h>
@@ -813,7 +814,7 @@ PrintPS::print_stroke_style(SVGOStringStream &os, SPStyle const *style)
unsigned int
-PrintPS::fill(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *const style,
+PrintPS::fill(Inkscape::Extension::Print *mod, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *const style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -829,7 +830,9 @@ PrintPS::fill(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::M
print_fill_style(os, style, pbox);
- print_bpath(os, bpath->path);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(os, bpath);
+ g_free(bpath);
if (style->fill_rule.computed == SP_WIND_RULE_EVENODD) {
if (style->fill.isColor()) {
@@ -879,7 +882,7 @@ PrintPS::fill(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::M
unsigned int
-PrintPS::stroke(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *style,
+PrintPS::stroke(Inkscape::Extension::Print *mod, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox)
{
if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
@@ -890,7 +893,9 @@ PrintPS::stroke(Inkscape::Extension::Print *mod, const_NRBPath const *bpath, NR:
print_stroke_style(os, style);
- print_bpath(os, bpath->path);
+ NArtBpath * bpath = BPath_from_2GeomPath(pathv);
+ print_bpath(os, bpath);
+ g_free(bpath);
os << "stroke\n";
diff --git a/src/extension/internal/ps.h b/src/extension/internal/ps.h
index edeaaeac6..407da88a3 100644
--- a/src/extension/internal/ps.h
+++ b/src/extension/internal/ps.h
@@ -91,9 +91,9 @@ public:
virtual unsigned int bind(Inkscape::Extension::Print *module, NR::Matrix const *transform, float opacity);
virtual unsigned int release(Inkscape::Extension::Print *module);
virtual unsigned int comment(Inkscape::Extension::Print *module, char const *comment);
- virtual unsigned int fill(Inkscape::Extension::Print *module, const_NRBPath const *bpath, NR::Matrix const *ctm, SPStyle const *style,
+ virtual unsigned int fill(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, NR::Matrix const *ctm, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
- virtual unsigned int stroke(Inkscape::Extension::Print *module, const_NRBPath const *bpath, NR::Matrix const *transform, SPStyle const *style,
+ virtual unsigned int stroke(Inkscape::Extension::Print *module, Geom::PathVector const &pathv, NR::Matrix const *transform, SPStyle const *style,
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
virtual unsigned int image(Inkscape::Extension::Print *module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs,
NR::Matrix const *transform, SPStyle const *style);
diff --git a/src/extension/print.cpp b/src/extension/print.cpp
index eded694a5..035865825 100644
--- a/src/extension/print.cpp
+++ b/src/extension/print.cpp
@@ -79,17 +79,17 @@ Print::comment (const char * comment)
}
unsigned int
-Print::fill (const const_NRBPath *bpath, const NR::Matrix *ctm, const SPStyle *style,
+Print::fill (Geom::PathVector const &pathv, const NR::Matrix *ctm, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox)
{
- return imp->fill (this, bpath, ctm, style, pbox, dbox, bbox);
+ return imp->fill (this, pathv, ctm, style, pbox, dbox, bbox);
}
unsigned int
-Print::stroke (const const_NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+Print::stroke (Geom::PathVector const &pathv, const NR::Matrix *transform, const SPStyle *style,
const NRRect *pbox, const NRRect *dbox, const NRRect *bbox)
{
- return imp->stroke (this, bpath, transform, style, pbox, dbox, bbox);
+ return imp->stroke (this, pathv, transform, style, pbox, dbox, bbox);
}
unsigned int
diff --git a/src/extension/print.h b/src/extension/print.h
index e9796bb2d..c5f49dd9d 100644
--- a/src/extension/print.h
+++ b/src/extension/print.h
@@ -45,13 +45,13 @@ public:
float opacity);
unsigned int release (void);
unsigned int comment (const char * comment);
- unsigned int fill (const_NRBPath const *bpath,
+ unsigned int fill (Geom::PathVector const &pathv,
NR::Matrix const *ctm,
SPStyle const *style,
NRRect const *pbox,
NRRect const *dbox,
NRRect const *bbox);
- unsigned int stroke (const_NRBPath const *bpath,
+ unsigned int stroke (Geom::PathVector const &pathv,
NR::Matrix const *transform,
SPStyle const *style,
NRRect const *pbox,