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
00054
00055 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00056 namespace Glib
00057 {
00058
00059 template <>
00060 class Value<Clutter::TimelineDirection> : public Glib::Value_Enum<Clutter::TimelineDirection>
00061 {
00062 public:
00063 static GType value_type() G_GNUC_CONST;
00064 };
00065
00066 }
00067 #endif
00068
00069
00070 namespace Clutter
00071 {
00072
00073
00074 class Timeline : public Glib::Object
00075 {
00076
00077 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00078
00079 public:
00080 typedef Timeline CppObjectType;
00081 typedef Timeline_Class CppClassType;
00082 typedef ClutterTimeline BaseObjectType;
00083 typedef ClutterTimelineClass BaseClassType;
00084
00085 private: friend class Timeline_Class;
00086 static CppClassType timeline_class_;
00087
00088 private:
00089
00090 Timeline(const Timeline&);
00091 Timeline& operator=(const Timeline&);
00092
00093 protected:
00094 explicit Timeline(const Glib::ConstructParams& construct_params);
00095 explicit Timeline(ClutterTimeline* castitem);
00096
00097 #endif
00098
00099 public:
00100 virtual ~Timeline();
00101
00102 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00103 static GType get_type() G_GNUC_CONST;
00104 static GType get_base_type() G_GNUC_CONST;
00105 #endif
00106
00108 ClutterTimeline* gobj() { return reinterpret_cast<ClutterTimeline*>(gobject_); }
00109
00111 const ClutterTimeline* gobj() const { return reinterpret_cast<ClutterTimeline*>(gobject_); }
00112
00114 ClutterTimeline* gobj_copy();
00115
00116 private:
00117
00118
00119 protected:
00120 explicit Timeline(guint num_frames, guint fps);
00121 public:
00122
00123 static Glib::RefPtr<Timeline> create(guint n_frames, guint fps);
00124
00125
00126
00127
00128
00137 Glib::RefPtr<Timeline> clone() const;
00138
00139
00146 void set_duration(guint msecs);
00147
00154 guint get_duration() const;
00155
00156
00157
00160 void start();
00161
00164 void pause();
00165
00168 void stop();
00169
00174 void rewind();
00175
00179 void set_loop(bool loop = true);
00180
00184 bool get_loop() const;
00185
00189 void skip(guint n_frames);
00190
00200 void advance(guint frame_num);
00201
00202
00214 guint get_delta() const;
00215
00216
00217
00221 bool is_playing() const;
00222
00228 void set_delay(guint msecs);
00229
00235 guint get_delay() const;
00236
00242 double get_progress() const;
00243
00244
00251 void set_direction(TimelineDirection direction);
00252
00259 TimelineDirection get_direction() const;
00260
00261
00274 Glib::StringArrayHandle list_markers(gint frame_num) const;
00275
00290 void add_marker_at_time(const Glib::ustring& marker_name, guint msecs);
00291
00292
00299 bool has_marker(const Glib::ustring& marker_name);
00300
00306 void remove_marker(const Glib::ustring& marker_name);
00307
00318 void advance_to_marker(const Glib::ustring& marker_name);
00319
00320 #ifdef GLIBMM_PROPERTIES_ENABLED
00321
00327 Glib::PropertyProxy<guint> property_delay() ;
00328 #endif //#GLIBMM_PROPERTIES_ENABLED
00329
00330 #ifdef GLIBMM_PROPERTIES_ENABLED
00331
00337 Glib::PropertyProxy_ReadOnly<guint> property_delay() const;
00338 #endif //#GLIBMM_PROPERTIES_ENABLED
00339
00340 #ifdef GLIBMM_PROPERTIES_ENABLED
00341
00347 Glib::PropertyProxy<TimelineDirection> property_direction() ;
00348 #endif //#GLIBMM_PROPERTIES_ENABLED
00349
00350 #ifdef GLIBMM_PROPERTIES_ENABLED
00351
00357 Glib::PropertyProxy_ReadOnly<TimelineDirection> property_direction() const;
00358 #endif //#GLIBMM_PROPERTIES_ENABLED
00359
00360 #ifdef GLIBMM_PROPERTIES_ENABLED
00361
00367 Glib::PropertyProxy<guint> property_duration() ;
00368 #endif //#GLIBMM_PROPERTIES_ENABLED
00369
00370 #ifdef GLIBMM_PROPERTIES_ENABLED
00371
00377 Glib::PropertyProxy_ReadOnly<guint> property_duration() const;
00378 #endif //#GLIBMM_PROPERTIES_ENABLED
00379
00380 #ifdef GLIBMM_PROPERTIES_ENABLED
00381
00387 Glib::PropertyProxy<guint> property_fps() ;
00388 #endif //#GLIBMM_PROPERTIES_ENABLED
00389
00390 #ifdef GLIBMM_PROPERTIES_ENABLED
00391
00397 Glib::PropertyProxy_ReadOnly<guint> property_fps() const;
00398 #endif //#GLIBMM_PROPERTIES_ENABLED
00399
00400 #ifdef GLIBMM_PROPERTIES_ENABLED
00401
00407 Glib::PropertyProxy<bool> property_loop() ;
00408 #endif //#GLIBMM_PROPERTIES_ENABLED
00409
00410 #ifdef GLIBMM_PROPERTIES_ENABLED
00411
00417 Glib::PropertyProxy_ReadOnly<bool> property_loop() const;
00418 #endif //#GLIBMM_PROPERTIES_ENABLED
00419
00420 #ifdef GLIBMM_PROPERTIES_ENABLED
00421
00427 Glib::PropertyProxy<guint> property_num_frames() ;
00428 #endif //#GLIBMM_PROPERTIES_ENABLED
00429
00430 #ifdef GLIBMM_PROPERTIES_ENABLED
00431
00437 Glib::PropertyProxy_ReadOnly<guint> property_num_frames() const;
00438 #endif //#GLIBMM_PROPERTIES_ENABLED
00439
00440
00446 Glib::SignalProxy0< void > signal_completed();
00447
00448
00454 Glib::SignalProxy1< void,gint > signal_new_frame();
00455
00456
00462 Glib::SignalProxy0< void > signal_paused();
00463
00464
00470 Glib::SignalProxy0< void > signal_started();
00471
00472
00473
00474
00475
00476
00482 Glib::SignalProxy2< void,const Glib::ustring&,int > signal_marker_reached();
00483
00484
00485 public:
00486
00487 public:
00488
00489 #ifdef GLIBMM_VFUNCS_ENABLED
00490 #endif //GLIBMM_VFUNCS_ENABLED
00491
00492 protected:
00493
00494 #ifdef GLIBMM_VFUNCS_ENABLED
00495 #endif //GLIBMM_VFUNCS_ENABLED
00496
00497
00498 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00499 virtual void on_completed();
00500 virtual void on_new_frame(gint fram_num);
00501 virtual void on_paused();
00502 virtual void on_started();
00503 virtual void on_marker_reached(const Glib::ustring& marker_name, int frame_num);
00504 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00505
00506
00507 };
00508
00509 }
00510
00511
00512 namespace Glib
00513 {
00522 Glib::RefPtr<Clutter::Timeline> wrap(ClutterTimeline* object, bool take_copy = false);
00523 }
00524
00525
00526 #endif
00527