Author: Yu Chen <[email protected]>
Date:   Tue Nov 22 23:47:29 2011 +0800

Merge play and pause functions into one button as play/pause button on canvas 
window does

---

 synfig-studio/src/gui/preview.cpp |   49 +++++++++++++++++++++++++-----------
 synfig-studio/src/gui/preview.h   |    2 +
 2 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/synfig-studio/src/gui/preview.cpp 
b/synfig-studio/src/gui/preview.cpp
index d760957..2b148fd 100644
--- a/synfig-studio/src/gui/preview.cpp
+++ b/synfig-studio/src/gui/preview.cpp
@@ -357,23 +357,28 @@ playing(false)
        hbox->pack_start(b_loop,Gtk::PACK_SHRINK,0);
        //attach(b_loop,0,1,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::SHRINK);
 
-       button = manage(new Gtk::Button(/*_("Play")*/));
-       
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::play));
-       IMAGIFY_BUTTON(button,"synfig-animate_play",_("Play"));
-       hbox->pack_start(*button,Gtk::PACK_SHRINK,0);
-       //attach(*button,1,2,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::SHRINK);
-
-       button = manage(new Gtk::Button(/*_("Stop")*/));
-       
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::pause));
-       IMAGIFY_BUTTON(button,"synfig-animate_pause",_("Pause"));
-       hbox->pack_start(*button,Gtk::PACK_SHRINK,0);
-       //attach(*button,2,3,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::SHRINK);
+       button = manage(new Gtk::Button());
+       
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::on_play_pause_pressed));
+       IMAGIFY_BUTTON(button, "synfig-animate_play", _("Play"));
+       hbox->pack_start(*button, Gtk::PACK_SHRINK, 0);
+
+//     button = manage(new Gtk::Button(/*_("Play")*/));
+//     
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::play));
+//     IMAGIFY_BUTTON(button,"synfig-animate_play",_("Play"));
+//     hbox->pack_start(*button,Gtk::PACK_SHRINK,0);
+//     //attach(*button,1,2,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::SHRINK);
+
+//     button = manage(new Gtk::Button(/*_("Stop")*/));
+//     
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::pause));
+//     IMAGIFY_BUTTON(button,"synfig-animate_pause",_("Pause"));
+//     hbox->pack_start(*button,Gtk::PACK_SHRINK,0);
+//     //attach(*button,2,3,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::SHRINK);
 
        //attack the stop render and erase all buttons to same line...
-       {
-               Gtk::VSeparator *vsep = manage(new Gtk::VSeparator);
-               hbox->pack_start(*vsep,Gtk::PACK_SHRINK,0);
-       }
+       
+       Gtk::VSeparator *vsep = manage(new Gtk::VSeparator);
+       hbox->pack_start(*vsep,Gtk::PACK_SHRINK,0);
+
 
        button = manage(new Gtk::Button(/*_("Halt Render")*/));
        
button->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::stoprender));
@@ -807,6 +812,20 @@ void studio::Widget_Preview::pause()
        timecon.disconnect();
 }
 
+void studio::Widget_Preview::on_play_pause_pressed()
+{
+       bool play_flag;
+       if(!playing)
+       {
+               play_flag=true;
+       }
+       else
+       {
+               play_flag=false;
+       }
+       if(play_flag) play(); else pause();
+}
+
 bool studio::Widget_Preview::scroll_move_event(GdkEvent *event)
 {
        switch(event->type)
diff --git a/synfig-studio/src/gui/preview.h b/synfig-studio/src/gui/preview.h
index 0779f3e..a24500a 100644
--- a/synfig-studio/src/gui/preview.h
+++ b/synfig-studio/src/gui/preview.h
@@ -242,6 +242,8 @@ public:
        void pause();
        void seek(float t);
 
+       void on_play_pause_pressed();
+
        void stoprender();
 
        sigc::signal<void,float>        &signal_play() {return signal_play_;}


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to