Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
SPGroup Class Reference

#include <sp-item-group.h>

Inheritance diagram for SPGroup:
SPLPEItem SPItem SPObject Inkscape::XML::NodeObserver SPAnchor SPBox3D SPMarker SPRoot SPSwitch SPSymbol

Public Types

enum  LayerMode { GROUP , LAYER , MASK_HELPER }
 
- Public Types inherited from SPItem
enum  BBoxType { APPROXIMATE_BBOX , GEOMETRIC_BBOX , VISUAL_BBOX }
 
enum  PaintServerType { PATTERN , HATCH , GRADIENT }
 
- Public Types inherited from SPObject
enum  CollectionPolicy { COLLECT_WITH_PARENT , ALWAYS_COLLECT }
 
enum class  LinkedObjectNature { DEPENDENT = -1 , ANY = 0 , DEPENDENCY = 1 }
 
enum  Action { ActionGeneral , ActionBBox , ActionUpdate , ActionShow }
 
typedef Inkscape::Util::ForwardPointerIterator< SPObject, ParentIteratorStrategyParentIterator
 
typedef Inkscape::Util::ForwardPointerIterator< SPObject const, ParentIteratorStrategyConstParentIterator
 
using ChildrenList = boost::intrusive::list< SPObject, boost::intrusive::member_hook< SPObject, ListHook, &SPObject::_child_hook > >
 

Public Member Functions

 SPGroup ()
 
 ~SPGroup () override
 
int tag () const override
 
bool isLayer () const
 
LayerMode layerMode () const
 
void setLayerMode (LayerMode mode)
 
bool insertBottom () const
 
void setInsertBottom (bool insertbottom)
 
LayerMode effectiveLayerMode (unsigned int display_key) const
 
LayerMode layerDisplayMode (unsigned int display_key) const
 
void setLayerDisplayMode (unsigned int display_key, LayerMode mode)
 
void translateChildItems (Geom::Translate const &tr)
 
void scaleChildItemsRec (Geom::Scale const &sc, Geom::Point const &p, bool noRecurse)
 
int getItemCount () const
 
virtual void _showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags)
 
std::vector< SPItem * > item_list ()
 
void build (SPDocument *document, Inkscape::XML::Node *repr) override
 
void release () override
 
void child_added (Inkscape::XML::Node *child, Inkscape::XML::Node *ref) override
 
void remove_child (Inkscape::XML::Node *child) override
 
void order_changed (Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) override
 
void update (SPCtx *ctx, unsigned int flags) override
 
void modified (unsigned int flags) override
 
void set (SPAttr key, char const *value) override
 
Inkscape::XML::Nodewrite (Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
 
Geom::OptRect bbox (Geom::Affine const &transform, SPItem::BBoxType bboxtype) const override
 
void print (SPPrintContext *ctx) override
 
const char * typeName () const override
 The item's type name, not node tag name.
 
const char * displayName () const override
 The item's type name as a translated human string.
 
char * description () const override
 
Inkscape::DrawingItemshow (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags) override
 
void hide (unsigned int key) override
 
void snappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs) const override
 
void update_patheffect (bool write) override
 
Inkscape::Colors::Color highlight_color () const override
 Generate a highlight colour if one isn't set and return it.
 
void removeTransformsRecursively (SPObject const *root) override
 
- Public Member Functions inherited from SPLPEItem
 SPLPEItem ()
 
 ~SPLPEItem () override
 
int tag () const override
 
void replacePathEffects (std::vector< LivePathEffectObject const * > const &old_lpeobjs, std::vector< LivePathEffectObject const * > const &new_lpeobjs)
 Writes a new "inkscape:path-effect" string to xml, where the old_lpeobjects are substituted by the new ones.
 
void build (SPDocument *doc, Inkscape::XML::Node *repr) override
 
void release () override
 
void set (SPAttr key, char const *value) override
 
void update (SPCtx *ctx, unsigned int flags) override
 
void modified (unsigned int flags) override
 
void child_added (Inkscape::XML::Node *child, Inkscape::XML::Node *ref) override
 
void remove_child (Inkscape::XML::Node *child) override
 
Inkscape::XML::Nodewrite (Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
 
bool optimizeTransforms ()
 returns false when LPE write unoptimiced
 
void notifyTransform (Geom::Affine const &postmul)
 notify tranbsform applied to a LPE
 
bool performPathEffect (SPCurve *curve, SPShape *current, bool is_clip_or_mask=false)
 returns true when LPE was successful.
 
bool performOnePathEffect (SPCurve *curve, SPShape *current, Inkscape::LivePathEffect::Effect *lpe, bool is_clip_or_mask=false)
 returns true when LPE was successful.
 
bool pathEffectsEnabled () const
 
bool hasPathEffect () const
 
bool hasPathEffectOfType (int const type, bool is_ready=true) const
 
bool hasPathEffectOfTypeRecursive (int const type, bool is_ready=true) const
 
bool hasPathEffectRecursive () const
 
SPLPEItem const * getTopPathEffect () const
 returns top most LPE item with LPE
 
bool hasPathEffectOnClipOrMask (SPLPEItem *shape) const
 returns true when any LPE apply to clip or mask.
 
bool hasPathEffectOnClipOrMaskRecursive (SPLPEItem *shape) const
 returns true when any LPE apply to clip or mask.
 
std::size_t getLPEIndex (Inkscape::LivePathEffect::Effect *lpe) const
 
std::size_t countLPEOfType (int const type, bool inc_hidden=true, bool is_ready=true) const
 
std::size_t getLPEReferenceIndex (PathEffectSharedPtr const &lperef) const
 
Inkscape::LivePathEffect::EffectgetFirstPathEffectOfType (int type)
 
Inkscape::LivePathEffect::Effect const * getFirstPathEffectOfType (int type) const
 
std::vector< Inkscape::LivePathEffect::Effect * > getPathEffectsOfType (int type)
 
std::vector< Inkscape::LivePathEffect::Effect const * > getPathEffectsOfType (int type) const
 
std::vector< Inkscape::LivePathEffect::Effect * > getPathEffects ()
 
std::vector< Inkscape::LivePathEffect::Effect const * > getPathEffects () const
 
std::vector< SPObject * > get_satellites (bool force=true, bool recursive=false, bool onchilds=false)
 
bool isOnClipboard ()
 The lpeitem is on clipboard.
 
bool isOnSymbol () const
 
bool hasBrokenPathEffect () const
 used for shapes so they can see if they should also disable shape calculation and read from d=
 
PathEffectList getEffectList ()
 
PathEffectList const getEffectList () const
 
void duplicateCurrentPathEffect ()
 
void downCurrentPathEffect ()
 
void upCurrentPathEffect ()
 
void removePathEffect (Inkscape::LivePathEffect::Effect *lpe, bool keep_paths)
 
void movePathEffect (gint origin, gint dest, bool select_moved=false)
 
SPLPEItemflattenCurrentPathEffect ()
 
PathEffectSharedPtr getCurrentLPEReference ()
 
Inkscape::LivePathEffect::EffectgetCurrentLPE ()
 
PathEffectSharedPtr getPrevLPEReference (PathEffectSharedPtr const &lperef)
 
Inkscape::LivePathEffect::EffectgetPrevLPE (Inkscape::LivePathEffect::Effect *lpe)
 
PathEffectSharedPtr getNextLPEReference (PathEffectSharedPtr const &lperef)
 
Inkscape::LivePathEffect::EffectgetNextLPE (Inkscape::LivePathEffect::Effect *lpe)
 
PathEffectSharedPtr getLastLPEReference ()
 
Inkscape::LivePathEffect::EffectgetLastLPE ()
 
bool setCurrentPathEffect (PathEffectSharedPtr const &lperef)
 
bool setCurrentPathEffect (LivePathEffectObject const *lpeobj)
 
SPLPEItemremoveCurrentPathEffect (bool keep_paths)
 If keep_path is true, the item should not be updated, effectively 'flattening' the LPE.
 
SPLPEItemremoveAllPathEffects (bool keep_paths, bool recursive=false)
 If keep_path is true, the item should not be updated, effectively 'flattening' the LPE.
 
void addPathEffect (std::string value, bool reset)
 
void addPathEffect (LivePathEffectObject *new_lpeobj)
 
void resetClipPathAndMaskLPE (bool fromrecurse=false)
 
void applyToMask (SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr)
 
void applyToClipPath (SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr)
 
void applyToClipPathOrMask (SPItem *clip_mask, SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr)
 
bool forkPathEffectsIfNecessary (unsigned int nr_of_allowed_users=1, bool recursive=true, bool force=false)
 Check all effects in the stack if they are used by other items, and fork them if so.
 
void editNextParamOncanvas (SPDesktop *dt)
 
void update_satellites (bool recursive=true)
 
- Public Member Functions inherited from SPItem
 SPItem ()
 
 ~SPItem () override
 
SPClipPathgetClipObject () const
 
SPMaskgetMaskObject () const
 
SPClipPathReferencegetClipRef ()
 
SPMaskReferencegetMaskRef ()
 
std::optional< Geom::PathVectorgetClipPathVector () const
 Return the path vector of the clipping region.
 
std::optional< Geom::PathVectorgetClipPathVector (SPItem const *root) const
 Return the path vector of the clipping region, combined with the clipping regions of all groups containing this object up to and including root.
 
SPText const * getClipTextObject () const
 Return the text object, IF and only if this item is clipped by a single SPText object.
 
SPAvoidRefgetAvoidRef ()
 
bool isLocked () const
 
void setLocked (bool lock, bool recursive=false)
 
bool isHidden () const
 
void setHidden (bool hidden)
 
bool isSensitive () const
 
void setHighlight (Inkscape::Colors::Color color)
 
bool isHighlightSet () const
 
bool isEvaluated () const
 
void setEvaluated (bool visible)
 
void resetEvaluated ()
 
bool unoptimized ()
 
bool isHidden (unsigned display_key) const
 
bool isExplicitlyHidden () const
 Returns something suitable for the ‘Hide’ checkbox in the Object Properties dialog box.
 
void setExplicitlyHidden (bool val)
 Sets the display CSS property to ‘hidden’ if val is true, otherwise makes it unset.
 
void setCenter (Geom::Point const &object_centre)
 Sets the transform_center_x and transform_center_y properties to retain the rotation center.
 
bool updateCenterIfSet (Geom::Point const &center)
 
void unsetCenter ()
 
bool isCenterSet () const
 
Geom::Point getCenter (bool ensure_uptodate=true) const
 
void scaleCenter (Geom::Scale const &sc)
 
bool isVisibleAndUnlocked () const
 
bool isVisibleAndUnlocked (unsigned display_key) const
 
Geom::Affine getRelativeTransform (SPObject const *obj) const
 
bool raiseOne ()
 
bool lowerOne ()
 
void raiseToTop ()
 
void lowerToBottom ()
 
SPGroupgetParentGroup () const
 Return the parent, only if it's a group object.
 
void moveTo (SPItem *target, bool intoafter)
 Move this SPItem into or after another SPItem in the doc.
 
sigc::connection connectTransformed (sigc::slot< void(Geom::Affine const *, SPItem *)> slot)
 
Geom::OptRect geometricBounds (Geom::Affine const &transform=Geom::identity()) const
 Get item's geometric bounding box in this item's coordinate system.
 
Geom::OptRect visualBounds (Geom::Affine const &transform=Geom::identity(), bool wfilter=true, bool wclip=true, bool wmask=true) const
 Get item's visual bounding box in this item's coordinate system.
 
Geom::OptRect bounds (BBoxType type, Geom::Affine const &transform=Geom::identity()) const
 
Geom::OptRect documentGeometricBounds () const
 Get item's geometric bbox in document coordinate system.
 
Geom::OptRect documentVisualBounds () const
 Get item's visual bbox in document coordinate system.
 
Geom::OptRect documentBounds (BBoxType type) const
 
Geom::OptRect documentPreferredBounds () const
 
virtual std::optional< Geom::PathVectordocumentExactBounds () const
 Get an exact geometric shape representing the visual bounds of the item in the document coordinates.
 
Geom::OptRect desktopGeometricBounds () const
 Get item's geometric bbox in desktop coordinate system.
 
Geom::OptRect desktopVisualBounds () const
 Get item's visual bbox in desktop coordinate system.
 
Geom::OptRect desktopPreferredBounds () const
 
Geom::OptRect desktopBounds (BBoxType type) const
 
unsigned int pos_in_parent () const
 
char * detailedDescription () const
 Returns a string suitable for status bar, formatted in pango markup language.
 
bool isFiltered () const
 Returns true if the item is filtered, false otherwise.
 
SPObjectisInMask () const
 
SPObjectisInClipPath () const
 
void invoke_print (SPPrintContext *ctx)
 
Inkscape::DrawingIteminvoke_show (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags)
 
void invoke_hide (unsigned int key)
 
void invoke_hide_except (unsigned key, const std::vector< SPItem const * > &to_keep)
 Invoke hide on all non-group items, except for the list of items to keep.
 
void getSnappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs=nullptr) const
 
void adjust_pattern (Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
 
void adjust_hatch (Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
 
void adjust_gradient (Geom::Affine const &postmul, bool set=false)
 
void adjust_clip (Geom::Affine const &postmul, bool set=false)
 
void remove_clip_transforms ()
 
void adjust_stroke (double ex)
 
void adjust_stroke_width_recursive (double ex)
 Recursively scale stroke width in item and its children by expansion.
 
void freeze_stroke_width_recursive (bool freeze)
 
void adjust_paint_recursive (Geom::Affine advertized_transform, Geom::Affine t_ancestors, PaintServerType type=GRADIENT)
 Recursively compensate pattern or gradient transform.
 
bool collidesWith (Geom::PathVector const &shape) const
 Checks for visual collision with another item.
 
bool collidesWith (SPItem const &other) const
 
void doWriteTransform (Geom::Affine const &transform, Geom::Affine const *adv=nullptr, bool compensate=true)
 Set a new transform on an object.
 
void set_item_transform (Geom::Affine const &transform_matrix)
 Sets item private transform (not propagated to repr), without compensating stroke widths, gradients, patterns as sp_item_write_transform does.
 
Inkscape::DrawingItemget_arenaitem (unsigned key) const
 Return the arenaitem corresponding to the given item in the display with the given key.
 
Geom::Affine i2doc_affine () const
 Returns the accumulated transformation of the item and all its ancestors, including root's viewport.
 
Geom::Affine i2dt_affine () const
 Returns the transformation from item to desktop coords.
 
void set_i2d_affine (Geom::Affine const &transform)
 
Geom::Affine dt2i_affine () const
 Returns the transformation from desktop to item coords.
 
bool isExpanded () const
 
void setExpanded (bool expand)
 
void rotate_rel (Geom::Rotate const &rotation)
 
void scale_rel (Geom::Scale const &scale)
 
void skew_rel (double skewX, double skewY)
 
void move_rel (Geom::Translate const &tr)
 
virtual Geom::Affine set_transform (Geom::Affine const &transform)
 
virtual void convert_to_guides () const
 
- Public Member Functions inherited from SPObject
 SPObject ()
 Constructor, sets all attributes to default values.
 
 SPObject (SPObject const &)=delete
 
SPObjectoperator= (SPObject const &)=delete
 
 ~SPObject () override
 Destructor, frees the used memory and unreferences a potential successor of the object.
 
char const * getId () const
 Returns the objects current ID string.
 
void getIds (std::set< std::string > &ret) const
 Accumulate this id and all it's descendants ids.
 
std::string getUrl () const
 Get the id in a URL format.
 
Inkscape::XML::NodegetRepr ()
 Returns the XML representation of tree.
 
Inkscape::XML::Node const * getRepr () const
 Returns the XML representation of tree.
 
void releaseReferences ()
 Cleans up an SPObject, releasing its references and requesting that references to it be released.
 
sigc::connection connectRelease (sigc::slot< void(SPObject *)> slot)
 Connects to the release request signal.
 
bool isSiblingOf (SPObject const *object) const
 
virtual void getLinked (std::vector< SPObject * > &objects, LinkedObjectNature direction=LinkedObjectNature::ANY) const
 Get objects which are linked to this object as either a source or a target.
 
std::vector< SPObject * > getLinked (LinkedObjectNature direction=LinkedObjectNature::ANY) const
 Get objects which are linked, like above.
 
bool isAncestorOf (SPObject const *object) const
 True if object is non-NULL and this is some in/direct parent of object.
 
SPObject const * nearestCommonAncestor (SPObject const *object) const
 Returns youngest object being parent to this and object.
 
SPObject const * getTopAncestorNonLayer () const
 Returns ancestor non layer.
 
SPObjectgetNext ()
 
SPObjectgetPrev ()
 Returns previous object in sibling list or NULL.
 
bool hasChildren () const
 
SPObjectfirstChild ()
 
SPObject const * firstChild () const
 
SPObjectlastChild ()
 
SPObject const * lastChild () const
 
SPObjectnthChild (unsigned index)
 
SPObject const * nthChild (unsigned index) const
 
std::vector< SPObject * > childList (bool add_ref, Action action=ActionGeneral)
 Retrieves the children as a std vector object, optionally ref'ing the children in the process, if add_ref is specified.
 
std::vector< SPObject * > ancestorList (bool root_to_tip)
 Retrieves a list of ancestors of the object, as an easy to use vector.
 
SPObjectappendChildRepr (Inkscape::XML::Node *repr)
 Append repr as child of this object.
 
char const * label () const
 Gets the author-visible label property for the object or a default if no label is defined.
 
char const * defaultLabel () const
 Returns a default label property for this object.
 
void setLabel (char const *label)
 Sets the author-visible label for this object.
 
char * title () const
 Returns the title of this object, or NULL if there is none.
 
bool setTitle (char const *title, bool verbatim=false)
 Sets the title of this object.
 
char * desc () const
 Returns the description of this object, or NULL if there is none.
 
bool setDesc (char const *desc, bool verbatim=false)
 Sets the description of this object.
 
Glib::ustring getExportFilename () const
 Get and set the exportable filename on this object.
 
void setExportFilename (Glib::ustring filename)
 
Geom::Point getExportDpi () const
 Get and set the exported DPI for this objet, if available.
 
void setExportDpi (Geom::Point dpi)
 
CollectionPolicy collectionPolicy () const
 Set the policy under which this object will be orphan-collected.
 
void setCollectionPolicy (CollectionPolicy policy)
 Sets the orphan-collection policy in effect for this object.
 
void requestOrphanCollection ()
 Requests a later automatic call to collectOrphan().
 
void collectOrphan ()
 Unconditionally delete the object if it is not referenced.
 
void hrefObject (SPObject *owner=nullptr)
 Increase weak refcount.
 
void unhrefObject (SPObject *owner=nullptr)
 Decrease weak refcount.
 
bool isReferenced ()
 Check if object is referenced by any other object.
 
void deleteObject (bool propagate, bool propagate_descendants)
 Deletes an object, unparenting it from its parent.
 
void deleteObject (bool propagate=true)
 Deletes on object.
 
void cropToObject (SPObject *except)
 Removes all children except for the given object, it's children and it's ancesstors.
 
void cropToObjects (std::vector< SPObject * > except_objects)
 Removes objects which are not related to given list of objects.
 
void getObjectsExcept (std::vector< SPObject * > &objects, const std::vector< SPObject * > &except)
 Get all child objects except for any in the list.
 
void getLinkedRecursive (std::vector< SPObject * > &objects, LinkedObjectNature direction=LinkedObjectNature::ANY) const
 Grows the input list with all linked items recursively in both child nodes and links of links.
 
sigc::connection connectDelete (sigc::slot< void(SPObject *)> slot)
 Connects a slot to be called when an object is deleted.
 
sigc::connection connectPositionChanged (sigc::slot< void(SPObject *)> slot)
 
SPObjectsuccessor ()
 Returns the object which supercedes this one (if any).
 
void setSuccessor (SPObject *successor)
 Indicates that another object supercedes this one.
 
void setTmpSuccessor (SPObject *tmpsuccessor)
 Indicates that another object supercedes temporaty this one.
 
void unsetTmpSuccessor ()
 Unset object supercedes.
 
void fixTmpSuccessors ()
 Fix temporary successors in duple stamp.
 
Inkscape::XML::NodeupdateRepr (unsigned int flags=SP_OBJECT_WRITE_EXT)
 Updates the object's repr based on the object's state.
 
Inkscape::XML::NodeupdateRepr (Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags)
 Updates the given repr based on the object's state.
 
void requestDisplayUpdate (unsigned int flags)
 Queues an deferred update of this object's display.
 
void updateDisplay (SPCtx *ctx, unsigned int flags)
 Updates the object's display immediately.
 
void requestModified (unsigned int flags)
 Requests that a modification notification signal be emitted later (e.g.
 
void emitModified (unsigned int flags)
 Emits the MODIFIED signal with the object's flags.
 
sigc::connection connectModified (sigc::slot< void(SPObject *, unsigned int)> slot)
 Connects to the modification notification signal.
 
void _sendDeleteSignalRecursive ()
 Sends the delete signal to all children of this object recursively.
 
void _updateTotalHRefCount (int increment)
 Adds increment to _total_hrefcount of object and its parents.
 
void _requireSVGVersion (unsigned major, unsigned minor)
 
void _requireSVGVersion (Inkscape::Version version)
 Lifts SVG version of all root objects to version.
 
void attach (SPObject *object, SPObject *prev)
 Put object into object tree, under parent, and behind prev; also update object's XML space.
 
void reorder (SPObject *obj, SPObject *prev)
 In list of object's children, move object behind prev.
 
void detach (SPObject *object)
 Remove object from parent's children, release and unref it.
 
SPObjectget_child_by_repr (Inkscape::XML::Node *repr)
 Return object's child whose node pointer equals repr.
 
void invoke_build (SPDocument *document, Inkscape::XML::Node *repr, unsigned int cloned)
 
int getIntAttribute (char const *key, int def)
 
unsigned getPosition ()
 
char const * getAttribute (char const *name) const
 
void appendChild (Inkscape::XML::Node *child)
 
void addChild (Inkscape::XML::Node *child, Inkscape::XML::Node *prev=nullptr)
 
void setKeyValue (SPAttr key, char const *value)
 Call virtual set() function of object.
 
void setAttribute (Inkscape::Util::const_char_ptr key, Inkscape::Util::const_char_ptr value)
 
void setAttributeDouble (Inkscape::Util::const_char_ptr key, double value)
 
void setAttributeOrRemoveIfEmpty (Inkscape::Util::const_char_ptr key, Inkscape::Util::const_char_ptr value)
 
void readAttr (char const *key)
 Read value of key attribute from XML node into object.
 
void readAttr (SPAttr keyid)
 
char const * getTagName () const
 
void removeAttribute (char const *key)
 
void setCSS (SPCSSAttr *css, char const *attr)
 
void changeCSS (SPCSSAttr *css, char const *attr)
 
bool storeAsDouble (char const *key, double *val) const
 
virtual void read_content ()
 
void recursivePrintTree (unsigned level=0)
 
void objectTrace (std::string const &, bool in=true, unsigned flags=0)
 
std::string generate_unique_id (char const *default_id=nullptr) const
 Generate a document-wide unique id for this object.
 

Static Public Member Functions

static std::vector< SPItem * > get_expanded (std::vector< SPItem * > const &items)
 Return the result of recursively ungrouping all groups in items.
 
- Static Public Member Functions inherited from SPItem
static unsigned int display_key_new (unsigned numkeys)
 Allocates unique integer keys.
 
static unsigned ensure_key (Inkscape::DrawingItem *di)
 Ensures that a drawing item's key is the first of a block of ITEM_KEY_SIZE keys, assigning it such a key if necessary.
 

Public Attributes

bool _insert_bottom
 
LayerMode _layer_mode
 
std::map< unsigned int, LayerMode_display_modes
 
- Public Attributes inherited from SPLPEItem
int path_effects_enabled
 
PathEffectListpath_effect_list
 
PathEffectSharedPtr current_path_effect
 
std::vector< Inkscape::Display::TemporaryItem * > lpe_helperpaths
 
bool onsymbol = false
 
bool lpe_initialized = false
 
- Public Attributes inherited from SPItem
unsigned int sensitive: 1
 
unsigned int stop_paint: 1
 
unsigned bbox_valid: 1
 
double transform_center_x
 
double transform_center_y
 
bool freeze_stroke_width
 
bool _is_expanded = false
 
Geom::Affine transform
 
Geom::OptRect doc_bbox
 
Geom::Rect viewport
 
std::vector< std::pair< Glib::ustring, Glib::ustring > > rootsatellites
 
std::vector< SPItemViewviews
 
sigc::signal< void(Geom::Affine const *, SPItem *)> _transformed_signal
 
std::optional< Inkscape::Colors::Color_highlightColor
 
- Public Attributes inherited from SPObject
unsigned int cloned: 1
 
SPObjectclone_original {nullptr}
 
unsigned int uflags: 16
 
unsigned int mflags: 16
 
SPIXmlSpace xml_space
 
Glib::ustring lang
 
unsigned int hrefcount {0}
 
unsigned int _total_hrefcount {0}
 
SPDocumentdocument {nullptr}
 
SPObjectparent {nullptr}
 
int refCount {1}
 
std::list< SPObject * > hrefList
 
SPStylestyle
 Represents the style properties, whether from presentation attributes, the style attribute, or inherited.
 
SPStylecontext_style
 Represents the style that should be used to resolve 'context-fill' and 'context-stroke'.
 
sigc::signal< void(SPObject *)> _release_signal
 
sigc::signal< void(SPObject *)> _delete_signal
 
sigc::signal< void(SPObject *)> _position_changed_signal
 
sigc::signal< void(SPObject *, unsigned int)> _modified_signal
 
SPObject_successor {nullptr}
 
SPObject_tmpsuccessor {nullptr}
 
CollectionPolicy _collection_policy {SPObject::COLLECT_WITH_PARENT}
 
char * _label {nullptr}
 
char * _default_label {nullptr}
 
ChildrenList children
 

Private Member Functions

void _updateLayerMode (unsigned int display_key=0)
 

Additional Inherited Members

- Protected Types inherited from SPObject
typedef boost::intrusive::list_member_hook ListHook
 
- Protected Member Functions inherited from SPObject
virtual void tag_name_changed (gchar const *oldname, gchar const *newname)
 
- Protected Attributes inherited from SPObject
ListHook _child_hook
 

Detailed Description

Definition at line 27 of file sp-item-group.h.

Member Enumeration Documentation

◆ LayerMode

Enumerator
GROUP 
LAYER 
MASK_HELPER 

Definition at line 33 of file sp-item-group.h.

Constructor & Destructor Documentation

◆ SPGroup()

SPGroup::SPGroup ( )

Definition at line 56 of file sp-item-group.cpp.

◆ ~SPGroup()

SPGroup::~SPGroup ( )
overridedefault

Member Function Documentation

◆ _showChildren()

void SPGroup::_showChildren ( Inkscape::Drawing drawing,
Inkscape::DrawingItem ai,
unsigned int  key,
unsigned int  flags 
)
virtual

Reimplemented in SPSwitch.

Definition at line 979 of file sp-item-group.cpp.

References SPObject::ActionShow, Inkscape::DrawingItem::appendChild(), child, SPObject::childList(), and key.

Referenced by show().

◆ _updateLayerMode()

void SPGroup::_updateLayerMode ( unsigned int  display_key = 0)
private

Definition at line 825 of file sp-item-group.cpp.

References effectiveLayerMode(), LAYER, and SPItem::views.

Referenced by setLayerDisplayMode(), and setLayerMode().

◆ bbox()

Geom::OptRect SPGroup::bbox ( Geom::Affine const &  transform,
SPItem::BBoxType  bboxtype 
) const
overridevirtual

Reimplemented from SPItem.

Reimplemented in SPSymbol.

Definition at line 263 of file sp-item-group.cpp.

References SPObject::ActionBBox, bbox(), SPItem::bounds(), SPObject::childList(), SPItem::isHidden(), item, and SPItem::transform.

Referenced by bbox(), and SPSymbol::bbox().

◆ build()

void SPGroup::build ( SPDocument document,
Inkscape::XML::Node repr 
)
overridevirtual

◆ child_added()

◆ description()

gchar * SPGroup::description ( ) const
overridevirtual

Reimplemented from SPItem.

Reimplemented in SPSwitch.

Definition at line 313 of file sp-item-group.cpp.

References getItemCount(), and len.

◆ displayName()

const char * SPGroup::displayName ( ) const
overridevirtual

The item's type name as a translated human string.

Translated string for UI display.

Reimplemented from SPItem.

Reimplemented in SPRoot, and SPSwitch.

Definition at line 301 of file sp-item-group.cpp.

References _layer_mode, GROUP, LAYER, and MASK_HELPER.

◆ effectiveLayerMode()

LayerMode SPGroup::effectiveLayerMode ( unsigned int  display_key) const
inline

Definition at line 47 of file sp-item-group.h.

References _layer_mode, LAYER, and layerDisplayMode().

Referenced by _updateLayerMode(), find_group_at_point(), and show().

◆ get_expanded()

std::vector< SPItem * > SPGroup::get_expanded ( std::vector< SPItem * > const &  items)
static

Return the result of recursively ungrouping all groups in items.

Definition at line 993 of file sp-item-group.cpp.

References get_expanded(), item, items, and result.

Referenced by get_expanded().

◆ getItemCount()

gint SPGroup::getItemCount ( ) const

◆ hide()

void SPGroup::hide ( unsigned int  key)
overridevirtual

Reimplemented from SPItem.

Reimplemented in SPMarker, and SPSymbol.

Definition at line 352 of file sp-item-group.cpp.

References SPObject::ActionShow, SPObject::childList(), SPItem::invoke_hide(), item, and key.

Referenced by SPMarker::hide(), SPSymbol::hide(), and SPMarker::release().

◆ highlight_color()

◆ insertBottom()

bool SPGroup::insertBottom ( ) const
inline

Definition at line 44 of file sp-item-group.h.

References _insert_bottom.

◆ isLayer()

bool SPGroup::isLayer ( ) const
inline

Definition at line 35 of file sp-item-group.h.

References _layer_mode, and LAYER.

Referenced by Inkscape::LayerManager::asLayer(), and ContextMenu::ContextMenu().

◆ item_list()

◆ layerDisplayMode()

SPGroup::LayerMode SPGroup::layerDisplayMode ( unsigned int  display_key) const

Definition at line 802 of file sp-item-group.cpp.

References _display_modes, and GROUP.

Referenced by effectiveLayerMode(), and setLayerDisplayMode().

◆ layerMode()

LayerMode SPGroup::layerMode ( ) const
inline

Definition at line 41 of file sp-item-group.h.

References _layer_mode.

Referenced by SPMetadata::update().

◆ modified()

void SPGroup::modified ( unsigned int  flags)
overridevirtual

Reimplemented from SPObject.

Reimplemented in SPRoot, and SPSymbol.

Definition at line 184 of file sp-item-group.cpp.

References child, SPObject::childList(), SPLPEItem::modified(), sp_object_unref(), SPObject::style, and SPItem::views.

Referenced by SPRoot::modified(), and SPSymbol::modified().

◆ order_changed()

void SPGroup::order_changed ( Inkscape::XML::Node child,
Inkscape::XML::Node old_ref,
Inkscape::XML::Node new_ref 
)
overridevirtual

◆ print()

void SPGroup::print ( SPPrintContext ctx)
overridevirtual

Reimplemented from SPItem.

Reimplemented in SPMarker, SPRoot, and SPSymbol.

Definition at line 280 of file sp-item-group.cpp.

References child, SPObject::children, SPItem::invoke_print(), and item.

Referenced by SPRoot::print(), and SPSymbol::print().

◆ release()

void SPGroup::release ( )
overridevirtual

◆ remove_child()

void SPGroup::remove_child ( Inkscape::XML::Node child)
overridevirtual

◆ removeTransformsRecursively()

void SPGroup::removeTransformsRecursively ( SPObject const *  root)
overridevirtual

Reimplemented from SPItem.

Definition at line 1129 of file sp-item-group.cpp.

References item, item_list(), SPObject::removeAttribute(), SPItem::removeTransformsRecursively(), and root.

Referenced by add_actions_processing().

◆ scaleChildItemsRec()

◆ set()

void SPGroup::set ( SPAttr  key,
char const *  value 
)
overridevirtual

◆ setInsertBottom()

void SPGroup::setInsertBottom ( bool  insertbottom)

Definition at line 812 of file sp-item-group.cpp.

References _insert_bottom.

◆ setLayerDisplayMode()

void SPGroup::setLayerDisplayMode ( unsigned int  display_key,
SPGroup::LayerMode  mode 
)

Definition at line 818 of file sp-item-group.cpp.

References _display_modes, _updateLayerMode(), layerDisplayMode(), and mode.

◆ setLayerMode()

void SPGroup::setLayerMode ( LayerMode  mode)

◆ show()

Inkscape::DrawingItem * SPGroup::show ( Inkscape::Drawing drawing,
unsigned int  key,
unsigned int  flags 
)
overridevirtual

◆ snappoints()

void SPGroup::snappoints ( std::vector< Inkscape::SnapCandidatePoint > &  p,
Inkscape::SnapPreferences const *  snapprefs 
) const
overridevirtual

Reimplemented from SPItem.

Definition at line 375 of file sp-item-group.cpp.

References SPObject::children, SPItem::getSnappoints(), and item.

◆ tag()

int SPGroup::tag ( ) const
inlineoverridevirtual

Reimplemented from SPObject.

Reimplemented in SPMarker, SPRoot, SPSwitch, and SPSymbol.

Definition at line 31 of file sp-item-group.h.

References tag_of.

◆ translateChildItems()

void SPGroup::translateChildItems ( Geom::Translate const &  tr)

◆ typeName()

const char * SPGroup::typeName ( ) const
overridevirtual

The item's type name, not node tag name.

NOT translated.

Returns
The item's type name (default: 'item')

Reimplemented from SPItem.

Reimplemented in SPRoot, and SPSwitch.

Definition at line 290 of file sp-item-group.cpp.

References _layer_mode, GROUP, LAYER, and MASK_HELPER.

◆ update()

void SPGroup::update ( SPCtx ctx,
unsigned int  flags 
)
overridevirtual

◆ update_patheffect()

◆ write()

Member Data Documentation

◆ _display_modes

std::map<unsigned int, LayerMode> SPGroup::_display_modes

Definition at line 39 of file sp-item-group.h.

Referenced by layerDisplayMode(), and setLayerDisplayMode().

◆ _insert_bottom

bool SPGroup::_insert_bottom

Definition at line 37 of file sp-item-group.h.

Referenced by insertBottom(), and setInsertBottom().

◆ _layer_mode


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