diff options
| author | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-06-05 21:20:55 +0000 |
|---|---|---|
| committer | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-06-05 21:20:55 +0000 |
| commit | 9abb5e658d005b3ac82afeec13fd59384a8e65eb (patch) | |
| tree | a6bdcceacd73ff829dd54d891ac7dc3cf70273ee /src/object.cpp | |
| parent | [Bug #1545333] Convenience option (default: ON) for cmake builds to enable SV... (diff) | |
| download | inkscape-9abb5e658d005b3ac82afeec13fd59384a8e65eb.tar.gz inkscape-9abb5e658d005b3ac82afeec13fd59384a8e65eb.zip | |
Added object set
(bzr r14954.1.1)
Diffstat (limited to 'src/object.cpp')
| -rw-r--r-- | src/object.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/object.cpp b/src/object.cpp new file mode 100644 index 000000000..c05d50b3a --- /dev/null +++ b/src/object.cpp @@ -0,0 +1,50 @@ +/* + * Temporary file + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "object.h" + +Object::Object(std::string name) : name(name), parent(NULL) { } + +Object::~Object() { + // only for this prototype + // call destructor on every child + children.clear_and_dispose(delete_disposer()); + release_signal.emit(this); +} + +const std::string& Object::getName() const { + return name; +} + +Object *Object::getParent() { + return parent; +} + +bool Object::isDescendantOf(Object *o) { + Object* p = parent; + while(p != NULL) { + if (p == o) { + return true; + } + p = p->parent; + } + return false; +} + +void Object::addChild(Object* o) { + o->parent = this; + children.push_back(*o); +} + +sigc::connection Object::connectRelease(sigc::slot<bool, Object*> slot) { + return release_signal.connect(slot); +} + |
