1 /*
2 * Authors:
3 * Ted Gould <ted@gould.cx>
4 *
5 * Copyright (C) 2002-2004 Authors
6 *
7 * Released under GNU GPL, read the file 'COPYING' for more information
8 */
10 #ifndef INKSCAPE_EXTENSION_PRINT_H__
11 #define INKSCAPE_EXTENSION_PRINT_H__
13 #include "extension.h"
15 #include "display/nr-arena-forward.h"
16 #include "forward.h"
18 namespace Inkscape {
19 namespace Extension {
21 class Print : public Extension {
23 public: /* TODO: These are public for the short term, but this should be fixed */
24 SPItem *base; /**< TODO: Document these */
25 NRArena *arena; /**< TODO: Document these */
26 NRArenaItem *root; /**< TODO: Document these */
27 unsigned int dkey; /**< TODO: Document these */
29 public:
30 Print (Inkscape::XML::Node * in_repr,
31 Implementation::Implementation * in_imp);
32 virtual ~Print (void);
33 virtual bool check (void);
35 /* FALSE means user hit cancel */
36 unsigned int setup (void);
37 unsigned int set_preview (void);
39 unsigned int begin (SPDocument *doc);
40 unsigned int finish (void);
42 /* Rendering methods */
43 unsigned int bind (Geom::Matrix const *transform,
44 float opacity);
45 unsigned int release (void);
46 unsigned int comment (const char * comment);
47 unsigned int fill (Geom::PathVector const &pathv,
48 Geom::Matrix const *ctm,
49 SPStyle const *style,
50 NRRect const *pbox,
51 NRRect const *dbox,
52 NRRect const *bbox);
53 unsigned int stroke (Geom::PathVector const &pathv,
54 Geom::Matrix const *transform,
55 SPStyle const *style,
56 NRRect const *pbox,
57 NRRect const *dbox,
58 NRRect const *bbox);
59 unsigned int image (unsigned char *px,
60 unsigned int w,
61 unsigned int h,
62 unsigned int rs,
63 Geom::Matrix const *transform,
64 SPStyle const *style);
65 unsigned int text (char const *text,
66 Geom::Point p,
67 SPStyle const *style);
68 bool textToPath (void);
69 bool fontEmbedded (void);
70 };
72 } } /* namespace Inkscape, Extension */
73 #endif /* INKSCAPE_EXTENSION_PRINT_H__ */
75 /*
76 Local Variables:
77 mode:c++
78 c-file-style:"stroustrup"
79 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
80 indent-tabs-mode:nil
81 fill-column:99
82 End:
83 */
84 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :