source: trunk/third/atk/atk/atkcomponent.h @ 20776

Revision 20776, 8.8 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20775, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1/* ATK -  Accessibility Toolkit
2 * Copyright 2001 Sun Microsystems Inc.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20#ifndef __ATK_COMPONENT_H__
21#define __ATK_COMPONENT_H__
22
23#include <atk/atkobject.h>
24#include <atk/atkutil.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif /* __cplusplus */
29
30/*
31 * The AtkComponent interface should be supported by any object that is
32 * rendered on the screen. The interface provides the standard mechanism
33 * for an assistive technology to determine and set the graphical
34 * representation of an object.
35 */
36
37#define ATK_TYPE_COMPONENT                    (atk_component_get_type ())
38#define ATK_IS_COMPONENT(obj)                 G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_COMPONENT)
39#define ATK_COMPONENT(obj)                    G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_COMPONENT, AtkComponent)
40#define ATK_COMPONENT_GET_IFACE(obj)          (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATK_TYPE_COMPONENT, AtkComponentIface))
41
42#ifndef _TYPEDEF_ATK_COMPONENT_
43#define _TYPEDEF_ATK_COMPONENT_
44typedef struct _AtkComponent AtkComponent;
45#endif
46typedef struct _AtkComponentIface  AtkComponentIface;
47
48typedef void (*AtkFocusHandler) (AtkObject*, gboolean);
49
50typedef struct _AtkRectangle       AtkRectangle;
51
52struct _AtkRectangle
53{
54  gint x;
55  gint y;
56  gint width;
57  gint height;
58};
59
60GType atk_rectangle_get_type (void);
61
62#define ATK_TYPE_RECTANGLE (atk_rectangle_get_type ())
63struct _AtkComponentIface
64{
65  GTypeInterface parent;
66
67  guint          (* add_focus_handler)  (AtkComponent          *component,
68                                         AtkFocusHandler        handler);
69
70  gboolean       (* contains)           (AtkComponent          *component,
71                                         gint                   x,
72                                         gint                   y,
73                                         AtkCoordType           coord_type);
74
75  AtkObject*    (* ref_accessible_at_point)  (AtkComponent     *component,
76                                         gint                   x,
77                                         gint                   y,
78                                         AtkCoordType           coord_type);
79  void          (* get_extents)         (AtkComponent          *component,
80                                         gint                  *x,
81                                         gint                  *y,
82                                         gint                  *width,
83                                         gint                  *height,
84                                         AtkCoordType          coord_type);
85  void                     (* get_position)     (AtkComponent   *component,
86                                                 gint           *x,
87                                                 gint           *y,
88                                                 AtkCoordType   coord_type);
89  void                     (* get_size)                 (AtkComponent   *component,
90                                                         gint           *width,
91                                                         gint           *height);
92  gboolean                 (* grab_focus)               (AtkComponent   *component);
93  void                     (* remove_focus_handler)      (AtkComponent  *component,
94                                                          guint         handler_id);
95  gboolean                 (* set_extents)      (AtkComponent   *component,
96                                                 gint           x,
97                                                 gint           y,
98                                                 gint           width,
99                                                 gint           height,
100                                                 AtkCoordType   coord_type);
101  gboolean                 (* set_position)     (AtkComponent   *component,
102                                                 gint           x,
103                                                 gint           y,
104                                                 AtkCoordType   coord_type);
105  gboolean                 (* set_size)         (AtkComponent   *component,
106                                                 gint           width,
107                                                 gint           height);
108       
109  AtkLayer                 (* get_layer)        (AtkComponent   *component);
110  gint                     (* get_mdi_zorder)   (AtkComponent   *component);
111
112  /*
113   * signal handlers
114   */
115  void                     (* bounds_changed)   (AtkComponent   *component,
116                                                 AtkRectangle   *bounds);
117  AtkFunction              pad2;
118};
119
120GType atk_component_get_type (void);
121
122/* convenience functions */
123
124guint                atk_component_add_focus_handler      (AtkComponent    *component,
125                                                           AtkFocusHandler handler);
126gboolean              atk_component_contains               (AtkComponent    *component,
127                                                            gint            x,
128                                                            gint            y,
129                                                            AtkCoordType    coord_type);
130AtkObject*            atk_component_ref_accessible_at_point(AtkComponent    *component,
131                                                            gint            x,
132                                                            gint            y,
133                                                            AtkCoordType    coord_type);
134void                  atk_component_get_extents            (AtkComponent    *component,
135                                                            gint            *x,
136                                                            gint            *y,
137                                                            gint            *width,
138                                                            gint            *height,
139                                                            AtkCoordType    coord_type);
140void                  atk_component_get_position           (AtkComponent    *component,
141                                                            gint            *x,
142                                                            gint            *y,
143                                                            AtkCoordType    coord_type);
144void                  atk_component_get_size               (AtkComponent    *component,
145                                                            gint            *width,
146                                                            gint            *height);
147AtkLayer              atk_component_get_layer              (AtkComponent    *component);
148gint                  atk_component_get_mdi_zorder         (AtkComponent    *component);
149gboolean              atk_component_grab_focus             (AtkComponent    *component);
150void                  atk_component_remove_focus_handler   (AtkComponent    *component,
151                                                            guint           handler_id);
152gboolean              atk_component_set_extents            (AtkComponent    *component,
153                                                            gint            x,
154                                                            gint            y,
155                                                            gint            width,
156                                                            gint            height,
157                                                            AtkCoordType    coord_type);
158gboolean              atk_component_set_position           (AtkComponent    *component,
159                                                            gint            x,
160                                                            gint            y,
161                                                            AtkCoordType    coord_type);
162gboolean              atk_component_set_size               (AtkComponent    *component,
163                                                            gint            width,
164                                                            gint            height);
165
166#ifdef __cplusplus
167}
168#endif /* __cplusplus */
169
170
171#endif /* __ATK_COMPONENT_H__ */
Note: See TracBrowser for help on using the repository browser.