1 #ifndef INKSCAPE_SP_NAMEDVIEW_H
2 #define INKSCAPE_SP_NAMEDVIEW_H
4 /*
5 * <sodipodi:namedview> implementation
6 *
7 * Authors:
8 * Lauris Kaplinski <lauris@kaplinski.com>
9 *
10 * Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
11 * Copyright (C) Lauris Kaplinski 2000-2002
12 *
13 * Released under GNU GPL, read the file 'COPYING' for more information
14 */
16 #define SP_TYPE_NAMEDVIEW (sp_namedview_get_type())
17 #define SP_NAMEDVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_NAMEDVIEW, SPNamedView))
18 #define SP_NAMEDVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_NAMEDVIEW, SPNamedViewClass))
19 #define SP_IS_NAMEDVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_NAMEDVIEW))
20 #define SP_IS_NAMEDVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_NAMEDVIEW))
22 #include "helper/helper-forward.h"
23 #include "sp-object-group.h"
24 #include "libnr/nr-point.h"
25 #include "sp-metric.h"
26 #include "snap.h"
28 namespace Inkscape {
29 class CanvasGrid;
30 }
32 enum {
33 SP_BORDER_LAYER_BOTTOM,
34 SP_BORDER_LAYER_TOP
35 };
37 struct SPNamedView : public SPObjectGroup {
38 unsigned int editable : 1;
39 unsigned int showgrid : 1;
40 unsigned int gridtype : 1; // 0=normal 1=axonometric
41 unsigned int showguides : 1;
42 unsigned int showborder : 1;
43 unsigned int showpageshadow : 1;
44 unsigned int borderlayer : 2;
46 double zoom;
47 double cx;
48 double cy;
49 gint window_width;
50 gint window_height;
51 gint window_x;
52 gint window_y;
54 SnapManager snap_manager;
55 //GridManager grid_manager;
56 GSList * grids;
58 SPUnit const *gridunit;
59 /* Grid data is in points regardless of unit */
60 NR::Point gridorigin;
61 gdouble gridspacing[2];
62 gdouble gridangle[2]; // for axonometric grid
63 gint gridempspacing;
65 SPUnit const *doc_units;
67 SPUnit const *gridtoleranceunit;
68 gdouble gridtolerance;
70 SPUnit const *guidetoleranceunit;
71 gdouble guidetolerance;
73 SPUnit const *objecttoleranceunit;
74 gdouble objecttolerance;
76 bool has_abs_tolerance;
78 GQuark default_layer_id;
80 double connector_spacing;
82 guint32 gridcolor;
83 guint32 gridempcolor;
84 guint32 guidecolor;
85 guint32 guidehicolor;
86 guint32 bordercolor;
87 guint32 pagecolor;
88 guint32 pageshadow;
90 GSList *guides;
91 GSList *views;
92 GSList *gridviews;
94 gint viewcount;
96 void show(SPDesktop *desktop);
97 void hide(SPDesktop const *desktop);
98 void activateGuides(gpointer desktop, gboolean active);
99 gchar const *getName() const;
100 guint getViewCount();
101 GSList const *getViewList() const;
102 SPMetric getDefaultMetric() const;
103 };
105 struct SPNamedViewClass {
106 SPObjectGroupClass parent_class;
107 };
109 GType sp_namedview_get_type();
111 SPNamedView *sp_document_namedview(SPDocument *document, gchar const *name);
113 void sp_namedview_window_from_document(SPDesktop *desktop);
114 void sp_namedview_document_from_window(SPDesktop *desktop);
115 void sp_namedview_update_layers_from_document (SPDesktop *desktop);
117 void sp_namedview_toggle_guides(SPDocument *doc, Inkscape::XML::Node *repr);
118 void sp_namedview_toggle_grid(SPDocument *doc, Inkscape::XML::Node *repr);
119 void sp_namedview_set_gridtype(unsigned int type, SPDocument *doc, Inkscape::XML::Node *repr);
121 #endif /* !INKSCAPE_SP_NAMEDVIEW_H */
124 /*
125 Local Variables:
126 mode:c++
127 c-file-style:"stroustrup"
128 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
129 indent-tabs-mode:nil
130 fill-column:99
131 End:
132 */
133 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :