timeline.h
Go to the documentation of this file.00001
00002
00003 #ifndef _CLUTTERMM_TIMELINE_H
00004 #define _CLUTTERMM_TIMELINE_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <glibmm/object.h>
00027 #include <cluttermm/types.h>
00028
00029
00030 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00031 typedef struct _ClutterTimeline ClutterTimeline;
00032 typedef struct _ClutterTimelineClass ClutterTimelineClass;
00033 #endif
00034
00035
00036 namespace Clutter
00037 { class Timeline_Class; }
00038 namespace Clutter
00039 {
00040
00046 enum TimelineDirection
00047 {
00048 TIMELINE_FORWARD,
00049 TIMELINE_BACKWARD
00050 };
00051
00052
00053 class Timeline : public Glib::Object
00054 {
00055
00056 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00057
00058 public:
00059 typedef Timeline CppObjectType;
00060 typedef Timeline_Class CppClassType;
00061 typedef ClutterTimeline BaseObjectType;
00062 typedef ClutterTimelineClass BaseClassType;
00063
00064 private: friend class Timeline_Class;
00065 static CppClassType timeline_class_;
00066
00067 private:
00068
00069 Timeline(const Timeline&);
00070 Timeline& operator=(const Timeline&);
00071
00072 protected:
00073 explicit Timeline(const Glib::ConstructParams& construct_params);
00074 explicit Timeline(ClutterTimeline* castitem);
00075
00076 #endif
00077
00078 public:
00079 virtual ~Timeline();
00080
00081 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00082 static GType get_type() G_GNUC_CONST;
00083 static GType get_base_type() G_GNUC_CONST;
00084 #endif
00085
00087 ClutterTimeline* gobj() { return reinterpret_cast<ClutterTimeline*>(gobject_); }
00088
00090 const ClutterTimeline* gobj() const { return reinterpret_cast<ClutterTimeline*>(gobject_); }
00091
00093 ClutterTimeline* gobj_copy();
00094
00095 private:
00096
00097
00098 protected:
00099 explicit Timeline(guint num_frames, guint fps);
00100 explicit Timeline(guint msecs);
00101 public:
00102
00103 static Glib::RefPtr<Timeline> create(guint n_frames, guint fps);
00104
00105
00106 static Glib::RefPtr<Timeline> create(guint msecs);
00107
00108
00109
00110
00111
00120 Glib::RefPtr<Timeline> clone() const;
00121
00122
00129 void set_duration(guint msecs);
00130
00137 guint get_duration() const;
00138
00142 void set_speed(guint fps);
00143
00147 guint get_speed() const;
00148
00151 void start();
00152
00155 void pause();
00156
00159 void stop();
00160
00163 void rewind();
00164
00168 void set_loop(bool loop = true);
00169
00173 bool get_loop() const;
00174
00178 void skip(guint n_frames);
00179
00183 void advance(guint frame_num);
00184
00188 int get_current_frame() const;
00189
00202 guint get_delta(guint& msecs) const;
00203
00207 void set_n_frames(guint n_frames);
00208
00212 guint get_n_frames() const;
00213
00217 bool is_playing() const;
00218
00224 void set_delay(guint msecs);
00225
00231 guint get_delay() const;
00232
00238 double get_progress() const;
00239
00245 Fixed get_progressx() const;
00246
00253 void set_direction(TimelineDirection direction);
00254
00261 TimelineDirection get_direction() const;
00262
00263 #ifdef GLIBMM_PROPERTIES_ENABLED
00264
00270 Glib::PropertyProxy<guint> property_delay() ;
00271 #endif //#GLIBMM_PROPERTIES_ENABLED
00272
00273 #ifdef GLIBMM_PROPERTIES_ENABLED
00274
00280 Glib::PropertyProxy_ReadOnly<guint> property_delay() const;
00281 #endif //#GLIBMM_PROPERTIES_ENABLED
00282
00283 #ifdef GLIBMM_PROPERTIES_ENABLED
00284
00290 Glib::PropertyProxy<guint> property_fps() ;
00291 #endif //#GLIBMM_PROPERTIES_ENABLED
00292
00293 #ifdef GLIBMM_PROPERTIES_ENABLED
00294
00300 Glib::PropertyProxy_ReadOnly<guint> property_fps() const;
00301 #endif //#GLIBMM_PROPERTIES_ENABLED
00302
00303 #ifdef GLIBMM_PROPERTIES_ENABLED
00304
00310 Glib::PropertyProxy<bool> property_loop() ;
00311 #endif //#GLIBMM_PROPERTIES_ENABLED
00312
00313 #ifdef GLIBMM_PROPERTIES_ENABLED
00314
00320 Glib::PropertyProxy_ReadOnly<bool> property_loop() const;
00321 #endif //#GLIBMM_PROPERTIES_ENABLED
00322
00323 #ifdef GLIBMM_PROPERTIES_ENABLED
00324
00330 Glib::PropertyProxy<guint> property_num_frames() ;
00331 #endif //#GLIBMM_PROPERTIES_ENABLED
00332
00333 #ifdef GLIBMM_PROPERTIES_ENABLED
00334
00340 Glib::PropertyProxy_ReadOnly<guint> property_num_frames() const;
00341 #endif //#GLIBMM_PROPERTIES_ENABLED
00342
00343
00349 Glib::SignalProxy0< void > signal_completed();
00350
00351
00357 Glib::SignalProxy1< void,gint > signal_new_frame();
00358
00359
00365 Glib::SignalProxy0< void > signal_paused();
00366
00367
00373 Glib::SignalProxy0< void > signal_started();
00374
00375
00376 public:
00377
00378 public:
00379
00380 #ifdef GLIBMM_VFUNCS_ENABLED
00381 #endif //GLIBMM_VFUNCS_ENABLED
00382
00383 protected:
00384
00385 #ifdef GLIBMM_VFUNCS_ENABLED
00386 #endif //GLIBMM_VFUNCS_ENABLED
00387
00388
00389 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00390 virtual void on_completed();
00391 virtual void on_new_frame(gint fram_num);
00392 virtual void on_paused();
00393 virtual void on_started();
00394 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00395
00396
00397 };
00398
00399 }
00400
00401
00402 namespace Glib
00403 {
00412 Glib::RefPtr<Clutter::Timeline> wrap(ClutterTimeline* object, bool take_copy = false);
00413 }
00414
00415
00416 #endif
00417