Code

GSoC C++-ificiation merge and cleanup.
[inkscape.git] / src / pen-context.h
index 7c189934cf2185617b7c1f40a13c598e336c363e..1026369d1cae7f7a353c00b457fbf2937ad23eda 100644 (file)
@@ -30,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
@@ -60,8 +63,12 @@ inline bool sp_pen_context_has_waiting_LPE(SPPenContext *pc) {
             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 */
 
@@ -74,4 +81,4 @@ void sp_pen_context_wait_for_LPE_mouse_clicks(SPPenContext *pc, Inkscape::LivePa
   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 :