Author: Yu Chen <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl