Code

Make text widget for TextParams work and re-enable it
authorcilix42 <cilix42@users.sourceforge.net>
Wed, 30 Jul 2008 10:56:10 +0000 (10:56 +0000)
committercilix42 <cilix42@users.sourceforge.net>
Wed, 30 Jul 2008 10:56:10 +0000 (10:56 +0000)
src/live_effects/parameter/text.cpp
src/live_effects/parameter/text.h
src/ui/widget/registered-widget.cpp
src/ui/widget/text.cpp
src/ui/widget/text.h

index 4b36edf78cf33dee126781358516552bc7ad7954..bf11192dd23cf5778947f4cf93260f310fb8595e 100644 (file)
@@ -28,6 +28,7 @@ TextParam::TextParam( const Glib::ustring& label, const Glib::ustring& tip,
                       const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,
                       Effect* effect, const Glib::ustring default_value )
     : Parameter(label, tip, key, wr, effect),
+      value(default_value),
       defvalue(default_value)
 {
     canvas_text = (SPCanvasText *) sp_canvastext_new(sp_desktop_tempgroup(inkscape_active_desktop()), Geom::Point(0,0), "");
@@ -69,32 +70,27 @@ TextParam::param_readSVGValue(const gchar * strvalue)
 gchar *
 TextParam::param_getSVGValue() const
 {
-    return (gchar *) defvalue.c_str();
+    return (gchar *) value.c_str();
 }
 
 Gtk::Widget *
 TextParam::param_newWidget(Gtk::Tooltips * /*tooltips*/)
 {
-    /**
     Inkscape::UI::Widget::RegisteredText *rsu = Gtk::manage(new Inkscape::UI::Widget::RegisteredText(
         param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc()));
 
-    rsu->setText("");
+    rsu->setText(value.c_str());
     rsu->setProgrammatically = false;
 
     rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change text parameter"));
 
     return dynamic_cast<Gtk::Widget *> (rsu);
-    **/
-
-    // widget is disabled until it works correctly
-    return NULL;
 }
 
 void
 TextParam::param_setValue(const Glib::ustring newvalue)
 {
-    defvalue = newvalue;
+    value = newvalue;
 
     sp_canvastext_set_text (canvas_text, newvalue.c_str());
 }
index 432ceeed193a82daeebd001d4e9e77a60bd3f9c6..ee47f028f199513017d0f0f1f05084eadb4dd636 100644 (file)
@@ -51,6 +51,7 @@ private:
     double anchor_x;
     double anchor_y;
 
+    Glib::ustring value;
     Glib::ustring defvalue;
 
     SPCanvasText *canvas_text;
index b91e5d998987cf32a8d8a05f47adee3d80c250ea..2cc6e3c62d9121d6cb37e8a21c5c647a1115e5fb 100644 (file)
@@ -273,6 +273,8 @@ RegisteredText::on_activate()
     write_to_xml(os.str().c_str());
     set_sensitive(true);
 
+    setText(os.str().c_str());
+
     _wr->setUpdating (false);
 }
 
index 974e85054cfb02962fa1ccc943e3b62010efb9a0..3284af54a277354608463debd3be9e8b3fde8fef 100644 (file)
@@ -39,7 +39,6 @@ Text::Text(Glib::ustring const &label, Glib::ustring const &tooltip,
     : Labelled(label, tooltip, new Gtk::Entry(), suffix, icon, mnemonic),
       setProgrammatically(false)
 {
-    //static_cast<Gtk::Entry*>(_widget)->set_numeric();
 }
 
 /** Get the text in the entry */
@@ -47,17 +46,15 @@ const char *
 Text::getText() const
 {
     g_assert(_widget != NULL);
-    //return g_strdup_printf("%f", static_cast<Gtk::SpinButton*>(_widget)->get_value());
     return static_cast<Gtk::Entry*>(_widget)->get_text().c_str();
 }
 
 /** Sets the text of the text entry */
 void
-Text::setText(char* text)
+Text::setText(const char* text)
 {
     g_assert(_widget != NULL);
     setProgrammatically = true; // callback is supposed to reset back, if it cares
-    //static_cast<Gtk::SpinButton*>(_widget)->set_value(42.43); // FIXME: set correctly
     static_cast<Gtk::Entry*>(_widget)->set_text(text); // FIXME: set correctly
 }
 
@@ -65,7 +62,6 @@ Text::setText(char* text)
 Glib::SignalProxy0<void>
 Text::signal_activate()
 {
-    //return static_cast<Gtk::SpinButton*>(_widget)->signal_value_changed();
     return static_cast<Gtk::Entry*>(_widget)->signal_activate();
 }
 
index a1ec033555550ccab06a56e6c8db2e9b5604545f..038e6e5dd57a99427de369dab1e72e7d41c5c87d 100644 (file)
@@ -34,7 +34,7 @@ public:
 
     const char* getText() const;
 
-    void setText(char* text);
+    void setText(const char* text);
 
     void update();