Author: Yu Chen <[email protected]>
Date:   Wed Nov 23 19:17:18 2011 +0800

Make play pause button icon update according to playback status

---

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

diff --git a/synfig-studio/src/gui/preview.cpp 
b/synfig-studio/src/gui/preview.cpp
index e290a56..0bc5dd3 100644
--- a/synfig-studio/src/gui/preview.cpp
+++ b/synfig-studio/src/gui/preview.cpp
@@ -357,10 +357,17 @@ 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());
-       
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);
+       //play pause button
+       Gtk::Image *icon1 = manage(new 
Gtk::Image(Gtk::StockID("synfig-animate_play"), Gtk::ICON_SIZE_BUTTON));
+       play_pausebutton = manage(new class Gtk::Button());
+       play_pausebutton->set_tooltip_text(_("Play"));
+       icon1->set_padding(0,0);
+       icon1->show();
+       play_pausebutton->add(*icon1);
+       play_pausebutton->set_relief(Gtk::RELIEF_NONE);
+       play_pausebutton->show();
+       
play_pausebutton->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Preview::on_play_pause_pressed));
+       hbox->pack_start(*play_pausebutton, Gtk::PACK_SHRINK, 0);
 
        //attack the stop render and erase all buttons to same line...
        
@@ -803,12 +810,28 @@ void studio::Widget_Preview::pause()
 void studio::Widget_Preview::on_play_pause_pressed()
 {
        bool play_flag;
+       Gtk::Image *icon1;
+
        if(!playing)
        {
+               icon1 = manage(new 
Gtk::Image(Gtk::StockID("synfig-animate_pause"), Gtk::ICON_SIZE_BUTTON));
+               play_pausebutton->remove();
+               play_pausebutton->add(*icon1);
+               play_pausebutton->set_tooltip_text(_("Pause"));
+               icon1->set_padding(0,0);
+               icon1->show();
+
                play_flag=true;
        }
        else
        {
+               icon1 = manage(new 
Gtk::Image(Gtk::StockID("synfig-animate_play"), Gtk::ICON_SIZE_BUTTON));
+               play_pausebutton->remove();
+               play_pausebutton->add(*icon1);
+               play_pausebutton->set_tooltip_text(_("Play"));
+               icon1->set_padding(0,0);
+               icon1->show();
+
                play_flag=false;
        }
        if(play_flag) play(); else pause();
diff --git a/synfig-studio/src/gui/preview.h b/synfig-studio/src/gui/preview.h
index a24500a..39e2352 100644
--- a/synfig-studio/src/gui/preview.h
+++ b/synfig-studio/src/gui/preview.h
@@ -252,6 +252,10 @@ public:
 
        bool get_loop_flag() const {return b_loop.get_active();}
        void set_loop_flag(bool b) {return b_loop.set_active(b);}
+
+private:
+
+       Gtk::Button *play_pausebutton;
 };
 
 }; // END of namespace studio


------------------------------------------------------------------------------
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