summaryrefslogtreecommitdiffstats
path: root/src/event-context.h
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-08 22:23:07 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-08 22:23:07 +0000
commite58cac52b258e64c2cc88b0044bf9cfbaecedce2 (patch)
treef2a5d2992b8658a583e740321b1a4b461aad54a9 /src/event-context.h
parentReactivated independent reference counting in the SPObject tree. (diff)
downloadinkscape-e58cac52b258e64c2cc88b0044bf9cfbaecedce2.tar.gz
inkscape-e58cac52b258e64c2cc88b0044bf9cfbaecedce2.zip
Started conversion of SPEventContext tree; added virtual pads to all classes.
(bzr r11608.1.89)
Diffstat (limited to 'src/event-context.h')
-rw-r--r--src/event-context.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/event-context.h b/src/event-context.h
index e97a8ad8f..ac1086def 100644
--- a/src/event-context.h
+++ b/src/event-context.h
@@ -91,6 +91,8 @@ private:
void sp_event_context_snap_delay_handler(SPEventContext *ec, gpointer const dse_item, gpointer const dse_item2, GdkEventMotion *event, DelayedSnapEvent::DelayedSnapEventOrigin origin);
+class CEventContext;
+
/**
* Base class for Event processors.
*
@@ -104,11 +106,14 @@ void sp_event_context_snap_delay_handler(SPEventContext *ec, gpointer const dse_
* plus few abstract base classes. Writing a new tool involves
* subclassing SPEventContext.
*/
-struct SPEventContext : public GObject {
+class SPEventContext : public GObject {
+public:
void enableSelectionCue (bool enable=true);
void enableGrDrag (bool enable=true);
bool deleteSelectedDrag(bool just_one);
+ CEventContext* ceventcontext;
+
/// Desktop eventcontext stack
SPEventContext *next;
unsigned key;
@@ -159,6 +164,23 @@ struct SPEventContextClass : public GObjectClass {
gint (* item_handler)(SPEventContext *ec, SPItem *item, GdkEvent *event);
};
+class CEventContext {
+public:
+ CEventContext(SPEventContext* eventcontext);
+ virtual ~CEventContext();
+
+ virtual void setup();
+ virtual void finish();
+ virtual void set(Inkscape::Preferences::Entry* val);
+ virtual void activate();
+ virtual void deactivate();
+ virtual gint root_handler(GdkEvent* event);
+ virtual gint item_handler(SPItem* item, GdkEvent* event);
+
+protected:
+ SPEventContext* speventcontext;
+};
+
#define SP_EVENT_CONTEXT_DESKTOP(e) (SP_EVENT_CONTEXT(e)->desktop)
#define SP_EVENT_CONTEXT_DOCUMENT(e) ((SP_EVENT_CONTEXT_DESKTOP(e))->doc())