- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

# 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