Author: Yu Chen <jco...@gmail.com> Date: Wed Mar 21 20:27:07 2012 +0800
When user finish zoom level customize by hiting enter, the entry text will auto formated by adding a %. --- synfig-studio/src/gui/preview.cpp | 27 +++++++++++++++++++++++---- synfig-studio/src/gui/preview.h | 1 + 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/synfig-studio/src/gui/preview.cpp b/synfig-studio/src/gui/preview.cpp index 150ca65..8c239f5 100644 --- a/synfig-studio/src/gui/preview.cpp +++ b/synfig-studio/src/gui/preview.cpp @@ -455,9 +455,13 @@ Widget_Preview::Widget_Preview(): row = *(factor_refTreeModel->append()); row[factors.factor_id] = "5"; row[factors.factor_value] = "Fit"; - //set 100% as default zoom factor zoom_preview.set_text_column(factors.factor_value); - zoom_preview.get_entry()->set_text("100%"); + + Gtk::Entry* entry = zoom_preview.get_entry(); + entry->set_text("100%"); //default zoom level + entry->set_icon_from_stock(Gtk::StockID("synfig-zoom")); + entry->signal_activate().connect(sigc::mem_fun(*this, &Widget_Preview::on_zoom_entry_activated)); + //set the zoom widget width zoom_preview.set_size_request(100, -1); @@ -612,8 +616,6 @@ bool studio::Widget_Preview::redraw(GdkEventExpose */*heh*/) int nw, nh; Gtk::Entry* entry = zoom_preview.get_entry(); - entry->set_icon_from_stock(Gtk::StockID("synfig-zoom")); - Glib::ustring text = entry->get_text(); locale_from_utf8 (text); const char *c = text.c_str(); @@ -1032,6 +1034,23 @@ void studio::Widget_Preview::eraseall() } +void Widget_Preview::on_zoom_entry_activated() +{ + Gtk::Entry* entry = zoom_preview.get_entry(); + Glib::ustring text = entry->get_text(); + locale_from_utf8 (text); + const std::string c = text.c_str(); + + if (text == "Fit" || text == "fit") + { + entry->set_text("Fit"); + } + + else + { + entry->set_text(c + "%"); + } +} //shortcut keys TODO: customizable shortcut keys would be awesome. bool studio::Widget_Preview::on_key_pressed(GdkEventKey *ev) diff --git a/synfig-studio/src/gui/preview.h b/synfig-studio/src/gui/preview.h index 5431efb..5db6af7 100644 --- a/synfig-studio/src/gui/preview.h +++ b/synfig-studio/src/gui/preview.h @@ -285,6 +285,7 @@ private: Gtk::Button *play_pausebutton; bool on_key_pressed(GdkEventKey*); + void on_zoom_entry_activated(); }; }; // END of namespace studio ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl