diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-13 16:13:17 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-13 16:13:17 +0000 |
| commit | fbdc8b84ff670c684dafc7d7d403ed01e7077e70 (patch) | |
| tree | 964a82e4e94d8d6602e90893ac51ac9e2f7ec362 /src/event-context.h | |
| parent | Made factory a template. (diff) | |
| download | inkscape-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.h | 11 |
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; }; |
