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

Reply via email to