behaviour-path.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _CLUTTERMM_BEHAVIOUR_PATH_H
00004 #define _CLUTTERMM_BEHAVIOUR_PATH_H
00005 
00006 
00007 #include <glibmm.h>
00008 
00009 /* Copyright (C) 2007 The cluttermm Development Team
00010  *
00011  * This library is free software; you can redistribute it and/or
00012  * modify it under the terms of the GNU Library General Public
00013  * License as published by the Free Software Foundation; either
00014  * version 2 of the License, or (at your option) any later version.
00015  *
00016  * This library is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  * Library General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU Library General Public
00022  * License along with this library; if not, write to the Free
00023  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00024  */
00025 
00026 #include <cluttermm/behaviour.h>
00027 #include <cluttermm/scriptable.h>
00028 #include <cluttermm/alpha.h>
00029 #include <cluttermm/types.h>
00030  
00031 
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _ClutterBehaviourPath ClutterBehaviourPath;
00034 typedef struct _ClutterBehaviourPathClass ClutterBehaviourPathClass;
00035 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00036 
00037 
00038 namespace Clutter
00039 { class BehaviourPath_Class; } // namespace Clutter
00040 namespace Clutter
00041 {
00042 
00043 
00044 class BehaviourPath 
00045 : public Behaviour, 
00046   public Scriptable
00047 {
00048   
00049 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00050 
00051 public:
00052   typedef BehaviourPath CppObjectType;
00053   typedef BehaviourPath_Class CppClassType;
00054   typedef ClutterBehaviourPath BaseObjectType;
00055   typedef ClutterBehaviourPathClass BaseClassType;
00056 
00057 private:  friend class BehaviourPath_Class;
00058   static CppClassType behaviourpath_class_;
00059 
00060 private:
00061   // noncopyable
00062   BehaviourPath(const BehaviourPath&);
00063   BehaviourPath& operator=(const BehaviourPath&);
00064 
00065 protected:
00066   explicit BehaviourPath(const Glib::ConstructParams& construct_params);
00067   explicit BehaviourPath(ClutterBehaviourPath* castitem);
00068 
00069 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00070 
00071 public:
00072   virtual ~BehaviourPath();
00073 
00074 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00075   static GType get_type()      G_GNUC_CONST;
00076   static GType get_base_type() G_GNUC_CONST;
00077 #endif
00078 
00080   ClutterBehaviourPath*       gobj()       { return reinterpret_cast<ClutterBehaviourPath*>(gobject_); }
00081 
00083   const ClutterBehaviourPath* gobj() const { return reinterpret_cast<ClutterBehaviourPath*>(gobject_); }
00084 
00086   ClutterBehaviourPath* gobj_copy();
00087 
00088 private:
00089 
00090   
00091 protected:
00092   // TODO: pass the knots as a C++ container
00093   BehaviourPath(const Glib::RefPtr<Alpha>& alpha, const Glib::ArrayHandle<Knot>& knots);
00094   
00095 
00096   // We don't wrap the vararg functions:
00097   
00098 
00099 public:
00100   // TODO: pass the knots as a C++ container
00101   
00102   static Glib::RefPtr<BehaviourPath> create(const Glib::RefPtr<Alpha>& alpha, const Glib::ArrayHandle<Knot>& knot);
00103 ;
00104 
00105   
00111   void append_knot(const Knot& knot);
00112   
00120   void insert_knot(guint offset, const Knot& knot);
00121   
00127   void remove_knot(guint offset);
00128   
00133   void clear();
00134 
00135 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00136 
00137 struct KnotTraits
00138 {
00139   typedef Knot CppType;
00140   typedef const ClutterKnot* CType;
00141   typedef ClutterKnot* CTypeNonConst;
00142 
00143   static CType to_c_type(const CppType& obj) { return obj.gobj(); }
00144   static CType to_c_type(const CType& obj) { return obj; }
00145   static CppType to_cpp_type(const CType& obj) { return Knot(obj); }
00146   static void release_c_type(const CType& obj) { }
00147 };
00148 
00149 #endif // DOXYGEN_SHOULD_SKIP_THIS
00150 
00151   typedef Glib::SListHandle<Knot, KnotTraits> ListHandle_Knots;
00152   
00159   ListHandle_Knots get_knots() const;
00160 
00161   
00167   Glib::SignalProxy1< void,const Knot& > signal_knot_reached();
00168 
00169 
00170   #ifdef GLIBMM_PROPERTIES_ENABLED
00171 
00177   Glib::PropertyProxy_WriteOnly<Knot> property_knot() ;
00178 #endif //#GLIBMM_PROPERTIES_ENABLED
00179 
00180 
00181 public:
00182 
00183 public:
00184   //C++ methods used to invoke GTK+ virtual functions:
00185 #ifdef GLIBMM_VFUNCS_ENABLED
00186 #endif //GLIBMM_VFUNCS_ENABLED
00187 
00188 protected:
00189   //GTK+ Virtual Functions (override these to change behaviour):
00190 #ifdef GLIBMM_VFUNCS_ENABLED
00191 #endif //GLIBMM_VFUNCS_ENABLED
00192 
00193   //Default Signal Handlers::
00194 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00195   virtual void on_knot_reached(const Knot& knot);
00196 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00197 
00198 
00199 };
00200 
00201 } // namespace Clutter
00202 
00203 
00204 namespace Glib
00205 {
00214   Glib::RefPtr<Clutter::BehaviourPath> wrap(ClutterBehaviourPath* object, bool take_copy = false);
00215 }
00216 
00217 
00218 #endif /* _CLUTTERMM_BEHAVIOUR_PATH_H */
00219 

Generated on Mon Sep 15 05:42:27 2008 for cluttermm by  doxygen 1.5.6