00001
00002
00003 #ifndef _CLUTTERMM_EFFECTTEMPLATE_H
00004 #define _CLUTTERMM_EFFECTTEMPLATE_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 <cluttermm/alpha.h>
00027 #include <cluttermm/actor.h>
00028
00029
00030 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00031 typedef struct _ClutterEffectTemplate ClutterEffectTemplate;
00032 typedef struct _ClutterEffectTemplateClass ClutterEffectTemplateClass;
00033 #endif
00034
00035
00036 namespace Clutter
00037 { class EffectTemplate_Class; }
00038 namespace Clutter
00039 {
00040
00041
00042 class EffectTemplate :
00043 public Glib::Object
00044 {
00045
00046 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00047
00048 public:
00049 typedef EffectTemplate CppObjectType;
00050 typedef EffectTemplate_Class CppClassType;
00051 typedef ClutterEffectTemplate BaseObjectType;
00052 typedef ClutterEffectTemplateClass BaseClassType;
00053
00054 private: friend class EffectTemplate_Class;
00055 static CppClassType effecttemplate_class_;
00056
00057 private:
00058
00059 EffectTemplate(const EffectTemplate&);
00060 EffectTemplate& operator=(const EffectTemplate&);
00061
00062 protected:
00063 explicit EffectTemplate(const Glib::ConstructParams& construct_params);
00064 explicit EffectTemplate(ClutterEffectTemplate* castitem);
00065
00066 #endif
00067
00068 public:
00069 virtual ~EffectTemplate();
00070
00071 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00072 static GType get_type() G_GNUC_CONST;
00073 static GType get_base_type() G_GNUC_CONST;
00074 #endif
00075
00077 ClutterEffectTemplate* gobj() { return reinterpret_cast<ClutterEffectTemplate*>(gobject_); }
00078
00080 const ClutterEffectTemplate* gobj() const { return reinterpret_cast<ClutterEffectTemplate*>(gobject_); }
00081
00083 ClutterEffectTemplate* gobj_copy();
00084
00085 private:
00086
00087
00088 public:
00089 typedef sigc::slot<guint32, const Glib::RefPtr<Alpha>&> SlotAlphaFunc;
00090 typedef sigc::slot<void, const Glib::RefPtr<Actor>&> SlotEffectCompleteFunc;
00091
00092 protected:
00093 EffectTemplate(const Glib::RefPtr<Timeline>& timeline, const SlotAlphaFunc& alpha_func);
00094 EffectTemplate(guint msecs, const SlotAlphaFunc& alpha_func);
00095
00096
00097 public:
00098
00099 static Glib::RefPtr<EffectTemplate> create(const Glib::RefPtr<Timeline>& timeline, const SlotAlphaFunc& alpha_func);
00100
00101
00102 static Glib::RefPtr<EffectTemplate> create(guint msecs, const SlotAlphaFunc& alpha_func);
00103
00104
00111 void set_timeline_clone(bool setting);
00112
00119 bool get_timeline_clone() const;
00120
00121
00136 Glib::RefPtr<Timeline> fade(const Glib::RefPtr<Actor>& actor, guint8 opacity_end, const SlotEffectCompleteFunc& func);
00137
00138
00153 Glib::RefPtr<Timeline> depth(const Glib::RefPtr<Actor>& actor, int depth_end, const SlotEffectCompleteFunc& func);
00154
00155
00172 Glib::RefPtr<Timeline> move(const Glib::RefPtr<Actor>& actor, int x, int y, const SlotEffectCompleteFunc& func);
00173
00174
00175
00191 Glib::RefPtr<Timeline> path(const Glib::RefPtr<Actor>& actor, const ClutterKnot* knots, guint n_knots, const SlotEffectCompleteFunc& func);
00192
00193
00209 Glib::RefPtr<Timeline> scale(const Glib::RefPtr<Actor>& actor, double x_scale_end, double y_scale_end, const SlotEffectCompleteFunc& func);
00210
00211
00230 Glib::RefPtr<Timeline> rotate(const Glib::RefPtr<Actor>& actor, RotateAxis axis, double angle_end, int center_x, int center_y, int center_z, RotateDirection direction, const SlotEffectCompleteFunc& func);
00231
00232 #ifdef GLIBMM_PROPERTIES_ENABLED
00233
00239 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Timeline> > property_timeline() const;
00240 #endif //#GLIBMM_PROPERTIES_ENABLED
00241
00242
00243 #ifdef GLIBMM_PROPERTIES_ENABLED
00244
00250 Glib::PropertyProxy<bool> property_clone() ;
00251 #endif //#GLIBMM_PROPERTIES_ENABLED
00252
00253 #ifdef GLIBMM_PROPERTIES_ENABLED
00254
00260 Glib::PropertyProxy_ReadOnly<bool> property_clone() const;
00261 #endif //#GLIBMM_PROPERTIES_ENABLED
00262
00263
00264 public:
00265
00266 public:
00267
00268 #ifdef GLIBMM_VFUNCS_ENABLED
00269 #endif //GLIBMM_VFUNCS_ENABLED
00270
00271 protected:
00272
00273 #ifdef GLIBMM_VFUNCS_ENABLED
00274 #endif //GLIBMM_VFUNCS_ENABLED
00275
00276
00277 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00278 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00279
00280
00281 };
00282
00283 }
00284
00285
00286
00287
00288 namespace Glib
00289 {
00298 Glib::RefPtr<Clutter::EffectTemplate> wrap(ClutterEffectTemplate* object, bool take_copy = false);
00299 }
00300
00301
00302 #endif
00303