131
133
sp_item_init(SPItem *item)
133
SPObject *object = SP_OBJECT(item);
135
item->sensitive = TRUE;
137
item->transform_center_x = 0;
138
item->transform_center_y = 0;
140
item->transform = NR::identity();
142
item->display = NULL;
144
item->clip_ref = new SPClipPathReference(SP_OBJECT(item));
138
void SPItem::init() {
139
this->sensitive = TRUE;
141
this->transform_center_x = 0;
142
this->transform_center_y = 0;
144
this->_is_evaluated = true;
145
this->_evaluated_status = StatusCalculated;
147
this->transform = NR::identity();
149
this->display = NULL;
151
this->clip_ref = new SPClipPathReference(this);
146
sigc::signal<void, SPObject *, SPObject *> cs1=item->clip_ref->changedSignal();
147
sigc::slot2<void,SPObject*, SPObject *> sl1=sigc::bind(sigc::ptr_fun(clip_ref_changed), item);
153
sigc::signal<void, SPObject *, SPObject *> cs1=this->clip_ref->changedSignal();
154
sigc::slot2<void,SPObject*, SPObject *> sl1=sigc::bind(sigc::ptr_fun(clip_ref_changed), this);
148
155
cs1.connect(sl1);
151
item->mask_ref = new SPMaskReference(SP_OBJECT(item));
152
sigc::signal<void, SPObject *, SPObject *> cs2=item->mask_ref->changedSignal();
153
sigc::slot2<void,SPObject*, SPObject *> sl2=sigc::bind(sigc::ptr_fun(mask_ref_changed), item);
158
this->mask_ref = new SPMaskReference(this);
159
sigc::signal<void, SPObject *, SPObject *> cs2=this->mask_ref->changedSignal();
160
sigc::slot2<void,SPObject*, SPObject *> sl2=sigc::bind(sigc::ptr_fun(mask_ref_changed), this);
154
161
cs2.connect(sl2);
156
if (!object->style) object->style = sp_style_new_from_object(SP_OBJECT(item));
158
item->avoidRef = new SPAvoidRef(item);
160
new (&item->_transformed_signal) sigc::signal<void, NR::Matrix const *, SPItem *>();
163
if (!this->style) this->style = sp_style_new_from_object(this);
165
this->avoidRef = new SPAvoidRef(this);
167
new (&this->_transformed_signal) sigc::signal<void, NR::Matrix const *, SPItem *>();
163
170
bool SPItem::isVisibleAndUnlocked() const {
225
void SPItem::setEvaluated(bool evaluated) {
226
_is_evaluated = evaluated;
227
_evaluated_status = StatusSet;
230
void SPItem::resetEvaluated() {
231
if ( StatusCalculated == _evaluated_status ) {
232
_evaluated_status = StatusUnknown;
233
bool oldValue = _is_evaluated;
234
if ( oldValue != isEvaluated() ) {
235
requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG);
237
} if ( StatusSet == _evaluated_status ) {
238
SPObject const *const parent = SP_OBJECT_PARENT(this);
239
if (SP_IS_SWITCH(parent)) {
240
SP_SWITCH(parent)->resetChildEvaluated();
245
bool SPItem::isEvaluated() const {
246
if ( StatusUnknown == _evaluated_status ) {
247
_is_evaluated = sp_item_evaluate(this);
248
_evaluated_status = StatusCalculated;
250
return _is_evaluated;
215
254
* Returns something suitable for the `Hide' checkbox in the Object Properties dialog box.
216
255
* Corresponds to setExplicitlyHidden.
466
505
item->transform_center_y = 0;
508
case SP_PROP_SYSTEM_LANGUAGE:
509
case SP_PROP_REQUIRED_FEATURES:
510
case SP_PROP_REQUIRED_EXTENSIONS:
512
item->resetEvaluated();
513
// pass to default handler
470
516
if (SP_ATTRIBUTE_IS_CSS(key)) {
471
517
sp_style_read_from_object(object->style, object);