2
// Generated by gtkmmproc -- DO NOT MODIFY!
3
#ifndef _ATKMM_OBJECT_H
4
#define _ATKMM_OBJECT_H
9
/* $Id: object.hg,v 1.5 2004/11/30 21:41:44 murrayc Exp $ */
11
/* Copyright (C) 1998-2002 The gtkmm Development Team
13
* This library is free software; you can redistribute it and/or
14
* modify it under the terms of the GNU Lesser General Public
15
* License as published by the Free Software Foundation; either
16
* version 2.1 of the License, or (at your option) any later version.
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
* Lesser General Public License for more details.
23
* You should have received a copy of the GNU Lesser 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.
29
#include <atkmm/component.h>
30
#include <atkmm/relation.h>
32
#ifndef DOXYGEN_SHOULD_SKIP_THIS
33
extern "C" { typedef struct _AtkPropertyValues AtkPropertyValues; }
37
#ifndef DOXYGEN_SHOULD_SKIP_THIS
38
typedef struct _AtkObject AtkObject;
39
typedef struct _AtkObjectClass AtkObjectClass;
40
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
44
{ class Object_Class; } // namespace Atk
49
/** @addtogroup atkmmEnums atkmm Enums and Flags */
100
ROLE_RADIO_MENU_ITEM,
112
ROLE_TABLE_COLUMN_HEADER,
113
ROLE_TABLE_ROW_HEADER,
114
ROLE_TEAR_OFF_MENU_ITEM,
139
#ifndef DOXYGEN_SHOULD_SKIP_THIS
144
class Value<Atk::Role> : public Glib::Value_Enum<Atk::Role>
147
static GType value_type() G_GNUC_CONST;
151
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
162
typedef guint64 State;
164
/** The base object class for the Accessibility Toolkit API.
165
* This class is the primary class for accessibility support via the Accessibility ToolKit (ATK). Objects which are
166
* instances of Atk::Object (or instances of Atk::Object-derived types) are queried for properties which relate basic
167
* (and generic) properties of a UI component such as name and description. Instances of Atk::Object may also be queried
168
* as to whether they implement other ATK interfaces (e.g. Atk::Action, Atk::Component, etc.), as appropriate to the role
169
* which a given UI component plays in a user interface.
171
* All UI components in an application which provide useful information or services to the user must provide corresponding
172
* Atk::Object instances on request (in GTK+, for instance, usually on a call to Gtk::Widget::get_accessible()), either via
173
* ATK support built into the toolkit for the widget class or ancestor class, or in the case of custom widgets, if the
174
* inherited Atk::Object implementation is insufficient, via instances of a new Atk::Object subclass.
177
class Object : public Glib::Object
180
#ifndef DOXYGEN_SHOULD_SKIP_THIS
183
typedef Object CppObjectType;
184
typedef Object_Class CppClassType;
185
typedef AtkObject BaseObjectType;
186
typedef AtkObjectClass BaseClassType;
188
private: friend class Object_Class;
189
static CppClassType object_class_;
193
Object(const Object&);
194
Object& operator=(const Object&);
197
explicit Object(const Glib::ConstructParams& construct_params);
198
explicit Object(AtkObject* castitem);
200
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
205
#ifndef DOXYGEN_SHOULD_SKIP_THIS
206
static GType get_type() G_GNUC_CONST;
209
static GType get_base_type() G_GNUC_CONST;
212
///Provides access to the underlying C GObject.
213
AtkObject* gobj() { return reinterpret_cast<AtkObject*>(gobject_); }
215
///Provides access to the underlying C GObject.
216
const AtkObject* gobj() const { return reinterpret_cast<AtkObject*>(gobject_); }
218
///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
219
AtkObject* gobj_copy();
223
// see wrap_new() implementation in object.ccg
228
/** Gets the accessible name of the accessible.
229
* @return A character string representing the accessible name of the object.
231
Glib::ustring get_name() const;
233
/** Gets the accessible description of the accessible.
234
* @return A character string representing the accessible description
237
Glib::ustring get_description() const;
239
/** Gets the accessible parent of the accessible.
240
* @return A Atk::Object representing the accessible parent of the accessible.
242
Glib::RefPtr<Atk::Object> get_parent();
244
/** Gets the number of accessible children of the accessible.
245
* @return An integer representing the number of accessible children
248
int get_n_accessible_children() const;
250
/** Gets a reference to the specified accessible child of the object.
251
* The accessible children are 0-based so the first accessible child is
252
* at index 0, the second at index 1 and so on.
253
* @param i A <tt>int</tt> representing the position of the child, starting from 0.
254
* @return An Atk::Object representing the specified accessible child
257
Glib::RefPtr<Atk::Object> get_accessible_child(int i);
259
/** Gets the Atk::RelationSet associated with the object.
260
* @return An Atk::RelationSet representing the relation set of the object.
262
Glib::RefPtr<RelationSet> get_relation_set();
264
/** Gets the role of the accessible.
265
* @return An Atk::Role which is the role of the accessible.
267
Role get_role() const;
269
/** Gets a reference to the state set of the accessible; the caller must
270
* unreference it when it is no longer needed.
271
* @return A reference to an Atk::StateSet which is the state
272
* set of the accessible.
274
Glib::RefPtr<StateSet> get_state_set();
276
/** Gets the 0-based index of this accessible in its parent; returns -1 if the
277
* accessible does not have an accessible parent.
278
* @return An integer which is the index of the accessible in its parent.
280
int get_index_in_parent();
282
/** Sets the accessible name of the accessible.
283
* @param name A character string to be set as the accessible name.
285
void set_name(const Glib::ustring& name);
287
/** Sets the accessible description of the accessible.
288
* @param description A character string to be set as the accessible description.
290
void set_description(const Glib::ustring& description);
292
/** Sets the accessible parent of the accessible.
293
* @param parent An Atk::Object to be set as the accessible parent.
295
void set_parent(const Glib::RefPtr<Atk::Object>& parent);
297
/** Sets the role of the accessible.
298
* @param role An Atk::Role to be set as the role.
300
void set_role(Role role);
301
//_WRAP_METHOD(guint connect_property_change_handler(AtkPropertyChangeHandler* handler), atk_object_connect_property_change_handler)
302
//_WRAP_METHOD(void remove_property_change_handler(guint handler_id), atk_object_remove_property_change_handler)
304
/** Emits a state-change signal for the specified state.
305
* @param state An Atk::State whose state is changed.
306
* @param value A <tt>bool</tt> which indicates whether the state is being set on or off.
308
void notify_state_change(State state, bool value);
311
/** Adds a relationship of the specified type with the specified target.
312
* @param relationship The Atk::RelationType of the relation.
313
* @param target The Atk::Object which is to be the target of the relation.
314
* @return <tt>true</tt> if the relationship is added.
316
bool add_relationship(RelationType relationship, const Glib::RefPtr<Object>& target);
318
/** Removes a relationship of the specified type with the specified target.
319
* @param relationship The Atk::RelationType of the relation.
320
* @param target The Atk::Object which is the target of the relation to be removed.
321
* @return <tt>true</tt> if the relationship is removed.
323
bool remove_relationship(RelationType relationship, const Glib::RefPtr<Object>& target);
328
* <tt>void on_my_%children_changed(guint change_index, gpointer changed_child)</tt>
331
Glib::SignalProxy2< void,guint,gpointer > signal_children_changed();
336
* <tt>void on_my_%focus_event(bool focus_in)</tt>
339
Glib::SignalProxy1< void,bool > signal_focus_event();
344
* <tt>void on_my_%property_change(AtkPropertyValues* values)</tt>
347
Glib::SignalProxy1< void,AtkPropertyValues* > signal_property_change();
352
* <tt>void on_my_%state_change(const Glib::ustring& name, bool state_set)</tt>
355
Glib::SignalProxy2< void,const Glib::ustring&,bool > signal_state_change();
360
* <tt>void on_my_%visible_data_changed()</tt>
363
Glib::SignalProxy0< void > signal_visible_data_changed();
368
* <tt>void on_my_%active_descendant_changed(void** child)</tt>
371
Glib::SignalProxy1< void,void** > signal_active_descendant_changed();
374
#ifdef GLIBMM_PROPERTIES_ENABLED
375
/** Object instance's name formatted for assistive technology access.
377
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
378
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
379
* the value of the property changes.
381
Glib::PropertyProxy<Glib::ustring> property_accessible_name() ;
382
#endif //#GLIBMM_PROPERTIES_ENABLED
384
#ifdef GLIBMM_PROPERTIES_ENABLED
385
/** Object instance's name formatted for assistive technology access.
387
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
388
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
389
* the value of the property changes.
391
Glib::PropertyProxy_ReadOnly<Glib::ustring> property_accessible_name() const;
392
#endif //#GLIBMM_PROPERTIES_ENABLED
394
#ifdef GLIBMM_PROPERTIES_ENABLED
395
/** Description of an object, formatted for assistive technology access.
397
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
398
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
399
* the value of the property changes.
401
Glib::PropertyProxy<Glib::ustring> property_accessible_description() ;
402
#endif //#GLIBMM_PROPERTIES_ENABLED
404
#ifdef GLIBMM_PROPERTIES_ENABLED
405
/** Description of an object, formatted for assistive technology access.
407
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
408
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
409
* the value of the property changes.
411
Glib::PropertyProxy_ReadOnly<Glib::ustring> property_accessible_description() const;
412
#endif //#GLIBMM_PROPERTIES_ENABLED
414
#ifdef GLIBMM_PROPERTIES_ENABLED
415
/** Is used to notify that the parent has changed.
417
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
418
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
419
* the value of the property changes.
421
Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > property_accessible_parent() ;
422
#endif //#GLIBMM_PROPERTIES_ENABLED
424
#ifdef GLIBMM_PROPERTIES_ENABLED
425
/** Is used to notify that the parent has changed.
427
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
428
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
429
* the value of the property changes.
431
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > property_accessible_parent() const;
432
#endif //#GLIBMM_PROPERTIES_ENABLED
434
#ifdef GLIBMM_PROPERTIES_ENABLED
435
/** Is used to notify that the value has changed.
437
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
438
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
439
* the value of the property changes.
441
Glib::PropertyProxy<double> property_accessible_value() ;
442
#endif //#GLIBMM_PROPERTIES_ENABLED
444
#ifdef GLIBMM_PROPERTIES_ENABLED
445
/** Is used to notify that the value has changed.
447
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
448
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
449
* the value of the property changes.
451
Glib::PropertyProxy_ReadOnly<double> property_accessible_value() const;
452
#endif //#GLIBMM_PROPERTIES_ENABLED
454
#ifdef GLIBMM_PROPERTIES_ENABLED
455
/** The accessible role of this object.
457
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
458
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
459
* the value of the property changes.
461
Glib::PropertyProxy<int> property_accessible_role() ;
462
#endif //#GLIBMM_PROPERTIES_ENABLED
464
#ifdef GLIBMM_PROPERTIES_ENABLED
465
/** The accessible role of this object.
467
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
468
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
469
* the value of the property changes.
471
Glib::PropertyProxy_ReadOnly<int> property_accessible_role() const;
472
#endif //#GLIBMM_PROPERTIES_ENABLED
474
#ifdef GLIBMM_PROPERTIES_ENABLED
475
/** The accessible layer of this object.
477
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
478
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
479
* the value of the property changes.
481
Glib::PropertyProxy_ReadOnly<int> property_accessible_component_layer() const;
482
#endif //#GLIBMM_PROPERTIES_ENABLED
485
#ifdef GLIBMM_PROPERTIES_ENABLED
486
/** The accessible MDI value of this object.
488
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
489
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
490
* the value of the property changes.
492
Glib::PropertyProxy_ReadOnly<int> property_accessible_component_mdi_zorder() const;
493
#endif //#GLIBMM_PROPERTIES_ENABLED
496
#ifdef GLIBMM_PROPERTIES_ENABLED
497
/** Is used to notify that the table caption has changed; this property should not be used. accessible-table-caption-object should be used instead.
499
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
500
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
501
* the value of the property changes.
503
Glib::PropertyProxy<Glib::ustring> property_accessible_table_caption() ;
504
#endif //#GLIBMM_PROPERTIES_ENABLED
506
#ifdef GLIBMM_PROPERTIES_ENABLED
507
/** Is used to notify that the table caption has changed; this property should not be used. accessible-table-caption-object should be used instead.
509
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
510
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
511
* the value of the property changes.
513
Glib::PropertyProxy_ReadOnly<Glib::ustring> property_accessible_table_caption() const;
514
#endif //#GLIBMM_PROPERTIES_ENABLED
516
#ifdef GLIBMM_PROPERTIES_ENABLED
517
/** Is used to notify that the table column description has changed.
519
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
520
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
521
* the value of the property changes.
523
Glib::PropertyProxy<Glib::ustring> property_accessible_table_column_description() ;
524
#endif //#GLIBMM_PROPERTIES_ENABLED
526
#ifdef GLIBMM_PROPERTIES_ENABLED
527
/** Is used to notify that the table column description has changed.
529
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
530
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
531
* the value of the property changes.
533
Glib::PropertyProxy_ReadOnly<Glib::ustring> property_accessible_table_column_description() const;
534
#endif //#GLIBMM_PROPERTIES_ENABLED
536
#ifdef GLIBMM_PROPERTIES_ENABLED
537
/** Is used to notify that the table column header has changed.
539
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
540
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
541
* the value of the property changes.
543
Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > property_accessible_table_column_header() ;
544
#endif //#GLIBMM_PROPERTIES_ENABLED
546
#ifdef GLIBMM_PROPERTIES_ENABLED
547
/** Is used to notify that the table column header has changed.
549
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
550
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
551
* the value of the property changes.
553
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > property_accessible_table_column_header() const;
554
#endif //#GLIBMM_PROPERTIES_ENABLED
556
#ifdef GLIBMM_PROPERTIES_ENABLED
557
/** Is used to notify that the table row description has changed.
559
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
560
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
561
* the value of the property changes.
563
Glib::PropertyProxy<Glib::ustring> property_accessible_table_row_description() ;
564
#endif //#GLIBMM_PROPERTIES_ENABLED
566
#ifdef GLIBMM_PROPERTIES_ENABLED
567
/** Is used to notify that the table row description has changed.
569
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
570
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
571
* the value of the property changes.
573
Glib::PropertyProxy_ReadOnly<Glib::ustring> property_accessible_table_row_description() const;
574
#endif //#GLIBMM_PROPERTIES_ENABLED
576
#ifdef GLIBMM_PROPERTIES_ENABLED
577
/** Is used to notify that the table row header has changed.
579
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
580
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
581
* the value of the property changes.
583
Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > property_accessible_table_row_header() ;
584
#endif //#GLIBMM_PROPERTIES_ENABLED
586
#ifdef GLIBMM_PROPERTIES_ENABLED
587
/** Is used to notify that the table row header has changed.
589
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
590
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
591
* the value of the property changes.
593
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > property_accessible_table_row_header() const;
594
#endif //#GLIBMM_PROPERTIES_ENABLED
596
#ifdef GLIBMM_PROPERTIES_ENABLED
597
/** Is used to notify that the table summary has changed.
599
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
600
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
601
* the value of the property changes.
603
Glib::PropertyProxy< Glib::RefPtr<Atk::Object> > property_accessible_table_summary() ;
604
#endif //#GLIBMM_PROPERTIES_ENABLED
606
#ifdef GLIBMM_PROPERTIES_ENABLED
607
/** Is used to notify that the table summary has changed.
609
* You rarely need to use properties because there are get_ and set_ methods for almost all of them.
610
* @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
611
* the value of the property changes.
613
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Atk::Object> > property_accessible_table_summary() const;
614
#endif //#GLIBMM_PROPERTIES_ENABLED
620
//C++ methods used to invoke GTK+ virtual functions:
623
//GTK+ Virtual Functions (override these to change behaviour):
625
//Default Signal Handlers::
626
virtual void on_children_changed(guint change_index, gpointer changed_child);
627
virtual void on_focus_event(bool focus_in);
628
virtual void on_property_change(AtkPropertyValues* values);
629
virtual void on_state_change(const Glib::ustring& name, bool state_set);
630
virtual void on_visible_data_changed();
631
virtual void on_active_descendant_changed(void** child);
641
/** A Glib::wrap() method for this object.
643
* @param object The C instance.
644
* @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
645
* @result A C++ instance that wraps this C instance.
647
* @relates Atk::Object
649
Glib::RefPtr<Atk::Object> wrap(AtkObject* object, bool take_copy = false);
653
#endif /* _ATKMM_OBJECT_H */