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