diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2007-11-03 17:38:18 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2007-11-03 17:38:18 +0000 |
| commit | 9b91f5d8683af39ec035e7116154a91d5d2ae4da (patch) | |
| tree | 1de2839b488b4bf0d77a52979062ebab058c5a48 /src/live_effects | |
| parent | fix compilation. added #include "libnr/nr-values.h" to snapped-line.cpp (diff) | |
| download | inkscape-9b91f5d8683af39ec035e7116154a91d5d2ae4da.tar.gz inkscape-9b91f5d8683af39ec035e7116154a91d5d2ae4da.zip | |
make setup_notepath function for LPE's and LPE parameters.
(bzr r4018)
Diffstat (limited to 'src/live_effects')
| -rw-r--r-- | src/live_effects/effect.cpp | 28 | ||||
| -rw-r--r-- | src/live_effects/effect.h | 7 | ||||
| -rw-r--r-- | src/live_effects/lpe-gears.cpp | 10 | ||||
| -rw-r--r-- | src/live_effects/lpe-gears.h | 2 | ||||
| -rw-r--r-- | src/live_effects/parameter/parameter.h | 5 | ||||
| -rw-r--r-- | src/live_effects/parameter/path.cpp | 9 | ||||
| -rw-r--r-- | src/live_effects/parameter/path.h | 1 |
7 files changed, 56 insertions, 6 deletions
diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 859bf8230..03a27b6da 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -35,6 +35,8 @@ #include "live_effects/lpe-gears.h" #include "live_effects/lpe-curvestitch.h" +#include "nodepath.h" + namespace Inkscape { namespace LivePathEffect { @@ -96,7 +98,6 @@ Effect::Effect(LivePathEffectObject *lpeobject) tooltips = NULL; lpeobj = lpeobject; oncanvasedit_it = param_map.begin(); - straight_original_path = false; } Effect::~Effect() @@ -255,13 +256,13 @@ Effect::getWidget() } -Inkscape::XML::Node * +Inkscape::XML::Node * Effect::getRepr() { return SP_OBJECT_REPR(lpeobj); } -SPDocument * +SPDocument * Effect::getSPDoc() { if (SP_OBJECT_DOCUMENT(lpeobj) == NULL) g_message("Effect::getSPDoc() returns NULL"); @@ -269,6 +270,19 @@ Effect::getSPDoc() } Parameter * +Effect::getParameter(const char * key) +{ + Glib::ustring stringkey(key); + + param_map_type::iterator it = param_map.find(stringkey); + if (it != param_map.end()) { + return it->second; + } else { + return NULL; + } +} + +Parameter * Effect::getNextOncanvasEditableParam() { oncanvasedit_it++; @@ -318,6 +332,14 @@ Effect::resetDefaults(SPItem * /*item*/) // do nothing for simple effects } +void +Effect::setup_notepath(Inkscape::NodePath::Path *np) +{ + np->show_helperpath = true; + np->helperpath_rgba = 0xff0000ff; + np->helperpath_width = 1.0; +} + } /* namespace LivePathEffect */ diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index 07dd72e47..221f94b40 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -39,6 +39,10 @@ namespace XML { class Node; } +namespace NodePath { + class Path ; +} + namespace LivePathEffect { enum EffectType { @@ -74,13 +78,14 @@ public: Inkscape::XML::Node * getRepr(); SPDocument * getSPDoc(); LivePathEffectObject * getLPEObj() {return lpeobj;}; + Parameter * getParameter(const char * key); void readallParameters(Inkscape::XML::Node * repr); void setParameter(const gchar * key, const gchar * new_value); void editNextParamOncanvas(SPItem * item, SPDesktop * desktop); - bool straight_original_path; + virtual void setup_notepath(Inkscape::NodePath::Path *np); protected: Effect(LivePathEffectObject *lpeobject); diff --git a/src/live_effects/lpe-gears.cpp b/src/live_effects/lpe-gears.cpp index 30500e3ab..d5bb8e5ef 100644 --- a/src/live_effects/lpe-gears.cpp +++ b/src/live_effects/lpe-gears.cpp @@ -14,6 +14,8 @@ #include <2geom/bezier-to-sbasis.h> #include <2geom/path.h> +#include "nodepath.h" + using std::vector; using namespace Geom; @@ -212,8 +214,6 @@ LPEGears::LPEGears(LivePathEffectObject *lpeobject) : { registerParameter( dynamic_cast<Parameter *>(&teeth) ); registerParameter( dynamic_cast<Parameter *>(&phi) ); - - straight_original_path = true; } LPEGears::~LPEGears() @@ -252,6 +252,12 @@ LPEGears::doEffect (std::vector<Geom::Path> & path_in) return path_out; } +void +LPEGears::setup_notepath(Inkscape::NodePath::Path *np) +{ + Effect::setup_notepath(np); + np->straight_path = true; +} } // namespace LivePathEffect } /* namespace Inkscape */ diff --git a/src/live_effects/lpe-gears.h b/src/live_effects/lpe-gears.h index c3cea9230..4109c2ed0 100644 --- a/src/live_effects/lpe-gears.h +++ b/src/live_effects/lpe-gears.h @@ -24,6 +24,8 @@ public: std::vector<Geom::Path> doEffect (std::vector<Geom::Path> & path_in); + void setup_notepath(Inkscape::NodePath::Path *np); + private: ScalarParam teeth; ScalarParam phi; diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h index a41d5f7c6..614f799c0 100644 --- a/src/live_effects/parameter/parameter.h +++ b/src/live_effects/parameter/parameter.h @@ -25,6 +25,10 @@ namespace Gtk { namespace Inkscape { +namespace NodePath { + class Path ; +} + namespace LivePathEffect { class Effect; @@ -49,6 +53,7 @@ public: virtual Glib::ustring * param_getTooltip() { return ¶m_tooltip; }; virtual void param_editOncanvas(SPItem * item, SPDesktop * dt) { return; }; + virtual void param_setup_notepath(Inkscape::NodePath::Path *np) { return; }; Glib::ustring param_key; Inkscape::UI::Widget::Registry * param_wr; diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index 68f7be4a9..53e15c9a5 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -31,6 +31,7 @@ #include "node-context.h" #include "desktop-handles.h" #include "selection.h" +#include "nodepath.h" namespace Inkscape { @@ -141,6 +142,14 @@ PathParam::param_editOncanvas(SPItem * item, SPDesktop * dt) } void +PathParam::param_setup_notepath(Inkscape::NodePath::Path *np) +{ + np->show_helperpath = true; + np->helperpath_rgba = 0x009000ff; + np->helperpath_width = 1.0; +} + +void PathParam::param_write_to_repr(const char * svgd) { param_effect->getRepr()->setAttribute(param_key.c_str(), svgd); diff --git a/src/live_effects/parameter/path.h b/src/live_effects/parameter/path.h index 23f168c48..2f8c766bd 100644 --- a/src/live_effects/parameter/path.h +++ b/src/live_effects/parameter/path.h @@ -47,6 +47,7 @@ public: void param_set_and_write_new_value (Geom::Piecewise<Geom::D2<Geom::SBasis> > newpath); void param_editOncanvas(SPItem * item, SPDesktop * dt); + void param_setup_notepath(Inkscape::NodePath::Path *np); sigc::signal <void> signal_path_pasted; sigc::signal <void> signal_path_changed; |
