1 // Generated by gtkmmproc -- DO NOT MODIFY!
3 #include <atkmm/object.h>
4 #include <atkmm/private/object_p.h>
6 #include <atk/atk-enum-types.h>
10 /* Copyright 1998-2002 The gtkmm Development Team
12 * This library is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version.
17 * This library is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details.
22 * You should have received a copy of the GNU Library General Public
23 * License along with this library; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
27 #include <atkmm/noopobject.h>
28 #include <atkmm/relation.h>
29 #include <atkmm/relationset.h>
30 #include <atkmm/stateset.h>
31 #include <atk/atkobject.h>
37 /* AtkObject is actually an abstract base class. So if this wrap_new()
38 * function is called, it means that no wrapper exists for the real C object.
39 * The problem is that gail (the real accessibility implementation) is
40 * currently not wrapped and will probably never be. Therefore, code like
41 * in the following example is doomed to fail:
43 * Gtk::Image image ("icon.png");
44 * Glib::RefPtr<Atk::Image> accessible = Glib::RefPtr<Atk::Image>::cast_dynamic(image.get_accessible());
45 * accessible->set_image_description("my icon");
47 * This would segfault, even though the accessible object _does_ implement
48 * AtkImage. But Atk::Image is an interface class that can't be instantiated
49 * as is. It needs an object.
51 * The solution is to instantiate a dummy object that implements all of the
52 * ATK interfaces. Fortunately, ATK already provides us with such a thing,
53 * AtkNoOpObject. All widget accessible objects are of this type if the gail
54 * module is not loaded (which is the default).
56 * So what we do here is abusing Atk::NoOpObject to get around the lack of
57 * C++ wrappers for gail. Instead of instantiating a useless instance of an
58 * abstract base class, we just create a Atk::NoOpObject instance which can
59 * be casted to any of the Atk interface classes.
61 Glib::ObjectBase* Object_Class::wrap_new(GObject* object)
63 return new Atk::NoOpObject((AtkNoOpObject*) object);
72 void Object_signal_children_changed_callback(AtkObject* self, guint p0,gpointer p1,void* data)
75 typedef sigc::slot< void,guint,gpointer > SlotType;
77 // Do not try to call a signal on a disassociated wrapper.
78 if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
82 if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
83 (*static_cast<SlotType*>(slot))(p0, p1);
87 Glib::exception_handlers_invoke();
92 const Glib::SignalProxyInfo Object_signal_children_changed_info =
95 (GCallback) &Object_signal_children_changed_callback,
96 (GCallback) &Object_signal_children_changed_callback
100 void Object_signal_focus_event_callback(AtkObject* self, gboolean p0,void* data)
103 typedef sigc::slot< void,bool > SlotType;
105 // Do not try to call a signal on a disassociated wrapper.
106 if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
110 if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
111 (*static_cast<SlotType*>(slot))(p0
116 Glib::exception_handlers_invoke();
121 const Glib::SignalProxyInfo Object_signal_focus_event_info =
124 (GCallback) &Object_signal_focus_event_callback,
125 (GCallback) &Object_signal_focus_event_callback
129 void Object_signal_property_change_callback(AtkObject* self, AtkPropertyValues* p0,void* data)
132 typedef sigc::slot< void,AtkPropertyValues* > SlotType;
134 // Do not try to call a signal on a disassociated wrapper.
135 if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
139 if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
140 (*static_cast<SlotType*>(slot))(p0);
144 Glib::exception_handlers_invoke();
149 const Glib::SignalProxyInfo Object_signal_property_change_info =
152 (GCallback) &Object_signal_property_change_callback,
153 (GCallback) &Object_signal_property_change_callback
157 void Object_signal_state_change_callback(AtkObject* self, const gchar* p0,gboolean p1,void* data)
160 typedef sigc::slot< void,const Glib::ustring&,bool > SlotType;
162 // Do not try to call a signal on a disassociated wrapper.
163 if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
167 if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
168 (*static_cast<SlotType*>(slot))(Glib::convert_const_gchar_ptr_to_ustring(p0)
174 Glib::exception_handlers_invoke();
179 const Glib::SignalProxyInfo Object_signal_state_change_info =
182 (GCallback) &Object_signal_state_change_callback,
183 (GCallback) &Object_signal_state_change_callback
187 const Glib::SignalProxyInfo Object_signal_visible_data_changed_info =
189 "visible_data_changed",
190 (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
191 (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
195 void Object_signal_active_descendant_changed_callback(AtkObject* self, gpointer* p0,void* data)
198 typedef sigc::slot< void,void** > SlotType;
200 // Do not try to call a signal on a disassociated wrapper.
201 if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
205 if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
206 (*static_cast<SlotType*>(slot))(p0
211 Glib::exception_handlers_invoke();
216 const Glib::SignalProxyInfo Object_signal_active_descendant_changed_info =
218 "active_descendant_changed",
219 (GCallback) &Object_signal_active_descendant_changed_callback,
220 (GCallback) &Object_signal_active_descendant_changed_callback
223 } // anonymous namespace
226 GType Glib::Value<Atk::Role>::value_type()
228 return atk_role_get_type();
235 Glib::RefPtr<Atk::Object> wrap(AtkObject* object, bool take_copy)
237 return Glib::RefPtr<Atk::Object>( dynamic_cast<Atk::Object*> (Glib::wrap_auto ((GObject*)(object), take_copy)) );
238 //We use dynamic_cast<> in case of multiple inheritance.
241 } /* namespace Glib */
248 /* The *_Class implementation: */
250 const Glib::Class& Object_Class::init()
252 if(!gtype_) // create the GType if necessary
254 // Glib::Class has to know the class init function to clone custom types.
255 class_init_func_ = &Object_Class::class_init_function;
257 // This is actually just optimized away, apparently with no harm.
258 // Make sure that the parent type has been created.
259 //CppClassParent::CppObjectType::get_type();
261 // Create the wrapper type, with the same class/instance size as the base type.
262 register_derived_type(atk_object_get_type());
264 // Add derived versions of interfaces, if the C type implements any interfaces:
270 void Object_Class::class_init_function(void* g_class, void* class_data)
272 BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
273 CppClassParent::class_init_function(klass, class_data);
275 klass->children_changed = &children_changed_callback;
276 klass->focus_event = &focus_event_callback;
277 klass->property_change = &property_change_callback;
278 klass->state_change = &state_change_callback;
279 klass->visible_data_changed = &visible_data_changed_callback;
280 klass->active_descendant_changed = &active_descendant_changed_callback;
284 void Object_Class::children_changed_callback(AtkObject* self, guint p0, gpointer p1)
286 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
287 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
289 // Non-gtkmmproc-generated custom classes implicitly call the default
290 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
291 // generated classes can use this optimisation, which avoids the unnecessary
292 // parameter conversions if there is no possibility of the virtual function
294 if(obj && obj->is_derived_())
296 try // Trap C++ exceptions which would normally be lost because this is a C callback.
298 // Call the virtual member method, which derived classes might override.
299 obj->on_children_changed(p0, p1);
303 Glib::exception_handlers_invoke();
308 BaseClassType *const base = static_cast<BaseClassType*>(
309 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
312 // Call the original underlying C function:
313 if(base && base->children_changed)
314 (*base->children_changed)(self, p0, p1);
318 void Object_Class::focus_event_callback(AtkObject* self, gboolean p0)
320 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
321 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
323 // Non-gtkmmproc-generated custom classes implicitly call the default
324 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
325 // generated classes can use this optimisation, which avoids the unnecessary
326 // parameter conversions if there is no possibility of the virtual function
328 if(obj && obj->is_derived_())
330 try // Trap C++ exceptions which would normally be lost because this is a C callback.
332 // Call the virtual member method, which derived classes might override.
333 obj->on_focus_event(p0
338 Glib::exception_handlers_invoke();
343 BaseClassType *const base = static_cast<BaseClassType*>(
344 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
347 // Call the original underlying C function:
348 if(base && base->focus_event)
349 (*base->focus_event)(self, p0);
353 void Object_Class::property_change_callback(AtkObject* self, AtkPropertyValues* p0)
355 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
356 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
358 // Non-gtkmmproc-generated custom classes implicitly call the default
359 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
360 // generated classes can use this optimisation, which avoids the unnecessary
361 // parameter conversions if there is no possibility of the virtual function
363 if(obj && obj->is_derived_())
365 try // Trap C++ exceptions which would normally be lost because this is a C callback.
367 // Call the virtual member method, which derived classes might override.
368 obj->on_property_change(p0);
372 Glib::exception_handlers_invoke();
377 BaseClassType *const base = static_cast<BaseClassType*>(
378 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
381 // Call the original underlying C function:
382 if(base && base->property_change)
383 (*base->property_change)(self, p0);
387 void Object_Class::state_change_callback(AtkObject* self, const gchar* p0, gboolean p1)
389 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
390 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
392 // Non-gtkmmproc-generated custom classes implicitly call the default
393 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
394 // generated classes can use this optimisation, which avoids the unnecessary
395 // parameter conversions if there is no possibility of the virtual function
397 if(obj && obj->is_derived_())
399 try // Trap C++ exceptions which would normally be lost because this is a C callback.
401 // Call the virtual member method, which derived classes might override.
402 obj->on_state_change(Glib::convert_const_gchar_ptr_to_ustring(p0)
408 Glib::exception_handlers_invoke();
413 BaseClassType *const base = static_cast<BaseClassType*>(
414 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
417 // Call the original underlying C function:
418 if(base && base->state_change)
419 (*base->state_change)(self, p0, p1);
423 void Object_Class::visible_data_changed_callback(AtkObject* self)
425 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
426 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
428 // Non-gtkmmproc-generated custom classes implicitly call the default
429 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
430 // generated classes can use this optimisation, which avoids the unnecessary
431 // parameter conversions if there is no possibility of the virtual function
433 if(obj && obj->is_derived_())
435 try // Trap C++ exceptions which would normally be lost because this is a C callback.
437 // Call the virtual member method, which derived classes might override.
438 obj->on_visible_data_changed();
442 Glib::exception_handlers_invoke();
447 BaseClassType *const base = static_cast<BaseClassType*>(
448 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
451 // Call the original underlying C function:
452 if(base && base->visible_data_changed)
453 (*base->visible_data_changed)(self);
457 void Object_Class::active_descendant_changed_callback(AtkObject* self, gpointer* p0)
459 CppObjectType *const obj = dynamic_cast<CppObjectType*>(
460 Glib::ObjectBase::_get_current_wrapper((GObject*)self));
462 // Non-gtkmmproc-generated custom classes implicitly call the default
463 // Glib::ObjectBase constructor, which sets is_derived_. But gtkmmproc-
464 // generated classes can use this optimisation, which avoids the unnecessary
465 // parameter conversions if there is no possibility of the virtual function
467 if(obj && obj->is_derived_())
469 try // Trap C++ exceptions which would normally be lost because this is a C callback.
471 // Call the virtual member method, which derived classes might override.
472 obj->on_active_descendant_changed(p0
477 Glib::exception_handlers_invoke();
482 BaseClassType *const base = static_cast<BaseClassType*>(
483 g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
486 // Call the original underlying C function:
487 if(base && base->active_descendant_changed)
488 (*base->active_descendant_changed)(self, p0);
493 /* The implementation: */
495 AtkObject* Object::gobj_copy()
501 Object::Object(const Glib::ConstructParams& construct_params)
503 Glib::Object(construct_params)
506 Object::Object(AtkObject* castitem)
508 Glib::Object((GObject*)(castitem))
515 Object::CppClassType Object::object_class_; // initialize static member
517 GType Object::get_type()
519 return object_class_.init().get_type();
522 GType Object::get_base_type()
524 return atk_object_get_type();
528 Glib::ustring Object::get_name() const
530 return Glib::convert_const_gchar_ptr_to_ustring(atk_object_get_name(const_cast<AtkObject*>(gobj())));
533 Glib::ustring Object::get_description() const
535 return Glib::convert_const_gchar_ptr_to_ustring(atk_object_get_description(const_cast<AtkObject*>(gobj())));
538 Glib::RefPtr<Atk::Object> Object::get_parent()
541 Glib::RefPtr<Atk::Object> retvalue = Glib::wrap(atk_object_get_parent(gobj()));
544 retvalue->reference(); //The function does not do a ref for us.
548 int Object::get_n_accessible_children() const
550 return atk_object_get_n_accessible_children(const_cast<AtkObject*>(gobj()));
553 Glib::RefPtr<Atk::Object> Object::get_accessible_child(int i)
555 return Glib::wrap(atk_object_ref_accessible_child(gobj(), i));
558 Glib::RefPtr<RelationSet> Object::get_relation_set()
561 Glib::RefPtr<RelationSet> retvalue = Glib::wrap(atk_object_ref_relation_set(gobj()));
564 retvalue->reference(); //The function does not do a ref for us.
568 Role Object::get_role() const
570 return ((Role)(atk_object_get_role(const_cast<AtkObject*>(gobj()))));
573 Glib::RefPtr<StateSet> Object::get_state_set()
575 return Glib::wrap(atk_object_ref_state_set(gobj()));
578 int Object::get_index_in_parent()
580 return atk_object_get_index_in_parent(gobj());
583 void Object::set_name(const Glib::ustring& name)
585 atk_object_set_name(gobj(), name.c_str());
588 void Object::set_description(const Glib::ustring& description)
590 atk_object_set_description(gobj(), description.c_str());
593 void Object::set_parent(const Glib::RefPtr<Atk::Object>& parent)
595 atk_object_set_parent(gobj(), Glib::unwrap(parent));
598 void Object::set_role(Role role)
600 atk_object_set_role(gobj(), ((AtkRole)(role)));
603 void Object::notify_state_change(State state, bool value)
605 atk_object_notify_state_change(gobj(), state, static_cast<int>(value));
608 bool Object::add_relationship(RelationType relationship, const Glib::RefPtr<Object>& target)
610 return atk_object_add_relationship(gobj(), ((AtkRelationType)(relationship)), Glib::unwrap(target));
613 bool Object::remove_relationship(RelationType relationship, const Glib::RefPtr<Object>& target)
615 return atk_object_remove_relationship(gobj(), ((AtkRelationType)(relationship)), Glib::unwrap(target));
619 Glib::SignalProxy2< void,guint,gpointer > Object::signal_children_changed()
621 return Glib::SignalProxy2< void,guint,gpointer >(this, &Object_signal_children_changed_info);
624 Glib::SignalProxy1< void,bool > Object::signal_focus_event()
626 return Glib::SignalProxy1< void,bool >(this, &Object_signal_focus_event_info);
629 Glib::SignalProxy1< void,AtkPropertyValues* > Object::signal_property_change()
631 return Glib::SignalProxy1< void,AtkPropertyValues* >(this, &Object_signal_property_change_info);
634 Glib::SignalProxy2< void,const Glib::ustring&,bool > Object::signal_state_change()
636 return Glib::SignalProxy2< void,const Glib::ustring&,bool >(this, &Object_signal_state_change_info);
639 Glib::SignalProxy0< void > Object::signal_visible_data_changed()
641 return Glib::SignalProxy0< void >(this, &Object_signal_visible_data_changed_info);
644 Glib::SignalProxy1< void,void** > Object::signal_active_descendant_changed()
646 return Glib::SignalProxy1< void,void** >(this, &Object_signal_active_descendant_changed_info);
650 Glib::PropertyProxy<Glib::ustring> Object::property_accessible_name()
652 return Glib::PropertyProxy<Glib::ustring>(this, "accessible-name");
655 Glib::PropertyProxy_ReadOnly<Glib::ustring> Object::property_accessible_name() const
657 return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "accessible-name");
660 Glib::PropertyProxy<Glib::ustring> Object::property_accessible_description()
662 return Glib::PropertyProxy<Glib::ustring>(this, "accessible-description");
665 Glib::PropertyProxy_ReadOnly<Glib::ustring> Object::property_accessible_description() const
667 return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "accessible-description");
670 Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > Object::property_accessible_parent()
672 return Glib::PropertyProxy< Glib::RefPtr<Atk::Object> >(this, "accessible-parent");
675 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > Object::property_accessible_parent() const
677 return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> >(this, "accessible-parent");
680 Glib::PropertyProxy<double> Object::property_accessible_value()
682 return Glib::PropertyProxy<double>(this, "accessible-value");
685 Glib::PropertyProxy_ReadOnly<double> Object::property_accessible_value() const
687 return Glib::PropertyProxy_ReadOnly<double>(this, "accessible-value");
690 Glib::PropertyProxy<int> Object::property_accessible_role()
692 return Glib::PropertyProxy<int>(this, "accessible-role");
695 Glib::PropertyProxy_ReadOnly<int> Object::property_accessible_role() const
697 return Glib::PropertyProxy_ReadOnly<int>(this, "accessible-role");
700 Glib::PropertyProxy_ReadOnly<int> Object::property_accessible_component_layer() const
702 return Glib::PropertyProxy_ReadOnly<int>(this, "accessible-component-layer");
705 Glib::PropertyProxy_ReadOnly<int> Object::property_accessible_component_mdi_zorder() const
707 return Glib::PropertyProxy_ReadOnly<int>(this, "accessible-component-mdi-zorder");
710 Glib::PropertyProxy<Glib::ustring> Object::property_accessible_table_caption()
712 return Glib::PropertyProxy<Glib::ustring>(this, "accessible-table-caption");
715 Glib::PropertyProxy_ReadOnly<Glib::ustring> Object::property_accessible_table_caption() const
717 return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "accessible-table-caption");
720 Glib::PropertyProxy<Glib::ustring> Object::property_accessible_table_column_description()
722 return Glib::PropertyProxy<Glib::ustring>(this, "accessible-table-column-description");
725 Glib::PropertyProxy_ReadOnly<Glib::ustring> Object::property_accessible_table_column_description() const
727 return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "accessible-table-column-description");
730 Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_column_header()
732 return Glib::PropertyProxy< Glib::RefPtr<Atk::Object> >(this, "accessible-table-column-header");
735 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_column_header() const
737 return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> >(this, "accessible-table-column-header");
740 Glib::PropertyProxy<Glib::ustring> Object::property_accessible_table_row_description()
742 return Glib::PropertyProxy<Glib::ustring>(this, "accessible-table-row-description");
745 Glib::PropertyProxy_ReadOnly<Glib::ustring> Object::property_accessible_table_row_description() const
747 return Glib::PropertyProxy_ReadOnly<Glib::ustring>(this, "accessible-table-row-description");
750 Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_row_header()
752 return Glib::PropertyProxy< Glib::RefPtr<Atk::Object> >(this, "accessible-table-row-header");
755 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_row_header() const
757 return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> >(this, "accessible-table-row-header");
760 Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_summary()
762 return Glib::PropertyProxy< Glib::RefPtr<Atk::Object> >(this, "accessible-table-summary");
765 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > Object::property_accessible_table_summary() const
767 return Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> >(this, "accessible-table-summary");
771 void Atk::Object::on_children_changed(guint change_index, gpointer changed_child)
773 BaseClassType *const base = static_cast<BaseClassType*>(
774 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
777 if(base && base->children_changed)
778 (*base->children_changed)(gobj(),change_index,changed_child);
781 void Atk::Object::on_focus_event(bool focus_in)
783 BaseClassType *const base = static_cast<BaseClassType*>(
784 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
787 if(base && base->focus_event)
788 (*base->focus_event)(gobj(),static_cast<int>(focus_in));
791 void Atk::Object::on_property_change(AtkPropertyValues* values)
793 BaseClassType *const base = static_cast<BaseClassType*>(
794 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
797 if(base && base->property_change)
798 (*base->property_change)(gobj(),values);
801 void Atk::Object::on_state_change(const Glib::ustring& name, bool state_set)
803 BaseClassType *const base = static_cast<BaseClassType*>(
804 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
807 if(base && base->state_change)
808 (*base->state_change)(gobj(),name.c_str(),static_cast<int>(state_set));
811 void Atk::Object::on_visible_data_changed()
813 BaseClassType *const base = static_cast<BaseClassType*>(
814 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
817 if(base && base->visible_data_changed)
818 (*base->visible_data_changed)(gobj());
821 void Atk::Object::on_active_descendant_changed(void** child)
823 BaseClassType *const base = static_cast<BaseClassType*>(
824 g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
827 if(base && base->active_descendant_changed)
828 (*base->active_descendant_changed)(gobj(),child);