childproxy.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GSTREAMERMM_CHILDPROXY_H
00004 #define _GSTREAMERMM_CHILDPROXY_H
00005 
00006 
00007 #include <glibmm.h>
00008 
00009 /* gstreamermm - a C++ wrapper for gstreamer
00010  *
00011  * Copyright 2008 The gstreamermm Development Team
00012  *
00013  * This library is free software; you can redistribute it and/or
00014  * modify it under the terms of the GNU Lesser General Public
00015  * License as published by the Free Software Foundation; either
00016  * version 2.1 of the License, or (at your option) any later version.
00017  *
00018  * This library is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  * Lesser General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU Lesser General Public
00024  * License along with this library; if not, write to the Free
00025  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00026  */
00027 
00028 #include <gst/gstchildproxy.h>
00029 #include <glibmm/interface.h>
00030 #include <gstreamermm/object.h>
00031 
00032 
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 typedef struct _GstChildProxy GstChildProxy;
00035 typedef struct _GstChildProxyClass GstChildProxyClass;
00036 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00037 
00038 
00039 namespace Gst
00040 { class ChildProxy_Class; } // namespace Gst
00041 namespace Gst
00042 {
00043 
00059 class ChildProxy : public Glib::Interface
00060 {
00061   
00062 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00063 
00064 public:
00065   typedef ChildProxy CppObjectType;
00066   typedef ChildProxy_Class CppClassType;
00067   typedef GstChildProxy BaseObjectType;
00068   typedef GstChildProxyInterface BaseClassType;
00069 
00070 private:
00071   friend class ChildProxy_Class;
00072   static CppClassType childproxy_class_;
00073 
00074   // noncopyable
00075   ChildProxy(const ChildProxy&);
00076   ChildProxy& operator=(const ChildProxy&);
00077 
00078 protected:
00079   ChildProxy(); // you must derive from this class
00080 
00087   explicit ChildProxy(const Glib::Interface_Class& interface_class);
00088 
00089 public:
00090   // This is public so that C++ wrapper instances can be
00091   // created for C instances of unwrapped types.
00092   // For instance, if an unexpected C type implements the C interface. 
00093   explicit ChildProxy(GstChildProxy* castitem);
00094 
00095 protected:
00096 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00097 
00098 public:
00099   virtual ~ChildProxy();
00100 
00101   static void add_interface(GType gtype_implementer);
00102 
00103 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00104   static GType get_type()      G_GNUC_CONST;
00105   static GType get_base_type() G_GNUC_CONST;
00106 #endif
00107 
00109   GstChildProxy*       gobj()       { return reinterpret_cast<GstChildProxy*>(gobject_); }
00110 
00112   const GstChildProxy* gobj() const { return reinterpret_cast<GstChildProxy*>(gobject_); }
00113 
00114 private:
00115 
00116 
00117 public:
00118   
00124   guint get_children_count() const;
00125   
00134   Glib::RefPtr<Gst::Object> get_child(const Glib::ustring& name);
00135   
00144   Glib::RefPtr<const Gst::Object> get_child(const Glib::ustring& name) const;
00145 
00146   
00154   Glib::RefPtr<Gst::Object> get_child(guint index);
00155   
00163   Glib::RefPtr<const Gst::Object> get_child(guint index) const;
00164 
00165   
00178   //TODO: Maybe GParamSpec should be wrapped in glibmm?
00179   static bool lookup(const Glib::RefPtr<Gst::Object>& object, const Glib::ustring& name, Glib::RefPtr<Gst::Object>& target, GParamSpec*& pspec);
00180 
00187   Glib::RefPtr<Gst::ChildProxy> get_proxy_property(const Glib::ustring& name, Glib::ValueBase& value);
00188   
00189 
00196   Glib::RefPtr<const Gst::ChildProxy> get_proxy_property(const Glib::ustring& name, Glib::ValueBase& value) const;
00197 
00198 
00204   Glib::RefPtr<Gst::ChildProxy> set_proxy_property(const Glib::ustring& name, const Glib::ValueBase& value);
00205   
00206 
00210   void child_added(const Glib::RefPtr<Gst::Object>& child);
00211   
00212 
00216   void child_removed(const Glib::RefPtr<Gst::Object>& child);
00217   
00218 
00225   Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_added();
00226 
00227 
00234   Glib::SignalProxy1< void,const Glib::RefPtr<Gst::Object>& > signal_child_removed();
00235 
00236 
00239   #ifdef GLIBMM_VFUNCS_ENABLED
00240   virtual Glib::RefPtr<Gst::Object> get_child_by_index_vfunc(guint index) const;
00241 #endif //GLIBMM_VFUNCS_ENABLED
00242 
00243 
00246   #ifdef GLIBMM_VFUNCS_ENABLED
00247   virtual guint get_children_count_vfunc() const;
00248 #endif //GLIBMM_VFUNCS_ENABLED
00249 
00250 
00251 public:
00252 
00253 public:
00254   //C++ methods used to invoke GTK+ virtual functions:
00255 #ifdef GLIBMM_VFUNCS_ENABLED
00256 #endif //GLIBMM_VFUNCS_ENABLED
00257 
00258 protected:
00259   //GTK+ Virtual Functions (override these to change behaviour):
00260 #ifdef GLIBMM_VFUNCS_ENABLED
00261 #endif //GLIBMM_VFUNCS_ENABLED
00262 
00263   //Default Signal Handlers::
00264 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00265   virtual void on_child_added(const Glib::RefPtr<Gst::Object>& object);
00266   virtual void on_child_removed(const Glib::RefPtr<Gst::Object>& object);
00267 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00268 
00269 
00270 };
00271 
00272 } // namespace Gst
00273 
00274 
00275 namespace Glib
00276 {
00285   Glib::RefPtr<Gst::ChildProxy> wrap(GstChildProxy* object, bool take_copy = false);
00286 
00287 } // namespace Glib
00288 
00289 
00290 #endif /* _GSTREAMERMM_CHILDPROXY_H */
00291 

Generated on Wed Aug 19 15:53:16 2009 for gstreamermm by  doxygen 1.5.4