summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2007-10-28 16:03:07 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2007-10-28 16:03:07 +0000
commit96b65f32d922a989131ae91798801ea54c4e8b10 (patch)
tree627327d9468b399e064111734831864c4730bc2a /src/live_effects/parameter
parentadded perfectboundcover.inx to translatable extensions (diff)
downloadinkscape-96b65f32d922a989131ae91798801ea54c4e8b10.tar.gz
inkscape-96b65f32d922a989131ae91798801ea54c4e8b10.zip
LPE: implement 'edit next LPE parameter'. Accessible through key '7'.
(bzr r3968)
Diffstat (limited to 'src/live_effects/parameter')
-rw-r--r--src/live_effects/parameter/parameter.cpp1
-rw-r--r--src/live_effects/parameter/parameter.h7
-rw-r--r--src/live_effects/parameter/path.cpp36
-rw-r--r--src/live_effects/parameter/path.h2
4 files changed, 34 insertions, 12 deletions
diff --git a/src/live_effects/parameter/parameter.cpp b/src/live_effects/parameter/parameter.cpp
index efca9908d..9ee7faae4 100644
--- a/src/live_effects/parameter/parameter.cpp
+++ b/src/live_effects/parameter/parameter.cpp
@@ -28,6 +28,7 @@ namespace LivePathEffect {
Parameter::Parameter( const Glib::ustring& label, const Glib::ustring& tip,
const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,
Effect* effect )
+ : oncanvas_editable(false)
{
param_label = label;
param_tooltip = tip;
diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h
index a6b05bf36..a41d5f7c6 100644
--- a/src/live_effects/parameter/parameter.h
+++ b/src/live_effects/parameter/parameter.h
@@ -16,6 +16,9 @@
#include "ui/widget/registry.h"
#include "ui/widget/registered-widget.h"
+struct SPDesktop;
+struct SPItem;
+
namespace Gtk {
class Widget;
}
@@ -45,10 +48,14 @@ public:
virtual Gtk::Widget * param_getWidget() = 0;
virtual Glib::ustring * param_getTooltip() { return &param_tooltip; };
+ virtual void param_editOncanvas(SPItem * item, SPDesktop * dt) { return; };
+
Glib::ustring param_key;
Inkscape::UI::Widget::Registry * param_wr;
Glib::ustring param_label;
+ bool oncanvas_editable;
+
protected:
Glib::ustring param_tooltip;
diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp
index db1064511..2b558d2dd 100644
--- a/src/live_effects/parameter/path.cpp
+++ b/src/live_effects/parameter/path.cpp
@@ -46,6 +46,7 @@ PathParam::PathParam( const Glib::ustring& label, const Glib::ustring& tip,
edit_button = NULL;
defvalue = g_strdup(default_value);
param_readSVGValue(defvalue);
+ oncanvas_editable = true;
}
PathParam::~PathParam()
@@ -128,18 +129,35 @@ PathParam::param_getWidget()
}
void
-PathParam::on_edit_button_click()
+PathParam::param_editOncanvas(SPItem * item, SPDesktop * dt)
{
- // Switch to node edit tool:
- tools_switch_current(TOOLS_NODES);
+ // If not already in nodecontext, goto it!
+ if (!tools_isactive(dt, TOOLS_NODES)) {
+ tools_switch_current(TOOLS_NODES);
+ }
- // set this parameter to edit:
- ShapeEditor * shape_editor = SP_NODE_CONTEXT( SP_ACTIVE_DESKTOP->event_context )->shape_editor;
- SPItem * item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
+ ShapeEditor * shape_editor = SP_NODE_CONTEXT( dt->event_context )->shape_editor;
shape_editor->set_item_livepatheffect_parameter(item, SP_OBJECT(param_effect->getLPEObj()), param_key.c_str());
}
void
+PathParam::param_write_to_repr(const char * svgd)
+{
+ param_effect->getRepr()->setAttribute(param_key.c_str(), svgd);
+}
+
+
+/* CALLBACK FUNCTIONS FOR THE BUTTONS */
+void
+PathParam::on_edit_button_click()
+{
+ SPItem * item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
+ if (item != NULL) {
+ param_editOncanvas(item, SP_ACTIVE_DESKTOP);
+ }
+}
+
+void
PathParam::on_paste_button_click()
{
// check if something is in the clipboard
@@ -170,12 +188,6 @@ PathParam::on_paste_button_click()
}
}
-void
-PathParam::param_write_to_repr(const char * svgd)
-{
- param_effect->getRepr()->setAttribute(param_key.c_str(), svgd);
-}
-
} /* namespace LivePathEffect */
diff --git a/src/live_effects/parameter/path.h b/src/live_effects/parameter/path.h
index 14387f419..6ba6e7e4b 100644
--- a/src/live_effects/parameter/path.h
+++ b/src/live_effects/parameter/path.h
@@ -44,6 +44,8 @@ public:
void param_set_default();
+ void param_editOncanvas(SPItem * item, SPDesktop * dt);
+
sigc::signal <void> signal_path_pasted;
sigc::signal <void> signal_path_changed;