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/draw-context.cpp | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index e62435004..647a9c192 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -92,8 +92,16 @@ static void sp_draw_context_class_init(SPDrawContextClass *klass) ec_class->root_handler = sp_draw_context_root_handler; } +CDrawContext::CDrawContext(SPDrawContext* drawcontext) : CEventContext(drawcontext) { + this->spdrawcontext = drawcontext; +} + static void sp_draw_context_init(SPDrawContext *dc) { + dc->cdrawcontext = new CDrawContext(dc); + delete dc->ceventcontext; + dc->ceventcontext = dc->cdrawcontext; + dc->attach = FALSE; dc->red_color = 0xff00007f; @@ -148,12 +156,19 @@ static void sp_draw_context_dispose(GObject *object) static void sp_draw_context_setup(SPEventContext *ec) { + ec->ceventcontext->setup(); +} + +void CDrawContext::setup() { + SPEventContext* ec = this->speventcontext; + SPDrawContext *dc = SP_DRAW_CONTEXT(ec); SPDesktop *dt = ec->desktop; - if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup) { - (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup(ec); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup) { +// (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup(ec); +// } + CEventContext::setup(); dc->selection = sp_desktop_selection(dt); @@ -192,6 +207,12 @@ static void sp_draw_context_setup(SPEventContext *ec) static void sp_draw_context_finish(SPEventContext *ec) { + ec->ceventcontext->finish(); +} + +void CDrawContext::finish() { + SPEventContext* ec = this->speventcontext; + SPDrawContext *dc = SP_DRAW_CONTEXT(ec); dc->sel_changed_connection.disconnect(); @@ -212,8 +233,17 @@ static void sp_draw_context_set(SPEventContext */*ec*/, Inkscape::Preferences::E { } +void CDrawContext::set(Inkscape::Preferences::Entry* value) { +} + gint sp_draw_context_root_handler(SPEventContext *ec, GdkEvent *event) { + return ec->ceventcontext->root_handler(event); +} + +gint CDrawContext::root_handler(GdkEvent* event) { + SPEventContext* ec = this->speventcontext; + gint ret = FALSE; switch (event->type) { @@ -237,9 +267,10 @@ gint sp_draw_context_root_handler(SPEventContext *ec, GdkEvent *event) } if (!ret) { - if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler) { - ret = (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler(ec, event); - } +// if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler) { +// ret = (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler(ec, event); +// } + ret = CEventContext::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/draw-context.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 647a9c192..cdb0aeeaa 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -86,22 +86,27 @@ static void sp_draw_context_class_init(SPDrawContextClass *klass) object_class->dispose = sp_draw_context_dispose; - ec_class->setup = sp_draw_context_setup; - ec_class->set = sp_draw_context_set; - ec_class->finish = sp_draw_context_finish; - ec_class->root_handler = sp_draw_context_root_handler; +// ec_class->setup = sp_draw_context_setup; +// ec_class->set = sp_draw_context_set; +// ec_class->finish = sp_draw_context_finish; +// ec_class->root_handler = sp_draw_context_root_handler; } CDrawContext::CDrawContext(SPDrawContext* drawcontext) : CEventContext(drawcontext) { this->spdrawcontext = drawcontext; } -static void sp_draw_context_init(SPDrawContext *dc) -{ +SPDrawContext::SPDrawContext() : SPEventContext() { + SPDrawContext* dc = this; + dc->cdrawcontext = new CDrawContext(dc); delete dc->ceventcontext; dc->ceventcontext = dc->cdrawcontext; + dc->selection = 0; + dc->grab = 0; + dc->anchor_statusbar = false; + dc->attach = FALSE; dc->red_color = 0xff00007f; @@ -133,6 +138,11 @@ static void sp_draw_context_init(SPDrawContext *dc) new (&dc->sel_modified_connection) sigc::connection(); } +static void sp_draw_context_init(SPDrawContext *dc) +{ + new (dc) SPDrawContext(); +} + static void sp_draw_context_dispose(GObject *object) { SPDrawContext *dc = SP_DRAW_CONTEXT(object); -- 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/draw-context.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index cdb0aeeaa..7e192f7ad 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -99,9 +99,11 @@ CDrawContext::CDrawContext(SPDrawContext* drawcontext) : CEventContext(drawconte SPDrawContext::SPDrawContext() : SPEventContext() { SPDrawContext* dc = this; - dc->cdrawcontext = new CDrawContext(dc); - delete dc->ceventcontext; - dc->ceventcontext = dc->cdrawcontext; + //dc->cdrawcontext = new CDrawContext(dc); + //delete dc->ceventcontext; + //dc->ceventcontext = dc->cdrawcontext; + dc->cdrawcontext = 0; + types.insert(typeid(SPDrawContext)); dc->selection = 0; dc->grab = 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/draw-context.cpp | 93 +++++++++------------------------------------------- 1 file changed, 16 insertions(+), 77 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 7e192f7ad..39cb3d613 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -50,14 +50,6 @@ using Inkscape::DocumentUndo; -static void sp_draw_context_dispose(GObject *object); - -static void sp_draw_context_setup(SPEventContext *ec); -static void sp_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val); -static void sp_draw_context_finish(SPEventContext *ec); - -static gint sp_draw_context_root_handler(SPEventContext *event_context, GdkEvent *event); - static void spdc_selection_changed(Inkscape::Selection *sel, SPDrawContext *dc); static void spdc_selection_modified(Inkscape::Selection *sel, guint flags, SPDrawContext *dc); @@ -74,37 +66,9 @@ static void spdc_flush_white(SPDrawContext *dc, SPCurve *gc); static void spdc_reset_white(SPDrawContext *dc); static void spdc_free_colors(SPDrawContext *dc); -G_DEFINE_TYPE(SPDrawContext, sp_draw_context, SP_TYPE_EVENT_CONTEXT); - -static void sp_draw_context_class_init(SPDrawContextClass *klass) -{ - GObjectClass *object_class; - SPEventContextClass *ec_class; - - object_class = (GObjectClass *)klass; - ec_class = SP_EVENT_CONTEXT_CLASS(klass); - - object_class->dispose = sp_draw_context_dispose; - -// ec_class->setup = sp_draw_context_setup; -// ec_class->set = sp_draw_context_set; -// ec_class->finish = sp_draw_context_finish; -// ec_class->root_handler = sp_draw_context_root_handler; -} - -CDrawContext::CDrawContext(SPDrawContext* drawcontext) : CEventContext(drawcontext) { - this->spdrawcontext = drawcontext; -} - SPDrawContext::SPDrawContext() : SPEventContext() { SPDrawContext* dc = this; - //dc->cdrawcontext = new CDrawContext(dc); - //delete dc->ceventcontext; - //dc->ceventcontext = dc->cdrawcontext; - dc->cdrawcontext = 0; - types.insert(typeid(SPDrawContext)); - dc->selection = 0; dc->grab = 0; dc->anchor_statusbar = false; @@ -136,21 +100,15 @@ SPDrawContext::SPDrawContext() : SPEventContext() { dc->waiting_LPE_type = Inkscape::LivePathEffect::INVALID_LPE; - new (&dc->sel_changed_connection) sigc::connection(); - new (&dc->sel_modified_connection) sigc::connection(); + //new (&dc->sel_changed_connection) sigc::connection(); + //new (&dc->sel_modified_connection) sigc::connection(); } -static void sp_draw_context_init(SPDrawContext *dc) -{ - new (dc) SPDrawContext(); -} +SPDrawContext::~SPDrawContext() { + SPDrawContext *dc = SP_DRAW_CONTEXT(this); -static void sp_draw_context_dispose(GObject *object) -{ - SPDrawContext *dc = SP_DRAW_CONTEXT(object); - - dc->sel_changed_connection.~connection(); - dc->sel_modified_connection.~connection(); + //dc->sel_changed_connection.~connection(); + //dc->sel_modified_connection.~connection(); if (dc->grab) { sp_canvas_item_ungrab(dc->grab, GDK_CURRENT_TIME); @@ -163,16 +121,11 @@ static void sp_draw_context_dispose(GObject *object) spdc_free_colors(dc); - G_OBJECT_CLASS(sp_draw_context_parent_class)->dispose(object); + //G_OBJECT_CLASS(sp_draw_context_parent_class)->dispose(object); } -static void sp_draw_context_setup(SPEventContext *ec) -{ - ec->ceventcontext->setup(); -} - -void CDrawContext::setup() { - SPEventContext* ec = this->speventcontext; +void SPDrawContext::setup() { + SPEventContext* ec = this; SPDrawContext *dc = SP_DRAW_CONTEXT(ec); SPDesktop *dt = ec->desktop; @@ -180,7 +133,7 @@ void CDrawContext::setup() { // if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup) { // (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup(ec); // } - CEventContext::setup(); + SPEventContext::setup(); dc->selection = sp_desktop_selection(dt); @@ -217,13 +170,8 @@ void CDrawContext::setup() { spdc_attach_selection(dc, dc->selection); } -static void sp_draw_context_finish(SPEventContext *ec) -{ - ec->ceventcontext->finish(); -} - -void CDrawContext::finish() { - SPEventContext* ec = this->speventcontext; +void SPDrawContext::finish() { + SPEventContext* ec = this; SPDrawContext *dc = SP_DRAW_CONTEXT(ec); @@ -241,20 +189,11 @@ void CDrawContext::finish() { spdc_free_colors(dc); } -static void sp_draw_context_set(SPEventContext */*ec*/, Inkscape::Preferences::Entry */*val*/) -{ -} - -void CDrawContext::set(Inkscape::Preferences::Entry* value) { -} - -gint sp_draw_context_root_handler(SPEventContext *ec, GdkEvent *event) -{ - return ec->ceventcontext->root_handler(event); +void SPDrawContext::set(Inkscape::Preferences::Entry* value) { } -gint CDrawContext::root_handler(GdkEvent* event) { - SPEventContext* ec = this->speventcontext; +gint SPDrawContext::root_handler(GdkEvent* event) { + SPEventContext* ec = this; gint ret = FALSE; @@ -282,7 +221,7 @@ gint CDrawContext::root_handler(GdkEvent* event) { // if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler) { // ret = (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler(ec, event); // } - ret = CEventContext::root_handler(event); + ret = SPEventContext::root_handler(event); } return ret; -- 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/draw-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 39cb3d613..244a16c91 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -189,7 +189,7 @@ void SPDrawContext::finish() { spdc_free_colors(dc); } -void SPDrawContext::set(Inkscape::Preferences::Entry* value) { +void SPDrawContext::set(const Inkscape::Preferences::Entry& value) { } gint SPDrawContext::root_handler(GdkEvent* 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/draw-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index bb2468b98..fed757c0e 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -192,7 +192,7 @@ void SPDrawContext::finish() { void SPDrawContext::set(const Inkscape::Preferences::Entry& value) { } -gint SPDrawContext::root_handler(GdkEvent* event) { +bool SPDrawContext::root_handler(GdkEvent* event) { SPEventContext* ec = this; gint ret = FALSE; -- 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/draw-context.cpp | 131 ++++++++++++++++++++------------------------------- 1 file changed, 51 insertions(+), 80 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index fed757c0e..c33bb780c 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -67,134 +67,108 @@ static void spdc_reset_white(SPDrawContext *dc); static void spdc_free_colors(SPDrawContext *dc); SPDrawContext::SPDrawContext() : SPEventContext() { - SPDrawContext* dc = this; + this->selection = 0; + this->grab = 0; + this->anchor_statusbar = false; - dc->selection = 0; - dc->grab = 0; - dc->anchor_statusbar = false; + this->attach = FALSE; - dc->attach = FALSE; + this->red_color = 0xff00007f; + this->blue_color = 0x0000ff7f; + this->green_color = 0x00ff007f; + this->red_curve_is_valid = false; - dc->red_color = 0xff00007f; - dc->blue_color = 0x0000ff7f; - dc->green_color = 0x00ff007f; - dc->red_curve_is_valid = false; + this->red_bpath = NULL; + this->red_curve = NULL; - dc->red_bpath = NULL; - dc->red_curve = NULL; + this->blue_bpath = NULL; + this->blue_curve = NULL; - dc->blue_bpath = NULL; - dc->blue_curve = NULL; + this->green_bpaths = NULL; + this->green_curve = NULL; + this->green_anchor = NULL; + this->green_closed = false; - dc->green_bpaths = NULL; - dc->green_curve = NULL; - dc->green_anchor = NULL; - dc->green_closed = false; + this->white_item = NULL; + this->white_curves = NULL; + this->white_anchors = NULL; - dc->white_item = NULL; - dc->white_curves = NULL; - dc->white_anchors = NULL; + this->sa = NULL; + this->ea = NULL; - dc->sa = NULL; - dc->ea = NULL; - - dc->waiting_LPE_type = Inkscape::LivePathEffect::INVALID_LPE; - - //new (&dc->sel_changed_connection) sigc::connection(); - //new (&dc->sel_modified_connection) sigc::connection(); + this->waiting_LPE_type = Inkscape::LivePathEffect::INVALID_LPE; } SPDrawContext::~SPDrawContext() { - SPDrawContext *dc = SP_DRAW_CONTEXT(this); - - //dc->sel_changed_connection.~connection(); - //dc->sel_modified_connection.~connection(); - - if (dc->grab) { - sp_canvas_item_ungrab(dc->grab, GDK_CURRENT_TIME); - dc->grab = NULL; + if (this->grab) { + sp_canvas_item_ungrab(this->grab, GDK_CURRENT_TIME); + this->grab = NULL; } - if (dc->selection) { - dc->selection = NULL; + if (this->selection) { + this->selection = NULL; } - spdc_free_colors(dc); - - //G_OBJECT_CLASS(sp_draw_context_parent_class)->dispose(object); + spdc_free_colors(this); } void SPDrawContext::setup() { - SPEventContext* ec = this; - - SPDrawContext *dc = SP_DRAW_CONTEXT(ec); - SPDesktop *dt = ec->desktop; - -// if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup) { -// (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->setup(ec); -// } SPEventContext::setup(); - dc->selection = sp_desktop_selection(dt); + this->selection = sp_desktop_selection(desktop); // Connect signals to track selection changes - dc->sel_changed_connection = dc->selection->connectChanged( - sigc::bind(sigc::ptr_fun(&spdc_selection_changed), dc) + this->sel_changed_connection = this->selection->connectChanged( + sigc::bind(sigc::ptr_fun(&spdc_selection_changed), this) ); - dc->sel_modified_connection = dc->selection->connectModified( - sigc::bind(sigc::ptr_fun(&spdc_selection_modified), dc) + this->sel_modified_connection = this->selection->connectModified( + sigc::bind(sigc::ptr_fun(&spdc_selection_modified), this) ); // Create red bpath - dc->red_bpath = sp_canvas_bpath_new(sp_desktop_sketch(ec->desktop), NULL); - sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->red_bpath), dc->red_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); + this->red_bpath = sp_canvas_bpath_new(sp_desktop_sketch(this->desktop), NULL); + sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(this->red_bpath), this->red_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); // Create red curve - dc->red_curve = new SPCurve(); + this->red_curve = new SPCurve(); // Create blue bpath - dc->blue_bpath = sp_canvas_bpath_new(sp_desktop_sketch(ec->desktop), NULL); - sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->blue_bpath), dc->blue_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); + this->blue_bpath = sp_canvas_bpath_new(sp_desktop_sketch(this->desktop), NULL); + sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(this->blue_bpath), this->blue_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); // Create blue curve - dc->blue_curve = new SPCurve(); + this->blue_curve = new SPCurve(); // Create green curve - dc->green_curve = new SPCurve(); + this->green_curve = new SPCurve(); // No green anchor by default - dc->green_anchor = NULL; - dc->green_closed = FALSE; + this->green_anchor = NULL; + this->green_closed = FALSE; - dc->attach = TRUE; - spdc_attach_selection(dc, dc->selection); + this->attach = TRUE; + spdc_attach_selection(this, this->selection); } void SPDrawContext::finish() { - SPEventContext* ec = this; + this->sel_changed_connection.disconnect(); + this->sel_modified_connection.disconnect(); - SPDrawContext *dc = SP_DRAW_CONTEXT(ec); - - dc->sel_changed_connection.disconnect(); - dc->sel_modified_connection.disconnect(); - - if (dc->grab) { - sp_canvas_item_ungrab(dc->grab, GDK_CURRENT_TIME); + if (this->grab) { + sp_canvas_item_ungrab(this->grab, GDK_CURRENT_TIME); } - if (dc->selection) { - dc->selection = NULL; + if (this->selection) { + this->selection = NULL; } - spdc_free_colors(dc); + spdc_free_colors(this); } void SPDrawContext::set(const Inkscape::Preferences::Entry& value) { } bool SPDrawContext::root_handler(GdkEvent* event) { - SPEventContext* ec = this; - gint ret = FALSE; switch (event->type) { @@ -218,9 +192,6 @@ bool SPDrawContext::root_handler(GdkEvent* event) { } if (!ret) { -// if ((SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler) { -// ret = (SP_EVENT_CONTEXT_CLASS(sp_draw_context_parent_class))->root_handler(ec, event); -// } ret = SPEventContext::root_handler(event); } -- cgit v1.2.3