summaryrefslogtreecommitdiffstats
path: root/src/ui/tool/control-point.cpp
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2012-05-17 09:10:15 +0000
committerJon A. Cruz <jon@joncruz.org>2012-05-17 09:10:15 +0000
commitb6ea2239ffc053e66238eb8484bbc5c1ba8700ac (patch)
treeaa69d18959e71ca3a5d268acdc24b85e24663e29 /src/ui/tool/control-point.cpp
parentFix for 997888 : Merge into Document Properties (diff)
downloadinkscape-b6ea2239ffc053e66238eb8484bbc5c1ba8700ac.tar.gz
inkscape-b6ea2239ffc053e66238eb8484bbc5c1ba8700ac.zip
Extended resizing to node handles.
(bzr r11375)
Diffstat (limited to 'src/ui/tool/control-point.cpp')
-rw-r--r--src/ui/tool/control-point.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ui/tool/control-point.cpp b/src/ui/tool/control-point.cpp
index a10db03c7..9c559be03 100644
--- a/src/ui/tool/control-point.cpp
+++ b/src/ui/tool/control-point.cpp
@@ -19,6 +19,7 @@
#include "preferences.h"
#include "snap-preferences.h"
#include "sp-namedview.h"
+#include "ui/control-manager.h"
#include "ui/tool/control-point.h"
#include "ui/tool/event-utils.h"
#include "ui/tool/transform-handle-set.h"
@@ -105,6 +106,25 @@ ControlPoint::ControlPoint(SPDesktop *d, Geom::Point const &initial_pos, SPAncho
_commonInit();
}
+ControlPoint::ControlPoint(SPDesktop *d, Geom::Point const &initial_pos, SPAnchorType anchor,
+ ControlType type,
+ ColorSet const &cset, SPCanvasGroup *group) :
+ _desktop(d),
+ _canvas_item(NULL),
+ _cset(cset),
+ _state(STATE_NORMAL),
+ _position(initial_pos),
+ _lurking(false)
+{
+ _canvas_item = ControlManager::getManager().createControl(group ? group : sp_desktop_controls(_desktop), type);
+ g_object_set(_canvas_item,
+ "anchor", anchor,
+ "filled", TRUE, "fill_color", _cset.normal.fill,
+ "stroked", TRUE, "stroke_color", _cset.normal.stroke,
+ "mode", SP_CTRL_MODE_XOR, NULL);
+ _commonInit();
+}
+
ControlPoint::~ControlPoint()
{
// avoid storing invalid points in mouseovered_point
@@ -528,6 +548,13 @@ void ControlPoint::_setState(State state)
_state = state;
}
+void ControlPoint::_handleControlStyling()
+{
+ if (_canvas_item->ctrlType != CTRL_TYPE_UNKNOWN) {
+ ControlManager::getManager().updateItem(_canvas_item);
+ }
+}
+
void ControlPoint::_setColors(ColorEntry colors)
{
g_object_set(_canvas_item, "fill_color", colors.fill, "stroke_color", colors.stroke, NULL);