summaryrefslogtreecommitdiffstats
path: root/src/event-context.h
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-13 16:13:17 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-13 16:13:17 +0000
commitfbdc8b84ff670c684dafc7d7d403ed01e7077e70 (patch)
tree964a82e4e94d8d6602e90893ac51ac9e2f7ec362 /src/event-context.h
parentMade factory a template. (diff)
downloadinkscape-fbdc8b84ff670c684dafc7d7d403ed01e7077e70.tar.gz
inkscape-fbdc8b84ff670c684dafc7d7d403ed01e7077e70.zip
Replaced casting macros for EventContext tree; added contructors.
(bzr r11608.1.96)
Diffstat (limited to 'src/event-context.h')
-rw-r--r--src/event-context.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/event-context.h b/src/event-context.h
index 52d16666c..9f55fd8de 100644
--- a/src/event-context.h
+++ b/src/event-context.h
@@ -35,9 +35,12 @@ namespace Inkscape {
#define SP_TYPE_EVENT_CONTEXT (sp_event_context_get_type())
-#define SP_EVENT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_EVENT_CONTEXT, SPEventContext))
+//#define SP_EVENT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_EVENT_CONTEXT, SPEventContext))
#define SP_EVENT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_EVENT_CONTEXT, SPEventContextClass))
-#define SP_IS_EVENT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_EVENT_CONTEXT))
+//#define SP_IS_EVENT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_EVENT_CONTEXT))
+#define SP_EVENT_CONTEXT(obj) ((SPEventContext*)obj)
+#define SP_IS_EVENT_CONTEXT(obj) (((SPEventContext*)obj)->types.count(typeid(SPEventContext)))
+
GType sp_event_context_get_type();
@@ -92,6 +95,8 @@ void sp_event_context_snap_delay_handler(SPEventContext *ec, gpointer const dse_
class CEventContext;
+#include <set>
+#include "type-info.h"
/**
* Base class for Event processors.
@@ -114,6 +119,7 @@ public:
SPEventContext();
CEventContext* ceventcontext;
+ std::set<TypeInfo> types;
/// Desktop eventcontext stack
//SPEventContext *next;
@@ -178,6 +184,7 @@ public:
virtual gint root_handler(GdkEvent* event);
virtual gint item_handler(SPItem* item, GdkEvent* event);
+ virtual const std::string& getPrefsPath() = 0;
protected:
SPEventContext* speventcontext;
};