From 1d8f1753cd8cab38d19fcc26a4ad70ba2e794ac8 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 9 Apr 2013 22:12:07 +0200 Subject: Added constructors to EventContext tree / some missing virtual pads. (bzr r11608.1.90) --- src/zoom-context.cpp | 73 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 15 deletions(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index 7a5e4f90e..ac8dd6138 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -43,15 +43,26 @@ static void sp_zoom_context_class_init(SPZoomContextClass *klass) { SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass); - event_context_class->setup = sp_zoom_context_setup; - event_context_class->finish = sp_zoom_context_finish; +// event_context_class->setup = sp_zoom_context_setup; +// event_context_class->finish = sp_zoom_context_finish; +// +// event_context_class->root_handler = sp_zoom_context_root_handler; +// event_context_class->item_handler = sp_zoom_context_item_handler; +} - event_context_class->root_handler = sp_zoom_context_root_handler; - event_context_class->item_handler = sp_zoom_context_item_handler; +CZoomContext::CZoomContext(SPZoomContext* zoomcontext) : CEventContext(zoomcontext) { + this->spzoomcontext = zoomcontext; } -static void sp_zoom_context_init (SPZoomContext *zoom_context) -{ +SPZoomContext::SPZoomContext() : SPEventContext() { + SPZoomContext* zoom_context = this; + + zoom_context->czoomcontext = new CZoomContext(zoom_context); + delete zoom_context->ceventcontext; + zoom_context->ceventcontext = zoom_context->czoomcontext; + + zoom_context->grabbed = 0; + SPEventContext *event_context = SP_EVENT_CONTEXT(zoom_context); event_context->cursor_shape = cursor_zoom_xpm; @@ -59,9 +70,20 @@ static void sp_zoom_context_init (SPZoomContext *zoom_context) event_context->hot_y = 6; } +static void sp_zoom_context_init (SPZoomContext *zoom_context) +{ + new (zoom_context) SPZoomContext(); +} + static void sp_zoom_context_finish (SPEventContext *ec) { + ec->ceventcontext->finish(); +} + +void CZoomContext::finish() { + SPEventContext* ec = this->speventcontext; + SPZoomContext *zc = SP_ZOOM_CONTEXT(ec); ec->enableGrDrag(false); @@ -74,6 +96,12 @@ sp_zoom_context_finish (SPEventContext *ec) static void sp_zoom_context_setup(SPEventContext *ec) { + ec->ceventcontext->setup(); +} + +void CZoomContext::setup() { + SPEventContext* ec = this->speventcontext; + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/tools/zoom/selcue")) { ec->enableSelectionCue(); @@ -82,24 +110,38 @@ static void sp_zoom_context_setup(SPEventContext *ec) ec->enableGrDrag(); } - if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup) { - (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup(ec); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup) { +// (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup(ec); +// } + CEventContext::setup(); } static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event) { + return event_context->ceventcontext->item_handler(item, event); +} + +gint CZoomContext::item_handler(SPItem* item, GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + gint ret = FALSE; - if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler) { - ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler (event_context, item, event); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler) { +// ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler (event_context, item, event); +// } + ret = CEventContext::item_handler(item, event); return ret; } static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent *event) { + return event_context->ceventcontext->root_handler(event); +} + +gint CZoomContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + SPDesktop *desktop = event_context->desktop; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -239,9 +281,10 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent } if (!ret) { - if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler) { - ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler(event_context, event); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler) { +// ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler(event_context, event); +// } + ret = CEventContext::root_handler(event); } return ret; -- cgit v1.2.3 From fbb85064cfaaf03cc09bacedb16a8561f61f2b3d Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 13 Apr 2013 00:37:18 +0200 Subject: Added prefPaths to contexts; modified SPFactory (bzr r11608.1.94) --- src/zoom-context.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index ac8dd6138..92c50b148 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -37,6 +37,8 @@ static gint tolerance = 0; static bool within_tolerance = false; static bool escaped; +const std::string SPZoomContext::prefsPath = "/tools/zoom"; + G_DEFINE_TYPE(SPZoomContext, sp_zoom_context, SP_TYPE_EVENT_CONTEXT); static void sp_zoom_context_class_init(SPZoomContextClass *klass) -- cgit v1.2.3 From fbdc8b84ff670c684dafc7d7d403ed01e7077e70 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 13 Apr 2013 18:13:17 +0200 Subject: Replaced casting macros for EventContext tree; added contructors. (bzr r11608.1.96) --- src/zoom-context.cpp | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index 92c50b148..8e5f4753d 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -26,17 +26,25 @@ #include "zoom-context.h" -static void sp_zoom_context_setup(SPEventContext *ec); -static void sp_zoom_context_finish (SPEventContext *ec); - -static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent *event); -static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event); - static gint xp = 0, yp = 0; // where drag started static gint tolerance = 0; static bool within_tolerance = false; static bool escaped; +#include "sp-factory.h" + +namespace { + SPEventContext* createZoomContext() { + return new SPZoomContext(); + } + + bool zoomContextRegistered = ToolFactory::instance().registerObject("/tools/zoom", createZoomContext); +} + +const std::string& CZoomContext::getPrefsPath() { + return SPZoomContext::prefsPath; +} + const std::string SPZoomContext::prefsPath = "/tools/zoom"; G_DEFINE_TYPE(SPZoomContext, sp_zoom_context, SP_TYPE_EVENT_CONTEXT); @@ -62,6 +70,7 @@ SPZoomContext::SPZoomContext() : SPEventContext() { zoom_context->czoomcontext = new CZoomContext(zoom_context); delete zoom_context->ceventcontext; zoom_context->ceventcontext = zoom_context->czoomcontext; + types.insert(typeid(SPZoomContext)); zoom_context->grabbed = 0; @@ -77,12 +86,6 @@ static void sp_zoom_context_init (SPZoomContext *zoom_context) new (zoom_context) SPZoomContext(); } -static void -sp_zoom_context_finish (SPEventContext *ec) -{ - ec->ceventcontext->finish(); -} - void CZoomContext::finish() { SPEventContext* ec = this->speventcontext; @@ -96,11 +99,6 @@ void CZoomContext::finish() { } } -static void sp_zoom_context_setup(SPEventContext *ec) -{ - ec->ceventcontext->setup(); -} - void CZoomContext::setup() { SPEventContext* ec = this->speventcontext; @@ -118,11 +116,6 @@ void CZoomContext::setup() { CEventContext::setup(); } -static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event) -{ - return event_context->ceventcontext->item_handler(item, event); -} - gint CZoomContext::item_handler(SPItem* item, GdkEvent* event) { SPEventContext* event_context = this->speventcontext; @@ -136,11 +129,6 @@ gint CZoomContext::item_handler(SPItem* item, GdkEvent* event) { return ret; } -static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent *event) -{ - return event_context->ceventcontext->root_handler(event); -} - gint CZoomContext::root_handler(GdkEvent* event) { SPEventContext* event_context = this->speventcontext; @@ -186,7 +174,7 @@ gint CZoomContext::root_handler(GdkEvent* event) { } case GDK_MOTION_NOTIFY: - if (event->motion.state & GDK_BUTTON1_MASK && !event_context->space_panning) { + if ((event->motion.state & GDK_BUTTON1_MASK) && !event_context->space_panning) { ret = TRUE; if ( within_tolerance -- cgit v1.2.3 From 65ba6ad9a82f8f47974eb10665478fd783692bb5 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 20 Apr 2013 23:19:46 +0200 Subject: Merging of EventContext classes complete. (bzr r11608.1.98) --- src/zoom-context.cpp | 50 +++++++++++++------------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index 8e5f4753d..7a1ae5382 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -41,37 +41,15 @@ namespace { bool zoomContextRegistered = ToolFactory::instance().registerObject("/tools/zoom", createZoomContext); } -const std::string& CZoomContext::getPrefsPath() { +const std::string& SPZoomContext::getPrefsPath() { return SPZoomContext::prefsPath; } const std::string SPZoomContext::prefsPath = "/tools/zoom"; -G_DEFINE_TYPE(SPZoomContext, sp_zoom_context, SP_TYPE_EVENT_CONTEXT); - -static void sp_zoom_context_class_init(SPZoomContextClass *klass) -{ - SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass); - -// event_context_class->setup = sp_zoom_context_setup; -// event_context_class->finish = sp_zoom_context_finish; -// -// event_context_class->root_handler = sp_zoom_context_root_handler; -// event_context_class->item_handler = sp_zoom_context_item_handler; -} - -CZoomContext::CZoomContext(SPZoomContext* zoomcontext) : CEventContext(zoomcontext) { - this->spzoomcontext = zoomcontext; -} - SPZoomContext::SPZoomContext() : SPEventContext() { SPZoomContext* zoom_context = this; - zoom_context->czoomcontext = new CZoomContext(zoom_context); - delete zoom_context->ceventcontext; - zoom_context->ceventcontext = zoom_context->czoomcontext; - types.insert(typeid(SPZoomContext)); - zoom_context->grabbed = 0; SPEventContext *event_context = SP_EVENT_CONTEXT(zoom_context); @@ -81,13 +59,11 @@ SPZoomContext::SPZoomContext() : SPEventContext() { event_context->hot_y = 6; } -static void sp_zoom_context_init (SPZoomContext *zoom_context) -{ - new (zoom_context) SPZoomContext(); +SPZoomContext::~SPZoomContext() { } -void CZoomContext::finish() { - SPEventContext* ec = this->speventcontext; +void SPZoomContext::finish() { + SPEventContext* ec = this; SPZoomContext *zc = SP_ZOOM_CONTEXT(ec); @@ -99,8 +75,8 @@ void CZoomContext::finish() { } } -void CZoomContext::setup() { - SPEventContext* ec = this->speventcontext; +void SPZoomContext::setup() { + SPEventContext* ec = this; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/tools/zoom/selcue")) { @@ -113,24 +89,24 @@ void CZoomContext::setup() { // if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup) { // (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup(ec); // } - CEventContext::setup(); + SPEventContext::setup(); } -gint CZoomContext::item_handler(SPItem* item, GdkEvent* event) { - SPEventContext* event_context = this->speventcontext; +gint SPZoomContext::item_handler(SPItem* item, GdkEvent* event) { + SPEventContext* event_context = this; gint ret = FALSE; // if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler) { // ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler (event_context, item, event); // } - ret = CEventContext::item_handler(item, event); + ret = SPEventContext::item_handler(item, event); return ret; } -gint CZoomContext::root_handler(GdkEvent* event) { - SPEventContext* event_context = this->speventcontext; +gint SPZoomContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this; SPDesktop *desktop = event_context->desktop; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -274,7 +250,7 @@ gint CZoomContext::root_handler(GdkEvent* event) { // if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler) { // ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler(event_context, event); // } - ret = CEventContext::root_handler(event); + ret = SPEventContext::root_handler(event); } return ret; -- cgit v1.2.3 From 5512f857e2f33f1aa40124dc82b353e5f2e5a0b0 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 20 Apr 2013 23:58:53 +0200 Subject: Moved factories to different files. (bzr r11608.1.100) --- src/zoom-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index 7a1ae5382..ee72b85ab 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -31,7 +31,7 @@ static gint tolerance = 0; static bool within_tolerance = false; static bool escaped; -#include "sp-factory.h" +#include "tool-factory.h" namespace { SPEventContext* createZoomContext() { -- cgit v1.2.3 From 389b871cdea29ace85567863c439eb0537a36f54 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 21 Apr 2013 20:45:27 +0200 Subject: Cleaned up a bit. (bzr r11608.1.102) --- src/zoom-context.cpp | 115 +++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 64 deletions(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index ee72b85ab..b86fee0ee 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -26,9 +26,9 @@ #include "zoom-context.h" -static gint xp = 0, yp = 0; // where drag started -static gint tolerance = 0; -static bool within_tolerance = false; +//static gint xp = 0, yp = 0; // where drag started +//static gint tolerance = 0; +//static bool within_tolerance = false; static bool escaped; #include "tool-factory.h" @@ -48,70 +48,49 @@ const std::string& SPZoomContext::getPrefsPath() { const std::string SPZoomContext::prefsPath = "/tools/zoom"; SPZoomContext::SPZoomContext() : SPEventContext() { - SPZoomContext* zoom_context = this; - - zoom_context->grabbed = 0; - - SPEventContext *event_context = SP_EVENT_CONTEXT(zoom_context); - - event_context->cursor_shape = cursor_zoom_xpm; - event_context->hot_x = 6; - event_context->hot_y = 6; + this->grabbed = 0; + this->cursor_shape = cursor_zoom_xpm; + this->hot_x = 6; + this->hot_y = 6; } SPZoomContext::~SPZoomContext() { } void SPZoomContext::finish() { - SPEventContext* ec = this; - - SPZoomContext *zc = SP_ZOOM_CONTEXT(ec); + this->enableGrDrag(false); - ec->enableGrDrag(false); - - if (zc->grabbed) { - sp_canvas_item_ungrab(zc->grabbed, GDK_CURRENT_TIME); - zc->grabbed = NULL; + if (this->grabbed) { + sp_canvas_item_ungrab(this->grabbed, GDK_CURRENT_TIME); + this->grabbed = NULL; } } void SPZoomContext::setup() { - SPEventContext* ec = this; - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + if (prefs->getBool("/tools/zoom/selcue")) { - ec->enableSelectionCue(); + this->enableSelectionCue(); } + if (prefs->getBool("/tools/zoom/gradientdrag")) { - ec->enableGrDrag(); + this->enableGrDrag(); } -// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup) { -// (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup(ec); -// } SPEventContext::setup(); } -gint SPZoomContext::item_handler(SPItem* item, GdkEvent* event) { - SPEventContext* event_context = this; - - gint ret = FALSE; - -// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler) { -// ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler (event_context, item, event); -// } - ret = SPEventContext::item_handler(item, event); - - return ret; -} +//gint SPZoomContext::item_handler(SPItem* item, GdkEvent* event) { +// gint ret = FALSE; +// +// ret = SPEventContext::item_handler(item, event); +// +// return ret; +//} gint SPZoomContext::root_handler(GdkEvent* event) { - SPEventContext* event_context = this; - - SPDesktop *desktop = event_context->desktop; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - SPZoomContext *zc = SP_ZOOM_CONTEXT(event_context); tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); double const zoom_inc = prefs->getDoubleLimited("/options/zoomincrement/value", M_SQRT2, 1.01, 10); @@ -122,7 +101,8 @@ gint SPZoomContext::root_handler(GdkEvent* event) { { Geom::Point const button_w(event->button.x, event->button.y); Geom::Point const button_dt(desktop->w2d(button_w)); - if (event->button.button == 1 && !event_context->space_panning) { + + if (event->button.button == 1 && !this->space_panning) { // save drag origin xp = (gint) event->button.x; yp = (gint) event->button.y; @@ -137,6 +117,7 @@ gint SPZoomContext::root_handler(GdkEvent* event) { double const zoom_rel( (event->button.state & GDK_SHIFT_MASK) ? zoom_inc : 1 / zoom_inc ); + desktop->zoom_relative_keep_point(button_dt, zoom_rel); ret = TRUE; } @@ -144,13 +125,13 @@ gint SPZoomContext::root_handler(GdkEvent* event) { sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK, NULL, event->button.time); - zc->grabbed = SP_CANVAS_ITEM(desktop->acetate); - + + this->grabbed = SP_CANVAS_ITEM(desktop->acetate); break; } case GDK_MOTION_NOTIFY: - if ((event->motion.state & GDK_BUTTON1_MASK) && !event_context->space_panning) { + if ((event->motion.state & GDK_BUTTON1_MASK) && !this->space_panning) { ret = TRUE; if ( within_tolerance @@ -174,23 +155,28 @@ gint SPZoomContext::root_handler(GdkEvent* event) { { Geom::Point const button_w(event->button.x, event->button.y); Geom::Point const button_dt(desktop->w2d(button_w)); - if ( event->button.button == 1 && !event_context->space_panning) { + + if ( event->button.button == 1 && !this->space_panning) { Geom::OptRect const b = Inkscape::Rubberband::get(desktop)->getRectangle(); + if (b && !within_tolerance) { desktop->set_display_area(*b, 10); } else if (!escaped) { double const zoom_rel( (event->button.state & GDK_SHIFT_MASK) ? 1 / zoom_inc : zoom_inc ); + desktop->zoom_relative_keep_point(button_dt, zoom_rel); } + ret = TRUE; - } + } + Inkscape::Rubberband::get(desktop)->stop(); - if (zc->grabbed) { - sp_canvas_item_ungrab(zc->grabbed, event->button.time); - zc->grabbed = NULL; + if (this->grabbed) { + sp_canvas_item_ungrab(this->grabbed, event->button.time); + this->grabbed = NULL; } xp = yp = 0; @@ -203,11 +189,13 @@ gint SPZoomContext::root_handler(GdkEvent* event) { if (!Inkscape::Rubberband::get(desktop)->is_started()) { Inkscape::SelectionHelper::selectNone(desktop); } + Inkscape::Rubberband::get(desktop)->stop(); xp = yp = 0; escaped = true; ret = TRUE; break; + case GDK_KEY_Up: case GDK_KEY_Down: case GDK_KEY_KP_Up: @@ -216,15 +204,17 @@ gint SPZoomContext::root_handler(GdkEvent* event) { if (!MOD__CTRL_ONLY) ret = TRUE; break; + case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: - event_context->cursor_shape = cursor_zoom_out_xpm; - sp_event_context_update_cursor(event_context); + this->cursor_shape = cursor_zoom_out_xpm; + sp_event_context_update_cursor(this); break; + case GDK_KEY_Delete: case GDK_KEY_KP_Delete: case GDK_KEY_BackSpace: - ret = event_context->deleteSelectedDrag(MOD__CTRL_ONLY); + ret = this->deleteSelectedDrag(MOD__CTRL_ONLY); break; default: @@ -233,23 +223,20 @@ gint SPZoomContext::root_handler(GdkEvent* event) { break; case GDK_KEY_RELEASE: switch (get_group0_keyval (&event->key)) { - case GDK_KEY_Shift_L: - case GDK_KEY_Shift_R: - event_context->cursor_shape = cursor_zoom_xpm; - sp_event_context_update_cursor(event_context); + case GDK_KEY_Shift_L: + case GDK_KEY_Shift_R: + this->cursor_shape = cursor_zoom_xpm; + sp_event_context_update_cursor(this); break; - default: + default: break; - } + } break; default: break; } if (!ret) { -// if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler) { -// ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler(event_context, event); -// } ret = SPEventContext::root_handler(event); } -- cgit v1.2.3 From b2dd3583e7372d23d18bbc6e861f4f645ec3dc37 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 30 Jul 2013 23:17:21 +0200 Subject: Further refactoring of EventContexts. (bzr r11608.1.109) --- src/zoom-context.cpp | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) (limited to 'src/zoom-context.cpp') diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp index 99577648f..6efc122f7 100644 --- a/src/zoom-context.cpp +++ b/src/zoom-context.cpp @@ -25,12 +25,6 @@ #include "selection-chemistry.h" #include "zoom-context.h" - -//static gint xp = 0, yp = 0; // where drag started -//static gint tolerance = 0; -//static bool within_tolerance = false; -static bool escaped; - #include "tool-factory.h" namespace { @@ -52,6 +46,7 @@ SPZoomContext::SPZoomContext() : SPEventContext() { this->cursor_shape = cursor_zoom_xpm; this->hot_x = 6; this->hot_y = 6; + this->escaped = false; } SPZoomContext::~SPZoomContext() { @@ -80,21 +75,13 @@ void SPZoomContext::setup() { SPEventContext::setup(); } -//gint SPZoomContext::item_handler(SPItem* item, GdkEvent* event) { -// gint ret = FALSE; -// -// ret = SPEventContext::item_handler(item, event); -// -// return ret; -//} - -gint SPZoomContext::root_handler(GdkEvent* event) { +bool SPZoomContext::root_handler(GdkEvent* event) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); double const zoom_inc = prefs->getDoubleLimited("/options/zoomincrement/value", M_SQRT2, 1.01, 10); - gint ret = FALSE; + bool ret = false; switch (event->type) { case GDK_BUTTON_PRESS: @@ -112,14 +99,14 @@ gint SPZoomContext::root_handler(GdkEvent* event) { escaped = false; - ret = TRUE; + ret = true; } else if (event->button.button == 3) { double const zoom_rel( (event->button.state & GDK_SHIFT_MASK) ? zoom_inc : 1 / zoom_inc ); desktop->zoom_relative_keep_point(button_dt, zoom_rel); - ret = TRUE; + ret = true; } sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate), @@ -132,7 +119,7 @@ gint SPZoomContext::root_handler(GdkEvent* event) { case GDK_MOTION_NOTIFY: if ((event->motion.state & GDK_BUTTON1_MASK) && !this->space_panning) { - ret = TRUE; + ret = true; if ( within_tolerance && ( abs( (gint) event->motion.x - xp ) < tolerance ) @@ -169,7 +156,7 @@ gint SPZoomContext::root_handler(GdkEvent* event) { desktop->zoom_relative_keep_point(button_dt, zoom_rel); } - ret = TRUE; + ret = true; } Inkscape::Rubberband::get(desktop)->stop(); @@ -193,7 +180,7 @@ gint SPZoomContext::root_handler(GdkEvent* event) { Inkscape::Rubberband::get(desktop)->stop(); xp = yp = 0; escaped = true; - ret = TRUE; + ret = true; break; case GDK_KEY_Up: @@ -202,13 +189,13 @@ gint SPZoomContext::root_handler(GdkEvent* event) { case GDK_KEY_KP_Down: // prevent the zoom field from activation if (!MOD__CTRL_ONLY(event)) - ret = TRUE; + ret = true; break; case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: this->cursor_shape = cursor_zoom_out_xpm; - sp_event_context_update_cursor(this); + this->sp_event_context_update_cursor(); break; case GDK_KEY_Delete: @@ -226,7 +213,7 @@ gint SPZoomContext::root_handler(GdkEvent* event) { case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: this->cursor_shape = cursor_zoom_xpm; - sp_event_context_update_cursor(this); + this->sp_event_context_update_cursor(); break; default: break; -- cgit v1.2.3