behaviour-bspline.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _CLUTTERMM_BEHAVIOUR_BSPLINE_H
00004 #define _CLUTTERMM_BEHAVIOUR_BSPLINE_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/alpha.h>
00028 #include <cluttermm/scriptable.h>
00029 #include <cluttermm/types.h>
00030  
00031 
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _ClutterBehaviourBspline ClutterBehaviourBspline;
00034 typedef struct _ClutterBehaviourBsplineClass ClutterBehaviourBsplineClass;
00035 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00036 
00037 
00038 namespace Clutter
00039 { class BehaviourBspline_Class; } // namespace Clutter
00040 namespace Clutter
00041 {
00042 
00043 
00044 class BehaviourBspline
00045 : public Behaviour,
00046   public Scriptable
00047 {
00048   
00049 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00050 
00051 public:
00052   typedef BehaviourBspline CppObjectType;
00053   typedef BehaviourBspline_Class CppClassType;
00054   typedef ClutterBehaviourBspline BaseObjectType;
00055   typedef ClutterBehaviourBsplineClass BaseClassType;
00056 
00057 private:  friend class BehaviourBspline_Class;
00058   static CppClassType behaviourbspline_class_;
00059 
00060 private:
00061   // noncopyable
00062   BehaviourBspline(const BehaviourBspline&);
00063   BehaviourBspline& operator=(const BehaviourBspline&);
00064 
00065 protected:
00066   explicit BehaviourBspline(const Glib::ConstructParams& construct_params);
00067   explicit BehaviourBspline(ClutterBehaviourBspline* castitem);
00068 
00069 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00070 
00071 public:
00072   virtual ~BehaviourBspline();
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   ClutterBehaviourBspline*       gobj()       { return reinterpret_cast<ClutterBehaviourBspline*>(gobject_); }
00081 
00083   const ClutterBehaviourBspline* gobj() const { return reinterpret_cast<ClutterBehaviourBspline*>(gobject_); }
00084 
00086   ClutterBehaviourBspline* gobj_copy();
00087 
00088 private:
00089 
00090   
00091 protected:
00092   // TODO: pass the knots as a C++ container
00093   explicit BehaviourBspline(const Glib::RefPtr<Alpha>& alpha, const ClutterKnot* knots, guint n_knots);
00094 
00095 public:
00096   // TODO: pass the knots as a C++ container
00097   
00098   static Glib::RefPtr<BehaviourBspline> create(const Glib::RefPtr<Alpha>& alpha, const ClutterKnot* knots, guint n_knots);
00099 
00100 
00109   void append_knot(const Knot& knot);
00110   
00118   void truncate(guint offset);
00119   
00126   void join(const Glib::RefPtr<const BehaviourBspline>& bs2);
00127   // TODO: is this cast ok?
00128  
00129 
00139   Glib::RefPtr<BehaviourBspline> split(guint offset);
00140   
00145   void clear();
00146   
00154   void adjust(guint offset, Knot& knot);
00155   
00163   void set_origin(Knot& knot);
00164   Knot get_origin() const;
00165   
00166 
00172   Glib::SignalProxy1< void,const Knot& > signal_knot_reached();
00173 
00174 
00175 public:
00176 
00177 public:
00178   //C++ methods used to invoke GTK+ virtual functions:
00179 #ifdef GLIBMM_VFUNCS_ENABLED
00180 #endif //GLIBMM_VFUNCS_ENABLED
00181 
00182 protected:
00183   //GTK+ Virtual Functions (override these to change behaviour):
00184 #ifdef GLIBMM_VFUNCS_ENABLED
00185 #endif //GLIBMM_VFUNCS_ENABLED
00186 
00187   //Default Signal Handlers::
00188 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00189   virtual void on_knot_reached(const Knot& knot);
00190 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00191 
00192 
00193 };
00194 
00195 } // namespace Clutter
00196 // vim:ts=2,sw=2
00197 
00198 
00199 namespace Glib
00200 {
00209   Glib::RefPtr<Clutter::BehaviourBspline> wrap(ClutterBehaviourBspline* object, bool take_copy = false);
00210 }
00211 
00212 
00213 #endif /* _CLUTTERMM_BEHAVIOUR_BSPLINE_H */
00214 

Generated on Fri Jun 6 02:12:48 2008 for cluttermm by  doxygen 1.5.5