X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fpreview.h;h=962a537b90dbdca8870560c1580c177709a29c29;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=a8077eafe5909809d85fdda47177135397cb4560;hpb=6f28bee2a11612b1b1ece247dd4914dab4931a30;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/preview.h b/synfig-studio/trunk/src/gtkmm/preview.h index a8077ea..962a537 100644 --- a/synfig-studio/trunk/src/gtkmm/preview.h +++ b/synfig-studio/trunk/src/gtkmm/preview.h @@ -2,7 +2,7 @@ /*! \file preview.h ** \brief Previews an animation ** -** $Id: preview.h,v 1.2 2005/01/10 08:13:44 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -26,6 +26,9 @@ #define __SYNFIG_PREVIEW_H /* === H E A D E R S ======================================================= */ +#include +#include /* indirectly includes winnt.h on WIN32 - needs to be included before gtkmm headers, which fix this */ + #include #include #include @@ -45,9 +48,6 @@ #include "widget_sound.h" -#include -#include - #include /* === M A C R O S ========================================================= */ @@ -58,7 +58,7 @@ namespace studio { class AsyncRenderer; - + class Preview : public sigc::trackable, public etl::shared_object { public: @@ -69,14 +69,14 @@ public: }; etl::handle renderer; - + sigc::signal signal_destroyed_; //so things can reference us without fear - + typedef std::vector FlipBook; private: - + FlipBook frames; - + studio::CanvasView::LooseHandle canvasview; //synfig::RendDesc description; //for rendering the preview... @@ -90,25 +90,25 @@ private: //expose the frame information etc. class Preview_Target; void frame_finish(const Preview_Target *); - + sigc::signal0 sig_changed; - + public: - - Preview(const studio::CanvasView::LooseHandle &h = studio::CanvasView::LooseHandle(), + + Preview(const studio::CanvasView::LooseHandle &h = studio::CanvasView::LooseHandle(), float zoom = 0.5f, float fps = 15); ~Preview(); - + float get_zoom() const {return zoom;} void set_zoom(float z){zoom = z;} - + float get_fps() const {return fps;} void set_fps(float f){fps = f;} - + float get_global_fps() const {return global_fps;} void set_global_fps(float f){global_fps = f;} - - float get_begintime() const + + float get_begintime() const { if(overbegin) return begintime; @@ -116,7 +116,7 @@ public: return get_canvas()->rend_desc().get_time_start(); else return -1; } - + float get_endtime() const { if(overend) @@ -125,41 +125,41 @@ public: return get_canvas()->rend_desc().get_time_end(); else return -1; } - + void set_begintime(float t) {begintime = t;} void set_endtime(float t) {endtime = t;} - + bool get_overbegin() const {return overbegin;} void set_overbegin(bool b) {overbegin = b;} - + bool get_overend() const {return overend;} void set_overend(bool b) {overend = b;} - + int get_quality() const {return quality;} void set_quality(int i) {quality = i;} - + synfig::Canvas::Handle get_canvas() const {return canvasview->get_canvas();} studio::CanvasView::Handle get_canvasview() const {return canvasview;} - + void set_canvasview(const studio::CanvasView::LooseHandle &h); - + //signal interface sigc::signal & signal_destroyed() { return signal_destroyed_; } //sigc::signal &signal_desc_change() {return signal_desc_change_;} - + //functions for exposing iterators through the preview FlipBook::iterator begin() {return frames.begin();} FlipBook::iterator end() {return frames.end();} - + FlipBook::const_iterator begin() const {return frames.begin();} FlipBook::const_iterator end() const {return frames.end();} - + void clear() {frames.clear();} - + unsigned int numframes() const {return frames.size();} - + void render(); - + sigc::signal0 &signal_changed() { return sig_changed; } }; @@ -170,68 +170,68 @@ class Widget_Preview : public Gtk::Table Gtk::HScrollbar scr_time_scrub; Gtk::ToggleButton b_loop; Gtk::Tooltips tooltips; - + //Glib::RefPtr gc_area; Glib::RefPtr currentbuf; int currentindex; //double timeupdate; double timedisp; double audiotime; - + //sound stuff etl::handle audio; sigc::connection scrstartcon; sigc::connection scrstopcon; sigc::connection scrubcon; - + //preview encapsulation etl::handle preview; sigc::connection prevchanged; - + Widget_Sound disp_sound; Gtk::Adjustment adj_sound; - + Gtk::Label l_lasttime; - + //only for internal stuff, doesn't set anything bool playing; bool singleframe; - + //for accurate time tracking etl::clock timer; - - //int curindex; //for later - SigC::Connection timecon; - + + //int curindex; //for later + sigc::connection timecon; + void slider_move(); //later to be a time_slider that's cooler bool play_update(); void play_stop(); //bool play_frameupdate(); void update(); - + void scrub_updated(double t); - + void repreview(); - + void whenupdated(); - + void eraseall(); - + bool scroll_move_event(GdkEvent *); void disconnect_preview(Preview *); - + bool redraw(GdkEventExpose *heh = 0); void preview_draw(); - + sigc::signal signal_play_; sigc::signal signal_stop_; sigc::signal signal_seek_; - + public: - + Widget_Preview(); ~Widget_Preview(); - + //sets a signal to identify disconnection (so we don't hold onto it)... void set_preview(etl::handle prev); void set_audioprofile(etl::handle p); @@ -252,7 +252,7 @@ public: bool get_loop_flag() const {return b_loop.get_active();} void set_loop_flag(bool b) {return b_loop.set_active(b);} }; - + }; // END of namespace studio /* === E N D =============================================================== */