Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
Inkscape::CanvasItem Class Referenceabstract

#include <canvas-item.h>

Inheritance diagram for Inkscape::CanvasItem:
Inkscape::CanvasItemBpath Inkscape::CanvasItemCatchall Inkscape::CanvasItemCtrl Inkscape::CanvasItemCurve Inkscape::CanvasItemDrawing Inkscape::CanvasItemGrid Inkscape::CanvasItemGroup Inkscape::CanvasItemGuideLine Inkscape::CanvasItemQuad Inkscape::CanvasItemRect Inkscape::CanvasItemText

Public Member Functions

 CanvasItem (CanvasItemContext *context)
 
 CanvasItem (CanvasItemGroup *parent)
 
 CanvasItem (CanvasItem const &)=delete
 
CanvasItemoperator= (CanvasItem const &)=delete
 
void unlink ()
 
UI::Widget::Canvasget_canvas () const
 
CanvasItemGroupget_parent () const
 
bool is_descendant_of (CanvasItem const *ancestor) const
 
void set_z_position (int zpos)
 
void raise_to_top ()
 
void lower_to_bottom ()
 
void request_update ()
 
void update (bool propagate)
 
virtual void visit_page_rects (std::function< void(Geom::Rect const &)> const &) const
 
Geom::OptRect const & get_bounds () const
 
virtual bool contains (Geom::Point const &p, double tolerance=0)
 
void grab (EventMask event_mask, Glib::RefPtr< Gdk::Cursor > const &={})
 
void ungrab ()
 
void render (Inkscape::CanvasItemBuffer &buf) const
 
bool is_visible () const
 
virtual void set_visible (bool visible)
 
void request_redraw ()
 
virtual void set_fill (uint32_t rgba)
 
void set_fill (CanvasItemColor color)
 
void set_fill_pattern (Cairo::RefPtr< Cairo::Pattern > pattern)
 
virtual void set_stroke (uint32_t rgba)
 
void set_stroke (CanvasItemColor color)
 
void set_stroke_width (double width)
 Set the stroke width.
 
void set_outline (uint32_t color)
 Set the outline color.
 
void set_outline_width (double width)
 Set the outline width.
 
double get_effective_outline () const
 Get the effective outline.
 
void set_name (std::string &&name)
 
std::string const & get_name () const
 
void update_canvas_item_ctrl_sizes (int size_index)
 
void set_pickable (bool pickable)
 
bool is_pickable () const
 
sigc::connection connect_event (sigc::slot< bool(CanvasEvent const &)> const &slot)
 
virtual bool handle_event (CanvasEvent const &event)
 
void canvas_item_print_tree (int level=0, int zorder=0) const
 

Public Attributes

boost::intrusive::list_member_hook member_hook
 

Protected Member Functions

virtual ~CanvasItem ()
 
Geom::Affine const & affine () const
 
virtual void _update (bool propagate)=0
 
virtual void _mark_net_invisible ()
 
virtual void _invalidate_ctrl_handles ()
 
virtual void _render (Inkscape::CanvasItemBuffer &buf) const =0
 
template<typename F >
void defer (F &&f)
 

Protected Attributes

CanvasItemContext_context
 
CanvasItemGroup_parent
 
Geom::OptRect _bounds
 
bool _need_update = false
 
bool _visible = true
 
bool _net_visible = true
 
bool _pickable = false
 
uint32_t _fill = CANVAS_ITEM_COLORS[CANVAS_ITEM_SECONDARY]
 
Cairo::RefPtr< Cairo::Pattern > _fill_pattern
 
uint32_t _stroke = CANVAS_ITEM_COLORS[CANVAS_ITEM_PRIMARY]
 
double _stroke_width = 1.0
 
uint32_t _outline = 0x0
 
double _outline_width = 0
 
std::string _name
 
sigc::signal< bool(CanvasEvent const &)> _event_signal
 

Friends

class CanvasItemGroup
 
class CanvasItemContext
 

Detailed Description

Definition at line 51 of file canvas-item.h.

Constructor & Destructor Documentation

◆ CanvasItem() [1/3]

Inkscape::CanvasItem::CanvasItem ( CanvasItemContext context)

Definition at line 28 of file canvas-item.cpp.

References DEBUG_LOGGING, get_name(), and request_update().

◆ CanvasItem() [2/3]

Inkscape::CanvasItem::CanvasItem ( CanvasItemGroup parent)

Definition at line 36 of file canvas-item.cpp.

References DEBUG_LOGGING, defer(), get_name(), parent, and request_update().

◆ CanvasItem() [3/3]

Inkscape::CanvasItem::CanvasItem ( CanvasItem const &  )
delete

◆ ~CanvasItem()

Inkscape::CanvasItem::~CanvasItem ( )
protectedvirtual

Member Function Documentation

◆ _invalidate_ctrl_handles()

virtual void Inkscape::CanvasItem::_invalidate_ctrl_handles ( )
inlineprotectedvirtual

Reimplemented in Inkscape::CanvasItemCtrl, and Inkscape::CanvasItemGroup.

Definition at line 133 of file canvas-item.h.

◆ _mark_net_invisible()

void Inkscape::CanvasItem::_mark_net_invisible ( )
protectedvirtual

Reimplemented in Inkscape::CanvasItemGroup.

Definition at line 174 of file canvas-item.cpp.

References _bounds, _need_update, _net_visible, and request_redraw().

Referenced by update().

◆ _render()

◆ _update()

◆ affine()

◆ canvas_item_print_tree()

void Inkscape::CanvasItem::canvas_item_print_tree ( int  level = 0,
int  zorder = 0 
) const

Definition at line 351 of file canvas-item.cpp.

References _name, and item.

◆ connect_event()

sigc::connection Inkscape::CanvasItem::connect_event ( sigc::slot< bool(CanvasEvent const &)> const &  slot)
inline

Definition at line 104 of file canvas-item.h.

References _event_signal.

Referenced by SPDesktop::_setupCanvasItems().

◆ contains()

◆ defer()

template<typename F >
void Inkscape::CanvasItem::defer ( F &&  f)
inlineprotected

Definition at line 157 of file canvas-item.h.

References _context, and Inkscape::CanvasItemContext::defer().

Referenced by Inkscape::CanvasItemCtrl::_set_size(), CanvasItem(), lower_to_bottom(), raise_to_top(), Inkscape::CanvasItemText::set_adjust(), Inkscape::CanvasItemText::set_anchor(), Inkscape::CanvasItemCtrl::set_anchor(), Inkscape::CanvasItemCtrl::set_angle(), Inkscape::CanvasItemGridAxonom::set_angle_x(), Inkscape::CanvasItemGridAxonom::set_angle_z(), Inkscape::CanvasItemText::set_background(), Inkscape::CanvasItemCurve::set_bg_alpha(), Inkscape::CanvasItemText::set_bg_radius(), Inkscape::CanvasItemText::set_border(), Inkscape::CanvasItemBpath::set_bpath(), Inkscape::CanvasItemCtrl::set_click(), Inkscape::CanvasItemText::set_coord(), Inkscape::CanvasItemCurve::set_coords(), Inkscape::CanvasItemCurve::set_coords(), Inkscape::CanvasItemQuad::set_coords(), Inkscape::CanvasItemRect::set_dashed(), Inkscape::CanvasItemBpath::set_dashes(), Inkscape::CanvasItemGrid::set_dotted(), Inkscape::CanvasItemRect::set_fill(), set_fill(), Inkscape::CanvasItemCtrl::set_fill(), Inkscape::CanvasItemBpath::set_fill(), set_fill_pattern(), Inkscape::CanvasItemText::set_fixed_line(), Inkscape::CanvasItemText::set_fontsize(), Inkscape::CanvasItemGridTiles::set_gap_size(), Inkscape::CanvasItemCtrl::set_hover(), Inkscape::CanvasItemQuad::set_inverted(), Inkscape::CanvasItemRect::set_inverted(), Inkscape::CanvasItemRect::set_is_page(), Inkscape::CanvasItemGuideLine::set_label(), Inkscape::CanvasItemGuideLine::set_locked(), Inkscape::CanvasItemGrid::set_major_color(), Inkscape::CanvasItemGrid::set_major_line_interval(), Inkscape::CanvasItemGridTiles::set_margin_size(), Inkscape::CanvasItemGrid::set_minor_color(), Inkscape::CanvasItemCtrl::set_normal(), Inkscape::CanvasItemGrid::set_origin(), set_outline(), set_outline_width(), Inkscape::CanvasItemCtrl::set_position(), Inkscape::CanvasItemRect::set_rect(), Inkscape::CanvasItemCtrl::set_selected(), Inkscape::CanvasItemRect::set_shadow(), Inkscape::CanvasItemCtrl::set_shape(), Inkscape::CanvasItemGrid::set_spacing(), set_stroke(), Inkscape::CanvasItemCtrl::set_stroke(), set_stroke_width(), Inkscape::CanvasItemText::set_text(), Inkscape::CanvasItemCtrl::set_type(), set_visible(), Inkscape::CanvasItemCurve::set_width(), set_z_position(), and unlink().

◆ get_bounds()

Geom::OptRect const & Inkscape::CanvasItem::get_bounds ( ) const
inline

Definition at line 74 of file canvas-item.h.

References _bounds.

◆ get_canvas()

◆ get_effective_outline()

double Inkscape::CanvasItem::get_effective_outline ( ) const

◆ get_name()

std::string const & Inkscape::CanvasItem::get_name ( ) const
inline

Definition at line 98 of file canvas-item.h.

References _name.

Referenced by CanvasItem(), CanvasItem(), and unlink().

◆ get_parent()

CanvasItemGroup * Inkscape::CanvasItem::get_parent ( ) const
inline

Definition at line 62 of file canvas-item.h.

References _parent.

Referenced by SPGrid::getAssociatedView(), and SPGrid::show().

◆ grab()

void Inkscape::CanvasItem::grab ( EventMask  event_mask,
Glib::RefPtr< Gdk::Cursor > const &  cursor = {} 
)

Definition at line 186 of file canvas-item.cpp.

References _name, DEBUG_LOGGING, and get_canvas().

◆ handle_event()

virtual bool Inkscape::CanvasItem::handle_event ( CanvasEvent const &  event)
inlinevirtual

Reimplemented in Inkscape::CanvasItemDrawing.

Definition at line 107 of file canvas-item.h.

References _event_signal.

◆ is_descendant_of()

bool Inkscape::CanvasItem::is_descendant_of ( CanvasItem const *  ancestor) const

Definition at line 74 of file canvas-item.cpp.

References item.

◆ is_pickable()

bool Inkscape::CanvasItem::is_pickable ( ) const
inline

Definition at line 103 of file canvas-item.h.

References _pickable.

◆ is_visible()

bool Inkscape::CanvasItem::is_visible ( ) const
inline

Definition at line 83 of file canvas-item.h.

References _visible.

◆ lower_to_bottom()

void Inkscape::CanvasItem::lower_to_bottom ( )

Definition at line 121 of file canvas-item.cpp.

References _parent, defer(), and Inkscape::CanvasItemGroup::items.

◆ operator=()

CanvasItem & Inkscape::CanvasItem::operator= ( CanvasItem const &  )
delete

◆ raise_to_top()

void Inkscape::CanvasItem::raise_to_top ( )

Definition at line 108 of file canvas-item.cpp.

References _parent, defer(), and Inkscape::CanvasItemGroup::items.

◆ render()

◆ request_redraw()

◆ request_update()

void Inkscape::CanvasItem::request_update ( )

Definition at line 135 of file canvas-item.cpp.

References _need_update, _parent, _visible, get_canvas(), request_update(), and Inkscape::UI::Widget::Canvas::request_update().

Referenced by Inkscape::CanvasItemCtrl::_invalidate_ctrl_handles(), Inkscape::DrawingItem::_markForUpdate(), Inkscape::CanvasItemCtrl::_set_size(), CanvasItem(), CanvasItem(), Inkscape::CanvasItemBpath::CanvasItemBpath(), Inkscape::CanvasItemCtrl::CanvasItemCtrl(), Inkscape::CanvasItemGrid::CanvasItemGrid(), Inkscape::CanvasItemText::CanvasItemText(), request_update(), Inkscape::CanvasItemText::set_adjust(), Inkscape::CanvasItemText::set_anchor(), Inkscape::CanvasItemCtrl::set_anchor(), Inkscape::CanvasItemCtrl::set_angle(), Inkscape::CanvasItemGridAxonom::set_angle_x(), Inkscape::CanvasItemGridAxonom::set_angle_z(), Inkscape::CanvasItemCurve::set_bg_alpha(), Inkscape::CanvasItemText::set_bg_radius(), Inkscape::CanvasItemText::set_border(), Inkscape::CanvasItemBpath::set_bpath(), Inkscape::CanvasItemCtrl::set_click(), Inkscape::CanvasItemText::set_coord(), Inkscape::CanvasItemCurve::set_coords(), Inkscape::CanvasItemCurve::set_coords(), Inkscape::CanvasItemQuad::set_coords(), Inkscape::CanvasItemGrid::set_dotted(), Inkscape::CanvasItemText::set_fixed_line(), Inkscape::CanvasItemText::set_fontsize(), Inkscape::CanvasItemGridTiles::set_gap_size(), Inkscape::CanvasItemCtrl::set_hover(), Inkscape::CanvasItemGuideLine::set_inverted(), Inkscape::CanvasItemGuideLine::set_label(), Inkscape::CanvasItemGrid::set_major_color(), Inkscape::CanvasItemGrid::set_major_line_interval(), Inkscape::CanvasItemGridTiles::set_margin_size(), Inkscape::CanvasItemGrid::set_minor_color(), Inkscape::CanvasItemCtrl::set_normal(), Inkscape::CanvasItemGuideLine::set_normal(), Inkscape::CanvasItemGuideLine::set_origin(), Inkscape::CanvasItemGrid::set_origin(), Inkscape::CanvasItemCtrl::set_position(), Inkscape::CanvasItemRect::set_rect(), Inkscape::CanvasItemCtrl::set_selected(), Inkscape::CanvasItemCtrl::set_shape(), Inkscape::CanvasItemGrid::set_spacing(), Inkscape::CanvasItemText::set_text(), Inkscape::CanvasItemCtrl::set_type(), set_visible(), Inkscape::CanvasItemCurve::set_width(), and unlink().

◆ set_fill() [1/2]

void Inkscape::CanvasItem::set_fill ( CanvasItemColor  color)
inline

Definition at line 89 of file canvas-item.h.

References Inkscape::CANVAS_ITEM_COLORS, and set_fill().

Referenced by set_fill().

◆ set_fill() [2/2]

void Inkscape::CanvasItem::set_fill ( uint32_t  rgba)
virtual

Reimplemented in Inkscape::CanvasItemRect, and Inkscape::CanvasItemCtrl.

Definition at line 267 of file canvas-item.cpp.

References _fill, defer(), and request_redraw().

◆ set_fill_pattern()

void Inkscape::CanvasItem::set_fill_pattern ( Cairo::RefPtr< Cairo::Pattern >  pattern)

Definition at line 276 of file canvas-item.cpp.

References _fill_pattern, defer(), and request_redraw().

◆ set_name()

void Inkscape::CanvasItem::set_name ( std::string &&  name)
inline

Definition at line 97 of file canvas-item.h.

References _name, and name.

Referenced by SPDesktop::_setupCanvasItems(), and Inkscape::UI::TransformHandleSet::TransformHandleSet().

◆ set_outline()

void Inkscape::CanvasItem::set_outline ( uint32_t  color)

Set the outline color.

Definition at line 309 of file canvas-item.cpp.

References _outline, defer(), and request_redraw().

◆ set_outline_width()

void Inkscape::CanvasItem::set_outline_width ( double  width)

Set the outline width.

Outline is the "area" beyond the stroke

Definition at line 321 of file canvas-item.cpp.

References _outline_width, defer(), request_redraw(), and width.

◆ set_pickable()

void Inkscape::CanvasItem::set_pickable ( bool  pickable)
inline

◆ set_stroke() [1/2]

void Inkscape::CanvasItem::set_stroke ( CanvasItemColor  color)
inline

Definition at line 92 of file canvas-item.h.

References Inkscape::CANVAS_ITEM_COLORS, and set_stroke().

Referenced by set_stroke().

◆ set_stroke() [2/2]

◆ set_stroke_width()

void Inkscape::CanvasItem::set_stroke_width ( double  width)

Set the stroke width.

Definition at line 297 of file canvas-item.cpp.

References _stroke_width, defer(), request_redraw(), and width.

Referenced by Inkscape::BooleanBuilder::redraw_item().

◆ set_visible()

◆ set_z_position()

void Inkscape::CanvasItem::set_z_position ( int  zpos)

Definition at line 86 of file canvas-item.cpp.

References _parent, defer(), and Inkscape::CanvasItemGroup::items.

◆ ungrab()

void Inkscape::CanvasItem::ungrab ( )

Definition at line 201 of file canvas-item.cpp.

References _name, DEBUG_LOGGING, and get_canvas().

Referenced by Inkscape::UI::Tools::SelectTool::~SelectTool().

◆ unlink()

void Inkscape::CanvasItem::unlink ( )

◆ update()

void Inkscape::CanvasItem::update ( bool  propagate)

◆ update_canvas_item_ctrl_sizes()

void Inkscape::CanvasItem::update_canvas_item_ctrl_sizes ( int  size_index)

Definition at line 339 of file canvas-item.cpp.

References item.

◆ visit_page_rects()

virtual void Inkscape::CanvasItem::visit_page_rects ( std::function< void(Geom::Rect const &)> const &  ) const
inlinevirtual

Reimplemented in Inkscape::CanvasItemGroup, and Inkscape::CanvasItemRect.

Definition at line 73 of file canvas-item.h.

Friends And Related Symbol Documentation

◆ CanvasItemContext

friend class CanvasItemContext
friend

Definition at line 119 of file canvas-item.h.

◆ CanvasItemGroup

friend class CanvasItemGroup
friend

Definition at line 118 of file canvas-item.h.

Member Data Documentation

◆ _bounds

◆ _context

◆ _event_signal

sigc::signal<bool(CanvasEvent const &)> Inkscape::CanvasItem::_event_signal
protected

Definition at line 153 of file canvas-item.h.

Referenced by connect_event(), and handle_event().

◆ _fill

◆ _fill_pattern

Cairo::RefPtr<Cairo::Pattern> Inkscape::CanvasItem::_fill_pattern
protected

◆ _name

◆ _need_update

bool Inkscape::CanvasItem::_need_update = false
protected

◆ _net_visible

bool Inkscape::CanvasItem::_net_visible = true
protected

◆ _outline

uint32_t Inkscape::CanvasItem::_outline = 0x0
protected

◆ _outline_width

double Inkscape::CanvasItem::_outline_width = 0
protected

◆ _parent

CanvasItemGroup* Inkscape::CanvasItem::_parent
protected

◆ _pickable

◆ _stroke

◆ _stroke_width

double Inkscape::CanvasItem::_stroke_width = 1.0
protected

◆ _visible

bool Inkscape::CanvasItem::_visible = true
protected

Definition at line 136 of file canvas-item.h.

Referenced by is_visible(), render(), request_update(), set_visible(), and update().

◆ member_hook

boost::intrusive::list_member_hook Inkscape::CanvasItem::member_hook

Definition at line 115 of file canvas-item.h.


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