diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2010-07-27 19:56:51 +0000 |
|---|---|---|
| committer | Johan Engelen <goejendaagh@zonnet.nl> | 2010-07-27 19:56:51 +0000 |
| commit | afd21a94139c8e747ef048bc64ceea0fc8d3d572 (patch) | |
| tree | 92a17af43d1859cd257df4e9f8870d761585d89d /src/live_effects/parameter | |
| parent | commit missing files (diff) | |
| download | inkscape-afd21a94139c8e747ef048bc64ceea0fc8d3d572.tar.gz inkscape-afd21a94139c8e747ef048bc64ceea0fc8d3d572.zip | |
powerstroke: arbitrary number of control points.
(bzr r9659)
Diffstat (limited to 'src/live_effects/parameter')
| -rw-r--r-- | src/live_effects/parameter/array.h | 9 | ||||
| -rw-r--r-- | src/live_effects/parameter/powerstrokepointarray.cpp | 21 | ||||
| -rw-r--r-- | src/live_effects/parameter/powerstrokepointarray.h | 4 |
3 files changed, 20 insertions, 14 deletions
diff --git a/src/live_effects/parameter/array.h b/src/live_effects/parameter/array.h index e5f230111..89c344594 100644 --- a/src/live_effects/parameter/array.h +++ b/src/live_effects/parameter/array.h @@ -85,10 +85,7 @@ public: g_free(str); } -private: - ArrayParam(const ArrayParam&); - ArrayParam& operator=(const ArrayParam&); - +protected: std::vector<StorageType> _vector; size_t _default_size; @@ -103,6 +100,10 @@ private: } StorageType readsvg(const gchar * str); + +private: + ArrayParam(const ArrayParam&); + ArrayParam& operator=(const ArrayParam&); }; diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp index 923266a94..49ef05319 100644 --- a/src/live_effects/parameter/powerstrokepointarray.cpp +++ b/src/live_effects/parameter/powerstrokepointarray.cpp @@ -33,7 +33,7 @@ PowerStrokePointArrayParam::PowerStrokePointArrayParam( const Glib::ustring& lab { knot_shape = SP_KNOT_SHAPE_DIAMOND; knot_mode = SP_KNOT_MODE_XOR; - knot_color = 0xffffff00; + knot_color = 0xff00ff00; handle_tip = g_strdup(htip); } @@ -110,15 +110,16 @@ PowerStrokePointArrayParamKnotHolderEntity::PowerStrokePointArrayParamKnotHolder void PowerStrokePointArrayParamKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint /*state*/) { -// Geom::Point const s = snap_knot_position(p); -// pparam->param_setValue(s); -// sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); + Geom::Point const s = snap_knot_position(p); + _pparam->_vector.at(_index) = s; +// _pparam->param_set_and_write_new_value(_pparam->_vector); + sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); } Geom::Point PowerStrokePointArrayParamKnotHolderEntity::knot_get() { - Geom::Point canvas_point; + Geom::Point canvas_point = _pparam->_vector.at(_index); return canvas_point; } @@ -131,11 +132,11 @@ PowerStrokePointArrayParamKnotHolderEntity::knot_click(guint /*state*/) void PowerStrokePointArrayParam::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { - //PowerStrokePointArrayParamKnotHolderEntity *e = new PowerStrokePointArrayParamKnotHolderEntity(this); - // TODO: can we ditch handleTip() etc. because we have access to handle_tip etc. itself??? - //e->create(desktop, item, knotholder, handleTip(), knot_shape, knot_mode, knot_color); - //knotholder->add(e); - + for (unsigned int i = 0; i < _vector.size(); ++i) { + PowerStrokePointArrayParamKnotHolderEntity *e = new PowerStrokePointArrayParamKnotHolderEntity(this, i); + e->create(desktop, item, knotholder, handle_tip, knot_shape, knot_mode, knot_color); + knotholder->add(e); + } } } /* namespace LivePathEffect */ diff --git a/src/live_effects/parameter/powerstrokepointarray.h b/src/live_effects/parameter/powerstrokepointarray.h index 0a33c0369..66eb3c987 100644 --- a/src/live_effects/parameter/powerstrokepointarray.h +++ b/src/live_effects/parameter/powerstrokepointarray.h @@ -22,6 +22,8 @@ namespace Inkscape { namespace LivePathEffect { +class PowerStrokePointArrayParamKnotHolderEntity; + class PowerStrokePointArrayParam : public ArrayParam<Geom::Point> { public: PowerStrokePointArrayParam( const Glib::ustring& label, @@ -41,6 +43,8 @@ public: virtual bool providesKnotHolderEntities() { return true; } virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); + friend class PowerStrokePointArrayParamKnotHolderEntity; + private: PowerStrokePointArrayParam(const PowerStrokePointArrayParam&); PowerStrokePointArrayParam& operator=(const PowerStrokePointArrayParam&); |
