[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: master Commit: f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: genete_master Commit: 44a6e894eaa7af4bcebb7c317a303f547878e01c URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=44a6e894eaa7af4bcebb7c317a303f547878e01c Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: genete_master Commit: f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: zelgadis_master Commit: f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: master Commit: 44a6e894eaa7af4bcebb7c317a303f547878e01c URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=44a6e894eaa7af4bcebb7c317a303f547878e01c Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +