Author: Yu Chen <[email protected]>
Date: Wed Mar 28 05:56:08 2012 +0800
Make the toolbar can be hiden/shown by accelerator key
---
synfig-studio/src/gui/preview.cpp | 27 ++++++++++++++++++++++++---
synfig-studio/src/gui/preview.h | 5 +++++
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/synfig-studio/src/gui/preview.cpp
b/synfig-studio/src/gui/preview.cpp
index c17e835..c27c515 100644
--- a/synfig-studio/src/gui/preview.cpp
+++ b/synfig-studio/src/gui/preview.cpp
@@ -359,7 +359,7 @@ Widget_Preview::Widget_Preview():
#if 1
//2nd row: prevframe play/pause nextframe loop | halt-render re-preview
erase-all
- Gtk::HBox *controller = manage(new Gtk::HBox);
+ controller = Gtk::manage(new class Gtk::HBox(false, 0));
//prev rendered frame
Gtk::Button *prev_framebutton;
@@ -477,7 +477,7 @@ Widget_Preview::Widget_Preview():
controller->pack_end(zoom_preview, Gtk::PACK_SHRINK, 0);
- controller->show_all();
+ show_controller();
//3rd row: previewing frame numbering and rendered frame numbering
Gtk::HBox *status = manage(new Gtk::HBox);
@@ -635,7 +635,7 @@ bool studio::Widget_Preview::redraw(GdkEventExpose */*heh*/)
if (text == _("Fit") || text == "fit")
{
sx = draw_area.get_width() / (float)px->get_width();
- sy = draw_area.get_height() / (float)px->get_height();
+ sy = draw_area.get_height()/ (float)px->get_height();
//synfig::info("widget_preview redraw: now to scale the bitmap:
%.3f x %.3f",sx,sy);
@@ -1070,10 +1070,31 @@ void Widget_Preview::on_zoom_entry_activated()
entry->set_position(-1);
}
+
+void Widget_Preview::hide_controller()
+{
+ controller->hide();
+ controllerisshown = 0;
+}
+
+void Widget_Preview::show_controller()
+{
+ controller->show();
+ controllerisshown = 1;
+}
+
//shortcut keys TODO: customizable shortcut keys would be awesome.
bool studio::Widget_Preview::on_key_pressed(GdkEventKey *ev)
{
+ //hide and show controller
+ if (ev->keyval == gdk_keyval_from_name("h"))
+ {
+ if (controllerisshown) hide_controller();
+ else show_controller();
+ return true;
+ }
+
//previous rendered frame
if (ev->keyval == gdk_keyval_from_name("a"))
{
diff --git a/synfig-studio/src/gui/preview.h b/synfig-studio/src/gui/preview.h
index 5db6af7..9f1cd65 100644
--- a/synfig-studio/src/gui/preview.h
+++ b/synfig-studio/src/gui/preview.h
@@ -198,6 +198,7 @@ class Widget_Preview : public Gtk::Table
//only for internal stuff, doesn't set anything
bool playing;
bool singleframe;
+ bool controllerisshown;
//for accurate time tracking
etl::clock timer;
@@ -225,6 +226,9 @@ class Widget_Preview : public Gtk::Table
bool redraw(GdkEventExpose *heh = 0);
void preview_draw();
+ void hide_controller();
+ void show_controller();
+
sigc::signal<void,float> signal_play_;
sigc::signal<void> signal_pause_;
sigc::signal<void,float> signal_seek_;
@@ -283,6 +287,7 @@ protected:
private:
+ Gtk::HBox *controller;
Gtk::Button *play_pausebutton;
bool on_key_pressed(GdkEventKey*);
void on_zoom_entry_activated();
------------------------------------------------------------------------------
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