From 067752b1cf216b8aa55c9e52926496553673cdb7 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Wed, 2 Dec 2015 18:24:10 +0100 Subject: Add lock to guides (bzr r14500.1.1) --- src/display/guideline.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 44bbd14bd..0a564f550 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -53,6 +53,7 @@ static void sp_guideline_init(SPGuideLine *gl) { gl->rgba = 0x0000ff7f; + gl->locked = false; gl->normal_to_line = Geom::Point(0,1); gl->angle = 3.14159265358979323846/2; gl->point_on_line = Geom::Point(0,0); @@ -219,6 +220,7 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p normal.normalize(); gl->label = label; + gl->locked = false; gl->normal_to_line = normal; gl->angle = tan( -gl->normal_to_line[Geom::X] / gl->normal_to_line[Geom::Y]); sp_guideline_set_position(gl, point_on_line); @@ -238,6 +240,12 @@ void sp_guideline_set_label(SPGuideLine *gl, const char* label) sp_canvas_item_request_update(SP_CANVAS_ITEM (gl)); } +void sp_guideline_set_locked(SPGuideLine *gl, const bool locked) +{ + gl->locked = locked; + sp_canvas_item_request_update(SP_CANVAS_ITEM (gl)); +} + void sp_guideline_set_position(SPGuideLine *gl, Geom::Point point_on_line) { gl->point_on_line = point_on_line; -- cgit v1.2.3 From af5c1ec831e2f225364717c7dc03d88579850b85 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 3 Dec 2015 18:55:52 +0100 Subject: Added no highlight and cross icon on locked guides (bzr r14500.1.4) --- src/display/guideline.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 0a564f550..24353c681 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -18,6 +18,7 @@ #include <2geom/transforms.h> #include "sp-canvas-util.h" #include "sp-ctrlpoint.h" +#include "sp-ctrlquadr.h" #include "guideline.h" #include "display/cairo-utils.h" @@ -180,7 +181,7 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, sp_ctrlpoint_set_coords(gl->origin, gl->point_on_line); sp_canvas_item_request_update(SP_CANVAS_ITEM (gl->origin)); - + Geom::Point pol_transformed = gl->point_on_line*affine; if (gl->is_horizontal()) { sp_canvas_update_bbox (item, -1000000, round(pol_transformed[Geom::Y] - 16), 1000000, round(pol_transformed[Geom::Y] + 1)); -- cgit v1.2.3 From e649a1d9cd29f39b2d1cf343cec97ccebce9cf08 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 5 Dec 2015 23:55:57 +0100 Subject: Changed from Desktop to namedview to handle multiples documents (bzr r14500.1.8) --- src/display/guideline.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 24353c681..2df0b3f26 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -18,7 +18,6 @@ #include <2geom/transforms.h> #include "sp-canvas-util.h" #include "sp-ctrlpoint.h" -#include "sp-ctrlquadr.h" #include "guideline.h" #include "display/cairo-utils.h" -- cgit v1.2.3 From 21c7070f90ef59fb5b6782e7adabd3d0f79e174d Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 7 Dec 2015 19:58:44 +0100 Subject: Add Martin Owens radious patch (bzr r14500.1.11) --- src/display/guideline.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 2df0b3f26..e1a115353 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -178,6 +178,11 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, gl->affine = affine; + if (gl->locked) { + gl->origin->radius = 1; + } else { + gl->origin->radius = 3; + } sp_ctrlpoint_set_coords(gl->origin, gl->point_on_line); sp_canvas_item_request_update(SP_CANVAS_ITEM (gl->origin)); @@ -190,6 +195,7 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, //TODO: labels in angled guidelines are not showing up for some reason. sp_canvas_update_bbox (item, -1000000, -1000000, 1000000, 1000000); } + } // Returns 0.0 if point is on the guideline -- cgit v1.2.3 From 351afb17c6a579d3d1bb03500433b92b00123c03 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 7 Dec 2015 20:59:06 +0100 Subject: Add rect to SP Control point on locked guides (bzr r14500.1.13) --- src/display/guideline.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index e1a115353..4b7ea59ab 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -179,9 +179,11 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, gl->affine = affine; if (gl->locked) { - gl->origin->radius = 1; + sp_ctrlpoint_set_circle(gl->origin, false); + sp_ctrlpoint_set_lenght(gl->origin, 6); } else { - gl->origin->radius = 3; + sp_ctrlpoint_set_circle(gl->origin, true); + sp_ctrlpoint_set_lenght(gl->origin, 4); } sp_ctrlpoint_set_coords(gl->origin, gl->point_on_line); sp_canvas_item_request_update(SP_CANVAS_ITEM (gl->origin)); -- cgit v1.2.3 From 1b5e5271ae41e3ab4e2d352118e66ccafc608a6f Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Thu, 10 Dec 2015 00:43:23 -0500 Subject: Remove CtrlPoint and replace with SPKnot (bzr r14523) --- src/display/guideline.cpp | 49 +++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 19 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 4b7ea59ab..820a61d4d 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -17,7 +17,7 @@ #include <2geom/coord.h> #include <2geom/transforms.h> #include "sp-canvas-util.h" -#include "sp-ctrlpoint.h" +#include "knot.h" #include "guideline.h" #include "display/cairo-utils.h" @@ -25,6 +25,7 @@ #include "desktop.h" #include "sp-namedview.h" #include "display/sp-canvas.h" +#include "display/sodipodi-ctrl.h" #include "ui/control-manager.h" using Inkscape::ControlManager; @@ -36,6 +37,7 @@ static void sp_guideline_render(SPCanvasItem *item, SPCanvasBuf *buf); static double sp_guideline_point(SPCanvasItem *item, Geom::Point p, SPCanvasItem **actual_item); +static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *data); static void sp_guideline_drawline (SPCanvasBuf *buf, gint x0, gint y0, gint x1, gint y1, guint32 rgba); G_DEFINE_TYPE(SPGuideLine, sp_guideline, SP_TYPE_CANVAS_ITEM); @@ -72,8 +74,8 @@ static void sp_guideline_destroy(SPCanvasItem *object) SPGuideLine *gl = SP_GUIDELINE(object); - if (gl->origin != NULL && SP_IS_CTRLPOINT(gl->origin)) { - sp_canvas_item_destroy(gl->origin); + if (gl->origin != NULL && SP_IS_KNOT(gl->origin)) { + knot_unref(gl->origin); } else { // FIXME: This branch shouldn't be reached (although it seems to be harmless). //g_error("Why can it be that gl->origin is not a valid SPCtrlPoint?\n"); @@ -179,14 +181,16 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, gl->affine = affine; if (gl->locked) { - sp_ctrlpoint_set_circle(gl->origin, false); - sp_ctrlpoint_set_lenght(gl->origin, 6); + gl->origin->setStroke(0x0000ff88, 0x0000ff88, 0x0000ff88); + gl->origin->setShape(SP_CTRL_SHAPE_CROSS); + gl->origin->setSize(6); } else { - sp_ctrlpoint_set_circle(gl->origin, true); - sp_ctrlpoint_set_lenght(gl->origin, 4); + gl->origin->setStroke(0xff000088, 0xff0000ff, 0xff0000ff); + gl->origin->setShape(SP_CTRL_SHAPE_CIRCLE); + gl->origin->setSize(4); } - sp_ctrlpoint_set_coords(gl->origin, gl->point_on_line); - sp_canvas_item_request_update(SP_CANVAS_ITEM (gl->origin)); + gl->origin->moveto(gl->point_on_line); + gl->origin->updateCtrl(); Geom::Point pol_transformed = gl->point_on_line*affine; if (gl->is_horizontal()) { @@ -219,12 +223,15 @@ static double sp_guideline_point(SPCanvasItem *item, Geom::Point p, SPCanvasItem SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point point_on_line, Geom::Point normal) { SPCanvasItem *item = sp_canvas_item_new(parent, SP_TYPE_GUIDELINE, NULL); - SPCanvasItem *origin = ControlManager::getManager().createControl(parent, Inkscape::CTRL_TYPE_ORIGIN); - ControlManager::getManager().track(origin); - SPGuideLine *gl = SP_GUIDELINE(item); - SPCtrlPoint *cp = SP_CTRLPOINT(origin); - gl->origin = cp; + gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); + + gl->origin->setAnchor(SP_ANCHOR_CENTER); + gl->origin->setMode(SP_CTRL_MODE_COLOR); + gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); + gl->origin->moveto(point_on_line); + gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); + gl->origin->updateCtrl(); normal.normalize(); gl->label = label; @@ -233,11 +240,18 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p gl->angle = tan( -gl->normal_to_line[Geom::X] / gl->normal_to_line[Geom::Y]); sp_guideline_set_position(gl, point_on_line); - sp_ctrlpoint_set_coords(cp, point_on_line); - return item; } +static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *gl) +{ + if(gl->locked) { + return true; + } + sp_guideline_set_position(gl, *position); + return false; +} + void sp_guideline_set_label(SPGuideLine *gl, const char* label) { if (gl->label) { @@ -271,8 +285,6 @@ void sp_guideline_set_normal(SPGuideLine *gl, Geom::Point normal_to_line) void sp_guideline_set_color(SPGuideLine *gl, unsigned int rgba) { gl->rgba = rgba; - sp_ctrlpoint_set_color(gl->origin, rgba); - sp_canvas_item_request_update(SP_CANVAS_ITEM(gl)); } @@ -283,7 +295,6 @@ void sp_guideline_set_sensitive(SPGuideLine *gl, int sensitive) void sp_guideline_delete(SPGuideLine *gl) { - //gtk_object_destroy(GTK_OBJECT(gl->origin)); sp_canvas_item_destroy(SP_CANVAS_ITEM(gl)); } -- cgit v1.2.3 From e151d5d9804624f69d037e708c6a2bd35058e467 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 11 Dec 2015 02:24:16 +0100 Subject: Fix bug launching a document by commandline with guides (bzr r14525) --- src/display/guideline.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 820a61d4d..1c28149a9 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -180,6 +180,15 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, gl->affine = affine; + if (!gl->origin){ + gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); + + gl->origin->setAnchor(SP_ANCHOR_CENTER); + gl->origin->setMode(SP_CTRL_MODE_COLOR); + gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); + gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); + } + if (gl->locked) { gl->origin->setStroke(0x0000ff88, 0x0000ff88, 0x0000ff88); gl->origin->setShape(SP_CTRL_SHAPE_CROSS); @@ -191,7 +200,7 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, } gl->origin->moveto(gl->point_on_line); gl->origin->updateCtrl(); - + Geom::Point pol_transformed = gl->point_on_line*affine; if (gl->is_horizontal()) { sp_canvas_update_bbox (item, -1000000, round(pol_transformed[Geom::Y] - 16), 1000000, round(pol_transformed[Geom::Y] + 1)); @@ -224,15 +233,16 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p { SPCanvasItem *item = sp_canvas_item_new(parent, SP_TYPE_GUIDELINE, NULL); SPGuideLine *gl = SP_GUIDELINE(item); - gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); - - gl->origin->setAnchor(SP_ANCHOR_CENTER); - gl->origin->setMode(SP_CTRL_MODE_COLOR); - gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); - gl->origin->moveto(point_on_line); - gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); - gl->origin->updateCtrl(); - + if ( SP_ACTIVE_DESKTOP ){ + gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); + + gl->origin->setAnchor(SP_ANCHOR_CENTER); + gl->origin->setMode(SP_CTRL_MODE_COLOR); + gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); + gl->origin->moveto(point_on_line); + gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); + gl->origin->updateCtrl(); + } normal.normalize(); gl->label = label; gl->locked = false; -- cgit v1.2.3 From 0732d8cfbf843dac04be27f45b8102d6df216410 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Thu, 10 Dec 2015 21:47:16 -0500 Subject: Clean up some code, only init the SPKnot in one place. (bzr r14526) --- src/display/guideline.cpp | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 1c28149a9..fd6ccf164 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -69,16 +69,11 @@ static void sp_guideline_destroy(SPCanvasItem *object) { g_return_if_fail (object != NULL); g_return_if_fail (SP_IS_GUIDELINE (object)); - //g_return_if_fail (SP_GUIDELINE(object)->origin != NULL); - //g_return_if_fail (SP_IS_CTRLPOINT(SP_GUIDELINE(object)->origin)); SPGuideLine *gl = SP_GUIDELINE(object); if (gl->origin != NULL && SP_IS_KNOT(gl->origin)) { knot_unref(gl->origin); - } else { - // FIXME: This branch shouldn't be reached (although it seems to be harmless). - //g_error("Why can it be that gl->origin is not a valid SPCtrlPoint?\n"); } if (gl->label) { @@ -233,16 +228,7 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p { SPCanvasItem *item = sp_canvas_item_new(parent, SP_TYPE_GUIDELINE, NULL); SPGuideLine *gl = SP_GUIDELINE(item); - if ( SP_ACTIVE_DESKTOP ){ - gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); - gl->origin->setAnchor(SP_ANCHOR_CENTER); - gl->origin->setMode(SP_CTRL_MODE_COLOR); - gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); - gl->origin->moveto(point_on_line); - gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); - gl->origin->updateCtrl(); - } normal.normalize(); gl->label = label; gl->locked = false; -- cgit v1.2.3 From 678ace57cb2e98572d3e5c30138b3100aceef1ed Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 11 Dec 2015 10:16:30 +0100 Subject: Fix crash on hidden guides (bzr r14527) --- src/display/guideline.cpp | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index fd6ccf164..4b573a586 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -172,31 +172,32 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, if ((SP_CANVAS_ITEM_CLASS(sp_guideline_parent_class))->update) { (SP_CANVAS_ITEM_CLASS(sp_guideline_parent_class))->update(item, affine, flags); } + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if (desktop && item->visible) { + if (!gl->origin) { + gl->origin = new SPKnot(desktop, "No tip yet!! XXX"); + + gl->origin->setAnchor(SP_ANCHOR_CENTER); + gl->origin->setMode(SP_CTRL_MODE_COLOR); + gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); + gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); + } - gl->affine = affine; - - if (!gl->origin){ - gl->origin = new SPKnot(SP_ACTIVE_DESKTOP, "No tip yet!! XXX"); - - gl->origin->setAnchor(SP_ANCHOR_CENTER); - gl->origin->setMode(SP_CTRL_MODE_COLOR); - gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); - gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); - } - - if (gl->locked) { - gl->origin->setStroke(0x0000ff88, 0x0000ff88, 0x0000ff88); - gl->origin->setShape(SP_CTRL_SHAPE_CROSS); - gl->origin->setSize(6); - } else { - gl->origin->setStroke(0xff000088, 0xff0000ff, 0xff0000ff); - gl->origin->setShape(SP_CTRL_SHAPE_CIRCLE); - gl->origin->setSize(4); + if (gl->locked) { + gl->origin->setStroke(0x0000ff88, 0x0000ff88, 0x0000ff88); + gl->origin->setShape(SP_CTRL_SHAPE_CROSS); + gl->origin->setSize(6); + } else { + gl->origin->setStroke(0xff000088, 0xff0000ff, 0xff0000ff); + gl->origin->setShape(SP_CTRL_SHAPE_CIRCLE); + gl->origin->setSize(4); + } + gl->origin->moveto(gl->point_on_line); + gl->origin->updateCtrl(); } - gl->origin->moveto(gl->point_on_line); - gl->origin->updateCtrl(); - Geom::Point pol_transformed = gl->point_on_line*affine; + gl->affine = affine; + Geom::Point pol_transformed = gl->point_on_line * affine; if (gl->is_horizontal()) { sp_canvas_update_bbox (item, -1000000, round(pol_transformed[Geom::Y] - 16), 1000000, round(pol_transformed[Geom::Y] + 1)); } else if (gl->is_vertical()) { @@ -205,7 +206,6 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, //TODO: labels in angled guidelines are not showing up for some reason. sp_canvas_update_bbox (item, -1000000, -1000000, 1000000, 1000000); } - } // Returns 0.0 if point is on the guideline -- cgit v1.2.3 From 1aa94f627221dff927966c6df8f9e53d917b57df Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 15 Jan 2016 22:17:48 -0500 Subject: Remove buggy and presumptuous usage of SP_ACTIVE_DESKTOP in renderer code; fixes 1526701 Fixed bugs: - https://launchpad.net/bugs/1526701 (bzr r14585.1.1) --- src/display/guideline.cpp | 48 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 4b573a586..00fcfea6a 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -17,13 +17,8 @@ #include <2geom/coord.h> #include <2geom/transforms.h> #include "sp-canvas-util.h" -#include "knot.h" #include "guideline.h" #include "display/cairo-utils.h" - -#include "inkscape.h" // for inkscape_active_desktop() -#include "desktop.h" -#include "sp-namedview.h" #include "display/sp-canvas.h" #include "display/sodipodi-ctrl.h" #include "ui/control-manager.h" @@ -37,7 +32,7 @@ static void sp_guideline_render(SPCanvasItem *item, SPCanvasBuf *buf); static double sp_guideline_point(SPCanvasItem *item, Geom::Point p, SPCanvasItem **actual_item); -static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *data); +//static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *data); static void sp_guideline_drawline (SPCanvasBuf *buf, gint x0, gint y0, gint x1, gint y1, guint32 rgba); G_DEFINE_TYPE(SPGuideLine, sp_guideline, SP_TYPE_CANVAS_ITEM); @@ -72,8 +67,8 @@ static void sp_guideline_destroy(SPCanvasItem *object) SPGuideLine *gl = SP_GUIDELINE(object); - if (gl->origin != NULL && SP_IS_KNOT(gl->origin)) { - knot_unref(gl->origin); + if (gl->origin) { + sp_canvas_item_destroy(SP_CANVAS_ITEM(gl->origin)); } if (gl->label) { @@ -172,28 +167,19 @@ static void sp_guideline_update(SPCanvasItem *item, Geom::Affine const &affine, if ((SP_CANVAS_ITEM_CLASS(sp_guideline_parent_class))->update) { (SP_CANVAS_ITEM_CLASS(sp_guideline_parent_class))->update(item, affine, flags); } - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if (desktop && item->visible) { - if (!gl->origin) { - gl->origin = new SPKnot(desktop, "No tip yet!! XXX"); - - gl->origin->setAnchor(SP_ANCHOR_CENTER); - gl->origin->setMode(SP_CTRL_MODE_COLOR); - gl->origin->setFill(0xffffff80, 0xffffffff, 0xffffff80); - gl->origin->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_guideline_origin_move), gl)); - } + if (item->visible) { if (gl->locked) { - gl->origin->setStroke(0x0000ff88, 0x0000ff88, 0x0000ff88); - gl->origin->setShape(SP_CTRL_SHAPE_CROSS); - gl->origin->setSize(6); + g_object_set(G_OBJECT(gl->origin), "stroke_color", 0x0000ff88, + "shape", SP_CTRL_SHAPE_CROSS, + "size", 6., NULL); } else { - gl->origin->setStroke(0xff000088, 0xff0000ff, 0xff0000ff); - gl->origin->setShape(SP_CTRL_SHAPE_CIRCLE); - gl->origin->setSize(4); + g_object_set(G_OBJECT(gl->origin), "stroke_color", 0xff000088, + "shape", SP_CTRL_SHAPE_CIRCLE, + "size", 4., NULL); } gl->origin->moveto(gl->point_on_line); - gl->origin->updateCtrl(); + sp_canvas_item_request_update(SP_CANVAS_ITEM(gl->origin)); } gl->affine = affine; @@ -236,17 +222,24 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p gl->angle = tan( -gl->normal_to_line[Geom::X] / gl->normal_to_line[Geom::Y]); sp_guideline_set_position(gl, point_on_line); + gl->origin = (SPCtrl *)sp_canvas_item_new(parent, SP_TYPE_CTRL, NULL); + g_object_set(G_OBJECT(gl->origin), "anchor", SP_ANCHOR_CENTER, + "mode", SP_CTRL_MODE_COLOR, + "filled", FALSE, + "stroked", TRUE, + "stroke_color", 0x01000000, NULL); + return item; } -static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *gl) +/*static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *gl) { if(gl->locked) { return true; } sp_guideline_set_position(gl, *position); return false; -} +}*/ void sp_guideline_set_label(SPGuideLine *gl, const char* label) { @@ -281,6 +274,7 @@ void sp_guideline_set_normal(SPGuideLine *gl, Geom::Point normal_to_line) void sp_guideline_set_color(SPGuideLine *gl, unsigned int rgba) { gl->rgba = rgba; + g_object_set(G_OBJECT(gl->origin), "stroke_color", rgba, NULL); sp_canvas_item_request_update(SP_CANVAS_ITEM(gl)); } -- cgit v1.2.3 From b4153318caa10997f2288bba57fce9fab106b0dc Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 15 Jan 2016 22:19:49 -0500 Subject: Dead code cleanup (bzr r14585.1.2) --- src/display/guideline.cpp | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index 00fcfea6a..b3b0869b6 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -32,7 +32,6 @@ static void sp_guideline_render(SPCanvasItem *item, SPCanvasBuf *buf); static double sp_guideline_point(SPCanvasItem *item, Geom::Point p, SPCanvasItem **actual_item); -//static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *data); static void sp_guideline_drawline (SPCanvasBuf *buf, gint x0, gint y0, gint x1, gint y1, guint32 rgba); G_DEFINE_TYPE(SPGuideLine, sp_guideline, SP_TYPE_CANVAS_ITEM); @@ -232,15 +231,6 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p return item; } -/*static gboolean sp_guideline_origin_move(SPKnot *knot, Geom::Point *position, guint state, SPGuideLine *gl) -{ - if(gl->locked) { - return true; - } - sp_guideline_set_position(gl, *position); - return false; -}*/ - void sp_guideline_set_label(SPGuideLine *gl, const char* label) { if (gl->label) { -- cgit v1.2.3 From 99c7ac2b88a264d1415dacb073b5b1a8da4bf85e Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 16 Jan 2016 10:56:00 -0500 Subject: Header cleanup (bzr r14585.1.3) --- src/display/guideline.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index b3b0869b6..d34112046 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -21,9 +21,6 @@ #include "display/cairo-utils.h" #include "display/sp-canvas.h" #include "display/sodipodi-ctrl.h" -#include "ui/control-manager.h" - -using Inkscape::ControlManager; static void sp_guideline_destroy(SPCanvasItem *object); -- cgit v1.2.3 From d7f53de7a19a00bf0f01f4824498ae64d9cd12a6 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 16 Jan 2016 11:13:25 -0500 Subject: Coalesce g_object_new/g_object_set calls; change guide origin pickable to false so that guides can be grabbed by the origin again (bzr r14593) --- src/display/guideline.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/display/guideline.cpp') diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index d34112046..126fcf87c 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -218,12 +218,13 @@ SPCanvasItem *sp_guideline_new(SPCanvasGroup *parent, char* label, Geom::Point p gl->angle = tan( -gl->normal_to_line[Geom::X] / gl->normal_to_line[Geom::Y]); sp_guideline_set_position(gl, point_on_line); - gl->origin = (SPCtrl *)sp_canvas_item_new(parent, SP_TYPE_CTRL, NULL); - g_object_set(G_OBJECT(gl->origin), "anchor", SP_ANCHOR_CENTER, - "mode", SP_CTRL_MODE_COLOR, - "filled", FALSE, - "stroked", TRUE, - "stroke_color", 0x01000000, NULL); + gl->origin = (SPCtrl *) sp_canvas_item_new(parent, SP_TYPE_CTRL, + "anchor", SP_ANCHOR_CENTER, + "mode", SP_CTRL_MODE_COLOR, + "filled", FALSE, + "stroked", TRUE, + "stroke_color", 0x01000000, NULL); + gl->origin->pickable = false; return item; } -- cgit v1.2.3