Code

Indent support for XSLT extensions output.
[inkscape.git] / src / pen-context.h
index fb5c2237154c5cc8384e9177cd4df17c97c7b75c..1026369d1cae7f7a353c00b457fbf2937ad23eda 100644 (file)
@@ -6,12 +6,7 @@
  */
 
 #include "draw-context.h"
-
-namespace Inkscape {
-namespace LivePathEffect {
-class Effect;
-}
-}
+#include "live_effects/effect.h"
 
 #define SP_TYPE_PEN_CONTEXT (sp_pen_context_get_type())
 #define SP_PEN_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_PEN_CONTEXT, SPPenContext))
@@ -35,15 +30,18 @@ enum {
  * SPPenContext: a context for pen tool events.
  */
 struct SPPenContext : public SPDrawContext {
-    NR::Point p[5];
+    Geom::Point p[5];
 
     /** \invar npoints in {0, 2, 5}. */
+    // npoints somehow determines the type of the node (what does it mean, exactly? the number of Bezier handles?)
     gint npoints;
 
     unsigned int mode : 1;
     unsigned int state : 2;
 
     bool polylines_only;
+    bool polylines_paraxial;
+    int num_clicks;
 
     unsigned int expecting_clicks_for_LPE; // if positive, finish the path after this many clicks
     Inkscape::LivePathEffect::Effect *waiting_LPE; // if NULL, waiting_LPE_type in SPDrawContext is taken into account
@@ -59,6 +57,18 @@ struct SPPenContextClass : public SPEventContextClass { };
 
 GType sp_pen_context_get_type();
 
+inline bool sp_pen_context_has_waiting_LPE(SPPenContext *pc) {
+    // note: waiting_LPE_type is defined in SPDrawContext
+    return (pc->waiting_LPE != NULL ||
+            pc->waiting_LPE_type != Inkscape::LivePathEffect::INVALID_LPE);
+}
+
+void sp_pen_context_set_polyline_mode(SPPenContext *const pc);
+void sp_pen_context_wait_for_LPE_mouse_clicks(SPPenContext *pc, Inkscape::LivePathEffect::EffectType effect_type,
+                                              unsigned int num_clicks, bool use_polylines = true);
+void sp_pen_context_cancel_waiting_for_LPE(SPPenContext *pc);
+void sp_pen_context_put_into_waiting_mode(SPDesktop *desktop, Inkscape::LivePathEffect::EffectType effect_type,
+                                          unsigned int num_clicks, bool use_polylines = true);
 
 #endif /* !SEEN_PEN_CONTEXT_H */
 
@@ -71,4 +81,4 @@ GType sp_pen_context_get_type();
   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 :