index 0caa0d94307008d0ac5538a43c2d5bdecc6006a4..5077fb55ba7125fae6adc159da22a14cbf399610 100644 (file)
-#ifndef INKSCAPE_CANVAS_TEMPORARY_ITEM_H\r
-#define INKSCAPE_CANVAS_TEMPORARY_ITEM_H\r
-\r
-/** \file\r
- * Provides a class to put a canvasitem temporarily on-canvas.\r
- *\r
- * Authors:\r
- * Johan Engelen\r
- *\r
- * Copyright (C) Johan Engelen 2008 <j.b.c.engelen@utwente.nl>\r
- *\r
- * Released under GNU GPL, read the file 'COPYING' for more information\r
- */\r
-\r
-#include "display/display-forward.h"\r
-\r
-#include <sigc++/sigc++.h>\r
-\r
-namespace Inkscape {\r
-namespace Display {\r
-\r
-class TemporaryItem {\r
-public:\r
- TemporaryItem(SPCanvasItem *item, guint lifetime);\r
- virtual ~TemporaryItem();\r
-\r
- sigc::signal<void, TemporaryItem *> signal_timeout;\r
-\r
-protected:\r
- friend class TemporaryItemList;\r
-\r
- SPCanvasItem * canvasitem; /** The item we are holding on to */\r
- guint timeout_id; /** ID by which glib knows the timeout event */\r
-\r
- static gboolean _timeout(gpointer data); ///< callback for when lifetime expired\r
-\r
-private:\r
- TemporaryItem(const TemporaryItem&);\r
- TemporaryItem& operator=(const TemporaryItem&);\r
-};\r
-\r
-} //namespace Display\r
-} //namespace Inkscape\r
-\r
-#endif\r
-\r
-/*\r
- Local Variables:\r
- mode:c++\r
- c-file-style:"stroustrup"\r
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))\r
- indent-tabs-mode:nil\r
- fill-column:99\r
- End:\r
-*/\r
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :\r
+#ifndef INKSCAPE_CANVAS_TEMPORARY_ITEM_H
+#define INKSCAPE_CANVAS_TEMPORARY_ITEM_H
+
+/** \file
+ * Provides a class to put a canvasitem temporarily on-canvas.
+ *
+ * Authors:
+ * Johan Engelen
+ *
+ * Copyright (C) Johan Engelen 2008 <j.b.c.engelen@utwente.nl>
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include "display/display-forward.h"
+
+#include <sigc++/sigc++.h>
+
+namespace Inkscape {
+namespace Display {
+
+class TemporaryItem {
+public:
+ TemporaryItem(SPCanvasItem *item, guint lifetime, bool destroy_on_deselect = false);
+ virtual ~TemporaryItem();
+
+ sigc::signal<void, TemporaryItem *> signal_timeout;
+
+protected:
+ friend class TemporaryItemList;
+
+ SPCanvasItem * canvasitem; /** The item we are holding on to */
+ guint timeout_id; /** ID by which glib knows the timeout event */
+ bool destroy_on_deselect; // only destroy when parent item is deselected, not when mouse leaves
+
+ static gboolean _timeout(gpointer data); ///< callback for when lifetime expired
+
+private:
+ TemporaryItem(const TemporaryItem&);
+ TemporaryItem& operator=(const TemporaryItem&);
+};
+
+} //namespace Display
+} //namespace Inkscape
+
+#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 :