Released 0.1
[atk.git] / atk / atktext.h
blob5387593b86eb04292ed5094554557894a3bf3632
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.
21 #ifndef __ATK_TEXT_H__
22 #define __ATK_TEXT_H__
24 #include <pango/pango.h>
25 #include <glib-object.h>
26 #include <atk/atkobject.h>
28 #ifdef __cplusplus
29 extern "C" {
30 #endif /* __cplusplus */
32 #define ATK_TYPE_TEXT (atk_text_get_type ())
33 #define ATK_IS_TEXT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_TEXT)
34 #define ATK_TEXT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_TEXT, AtkText)
35 #define ATK_TEXT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATK_TYPE_TEXT, AtkTextIface))
37 #ifndef _TYPEDEF_ATK_TEXT_
38 #define _TYPEDEF_ATK_TEXT_
39 typedef struct _AtkText AtkText;
40 #endif
41 typedef struct _AtkTextIface AtkTextIface;
43 typedef enum {
44 ATK_TEXT_BOUNDARY_CHAR,
45 ATK_TEXT_BOUNDARY_CURSOR_POS,
46 ATK_TEXT_BOUNDARY_WORD_START,
47 ATK_TEXT_BOUNDARY_WORD_END,
48 ATK_TEXT_BOUNDARY_SENTENCE_START,
49 ATK_TEXT_BOUNDARY_SENTENCE_END,
50 ATK_TEXT_BOUNDARY_LINE_START,
51 ATK_TEXT_BOUNDARY_LINE_END
52 } AtkTextBoundary;
54 struct _AtkTextIface
56 GTypeInterface parent;
58 gchar* (* get_text) (AtkText *text,
59 gint start_offset,
60 gint end_offset);
61 gchar* (* get_text_after_offset) (AtkText *text,
62 gint offset,
63 AtkTextBoundary boundary_type);
64 gchar* (* get_text_at_offset) (AtkText *text,
65 gint offset,
66 AtkTextBoundary boundary_type);
67 gunichar (* get_character_at_offset) (AtkText *text,
68 gint offset);
69 gchar* (* get_text_before_offset) (AtkText *text,
70 gint offset,
71 AtkTextBoundary boundary_type);
72 gint (* get_caret_offset) (AtkText *text);
73 void (* get_row_col_at_offset) (AtkText *text,
74 gint offset,
75 gint *row,
76 gint *col);
77 PangoAttrList* (* get_range_attributes) (AtkText *text,
78 gint start_offset,
79 gint end_offset);
80 void (* get_character_extents) (AtkText *text,
81 gint offset,
82 gint *x,
83 gint *y,
84 gint *length,
85 gint *width);
86 gint (* get_character_count) (AtkText *text);
87 gint (* get_offset_at_point) (AtkText *text,
88 gint x,
89 gint y);
90 gchar* (* get_selected_text) (AtkText *text);
91 void (* get_selection_bounds) (AtkText *text,
92 gint *start_offset,
93 gint *end_offset);
94 gboolean (* set_selection_bounds) (AtkText *text,
95 gint start_offset,
96 gint end_offset);
97 gboolean (* set_caret_offset) (AtkText *text,
98 gint offset);
100 GType atk_text_get_type (void);
104 * Additional AtkObject properties used by AtkText:
105 * "accessible_text" (accessible text has changed)
106 * "accessible_caret" (accessible text cursor position changed:
107 * editable text only)
110 gchar* atk_text_get_text (AtkText *text,
111 gint start_offset,
112 gint end_offset);
113 gunichar atk_text_get_character_at_offset (AtkText *text,
114 gint offset);
115 gchar* atk_text_get_text_after_offset (AtkText *text,
116 gint offset,
117 AtkTextBoundary boundary_type);
118 gchar* atk_text_get_text_at_offset (AtkText *text,
119 gint offset,
120 AtkTextBoundary boundary_type);
121 gchar* atk_text_get_text_before_offset (AtkText *text,
122 gint offset,
123 AtkTextBoundary boundary_type);
124 gint atk_text_get_caret_offset (AtkText *text);
125 void atk_text_get_row_col_at_offset (AtkText *text,
126 gint offset,
127 gint *row,
128 gint *col);
129 PangoAttrList* atk_text_get_range_attributes (AtkText *text,
130 gint start_offset,
131 gint end_offset);
132 void atk_text_get_character_extents (AtkText *text,
133 gint offset,
134 gint *x,
135 gint *y,
136 gint *length,
137 gint *width);
138 gint atk_text_get_character_count (AtkText *text);
139 gint atk_text_get_offset_at_point (AtkText *text,
140 gint x,
141 gint y);
142 gchar* atk_text_get_selected_text (AtkText *text);
143 void atk_text_get_selection_bounds (AtkText *text,
144 gint *start_offset,
145 gint *end_offset);
146 gboolean atk_text_set_selection_bounds (AtkText *text,
147 gint start_offset,
148 gint end_offset);
149 gboolean atk_text_set_caret_offset (AtkText *text,
150 gint offset);
152 #ifdef __cplusplus
154 #endif /* __cplusplus */
157 #endif /* __ATK_TEXT_H__ */