summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ba065f4)
raw | patch | inline | side by side (parent: ba065f4)
author | johanengelen <johanengelen@users.sourceforge.net> | |
Thu, 20 Mar 2008 23:00:52 +0000 (23:00 +0000) | ||
committer | johanengelen <johanengelen@users.sourceforge.net> | |
Thu, 20 Mar 2008 23:00:52 +0000 (23:00 +0000) |
* made special KnotHolder for Pointparameters.
todo:
* pointparam numerical widgets display SVG info, instead of desktop coordinates. must be fixed
* knots cannot be selected and moved by keys
todo:
* pointparam numerical widgets display SVG info, instead of desktop coordinates. must be fixed
* knots cannot be selected and moved by keys
index 075f7544f88ee4fec9409bd4777be6eaf146d5ff..841d11d270e17a2cb9c066b489ea8f98040eedb8 100644 (file)
*/
#include "live_effects/parameter/point.h"
+#include "live_effects/parameter/pointparam-knotholder.h"
#include "live_effects/effect.h"
#include "svg/svg.h"
#include "svg/stringstream.h"
tools_switch_current(TOOLS_NODES);
}
- ShapeEditor * shape_editor = SP_NODE_CONTEXT( dt->event_context )->shape_editor;
- shape_editor->set_item_lpe_point_parameter(item, SP_OBJECT(param_effect->getLPEObj()), param_key.c_str());
+ PointParamKnotHolder * kh = pointparam_knot_holder_new( dt, SP_OBJECT(param_effect->getLPEObj()), param_key.c_str(), item);
+ if (kh) {
+ pointparam_knot_holder_add_full(kh, * dynamic_cast<Geom::Point *>( this ), NULL, knot_shape, knot_mode, knot_color, param_getTooltip()->c_str() );
+
+ ShapeEditor * shape_editor = SP_NODE_CONTEXT( dt->event_context )->shape_editor;
+ shape_editor->set_knotholder(kh);
+ }
}
@@ -146,6 +152,15 @@ PointParam::param_transform_multiply(Geom::Matrix const& postmul, bool /*set*/)
}
+void
+PointParam::set_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color)
+{
+ knot_shape = shape;
+ knot_mode = mode;
+ knot_color = color;
+}
+
+
// CALLBACKS:
void
index c167807d9cbd641f33e5925a0010aaec90b81929..e200921ab88f9bfa1b78ec3bf8a791461741aefb 100644 (file)
#include "live_effects/parameter/parameter.h"
+#include "knot-enums.h"
+
namespace Inkscape {
namespace LivePathEffect {
virtual void param_transform_multiply(Geom::Matrix const& /*postmul*/, bool /*set*/);
+ void set_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color);
+
private:
PointParam(const PointParam&);
PointParam& operator=(const PointParam&);
void on_button_click();
Geom::Point defvalue;
+
+ SPKnotShapeType knot_shape;
+ SPKnotModeType knot_mode;
+ guint32 knot_color;
};
diff --git a/src/shape-editor.cpp b/src/shape-editor.cpp
index b1da900f40a3153d2a38244ec60151bd33536f90..dd8e1124e675a0c5847e74eeb39738d0c662798d 100644 (file)
--- a/src/shape-editor.cpp
+++ b/src/shape-editor.cpp
#include "desktop.h"
#include "desktop-handles.h"
#include "knotholder.h"
+#include "live_effects/parameter/pointparam-knotholder.h"
#include "node-context.h"
#include "xml/node-event-vector.h"
#include "prefs-utils.h"
/** Please note that this function only works for path parameters.
* All other parameters probably will crash Inkscape!
*/
-void ShapeEditor::set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject, const char * key) {
-
+void ShapeEditor::set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject, const char * key)
+{
unset_item();
this->grab_node = -1;
@@ -236,11 +237,19 @@ void ShapeEditor::set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject,
}
}
-/** Please note that this function only works for point parameters.
-* All other parameters probably will crash Inkscape!
+/**
+* pass a new knotholder to ShapeEditor to manage (and delete)
*/
-void ShapeEditor::set_item_lpe_point_parameter(SPItem */*item*/, SPObject */*lpeobject*/, const char * /*key*/) {
- g_message("ShapeEditor::set_item_lpe_point_parameter has not been implemented yet!");
+void
+ShapeEditor::set_knotholder(SPKnotHolder * knot_holder)
+{
+ unset_item();
+
+ this->grab_node = -1;
+
+ if (knot_holder) {
+ this->knotholder = knot_holder;
+ }
}
diff --git a/src/shape-editor.h b/src/shape-editor.h
index c78fb0d4ac4bc79eaa9d54b05a0f58a305acfb58..bc4d9eff3f7bef0efbcb537745a64b598d172ea8 100644 (file)
--- a/src/shape-editor.h
+++ b/src/shape-editor.h
void set_item (SPItem *item);
void set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject, const char * key);
- void set_item_lpe_point_parameter(SPItem *item, SPObject *lpeobject, const char * key);
+ void set_knotholder(SPKnotHolder * knot_holder);
void reset_item ();
void unset_item ();
diff --git a/src/verbs.h b/src/verbs.h
index 2961096f778ceddc27e3d2e72f0156351a5e4037..84aeb17c3db0e107d161550ea30eb64ddf164dce 100644 (file)
--- a/src/verbs.h
+++ b/src/verbs.h
SP_VERB_CONTEXT_DROPPER,
SP_VERB_CONTEXT_CONNECTOR,
SP_VERB_CONTEXT_PAINTBUCKET,
+ SP_VERB_CONTEXT_LPE, //not really a tool but for editing LPE parameters on-canvas for example
/* Tool preferences */
SP_VERB_CONTEXT_SELECT_PREFS,
SP_VERB_CONTEXT_NODE_PREFS,