Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
Inkscape::UI::Tools::DynamicBase Class Reference

#include <dynamic-base.h>

Inheritance diagram for Inkscape::UI::Tools::DynamicBase:
Inkscape::UI::Tools::ToolBase Inkscape::UI::Tools::CalligraphicTool Inkscape::UI::Tools::EraserTool

Public Member Functions

 DynamicBase (SPDesktop *desktop, std::string &&prefs_path, std::string &&cursor_filename)
 
 ~DynamicBase () override
 
void set (Preferences::Entry const &val) override
 Called by our pref_observer if a preference has been changed.
 
- Public Member Functions inherited from Inkscape::UI::Tools::ToolBase
 ToolBase (SPDesktop *desktop, std::string &&prefs_path, std::string &&cursor_filename, bool uses_snap=true)
 
virtual ~ToolBase ()
 
virtual bool root_handler (CanvasEvent const &event)
 
virtual bool item_handler (SPItem *item, CanvasEvent const &event)
 Handles item specific events.
 
virtual void menu_popup (CanvasEvent const &event, SPObject *obj=nullptr)
 Create popup menu and tell Gtk to show it.
 
virtual bool can_undo (bool redo=false)
 
virtual bool is_ready () const
 
virtual void switching_away (std::string const &new_tool)
 
std::string const & getPrefsPath () const
 
void enableSelectionCue (bool enable=true)
 Enables/disables the ToolBase's SelCue.
 
MessageContextdefaultMessageContext () const
 
SPDesktopgetDesktop () const
 
SPGroupcurrentLayer () const
 
void set_last_active_tool (Glib::ustring last_tool)
 
const Glib::ustring & get_last_active_tool () const
 
bool start_root_handler (CanvasEvent const &event)
 Handles snapping events for all tools and then passes to tool_root_handler.
 
bool tool_root_handler (CanvasEvent const &event)
 Calls the right tool's event handler, depending on the selected tool and state.
 
bool start_item_handler (SPItem *item, CanvasEvent const &event)
 Starts handling item snapping and pass to virtual_item_handler afterwards.
 
bool virtual_item_handler (SPItem *item, CanvasEvent const &event)
 
bool is_panning () const
 True if we're panning with any method (space bar, middle-mouse, right-mouse+Ctrl)
 
bool is_space_panning () const
 True if we're panning with the space bar.
 
void snap_delay_handler (gpointer item, gpointer item2, MotionEvent const &event, DelayedSnapEvent::Origin origin)
 Analyses the current event, calculates the mouse speed, turns snapping off (temporarily) if the mouse speed is above a threshold, and stores the current event such that it can be re-triggered when needed (re-triggering is controlled by a timeout).
 
void process_delayed_snap_event ()
 When the delayed snap event timer expires, this method will be called and will re-inject the last motion event in an appropriate place, with snapping being turned on again.
 
void discard_delayed_snap_event ()
 If a delayed snap event has been scheduled, this function will cancel it.
 
void set_cursor (std::string filename)
 Sets the current cursor to the given filename.
 
void use_cursor (Glib::RefPtr< Gdk::Cursor > cursor)
 Set the cursor to this specific one, don't remember it.
 
Glib::RefPtr< Gdk::Cursor > get_cursor (Gtk::Widget &widget, std::string const &filename) const
 Returns the Gdk Cursor for the given filename.
 
void use_tool_cursor ()
 Uses the saved cursor, based on the saved filename.
 
void enableGrDrag (bool enable=true)
 
bool deleteSelectedDrag (bool just_one)
 Delete a selected GrDrag point.
 
bool hasGradientDrag () const
 Return true if there is a gradient drag.
 
GrDragget_drag ()
 

Protected Member Functions

Geom::Point getViewPoint (Geom::Point const &n) const
 
Geom::Point getNormalizedPoint (Geom::Point const &v) const
 
- Protected Member Functions inherited from Inkscape::UI::Tools::ToolBase
void setup_for_drag_start (ButtonPressEvent const &ev)
 
void saveDragOrigin (Geom::Point const &pos)
 
bool checkDragMoved (Geom::Point const &pos)
 Analyse the current position and return true once it has moved farther than tolerance from the drag origin (indicating they intend to move the object, not click).
 
void grabCanvasEvents (EventMask mask=EventType::KEY_PRESS|EventType::BUTTON_RELEASE|EventType::MOTION|EventType::BUTTON_PRESS)
 Grab events from the Canvas Catchall.
 
void ungrabCanvasEvents ()
 Ungrab events from the Canvas Catchall.
 
bool sp_event_context_knot_mouseover () const
 Returns true if we're hovering above a knot (needed because we don't want to pre-snap in that case).
 
void set_high_motion_precision (bool high_precision=true)
 Enable (or disable) high precision for motion events.
 

Protected Attributes

Geom::Path accumulated
 accumulated shape which ultimately goes in svg:path
 
std::vector< CanvasItemPtr< CanvasItemBpath > > segments
 canvas items for "committed" segments
 
CanvasItemPtr< CanvasItemBpathcurrentshape
 canvas item for red "leading" segment
 
Geom::Path currentcurve
 shape of red "leading" segment
 
Geom::Path cal1
 left edge of the stroke; combined to get accumulated
 
Geom::Path cal2
 right edge of the stroke; combined to get accumulated
 
Geom::Point point1 [SAMPLING_SIZE]
 left edge points for this segment
 
Geom::Point point2 [SAMPLING_SIZE]
 right edge points for this segment
 
int npoints = 0
 number of edge points for this segment
 
XML::Noderepr = nullptr
 
Geom::Point cur
 
Geom::Point vel
 
double vel_max = 0.0
 
Geom::Point acc
 
Geom::Point ang
 
Geom::Point last
 
Geom::Point del
 
double pressure = 1.0
 
double xtilt = 0.0
 
double ytilt = 0.0
 
bool usepressure = false
 
bool usetilt = false
 
double mass = 0.3
 
double drag = 1.0
 
double angle = 30.0
 
double width = 0.2
 
double vel_thin = 0.1
 
double flatness = 0.9
 
double tremor = 0.0
 
double cap_rounding = 0.0
 
bool is_drawing = false
 
bool abs_width = false
 uses absolute width independent of zoom
 
- Protected Attributes inherited from Inkscape::UI::Tools::ToolBase
Glib::RefPtr< Gdk::Cursor > _cursor
 
std::string _cursor_filename = "select.svg"
 
std::string _cursor_default = "select.svg"
 
Geom::IntPoint xyp
 where drag started
 
bool dragging = false
 are we dragging?
 
int tolerance = 0
 
bool within_tolerance = false
 are we still within tolerance of origin
 
bool _button1on = false
 
bool _button2on = false
 
bool _button3on = false
 
SPItemitem_to_select = nullptr
 the item where mouse_press occurred, to be selected if this is a click not drag
 
SPDesktop_desktop = nullptr
 
Util::ActionAccel _acc_undo
 
Util::ActionAccel _acc_redo
 
Util::ActionAccel _acc_quick_preview
 
Util::ActionAccel _acc_quick_zoom
 
Util::ActionAccel _acc_quick_pan
 

Additional Inherited Members

- Public Attributes inherited from Inkscape::UI::Tools::ToolBase
std::unique_ptr< MessageContextmessage_context
 
SelCue_selcue = nullptr
 
GrDrag_grdrag = nullptr
 
ShapeEditorshape_editor = nullptr
 
bool _uses_snap = false
 

Detailed Description

Definition at line 38 of file dynamic-base.h.

Constructor & Destructor Documentation

◆ DynamicBase()

Inkscape::UI::Tools::DynamicBase::DynamicBase ( SPDesktop desktop,
std::string &&  prefs_path,
std::string &&  cursor_filename 
)

Definition at line 24 of file dynamic-base.cpp.

◆ ~DynamicBase()

Inkscape::UI::Tools::DynamicBase::~DynamicBase ( )
overridedefault

Member Function Documentation

◆ getNormalizedPoint()

◆ getViewPoint()

Geom::Point Inkscape::UI::Tools::DynamicBase::getViewPoint ( Geom::Point const &  n) const
protected

◆ set()

Member Data Documentation

◆ abs_width

bool Inkscape::UI::Tools::DynamicBase::abs_width = false
protected

uses absolute width independent of zoom

Definition at line 107 of file dynamic-base.h.

Referenced by Inkscape::UI::Tools::EraserTool::_brush(), Inkscape::UI::Tools::CalligraphicTool::brush(), and set().

◆ acc

◆ accumulated

Geom::Path Inkscape::UI::Tools::DynamicBase::accumulated
protected

◆ ang

◆ angle

double Inkscape::UI::Tools::DynamicBase::angle = 30.0
protected

◆ cal1

Geom::Path Inkscape::UI::Tools::DynamicBase::cal1
protected

left edge of the stroke; combined to get accumulated

Definition at line 60 of file dynamic-base.h.

◆ cal2

Geom::Path Inkscape::UI::Tools::DynamicBase::cal2
protected

right edge of the stroke; combined to get accumulated

Definition at line 63 of file dynamic-base.h.

◆ cap_rounding

double Inkscape::UI::Tools::DynamicBase::cap_rounding = 0.0
protected

Definition at line 102 of file dynamic-base.h.

Referenced by set().

◆ cur

◆ currentcurve

Geom::Path Inkscape::UI::Tools::DynamicBase::currentcurve
protected

shape of red "leading" segment

Definition at line 57 of file dynamic-base.h.

◆ currentshape

CanvasItemPtr<CanvasItemBpath> Inkscape::UI::Tools::DynamicBase::currentshape
protected

canvas item for red "leading" segment

Definition at line 54 of file dynamic-base.h.

Referenced by Inkscape::UI::Tools::CalligraphicTool::CalligraphicTool(), and Inkscape::UI::Tools::EraserTool::EraserTool().

◆ del

◆ drag

double Inkscape::UI::Tools::DynamicBase::drag = 1.0
protected

◆ flatness

double Inkscape::UI::Tools::DynamicBase::flatness = 0.9
protected

◆ is_drawing

◆ last

◆ mass

double Inkscape::UI::Tools::DynamicBase::mass = 0.3
protected

◆ npoints

int Inkscape::UI::Tools::DynamicBase::npoints = 0
protected

◆ point1

Geom::Point Inkscape::UI::Tools::DynamicBase::point1[SAMPLING_SIZE]
protected

left edge points for this segment

Definition at line 66 of file dynamic-base.h.

Referenced by Inkscape::UI::Tools::EraserTool::_brush(), and Inkscape::UI::Tools::CalligraphicTool::brush().

◆ point2

Geom::Point Inkscape::UI::Tools::DynamicBase::point2[SAMPLING_SIZE]
protected

right edge points for this segment

Definition at line 69 of file dynamic-base.h.

Referenced by Inkscape::UI::Tools::EraserTool::_brush(), and Inkscape::UI::Tools::CalligraphicTool::brush().

◆ pressure

◆ repr

◆ segments

std::vector<CanvasItemPtr<CanvasItemBpath> > Inkscape::UI::Tools::DynamicBase::segments
protected

canvas items for "committed" segments

Definition at line 51 of file dynamic-base.h.

Referenced by Inkscape::UI::Tools::EraserTool::_cancel(), and Inkscape::UI::Tools::CalligraphicTool::cancel().

◆ tremor

double Inkscape::UI::Tools::DynamicBase::tremor = 0.0
protected

◆ usepressure

bool Inkscape::UI::Tools::DynamicBase::usepressure = false
protected

◆ usetilt

bool Inkscape::UI::Tools::DynamicBase::usetilt = false
protected

◆ vel

◆ vel_max

◆ vel_thin

double Inkscape::UI::Tools::DynamicBase::vel_thin = 0.1
protected

◆ width

double Inkscape::UI::Tools::DynamicBase::width = 0.2
protected

◆ xtilt

◆ ytilt


The documentation for this class was generated from the following files: