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_EDITABLE_TEXT_H__ 21 #define __ATK_EDITABLE_TEXT_H__ 22 23 #if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined (__ATK_H_INSIDE__) && !defined (ATK_COMPILATION) 24 #error "Only <atk/atk.h> can be included directly." 25 #endif 26 27 #include <atk/atkobject.h> 28 #include <atk/atktext.h> 29 30 G_BEGIN_DECLS 31 32 /* 33 * AtkEditableText is used to support access in an "accessibility" context 34 * to editing features of editable text widgets. 35 */ 36 37 #define ATK_TYPE_EDITABLE_TEXT (atk_editable_text_get_type ()) 38 #define ATK_IS_EDITABLE_TEXT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_EDITABLE_TEXT) 39 #define ATK_EDITABLE_TEXT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_EDITABLE_TEXT, AtkEditableText) 40 #define ATK_EDITABLE_TEXT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATK_TYPE_EDITABLE_TEXT, AtkEditableTextIface)) 41 42 #ifndef _TYPEDEF_ATK_EDITABLE_TEXT_ 43 #define _TYPEDEF_ATK_EDITABLE_TEXT_ 44 typedef struct _AtkEditableText AtkEditableText; 45 #endif 46 typedef struct _AtkEditableTextIface AtkEditableTextIface; 47 48 struct _AtkEditableTextIface 49 { 50 GTypeInterface parent_interface; 51 52 gboolean (* set_run_attributes) (AtkEditableText *text, 53 AtkAttributeSet *attrib_set, 54 gint start_offset, 55 gint end_offset); 56 void (* set_text_contents) (AtkEditableText *text, 57 const gchar *string); 58 void (* insert_text) (AtkEditableText *text, 59 const gchar *string, 60 gint length, 61 gint *position); 62 void (* copy_text) (AtkEditableText *text, 63 gint start_pos, 64 gint end_pos); 65 void (* cut_text) (AtkEditableText *text, 66 gint start_pos, 67 gint end_pos); 68 void (* delete_text) (AtkEditableText *text, 69 gint start_pos, 70 gint end_pos); 71 void (* paste_text) (AtkEditableText *text, 72 gint position); 73 }; 74 ATK_AVAILABLE_IN_ALL 75 GType atk_editable_text_get_type (void); 76 77 78 ATK_AVAILABLE_IN_ALL 79 gboolean atk_editable_text_set_run_attributes (AtkEditableText *text, 80 AtkAttributeSet *attrib_set, 81 gint start_offset, 82 gint end_offset); 83 ATK_AVAILABLE_IN_ALL 84 void atk_editable_text_set_text_contents (AtkEditableText *text, 85 const gchar *string); 86 ATK_AVAILABLE_IN_ALL 87 void atk_editable_text_insert_text (AtkEditableText *text, 88 const gchar *string, 89 gint length, 90 gint *position); 91 ATK_AVAILABLE_IN_ALL 92 void atk_editable_text_copy_text (AtkEditableText *text, 93 gint start_pos, 94 gint end_pos); 95 ATK_AVAILABLE_IN_ALL 96 void atk_editable_text_cut_text (AtkEditableText *text, 97 gint start_pos, 98 gint end_pos); 99 ATK_AVAILABLE_IN_ALL 100 void atk_editable_text_delete_text (AtkEditableText *text, 101 gint start_pos, 102 gint end_pos); 103 ATK_AVAILABLE_IN_ALL 104 void atk_editable_text_paste_text (AtkEditableText *text, 105 gint position); 106 107 G_END_DECLS 108 109 #endif /* __ATK_EDITABLE_TEXT_H__ */ 110