object-hierarchy.h revision 6b15695578f07a3f72c4c9475c1a261a3021472a
/** \file
* Inkscape::ObjectHierarchy - tracks a hierarchy of active SPObjects
*
* Authors:
* MenTaLguY <mental@rydia.net>
*
* Copyright (C) 2004 MenTaLguY
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef SEEN_INKSCAPE_OBJECT_HIERARCHY_H
#define SEEN_INKSCAPE_OBJECT_HIERARCHY_H
#include <exception>
#include <list>
#include <sigc++/connection.h>
#include <glib/gmessages.h>
/**
* An Inkscape::ObjectHierarchy is useful for situations where one wishes
* to keep a reference to an SPObject, but fall back on one of its ancestors
* when that object is removed.
*
* That cannot be accomplished simply by hooking the "release" signal of the
* SPObject, as by the time that signal is emitted, the object's parent
* field has already been cleared.
*
* There are also some subtle refcounting issues to take into account.
*
* @see SPObject
*/
~ObjectHierarchy();
}
}
{
}
void clear();
}
}
struct Record {
};
/// @brief adds objects in range [senior, junior) to the top
/// @brief adds one object to the top
/// @brief removes all objects above the limit object
/// @brief adds objects in range (senior, junior] to the bottom
/// @brief adds one object to the bottom
/// @brief removes all objects below the limit object
};
}
#endif
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :