From ddfdfbcbbe112f2f23199c9b89916b6a8529dbf3 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Tue, 29 Jul 2008 18:00:46 +0000 Subject: New registered widget (text entry box). (bzr r6461) --- src/ui/widget/registered-widget.cpp | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/ui/widget/registered-widget.cpp') diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp index 6367ce218..b91e5d998 100644 --- a/src/ui/widget/registered-widget.cpp +++ b/src/ui/widget/registered-widget.cpp @@ -233,6 +233,50 @@ RegisteredScalar::on_value_changed() } +/*######################################### + * Registered TEXT + */ + +RegisteredText::~RegisteredText() +{ + _activate_connection.disconnect(); +} + +RegisteredText::RegisteredText ( const Glib::ustring& label, const Glib::ustring& tip, + const Glib::ustring& key, Registry& wr, Inkscape::XML::Node* repr_in, + SPDocument * doc_in ) + : RegisteredWidget(label, tip) +{ + init_parent(key, wr, repr_in, doc_in); + + setText(""); + _activate_connection = signal_activate().connect (sigc::mem_fun (*this, &RegisteredText::on_activate)); +} + +void +RegisteredText::on_activate() +{ + if (setProgrammatically) { + setProgrammatically = false; + return; + } + + if (_wr->isUpdating()) { + return; + } + _wr->setUpdating (true); + + Inkscape::SVGOStringStream os; + os << getText(); + + set_sensitive(false); + write_to_xml(os.str().c_str()); + set_sensitive(true); + + _wr->setUpdating (false); +} + + /*######################################### * Registered COLORPICKER */ -- cgit v1.2.3