Code

Improved emf handling
[inkscape.git] / src / extension / internal / emf-win32-print.h
index fdf0cd490b8ea59eb70f68bc1678c4df713a6729..b885efbe11e0925a775ea0bbae1de7c36daee55c 100644 (file)
@@ -7,7 +7,7 @@
  * Author:
  *   Ulf Erikson <ulferikson@users.sf.net>
  *
- * Copyright (C) 2006 Authors
+ * Copyright (C) 2006-2008 Authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
@@ -28,6 +28,8 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
+#include <stack>
+
 namespace Inkscape {
 namespace Extension {
 namespace Internal {
@@ -42,13 +44,18 @@ class PrintEmfWin32 : public Inkscape::Extension::Implementation::Implementation
     HBRUSH hbrush, hbrushOld;
     HPEN hpen, hpenOld;
 
+    std::stack<NR::Matrix> m_tr_stack;
     NArtBpath *fill_path;
     NArtBpath *fill_path_copy;
     NR::Matrix fill_transform;
     NRRect fill_pbox;
-    NR::Matrix text_transform;
+//    NR::Matrix text_transform;
+    bool stroke_and_fill;
+    bool fill_only;
+    bool simple_shape;
 
     unsigned int print_bpath (const NArtBpath *bp, const NR::Matrix *transform, NRRect const *pbox);
+    bool print_simple_shape (const NArtBpath *bp, const NR::Matrix *transform, NRRect const *pbox);
 
 public:
     PrintEmfWin32 (void);
@@ -64,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 NRBPath *bpath, const NR::Matrix *ctm, const SPStyle *style,
+                               const const_NRBPath *bpath, 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 NRBPath *bpath, const NR::Matrix *transform, const SPStyle *style,
+                                 const const_NRBPath *bpath, 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,