From e58cac52b258e64c2cc88b0044bf9cfbaecedce2 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 9 Apr 2013 00:23:07 +0200 Subject: Started conversion of SPEventContext tree; added virtual pads to all classes. (bzr r11608.1.89) --- src/lpe-tool-context.cpp | 51 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 7 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index feabfa02d..ddea7a579 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -80,9 +80,19 @@ sp_lpetool_context_class_init(SPLPEToolContextClass *klass) event_context_class->item_handler = sp_lpetool_context_item_handler; } +CLPEToolContext::CLPEToolContext(SPLPEToolContext* lpetoolcontext) : CPenContext(lpetoolcontext) { + this->splpetoolcontext = lpetoolcontext; +} + static void sp_lpetool_context_init(SPLPEToolContext *lc) { + lc->clpetoolcontext = new CLPEToolContext(lc); + delete lc->cpencontext; + lc->cpencontext = lc->clpetoolcontext; + lc->cdrawcontext = lc->clpetoolcontext; + lc->ceventcontext = lc->clpetoolcontext; + lc->cursor_shape = cursor_crosshairs_xpm; lc->hot_x = 7; lc->hot_y = 7; @@ -121,10 +131,17 @@ sp_lpetool_context_dispose(GObject *object) static void sp_lpetool_context_setup(SPEventContext *ec) { + ec->ceventcontext->setup(); +} + +void CLPEToolContext::setup() { + SPEventContext* ec = this->speventcontext; + SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(ec); - if (((SPEventContextClass *) sp_lpetool_context_parent_class)->setup) - ((SPEventContextClass *) sp_lpetool_context_parent_class)->setup(ec); +// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->setup) +// ((SPEventContextClass *) sp_lpetool_context_parent_class)->setup(ec); + CPenContext::setup(); Inkscape::Selection *selection = sp_desktop_selection (ec->desktop); SPItem *item = selection->singleItem(); @@ -172,6 +189,12 @@ void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpoint static void sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) { + ec->ceventcontext->set(val); +} + +void CLPEToolContext::set(Inkscape::Preferences::Entry* val) { + SPEventContext* ec = this->speventcontext; + if (val->getEntryName() == "mode") { Inkscape::Preferences::get()->setString("/tools/geometric/mode", "drag"); SP_PEN_CONTEXT(ec)->mode = SP_PEN_CONTEXT_MODE_DRAG; @@ -188,6 +211,12 @@ sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) static gint sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *event) { + return ec->ceventcontext->item_handler(item, event); +} + +gint CLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { + SPEventContext* ec = this->spdrawcontext; + gint ret = FALSE; switch (event->type) { @@ -209,8 +238,9 @@ sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *even } if (!ret) { - if (((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler) - ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler(ec, item, event); +// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler) +// ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler(ec, item, event); + ret = CPenContext::item_handler(item, event); } return ret; @@ -219,6 +249,12 @@ sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *even gint sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) { + return event_context->ceventcontext->root_handler(event); +} + +gint CLPEToolContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this->speventcontext; + SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(event_context); SPDesktop *desktop = event_context->desktop; Inkscape::Selection *selection = sp_desktop_selection (desktop); @@ -295,9 +331,10 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) } if (!ret) { - if (((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler) { - ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); - } +// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler) { +// ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); +// } + ret = CPenContext::root_handler(event); } return ret; -- cgit v1.2.3 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/lpe-tool-context.cpp | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index ddea7a579..3d81efc00 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -74,25 +74,29 @@ sp_lpetool_context_class_init(SPLPEToolContextClass *klass) object_class->dispose = sp_lpetool_context_dispose; - event_context_class->setup = sp_lpetool_context_setup; - event_context_class->set = sp_lpetool_context_set; - event_context_class->root_handler = sp_lpetool_context_root_handler; - event_context_class->item_handler = sp_lpetool_context_item_handler; +// event_context_class->setup = sp_lpetool_context_setup; +// event_context_class->set = sp_lpetool_context_set; +// event_context_class->root_handler = sp_lpetool_context_root_handler; +// event_context_class->item_handler = sp_lpetool_context_item_handler; } CLPEToolContext::CLPEToolContext(SPLPEToolContext* lpetoolcontext) : CPenContext(lpetoolcontext) { this->splpetoolcontext = lpetoolcontext; } -static void -sp_lpetool_context_init(SPLPEToolContext *lc) -{ +SPLPEToolContext::SPLPEToolContext() : SPPenContext() { + SPLPEToolContext* lc = this; + lc->clpetoolcontext = new CLPEToolContext(lc); delete lc->cpencontext; lc->cpencontext = lc->clpetoolcontext; lc->cdrawcontext = lc->clpetoolcontext; lc->ceventcontext = lc->clpetoolcontext; + lc->mode = Inkscape::LivePathEffect::BEND_PATH; + lc->shape_editor = 0; + lc->_lpetool_message_context = 0; + lc->cursor_shape = cursor_crosshairs_xpm; lc->hot_x = 7; lc->hot_y = 7; @@ -103,6 +107,12 @@ sp_lpetool_context_init(SPLPEToolContext *lc) new (&lc->sel_changed_connection) sigc::connection(); } +static void +sp_lpetool_context_init(SPLPEToolContext *lc) +{ + new (lc) SPLPEToolContext(); +} + static void sp_lpetool_context_dispose(GObject *object) { @@ -263,7 +273,8 @@ gint CLPEToolContext::root_handler(GdkEvent* event) { if (sp_pen_context_has_waiting_LPE(lc)) { // quit when we are waiting for a LPE to be applied - ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); + //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); + ret = event_context->ceventcontext->root_handler(event); return ret; } @@ -295,7 +306,8 @@ gint CLPEToolContext::root_handler(GdkEvent* event) { sp_pen_context_wait_for_LPE_mouse_clicks(lc, type, Inkscape::LivePathEffect::Effect::acceptsNumClicks(type)); // we pass the mouse click on to pen tool as the first click which it should collect - ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); + //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); + ret = event_context->ceventcontext->root_handler(event); } break; -- 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/lpe-tool-context.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 3d81efc00..93a548a8e 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -64,6 +64,8 @@ SubtoolEntry lpesubtools[] = { {Inkscape::LivePathEffect::MIRROR_SYMMETRY, "draw-geometry-mirror"} }; +const std::string SPLPEToolContext::prefsPath = "/tools/lpetool"; + G_DEFINE_TYPE(SPLPEToolContext, sp_lpetool_context, SP_TYPE_PEN_CONTEXT); static void -- 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/lpe-tool-context.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 93a548a8e..4ad20c878 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -64,6 +64,21 @@ SubtoolEntry lpesubtools[] = { {Inkscape::LivePathEffect::MIRROR_SYMMETRY, "draw-geometry-mirror"} }; + +#include "sp-factory.h" + +namespace { + SPEventContext* createLPEToolContext() { + return new SPLPEToolContext(); + } + + bool lpetoolContextRegistered = ToolFactory::instance().registerObject("/tools/lpetool", createLPEToolContext); +} + +const std::string& CLPEToolContext::getPrefsPath() { + return SPLPEToolContext::prefsPath; +} + const std::string SPLPEToolContext::prefsPath = "/tools/lpetool"; G_DEFINE_TYPE(SPLPEToolContext, sp_lpetool_context, SP_TYPE_PEN_CONTEXT); @@ -94,6 +109,7 @@ SPLPEToolContext::SPLPEToolContext() : SPPenContext() { lc->cpencontext = lc->clpetoolcontext; lc->cdrawcontext = lc->clpetoolcontext; lc->ceventcontext = lc->clpetoolcontext; + types.insert(typeid(SPLPEToolContext)); lc->mode = Inkscape::LivePathEffect::BEND_PATH; lc->shape_editor = 0; -- 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/lpe-tool-context.cpp | 104 +++++++++-------------------------------------- 1 file changed, 19 insertions(+), 85 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 4ad20c878..82190f5a0 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -41,13 +41,6 @@ #include "lpe-tool-context.h" -static void sp_lpetool_context_dispose(GObject *object); - -static void sp_lpetool_context_setup(SPEventContext *ec); -static void sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *); -static gint sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *event); -static gint sp_lpetool_context_root_handler(SPEventContext *ec, GdkEvent *event); - void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpointer data); const int num_subtools = 8; @@ -75,42 +68,15 @@ namespace { bool lpetoolContextRegistered = ToolFactory::instance().registerObject("/tools/lpetool", createLPEToolContext); } -const std::string& CLPEToolContext::getPrefsPath() { +const std::string& SPLPEToolContext::getPrefsPath() { return SPLPEToolContext::prefsPath; } const std::string SPLPEToolContext::prefsPath = "/tools/lpetool"; -G_DEFINE_TYPE(SPLPEToolContext, sp_lpetool_context, SP_TYPE_PEN_CONTEXT); - -static void -sp_lpetool_context_class_init(SPLPEToolContextClass *klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - SPEventContextClass *event_context_class = (SPEventContextClass *) klass; - - object_class->dispose = sp_lpetool_context_dispose; - -// event_context_class->setup = sp_lpetool_context_setup; -// event_context_class->set = sp_lpetool_context_set; -// event_context_class->root_handler = sp_lpetool_context_root_handler; -// event_context_class->item_handler = sp_lpetool_context_item_handler; -} - -CLPEToolContext::CLPEToolContext(SPLPEToolContext* lpetoolcontext) : CPenContext(lpetoolcontext) { - this->splpetoolcontext = lpetoolcontext; -} - SPLPEToolContext::SPLPEToolContext() : SPPenContext() { SPLPEToolContext* lc = this; - lc->clpetoolcontext = new CLPEToolContext(lc); - delete lc->cpencontext; - lc->cpencontext = lc->clpetoolcontext; - lc->cdrawcontext = lc->clpetoolcontext; - lc->ceventcontext = lc->clpetoolcontext; - types.insert(typeid(SPLPEToolContext)); - lc->mode = Inkscape::LivePathEffect::BEND_PATH; lc->shape_editor = 0; lc->_lpetool_message_context = 0; @@ -122,19 +88,11 @@ SPLPEToolContext::SPLPEToolContext() : SPPenContext() { lc->canvas_bbox = NULL; lc->measuring_items = new std::map; - new (&lc->sel_changed_connection) sigc::connection(); -} - -static void -sp_lpetool_context_init(SPLPEToolContext *lc) -{ - new (lc) SPLPEToolContext(); + //new (&lc->sel_changed_connection) sigc::connection(); } -static void -sp_lpetool_context_dispose(GObject *object) -{ - SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(object); +SPLPEToolContext::~SPLPEToolContext() { + SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(this); delete lc->shape_editor; if (lc->canvas_bbox) { @@ -147,29 +105,23 @@ sp_lpetool_context_dispose(GObject *object) lc->measuring_items = NULL; lc->sel_changed_connection.disconnect(); - lc->sel_changed_connection.~connection(); + //lc->sel_changed_connection.~connection(); if (lc->_lpetool_message_context) { delete lc->_lpetool_message_context; } - G_OBJECT_CLASS(sp_lpetool_context_parent_class)->dispose(object); -} - -static void -sp_lpetool_context_setup(SPEventContext *ec) -{ - ec->ceventcontext->setup(); + //G_OBJECT_CLASS(sp_lpetool_context_parent_class)->dispose(object); } -void CLPEToolContext::setup() { - SPEventContext* ec = this->speventcontext; +void SPLPEToolContext::setup() { + SPEventContext* ec = this; SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(ec); // if (((SPEventContextClass *) sp_lpetool_context_parent_class)->setup) // ((SPEventContextClass *) sp_lpetool_context_parent_class)->setup(ec); - CPenContext::setup(); + SPPenContext::setup(); Inkscape::Selection *selection = sp_desktop_selection (ec->desktop); SPItem *item = selection->singleItem(); @@ -214,14 +166,8 @@ void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpoint lc->shape_editor->set_item(item, SH_KNOTHOLDER); } -static void -sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) -{ - ec->ceventcontext->set(val); -} - -void CLPEToolContext::set(Inkscape::Preferences::Entry* val) { - SPEventContext* ec = this->speventcontext; +void SPLPEToolContext::set(Inkscape::Preferences::Entry* val) { + SPEventContext* ec = this; if (val->getEntryName() == "mode") { Inkscape::Preferences::get()->setString("/tools/geometric/mode", "drag"); @@ -236,14 +182,8 @@ void CLPEToolContext::set(Inkscape::Preferences::Entry* val) { */ } -static gint -sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *event) -{ - return ec->ceventcontext->item_handler(item, event); -} - -gint CLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { - SPEventContext* ec = this->spdrawcontext; +gint SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { + SPEventContext* ec = this; gint ret = FALSE; @@ -268,20 +208,14 @@ gint CLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { if (!ret) { // if (((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler) // ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler(ec, item, event); - ret = CPenContext::item_handler(item, event); + ret = SPPenContext::item_handler(item, event); } return ret; } -gint -sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) -{ - return event_context->ceventcontext->root_handler(event); -} - -gint CLPEToolContext::root_handler(GdkEvent* event) { - SPEventContext* event_context = this->speventcontext; +gint SPLPEToolContext::root_handler(GdkEvent* event) { + SPEventContext* event_context = this; SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(event_context); SPDesktop *desktop = event_context->desktop; @@ -292,7 +226,7 @@ gint CLPEToolContext::root_handler(GdkEvent* event) { if (sp_pen_context_has_waiting_LPE(lc)) { // quit when we are waiting for a LPE to be applied //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); - ret = event_context->ceventcontext->root_handler(event); + ret = event_context->root_handler(event); return ret; } @@ -325,7 +259,7 @@ gint CLPEToolContext::root_handler(GdkEvent* event) { // we pass the mouse click on to pen tool as the first click which it should collect //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); - ret = event_context->ceventcontext->root_handler(event); + ret = event_context->root_handler(event); } break; @@ -364,7 +298,7 @@ gint CLPEToolContext::root_handler(GdkEvent* event) { // if (((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler) { // ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); // } - ret = CPenContext::root_handler(event); + ret = SPPenContext::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/lpe-tool-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 82190f5a0..e519619f9 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -58,7 +58,7 @@ SubtoolEntry lpesubtools[] = { }; -#include "sp-factory.h" +#include "tool-factory.h" namespace { SPEventContext* createLPEToolContext() { -- cgit v1.2.3 From bdde74bbab299f2ee448f1c55469c56a66fb01f7 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 21 Apr 2013 23:58:15 +0200 Subject: Removed some unused files; more refactoring in EventContext tree. (bzr r11608.1.104) --- src/lpe-tool-context.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index e519619f9..bce2fb800 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -166,10 +166,10 @@ void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpoint lc->shape_editor->set_item(item, SH_KNOTHOLDER); } -void SPLPEToolContext::set(Inkscape::Preferences::Entry* val) { +void SPLPEToolContext::set(const Inkscape::Preferences::Entry& val) { SPEventContext* ec = this; - if (val->getEntryName() == "mode") { + if (val.getEntryName() == "mode") { Inkscape::Preferences::get()->setString("/tools/geometric/mode", "drag"); SP_PEN_CONTEXT(ec)->mode = SP_PEN_CONTEXT_MODE_DRAG; } -- cgit v1.2.3 From 9b2956fbaefb4e12bad3fc359c47e5923f33bb41 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 28 Apr 2013 00:05:16 +0200 Subject: various changes (bzr r11608.1.105) --- src/lpe-tool-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index bce2fb800..26d52767d 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -171,7 +171,7 @@ void SPLPEToolContext::set(const Inkscape::Preferences::Entry& val) { if (val.getEntryName() == "mode") { Inkscape::Preferences::get()->setString("/tools/geometric/mode", "drag"); - SP_PEN_CONTEXT(ec)->mode = SP_PEN_CONTEXT_MODE_DRAG; + SP_PEN_CONTEXT(ec)->mode = SPPenContext::MODE_DRAG; } /* -- 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/lpe-tool-context.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 26d52767d..7ff262a3c 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -182,7 +182,7 @@ void SPLPEToolContext::set(const Inkscape::Preferences::Entry& val) { */ } -gint SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { +bool SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { SPEventContext* ec = this; gint ret = FALSE; @@ -214,7 +214,7 @@ gint SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { return ret; } -gint SPLPEToolContext::root_handler(GdkEvent* event) { +bool SPLPEToolContext::root_handler(GdkEvent* event) { SPEventContext* event_context = this; SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(event_context); -- cgit v1.2.3 From 989abbac025a8b3349748d19a613a08586c5fdcd Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Wed, 31 Jul 2013 21:11:20 +0200 Subject: Fixed SPObject ctor and dtor; removed singleton.h; some smaller changes. (bzr r11608.1.110) --- src/lpe-tool-context.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index 7ff262a3c..a1c812049 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -79,9 +79,8 @@ SPLPEToolContext::SPLPEToolContext() : SPPenContext() { lc->mode = Inkscape::LivePathEffect::BEND_PATH; lc->shape_editor = 0; - lc->_lpetool_message_context = 0; - lc->cursor_shape = cursor_crosshairs_xpm; + lc->cursor_shape = cursor_crosshairs_xpm; lc->hot_x = 7; lc->hot_y = 7; @@ -107,9 +106,6 @@ SPLPEToolContext::~SPLPEToolContext() { lc->sel_changed_connection.disconnect(); //lc->sel_changed_connection.~connection(); - if (lc->_lpetool_message_context) { - delete lc->_lpetool_message_context; - } //G_OBJECT_CLASS(sp_lpetool_context_parent_class)->dispose(object); } @@ -149,8 +145,6 @@ void SPLPEToolContext::setup() { if (prefs->getBool("/tools/lpetool/selcue")) { ec->enableSelectionCue(); } - - lc->_lpetool_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack()); } /** -- cgit v1.2.3 From ef3c72e61987caa06a105c70cec83089892581ed Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 4 Aug 2013 15:09:03 +0200 Subject: Cleaned up once more. (bzr r11608.1.118) --- src/lpe-tool-context.cpp | 112 +++++++++++++++++------------------------------ 1 file changed, 39 insertions(+), 73 deletions(-) (limited to 'src/lpe-tool-context.cpp') diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index a1c812049..0ae5058d7 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -75,75 +75,61 @@ const std::string& SPLPEToolContext::getPrefsPath() { const std::string SPLPEToolContext::prefsPath = "/tools/lpetool"; SPLPEToolContext::SPLPEToolContext() : SPPenContext() { - SPLPEToolContext* lc = this; + this->mode = Inkscape::LivePathEffect::BEND_PATH; + this->shape_editor = 0; - lc->mode = Inkscape::LivePathEffect::BEND_PATH; - lc->shape_editor = 0; + this->cursor_shape = cursor_crosshairs_xpm; + this->hot_x = 7; + this->hot_y = 7; - lc->cursor_shape = cursor_crosshairs_xpm; - lc->hot_x = 7; - lc->hot_y = 7; - - lc->canvas_bbox = NULL; - lc->measuring_items = new std::map; - - //new (&lc->sel_changed_connection) sigc::connection(); + this->canvas_bbox = NULL; + this->measuring_items = new std::map; } SPLPEToolContext::~SPLPEToolContext() { - SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(this); - delete lc->shape_editor; + delete this->shape_editor; + this->shape_editor = NULL; - if (lc->canvas_bbox) { - sp_canvas_item_destroy(SP_CANVAS_ITEM(lc->canvas_bbox)); - lc->canvas_bbox = NULL; + if (this->canvas_bbox) { + sp_canvas_item_destroy(SP_CANVAS_ITEM(this->canvas_bbox)); + this->canvas_bbox = NULL; } - lpetool_delete_measuring_items(lc); - delete lc->measuring_items; - lc->measuring_items = NULL; + lpetool_delete_measuring_items(this); + delete this->measuring_items; + this->measuring_items = NULL; - lc->sel_changed_connection.disconnect(); - //lc->sel_changed_connection.~connection(); - - - //G_OBJECT_CLASS(sp_lpetool_context_parent_class)->dispose(object); + this->sel_changed_connection.disconnect(); } void SPLPEToolContext::setup() { - SPEventContext* ec = this; - - SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(ec); - -// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->setup) -// ((SPEventContextClass *) sp_lpetool_context_parent_class)->setup(ec); SPPenContext::setup(); - Inkscape::Selection *selection = sp_desktop_selection (ec->desktop); + Inkscape::Selection *selection = sp_desktop_selection (this->desktop); SPItem *item = selection->singleItem(); - lc->sel_changed_connection.disconnect(); - lc->sel_changed_connection = - selection->connectChanged(sigc::bind(sigc::ptr_fun(&sp_lpetool_context_selection_changed), (gpointer)lc)); + this->sel_changed_connection.disconnect(); + this->sel_changed_connection = + selection->connectChanged(sigc::bind(sigc::ptr_fun(&sp_lpetool_context_selection_changed), (gpointer)this)); - lc->shape_editor = new ShapeEditor(ec->desktop); + this->shape_editor = new ShapeEditor(this->desktop); - lpetool_context_switch_mode(lc, Inkscape::LivePathEffect::INVALID_LPE); - lpetool_context_reset_limiting_bbox(lc); - lpetool_create_measuring_items(lc); + lpetool_context_switch_mode(this, Inkscape::LivePathEffect::INVALID_LPE); + lpetool_context_reset_limiting_bbox(this); + lpetool_create_measuring_items(this); // TODO temp force: - ec->enableSelectionCue(); + this->enableSelectionCue(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (item) { - lc->shape_editor->set_item(item, SH_NODEPATH); - lc->shape_editor->set_item(item, SH_KNOTHOLDER); + this->shape_editor->set_item(item, SH_NODEPATH); + this->shape_editor->set_item(item, SH_KNOTHOLDER); } if (prefs->getBool("/tools/lpetool/selcue")) { - ec->enableSelectionCue(); + this->enableSelectionCue(); } } @@ -161,31 +147,20 @@ void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpoint } void SPLPEToolContext::set(const Inkscape::Preferences::Entry& val) { - SPEventContext* ec = this; - if (val.getEntryName() == "mode") { Inkscape::Preferences::get()->setString("/tools/geometric/mode", "drag"); - SP_PEN_CONTEXT(ec)->mode = SPPenContext::MODE_DRAG; - } - - /* - //pass on up to parent class to handle common attributes. - if ( sp_lpetool_context_parent_class->set ) { - sp_lpetool_context_parent_class->set(ec, key, val); + SP_PEN_CONTEXT(this)->mode = SPPenContext::MODE_DRAG; } - */ } bool SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { - SPEventContext* ec = this; - gint ret = FALSE; switch (event->type) { case GDK_BUTTON_PRESS: { // select the clicked item but do nothing else - Inkscape::Selection * const selection = sp_desktop_selection(ec->desktop); + Inkscape::Selection * const selection = sp_desktop_selection(this->desktop); selection->clear(); selection->add(item); ret = TRUE; @@ -200,8 +175,6 @@ bool SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { } if (!ret) { -// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler) -// ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler(ec, item, event); ret = SPPenContext::item_handler(item, event); } @@ -209,25 +182,21 @@ bool SPLPEToolContext::item_handler(SPItem* item, GdkEvent* event) { } bool SPLPEToolContext::root_handler(GdkEvent* event) { - SPEventContext* event_context = this; - - SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(event_context); - SPDesktop *desktop = event_context->desktop; Inkscape::Selection *selection = sp_desktop_selection (desktop); bool ret = false; - if (sp_pen_context_has_waiting_LPE(lc)) { + if (sp_pen_context_has_waiting_LPE(this)) { // quit when we are waiting for a LPE to be applied //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); - ret = event_context->root_handler(event); + ret = this->root_handler(event); return ret; } switch (event->type) { case GDK_BUTTON_PRESS: - if (event->button.button == 1 && !event_context->space_panning) { - if (lc->mode == Inkscape::LivePathEffect::INVALID_LPE) { + if (event->button.button == 1 && !this->space_panning) { + if (this->mode == Inkscape::LivePathEffect::INVALID_LPE) { // don't do anything for now if we are inactive (except clearing the selection // since this was a click into empty space) selection->clear(); @@ -237,9 +206,9 @@ bool SPLPEToolContext::root_handler(GdkEvent* event) { } // save drag origin - event_context->xp = (gint) event->button.x; - event_context->yp = (gint) event->button.y; - event_context->within_tolerance = true; + this->xp = (gint) event->button.x; + this->yp = (gint) event->button.y; + this->within_tolerance = true; using namespace Inkscape::LivePathEffect; @@ -249,11 +218,11 @@ bool SPLPEToolContext::root_handler(GdkEvent* event) { //bool over_stroke = lc->shape_editor->is_over_stroke(Geom::Point(event->button.x, event->button.y), true); - sp_pen_context_wait_for_LPE_mouse_clicks(lc, type, Inkscape::LivePathEffect::Effect::acceptsNumClicks(type)); + sp_pen_context_wait_for_LPE_mouse_clicks(this, type, Inkscape::LivePathEffect::Effect::acceptsNumClicks(type)); // we pass the mouse click on to pen tool as the first click which it should collect //ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); - ret = event_context->root_handler(event); + ret = this->root_handler(event); } break; @@ -289,9 +258,6 @@ bool SPLPEToolContext::root_handler(GdkEvent* event) { } if (!ret) { -// if (((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler) { -// ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); -// } ret = SPPenContext::root_handler(event); } -- cgit v1.2.3