Code

Indent support for XSLT extensions output.
[inkscape.git] / src / dyna-draw-context.h
index 6d4f59ba5ec1249e8cb25d720efd67c3b32b4321..9a736a3fca8bb7867488c276347fdea746b0b14e 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __SP_DYNA_DRAW_CONTEXT_H__
-#define __SP_DYNA_DRAW_CONTEXT_H__
+#ifndef SP_DYNA_DRAW_CONTEXT_H_SEEN
+#define SP_DYNA_DRAW_CONTEXT_H_SEEN
 
 /*
  * Handwriting-like drawing mode
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
-#include "display/curve.h"
-#include "event-context.h"
-#include <display/display-forward.h>
-#include <libnr/nr-point.h>
+#include "common-context.h"
+#include "splivarot.h"
 
 #define SP_TYPE_DYNA_DRAW_CONTEXT (sp_dyna_draw_context_get_type())
 #define SP_DYNA_DRAW_CONTEXT(o) (GTK_CHECK_CAST((o), SP_TYPE_DYNA_DRAW_CONTEXT, SPDynaDrawContext))
@@ -32,8 +30,6 @@
 class SPDynaDrawContext;
 class SPDynaDrawContextClass;
 
-#define SAMPLING_SIZE 8        /* fixme: ?? */
-
 #define DDC_MIN_PRESSURE      0.0
 #define DDC_MAX_PRESSURE      1.0
 #define DDC_DEFAULT_PRESSURE  1.0
@@ -42,79 +38,30 @@ class SPDynaDrawContextClass;
 #define DDC_MAX_TILT          1.0
 #define DDC_DEFAULT_TILT      0.0
 
-struct SPDynaDrawContext
-{
-    SPEventContext event_context;
-
-    /** accumulated shape which ultimately goes in svg:path */
-    SPCurve *accumulated;
-
-    /** canvas items for "comitted" segments */
-    GSList *segments;
-
-    /** canvas item for red "leading" segment */
-    SPCanvasItem *currentshape;
-    /** shape of red "leading" segment */
-    SPCurve *currentcurve;
-
-    /** left edge of the stroke; combined to get accumulated */
-    SPCurve *cal1;
-    /** right edge of the stroke; combined to get accumulated */
-    SPCurve *cal2;
-
-    /** left edge points for this segment */
-    NR::Point point1[SAMPLING_SIZE];
-    /** right edge points for this segment */
-    NR::Point point2[SAMPLING_SIZE];
-    /** number of edge points for this segment */
-    gint npoints;
-
-    /* repr */
-    Inkscape::XML::Node *repr;
-
-    /* time_id if use timeout */
-    gint timer_id;
-
-    /* DynaDraw */
-    NR::Point cur;
-    NR::Point vel;
-    NR::Point acc;
-    NR::Point ang;
-    NR::Point last;
-    NR::Point del;
-    /* extended input data */
-    gdouble pressure;
-    gdouble xtilt;
-    gdouble ytilt;
-    /* attributes */
-    guint dragging : 1;           /* mouse state: mouse is dragging */
-    guint use_timeout : 1;
-    double mass, drag;
-    double angle;
-    double width;
-    guint usepressure : 1;
-    guint usetilt : 1;
-
-    double vel_thin;
-    double flatness;
-    double tremor;
-
-    Inkscape::MessageContext *_message_context;
-
-    bool is_drawing;
-
-    /** uses absolute width independent of zoom */
-    bool abs_width;
+struct SPDynaDrawContext : public SPCommonContext {
+    /** newly created object remain selected */
+    bool keep_selected;
+
+    double hatch_spacing;
+    double hatch_spacing_step;
+    SPItem *hatch_item;
+    Path *hatch_livarot_path;
+    std::list<double> hatch_nearest_past;
+    std::list<double> hatch_pointer_past;
+    std::list<Geom::Point> inertia_vectors;
+    Geom::Point hatch_last_nearest, hatch_last_pointer;
+    std::list<Geom::Point> hatch_vectors;
+    bool hatch_escaped;
+    SPCanvasItem *hatch_area;
+    bool just_started_drawing;
+    bool trace_bg;
 };
 
-struct SPDynaDrawContextClass
-{
-    SPEventContextClass parent_class;
-};
+struct SPDynaDrawContextClass : public SPEventContextClass{};
 
-GtkType sp_dyna_draw_context_get_type(void);
+GType sp_dyna_draw_context_get_type(void);
 
-#endif
+#endif // SP_DYNA_DRAW_CONTEXT_H_SEEN
 
 /*
   Local Variables:
@@ -125,4 +72,4 @@ GtkType sp_dyna_draw_context_get_type(void);
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :