diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-08 22:23:07 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-08 22:23:07 +0000 |
| commit | e58cac52b258e64c2cc88b0044bf9cfbaecedce2 (patch) | |
| tree | f2a5d2992b8658a583e740321b1a4b461aad54a9 /src/rect-context.cpp | |
| parent | Reactivated independent reference counting in the SPObject tree. (diff) | |
| download | inkscape-e58cac52b258e64c2cc88b0044bf9cfbaecedce2.tar.gz inkscape-e58cac52b258e64c2cc88b0044bf9cfbaecedce2.zip | |
Started conversion of SPEventContext tree; added virtual pads to all classes.
(bzr r11608.1.89)
Diffstat (limited to '')
| -rw-r--r-- | src/rect-context.cpp | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/src/rect-context.cpp b/src/rect-context.cpp index 40e1d5b2a..a53a9c7b4 100644 --- a/src/rect-context.cpp +++ b/src/rect-context.cpp @@ -78,10 +78,18 @@ static void sp_rect_context_class_init(SPRectContextClass *klass) event_context_class->item_handler = sp_rect_context_item_handler; } +CRectContext::CRectContext(SPRectContext* rectcontext) : CEventContext(rectcontext) { + this->sprectcontext = rectcontext; +} + static void sp_rect_context_init(SPRectContext *rect_context) { SPEventContext *event_context = SP_EVENT_CONTEXT(rect_context); + rect_context->crectcontext = new CRectContext(rect_context); + delete rect_context->ceventcontext; + rect_context->ceventcontext = rect_context->crectcontext; + event_context->cursor_shape = cursor_rect_xpm; event_context->hot_x = 4; event_context->hot_y = 4; @@ -102,6 +110,12 @@ static void sp_rect_context_init(SPRectContext *rect_context) static void sp_rect_context_finish(SPEventContext *ec) { + ec->ceventcontext->finish(); +} + +void CRectContext::finish() { + SPEventContext* ec = this->speventcontext; + SPRectContext *rc = SP_RECT_CONTEXT(ec); SPDesktop *desktop = ec->desktop; @@ -109,12 +123,12 @@ static void sp_rect_context_finish(SPEventContext *ec) sp_rect_finish(rc); rc->sel_changed_connection.disconnect(); - if (((SPEventContextClass *) sp_rect_context_parent_class)->finish) { - ((SPEventContextClass *) sp_rect_context_parent_class)->finish(ec); - } +// if (((SPEventContextClass *) sp_rect_context_parent_class)->finish) { +// ((SPEventContextClass *) sp_rect_context_parent_class)->finish(ec); +// } + CEventContext::finish(); } - static void sp_rect_context_dispose(GObject *object) { SPRectContext *rc = SP_RECT_CONTEXT(object); @@ -156,11 +170,18 @@ static void sp_rect_context_selection_changed(Inkscape::Selection *selection, gp static void sp_rect_context_setup(SPEventContext *ec) { + ec->ceventcontext->setup(); +} + +void CRectContext::setup() { + SPRectContext* ec = this->sprectcontext; + SPRectContext *rc = SP_RECT_CONTEXT(ec); - if (((SPEventContextClass *) sp_rect_context_parent_class)->setup) { - ((SPEventContextClass *) sp_rect_context_parent_class)->setup(ec); - } +// if (((SPEventContextClass *) sp_rect_context_parent_class)->setup) { +// ((SPEventContextClass *) sp_rect_context_parent_class)->setup(ec); +// } + CEventContext::setup(); ec->shape_editor = new ShapeEditor(ec->desktop); @@ -191,6 +212,12 @@ static void sp_rect_context_setup(SPEventContext *ec) static void sp_rect_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) { + ec->ceventcontext->set(val); +} + +void CRectContext::set(Inkscape::Preferences::Entry* val) { + SPEventContext* ec = this->speventcontext; + SPRectContext *rc = SP_RECT_CONTEXT(ec); /* fixme: Proper error handling for non-numeric data. Use a locale-independent function like @@ -205,6 +232,12 @@ static void sp_rect_context_set(SPEventContext *ec, Inkscape::Preferences::Entry static gint sp_rect_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event) { + return event_context->ceventcontext->item_handler(item, event); +} + +gint CRectContext::item_handler(SPItem* item, GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + SPDesktop *desktop = event_context->desktop; gint ret = FALSE; @@ -221,15 +254,23 @@ static gint sp_rect_context_item_handler(SPEventContext *event_context, SPItem * break; } - if (((SPEventContextClass *) sp_rect_context_parent_class)->item_handler) { - ret = ((SPEventContextClass *) sp_rect_context_parent_class)->item_handler(event_context, item, event); - } +// if (((SPEventContextClass *) sp_rect_context_parent_class)->item_handler) { +// ret = ((SPEventContextClass *) sp_rect_context_parent_class)->item_handler(event_context, item, event); +// } + // CPPIFY: ret is always overwritten... + ret = CEventContext::item_handler(item, event); return ret; } static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent *event) { + return event_context->ceventcontext->root_handler(event); +} + +gint CRectContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + static bool dragging; SPDesktop *desktop = event_context->desktop; @@ -434,9 +475,10 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent } if (!ret) { - if (((SPEventContextClass *) sp_rect_context_parent_class)->root_handler) { - ret = ((SPEventContextClass *) sp_rect_context_parent_class)->root_handler(event_context, event); - } +// if (((SPEventContextClass *) sp_rect_context_parent_class)->root_handler) { +// ret = ((SPEventContextClass *) sp_rect_context_parent_class)->root_handler(event_context, event); +// } + ret = CEventContext::root_handler(event); } return ret; |
