pen-tool.h revision baaf66e2658cf2ae9c9a2413f3e7dcd20d2363dc
#ifndef SEEN_PEN_CONTEXT_H
#define SEEN_PEN_CONTEXT_H
/** \file
* PenTool: a context for pen tool events.
*/
#include "ui/tools/freehand-base.h"
#include "live_effects/effect.h"
#define SP_PEN_CONTEXT(obj) (dynamic_cast<Inkscape::UI::Tools::PenTool*>((Inkscape::UI::Tools::ToolBase*)obj))
#define SP_IS_PEN_CONTEXT(obj) (dynamic_cast<const Inkscape::UI::Tools::PenTool*>((const Inkscape::UI::Tools::ToolBase*)obj) != NULL)
struct SPCtrlLine;
/**
* PenTool: a context for pen tool events.
*/
PenTool();
enum Mode {
};
enum State {
};
/** \invar npoints in {0, 2, 5}. */
// npoints somehow determines the type of the node (what does it mean, exactly? the number of Bezier handles?)
bool polylines_only;
bool polylines_paraxial;
//spanish: propiedad que guarda si el modo Spiro está activo o no
bool spiro;
bool bspline;
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
bool events_disabled;
void setPolylineMode();
bool hasWaitingLPE();
void waitForLPEMouseClicks(Inkscape::LivePathEffect::EffectType effect_type, unsigned int num_clicks, bool use_polylines = true);
//spanish: añade los modos spiro y bspline
//spanish: esta función cambia los colores rojo,verde y azul haciendolos transparentes o no en función de si se usa spiro
void _bspline_spiro_color();
//spanish: crea un nodo en modo bspline o spiro
void _bspline_spiro(bool shift);
//spanish: crea un nodo de modo spiro o bspline
void _bspline_spiro_on();
//spanish: crea un nodo de tipo CUSP
void _bspline_spiro_off();
//spanish: continua una curva existente en modo bspline o spiro
void _bspline_spiro_start_anchor(bool shift);
//spanish: continua una curva exsitente con el nodo de union en modo bspline o spiro
void _bspline_spiro_start_anchor_on();
//spanish: continua una curva existente con el nodo de union en modo CUSP
void _bspline_spiro_start_anchor_off();
//spanish: modifica la "red_curve" cuando se detecta movimiento
void _bspline_spiro_motion(bool shift);
//spanish: cierra la curva con el último nodo en modo bspline o spiro
void _bspline_spiro_end_anchor_on();
//spanish: cierra la curva con el último nodo en modo CUSP
void _bspline_spiro_end_anchor_off();
//spanish: unimos todas las curvas en juego y llamamos a la función doEffect.
void _bspline_spiro_build();
//function bspline cloned from lpe-bspline.cpp
//function spiro cloned from lpe-spiro.cpp
void _resetColors();
void _disableEvents();
void _enableEvents();
void _setAngleDistanceStatusMessage(Geom::Point const p, int pc_point_to_compare, gchar const *message);
void _lastpointToLine();
void _lastpointToCurve();
void _redrawAll();
void _cancel();
};
}
}
}
#endif /* !SEEN_PEN_CONTEXT_H */
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :