1 #ifndef __SP_LINE_H__
2 #define __SP_LINE_H__
4 /*
5 * SVG <line> implementation
6 *
7 * Authors:
8 * Lauris Kaplinski <lauris@kaplinski.com>
9 *
10 * Copyright (C) 1999-2002 Lauris Kaplinski
11 *
12 * Released under GNU GPL, read the file 'COPYING' for more information
13 */
15 #include "svg/svg-length.h"
16 #include "sp-shape.h"
20 #define SP_TYPE_LINE (SPLine::sp_line_get_type ())
21 #define SP_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_LINE, SPLine))
22 #define SP_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_LINE, SPLineClass))
23 #define SP_IS_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_LINE))
24 #define SP_IS_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_LINE))
26 class SPLine;
27 class SPLineClass;
29 //static void sp_line_class_init (SPLineClass *klass);
31 class SPLine : public SPShape {
32 public:
33 SVGLength x1;
34 SVGLength y1;
35 SVGLength x2;
36 SVGLength y2;
37 static GType sp_line_get_type (void);
38 private:
39 static void sp_line_init (SPLine *line);
41 static void sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr);
42 static void sp_line_set (SPObject *object, unsigned int key, const gchar *value);
43 static Inkscape::XML::Node *sp_line_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
45 static gchar *sp_line_description (SPItem * item);
46 static Geom::Matrix sp_line_set_transform(SPItem *item, Geom::Matrix const &xform);
48 static void sp_line_update (SPObject *object, SPCtx *ctx, guint flags);
49 static void sp_line_set_shape (SPShape *shape);
50 static void sp_line_convert_to_guides(SPItem *item);
52 friend class SPLineClass;
53 };
55 class SPLineClass {
56 public:
57 SPShapeClass parent_class;
58 private:
59 static SPShapeClass *static_parent_class;
60 static void sp_line_class_init (SPLineClass *klass);
62 friend class SPLine;
63 };
65 //GType sp_line_get_type (void);
69 #endif