1 /* ATK - The Accessibility Toolkit for GTK+
2 * Copyright 2001 Sun Microsystems Inc.
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.
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.
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.
22 struct _AtkTextIfaceClass
27 typedef struct _AtkTextIfaceClass AtkTextIfaceClass
;
33 static GType type
= 0;
36 static const GTypeInfo tinfo
=
38 sizeof (AtkTextIface
),
44 type
= g_type_register_static (G_TYPE_INTERFACE
, "AtkText", &tinfo
, 0);
51 atk_text_get_text (AtkText
*text
,
57 g_return_val_if_fail (text
!= NULL
, NULL
);
58 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
60 iface
= ATK_TEXT_GET_IFACE (text
);
63 return (*(iface
->get_text
)) (text
, start_offset
, end_offset
);
69 atk_text_get_character_at_offset (AtkText
*text
,
74 g_return_val_if_fail (text
!= NULL
, (gunichar
) 0);
75 g_return_val_if_fail (ATK_IS_TEXT (text
), (gunichar
) 0);
77 iface
= ATK_TEXT_GET_IFACE (text
);
79 if (iface
->get_character_at_offset
)
80 return (*(iface
->get_character_at_offset
)) (text
, offset
);
86 atk_text_get_text_after_offset (AtkText
*text
,
88 AtkTextBoundary boundary_type
)
92 g_return_val_if_fail (text
!= NULL
, NULL
);
93 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
95 iface
= ATK_TEXT_GET_IFACE (text
);
97 if (iface
->get_text_after_offset
)
98 return (*(iface
->get_text_after_offset
)) (text
, offset
, boundary_type
);
104 atk_text_get_text_at_offset (AtkText
*text
,
106 AtkTextBoundary boundary_type
)
110 g_return_val_if_fail (text
!= NULL
, NULL
);
111 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
113 iface
= ATK_TEXT_GET_IFACE (text
);
115 if (iface
->get_text_at_offset
)
116 return (*(iface
->get_text_at_offset
)) (text
, offset
, boundary_type
);
122 atk_text_get_text_before_offset (AtkText
*text
,
124 AtkTextBoundary boundary_type
)
128 g_return_val_if_fail (text
!= NULL
, NULL
);
129 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
131 iface
= ATK_TEXT_GET_IFACE (text
);
133 if (iface
->get_text_before_offset
)
134 return (*(iface
->get_text_before_offset
)) (text
, offset
, boundary_type
);
140 atk_text_get_caret_offset (AtkText
*text
)
144 g_return_val_if_fail (text
!= NULL
, -1);
145 g_return_val_if_fail (ATK_IS_TEXT (text
), -1);
147 iface
= ATK_TEXT_GET_IFACE (text
);
149 if (iface
->get_caret_offset
)
150 return (*(iface
->get_caret_offset
)) (text
);
156 atk_text_get_row_col_at_offset (AtkText
*text
,
163 g_return_if_fail (text
!= NULL
);
164 g_return_if_fail (ATK_IS_TEXT (text
));
166 iface
= ATK_TEXT_GET_IFACE (text
);
168 if (iface
->get_row_col_at_offset
)
169 (*(iface
->get_row_col_at_offset
)) (text
, offset
, row
, col
);
178 atk_text_get_range_attributes (AtkText
*text
,
184 g_return_val_if_fail (text
!= NULL
, NULL
);
185 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
187 iface
= ATK_TEXT_GET_IFACE (text
);
189 if (iface
->get_range_attributes
)
190 return (*(iface
->get_range_attributes
)) (text
, start_offset
, end_offset
);
196 atk_text_get_character_extents (AtkText
*text
,
205 g_return_if_fail (text
!= NULL
);
206 g_return_if_fail (ATK_IS_TEXT (text
));
208 iface
= ATK_TEXT_GET_IFACE (text
);
210 if (iface
->get_character_extents
)
211 (*(iface
->get_character_extents
)) (text
, offset
, x
, y
, length
, width
);
222 atk_text_get_character_count (AtkText
*text
)
226 g_return_val_if_fail (text
!= NULL
, -1);
227 g_return_val_if_fail (ATK_IS_TEXT (text
), -1);
229 iface
= ATK_TEXT_GET_IFACE (text
);
231 if (iface
->get_character_count
)
232 return (*(iface
->get_character_count
)) (text
);
238 atk_text_get_offset_at_point (AtkText
*text
,
244 g_return_val_if_fail (text
!= NULL
, -1);
245 g_return_val_if_fail (ATK_IS_TEXT (text
), -1);
247 iface
= ATK_TEXT_GET_IFACE (text
);
249 if (iface
->get_offset_at_point
)
250 return (*(iface
->get_offset_at_point
)) (text
, x
, y
);
256 atk_text_get_selected_text (AtkText
*text
)
260 g_return_val_if_fail (text
!= NULL
, NULL
);
261 g_return_val_if_fail (ATK_IS_TEXT (text
), NULL
);
263 iface
= ATK_TEXT_GET_IFACE (text
);
265 if (iface
->get_selected_text
)
266 return (*(iface
->get_selected_text
)) (text
);
272 atk_text_get_selection_bounds (AtkText
*text
,
278 g_return_if_fail (text
!= NULL
);
279 g_return_if_fail (ATK_IS_TEXT (text
));
281 iface
= ATK_TEXT_GET_IFACE (text
);
283 if (iface
->get_selection_bounds
)
284 (*(iface
->get_selection_bounds
)) (text
, start_offset
, end_offset
);
293 atk_text_set_selection_bounds (AtkText
*text
,
299 g_return_val_if_fail (text
!= NULL
, FALSE
);
300 g_return_val_if_fail (ATK_IS_TEXT (text
), FALSE
);
302 iface
= ATK_TEXT_GET_IFACE (text
);
304 if (iface
->set_selection_bounds
)
306 return (*(iface
->set_selection_bounds
)) (text
, start_offset
, end_offset
);
315 atk_text_set_caret_offset (AtkText
*text
,
320 g_return_val_if_fail (text
!= NULL
, FALSE
);
321 g_return_val_if_fail (ATK_IS_TEXT (text
), FALSE
);
323 iface
= ATK_TEXT_GET_IFACE (text
);
325 if (iface
->set_caret_offset
)
327 return (*(iface
->set_caret_offset
)) (text
, offset
);