Merged revisions 6293,6296-6306,6308 via svnmerge from
[ardour.git] / libs / gtkmm2 / atk / atkmm / objectaccessible.h
1 // -*- c++ -*-
2 // Generated by gtkmmproc -- DO NOT MODIFY!
3 #ifndef _ATKMM_OBJECTACCESSIBLE_H
4 #define _ATKMM_OBJECTACCESSIBLE_H
5
6
7 #include <glibmm.h>
8
9 /* $Id$ */
10
11 /* Copyright (C) 1998-2002 The gtkmm Development Team
12  *
13  * This library is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU Library General Public
15  * License as published by the Free Software Foundation; either
16  * version 2 of the License, or (at your option) any later version.
17  *
18  * This library is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21  * Library General Public License for more details.
22  *
23  * You should have received a copy of the GNU Library General Public
24  * License along with this library; if not, write to the Free
25  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26  */
27  
28 #include <atkmm/object.h>
29
30
31 #ifndef DOXYGEN_SHOULD_SKIP_THIS
32 typedef struct _AtkGObjectAccessible AtkGObjectAccessible;
33 typedef struct _AtkGObjectAccessibleClass AtkGObjectAccessibleClass;
34 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
35
36
37 namespace Atk
38 { class ObjectAccessible_Class; } // namespace Atk
39 namespace Atk
40 {
41
42 /** This object class is derived from AtkObject and can be used as a basis implementing accessible objects.
43  * This can be used as a basis for implementing accessible objects for Glib::Objects which are not derived from
44  * Gtk::Widget. One example of its use is in providing an accessible object for GnomeCanvasItem in the GAIL library.
45  */
46
47 class ObjectAccessible : public Atk::Object
48 {
49    
50 #ifndef DOXYGEN_SHOULD_SKIP_THIS
51
52 public:
53   typedef ObjectAccessible CppObjectType;
54   typedef ObjectAccessible_Class CppClassType;
55   typedef AtkGObjectAccessible BaseObjectType;
56   typedef AtkGObjectAccessibleClass BaseClassType;
57
58 private:  friend class ObjectAccessible_Class;
59   static CppClassType objectaccessible_class_;
60
61 private:
62   // noncopyable
63   ObjectAccessible(const ObjectAccessible&);
64   ObjectAccessible& operator=(const ObjectAccessible&);
65
66 protected:
67   explicit ObjectAccessible(const Glib::ConstructParams& construct_params);
68   explicit ObjectAccessible(AtkGObjectAccessible* castitem);
69
70 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
71
72 public:
73   virtual ~ObjectAccessible();
74
75 #ifndef DOXYGEN_SHOULD_SKIP_THIS
76   static GType get_type()      G_GNUC_CONST;
77   static GType get_base_type() G_GNUC_CONST;
78 #endif
79
80   ///Provides access to the underlying C GObject.
81   AtkGObjectAccessible*       gobj()       { return reinterpret_cast<AtkGObjectAccessible*>(gobject_); }
82
83   ///Provides access to the underlying C GObject.
84   const AtkGObjectAccessible* gobj() const { return reinterpret_cast<AtkGObjectAccessible*>(gobject_); }
85
86   ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
87   AtkGObjectAccessible* gobj_copy();
88
89 private:
90
91 protected:
92
93   
94   /** Gets the GObject for which @a obj  is the accessible object.
95    * @return A G::Object which is the object for which @a obj  is the accessible objedct.
96    */
97   Glib::RefPtr<Glib::Object> get_object();
98   
99   /** Gets the GObject for which @a obj  is the accessible object.
100    * @return A G::Object which is the object for which @a obj  is the accessible objedct.
101    */
102   Glib::RefPtr<const Glib::Object> get_object() const;
103
104   
105   /** Gets the accessible object for the specified @a obj .
106    * @param obj A G::Object.
107    * @return A Atk::Object which is the accessible object for the @a obj .
108    */
109   static Glib::RefPtr<Atk::Object> for_object(const Glib::RefPtr<Glib::Object>& obj);
110   
111   /** Gets the accessible object for the specified @a obj .
112    * @param obj A G::Object.
113    * @return A Atk::Object which is the accessible object for the @a obj .
114    */
115   static Glib::RefPtr<const Atk::Object> for_object(const Glib::RefPtr<const Glib::Object>& obj);
116
117
118 public:
119
120 public:
121   //C++ methods used to invoke GTK+ virtual functions:
122 #ifdef GLIBMM_VFUNCS_ENABLED
123 #endif //GLIBMM_VFUNCS_ENABLED
124
125 protected:
126   //GTK+ Virtual Functions (override these to change behaviour):
127 #ifdef GLIBMM_VFUNCS_ENABLED
128 #endif //GLIBMM_VFUNCS_ENABLED
129
130   //Default Signal Handlers::
131 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
132 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
133
134
135 };
136
137 } // namespace Atk
138
139
140 namespace Glib
141 {
142   /** A Glib::wrap() method for this object.
143    * 
144    * @param object The C instance.
145    * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
146    * @result A C++ instance that wraps this C instance.
147    *
148    * @relates Atk::ObjectAccessible
149    */
150   Glib::RefPtr<Atk::ObjectAccessible> wrap(AtkGObjectAccessible* object, bool take_copy = false);
151 }
152
153
154 #endif /* _ATKMM_OBJECTACCESSIBLE_H */
155