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