2001-11-13 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_component.c
1 /*
2  *
3  * SpiAccessibleComponent function implementations
4  *
5  */
6
7 /**
8  * SpiAccessibleComponent_ref:
9  * @obj: a pointer to an object implementing #AccessibleComponent on which to operate.
10  *
11  * Increment the reference count for an #AccessibleComponent.
12  *
13  * Returns: (no return code implemented yet).
14  *
15  **/
16 int
17 SpiAccessibleComponent_ref (SpiAccessibleComponent *obj)
18 {
19   Accessibility_Component_ref (*obj, &ev);
20   return 0;
21 }
22
23 /**
24  * SpiAccessibleComponent_unref:
25  * @obj: a pointer to the object implementing #AccessibleComponent on which to operate.
26  *
27  * Decrement the reference count for an #AccessibleComponent.
28  *
29  * Returns: (no return code implemented yet).
30  *
31  **/
32 int
33 SpiAccessibleComponent_unref (SpiAccessibleComponent *obj)
34 {
35   Accessibility_Component_unref (*obj, &ev);
36   return 0;
37 }
38
39 /**
40  * SpiAccessibleComponent_contains:
41  * @obj: a pointer to the #AccessibleComponent to query.
42  * @x: a #long specifying the x coordinate in question.
43  * @y: a #long specifying the y coordinate in question.
44  * @ctype: the desired coordinate system of the point (@x, @y)
45  *         (e.g. COORD_TYPE_WINDOW, COORD_TYPE_SCREEN).
46  *
47  * Query whether a given #AccessibleComponent contains a particular point.
48  *
49  **/
50 boolean
51 SpiAccessibleComponent_contains (SpiAccessibleComponent *obj,
52                               long x,
53                               long y,
54                               SpiAccessibleCoordType ctype)
55 {
56   return Accessibility_Component_contains (*obj,
57                                            (CORBA_long) x,
58                                            (CORBA_long) y,
59                                            ctype,
60                                            &ev);
61 }
62
63 /**
64  * SpiAccessibleComponent_getAccessibleAtPoint:
65  * @obj: a pointer to the #AccessibleComponent to query.
66  * @x: a #long specifying the x coordinate of the point in question.
67  * @y: a #long specifying the y coordinate of the point in question.
68  * @ctype: the coordinate system of the point (@x, @y)
69  *         (e.g. COORD_TYPE_WINDOW, COORD_TYPE_SCREEN).
70  *
71  * Get the accessible child at a given coordinate within an #AccessibleComponent.
72  *
73  * Returns: a pointer to an #Accessible child of the specified component which
74  *          contains the point (@x, @y), or NULL of no child contains the point.
75  **/
76 SpiAccessible *
77 SpiAccessibleComponent_getAccessibleAtPoint (SpiAccessibleComponent *obj,
78                                           long x,
79                                           long y,
80                                           SpiAccessibleCoordType ctype)
81 {
82   SpiAccessible child;
83   child = Accessibility_Component_getAccessibleAtPoint(*obj,
84                                                        (CORBA_long) x,
85                                                        (CORBA_long) y,
86                                                        ctype,
87                                                        &ev);
88   return (child != NULL) ? Obj_Add (child) : NULL;
89 }
90
91 /**
92  * SpiAccessibleComponent_getExtents:
93  * @obj: a pointer to the #AccessibleComponent to query.
94  * @x: a pointer to a #long into which the minimum x coordinate will be returned.
95  * @y: a pointer to a #long into which the minimum y coordinate will be returned.
96  * @width: a pointer to a #long into which the x extents (width) will be returned.
97  * @height: a pointer to a #long into which the y extents (height) will be returned.
98  * @ctype: the desired coordinate system into which to return the results,
99  *         (e.g. COORD_TYPE_WINDOW, COORD_TYPE_SCREEN).
100  *
101  * Get the bounding box of the specified #AccessibleComponent.
102  *
103  **/
104 void
105 SpiAccessibleComponent_getExtents (SpiAccessibleComponent *obj,
106                                 long *x,
107                                 long *y,
108                                 long *width,
109                                 long *height,
110                                 SpiAccessibleCoordType ctype)
111 {
112   CORBA_long cx, cy, cw, ch;    
113   Accessibility_Component_getExtents (*obj,
114                                       &cx,
115                                       &cy,
116                                       &cw,
117                                       &ch,
118                                       ctype,
119                                       &ev);
120   spi_warn_ev (&ev, "SpiAccessibleComponent_getExtents");
121   *x = (long) cx;
122   *y = (long) cy;
123   *width = (long) cw;
124   *height = (long) ch;
125 }
126
127 /**
128  * SpiAccessibleComponent_getPosition:
129  * @obj: a pointer to the #AccessibleComponent to query.
130  * @x: a pointer to a #long into which the minimum x coordinate will be returned.
131  * @y: a pointer to a #long into which the minimum y coordinate will be returned.
132  * @ctype: the desired coordinate system into which to return the results,
133  *         (e.g. COORD_TYPE_WINDOW, COORD_TYPE_SCREEN).
134  *
135  * Get the minimum x and y coordinates of the specified #AccessibleComponent.
136  *
137  **/
138 void
139 SpiAccessibleComponent_getPosition (SpiAccessibleComponent *obj,
140                                  long *x,
141                                  long *y,
142                                  SpiAccessibleCoordType ctype)
143 {
144   Accessibility_Component_getPosition (*obj,
145                                        (CORBA_long *) x,
146                                        (CORBA_long *) y,
147                                        ctype,
148                                        &ev);
149 }
150
151 /**
152  * SpiAccessibleComponent_getSize:
153  * @obj: a pointer to the #AccessibleComponent to query.
154  * @width: a pointer to a #long into which the x extents (width) will be returned.
155  * @height: a pointer to a #long into which the y extents (height) will be returned.
156  *
157  * Get the size of the specified #AccessibleComponent.
158  *
159  **/
160 void
161 SpiAccessibleComponent_getSize (SpiAccessibleComponent *obj,
162                              long *width,
163                              long *height)
164 {
165   Accessibility_Component_getSize (*obj,
166                                    (CORBA_long *) width,
167                                    (CORBA_long *) height,
168                                    &ev);
169 }
170
171 /* Not Yet Implemented */
172 void
173 SpiAccessibleComponent_grabFocus (SpiAccessibleComponent *obj)
174 {
175   ;
176 }