X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-item.h;h=fc368d5b9223ffad5c13b0bf215dc6703b0ea82d;hb=129958c3b0e17dc15a5a4722ee83a89a780f9a57;hp=141d3f88119d0dd5e774243adf615e28036f5529;hpb=f51ffb90ffdf528948889a4cd54f531bd1b2a30c;p=inkscape.git diff --git a/src/sp-item.h b/src/sp-item.h index 141d3f881..fc368d5b9 100644 --- a/src/sp-item.h +++ b/src/sp-item.h @@ -9,8 +9,9 @@ * Authors: * Lauris Kaplinski * bulia byak + * Johan Engelen * - * Copyright (C) 1999-2005 authors + * Copyright (C) 1999-2006 authors * Copyright (C) 2001-2002 Ximian, Inc. * Copyright (C) 2004 Monash University * @@ -107,12 +108,17 @@ struct SPItem : public SPObject { std::vector constraints; sigc::signal _transformed_signal; - + + void init(); bool isLocked() const; void setLocked(bool lock); bool isHidden() const; void setHidden(bool hidden); + + bool isEvaluated() const; + void setEvaluated(bool visible); + void resetEvaluated(); bool isHidden(unsigned display_key) const; @@ -138,9 +144,21 @@ struct SPItem : public SPObject { NR::Rect invokeBbox(NR::Matrix const &transform) const; + sigc::connection _clip_ref_connection; + sigc::connection _mask_ref_connection; + sigc::connection connectTransformed(sigc::slot slot) { return _transformed_signal.connect(slot); } + +private: + enum EvaluatedStatus + { + StatusUnknown, StatusCalculated, StatusSet + }; + + mutable bool _is_evaluated; + mutable EvaluatedStatus _evaluated_status; }; typedef std::back_insert_iterator > SnapPointsIter; @@ -202,7 +220,7 @@ void sp_item_adjust_stroke_width_recursive(SPItem *item, gdouble ex); void sp_item_adjust_paint_recursive(SPItem *item, NR::Matrix advertized_transform, NR::Matrix t_ancestors, bool is_pattern); void sp_item_write_transform(SPItem *item, Inkscape::XML::Node *repr, NRMatrix const *transform, NR::Matrix const *adv = NULL); -void sp_item_write_transform(SPItem *item, Inkscape::XML::Node *repr, NR::Matrix const &transform, NR::Matrix const *adv = NULL); +void sp_item_write_transform(SPItem *item, Inkscape::XML::Node *repr, NR::Matrix const &transform, NR::Matrix const *adv = NULL, bool compensate = true); void sp_item_set_item_transform(SPItem *item, NR::Matrix const &transform);