1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser 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 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 /* 19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 20 * file for a list of people on the GTK+ Team. See the ChangeLog 21 * files for a list of changes. These files are distributed with 22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 23 */ 24 25 #ifndef __GTK_EDITABLE_H__ 26 #define __GTK_EDITABLE_H__ 27 28 29 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 30 #error "Only <gtk/gtk.h> can be included directly." 31 #endif 32 33 #include <gtk/gtkwidget.h> 34 35 36 G_BEGIN_DECLS 37 38 #define GTK_TYPE_EDITABLE (gtk_editable_get_type ()) 39 #define GTK_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EDITABLE, GtkEditable)) 40 #define GTK_IS_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EDITABLE)) 41 #define GTK_EDITABLE_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_EDITABLE, GtkEditableInterface)) 42 43 typedef struct _GtkEditable GtkEditable; /* Dummy typedef */ 44 typedef struct _GtkEditableInterface GtkEditableInterface; 45 46 struct _GtkEditableInterface 47 { 48 GTypeInterface base_iface; 49 50 /* signals */ 51 void (* insert_text) (GtkEditable *editable, 52 const gchar *new_text, 53 gint new_text_length, 54 gint *position); 55 void (* delete_text) (GtkEditable *editable, 56 gint start_pos, 57 gint end_pos); 58 void (* changed) (GtkEditable *editable); 59 60 /* vtable */ 61 void (* do_insert_text) (GtkEditable *editable, 62 const gchar *new_text, 63 gint new_text_length, 64 gint *position); 65 void (* do_delete_text) (GtkEditable *editable, 66 gint start_pos, 67 gint end_pos); 68 69 gchar* (* get_chars) (GtkEditable *editable, 70 gint start_pos, 71 gint end_pos); 72 void (* set_selection_bounds) (GtkEditable *editable, 73 gint start_pos, 74 gint end_pos); 75 gboolean (* get_selection_bounds) (GtkEditable *editable, 76 gint *start_pos, 77 gint *end_pos); 78 void (* set_position) (GtkEditable *editable, 79 gint position); 80 gint (* get_position) (GtkEditable *editable); 81 }; 82 83 GDK_AVAILABLE_IN_ALL 84 GType gtk_editable_get_type (void) G_GNUC_CONST; 85 GDK_AVAILABLE_IN_ALL 86 void gtk_editable_select_region (GtkEditable *editable, 87 gint start_pos, 88 gint end_pos); 89 GDK_AVAILABLE_IN_ALL 90 gboolean gtk_editable_get_selection_bounds (GtkEditable *editable, 91 gint *start_pos, 92 gint *end_pos); 93 GDK_AVAILABLE_IN_ALL 94 void gtk_editable_insert_text (GtkEditable *editable, 95 const gchar *new_text, 96 gint new_text_length, 97 gint *position); 98 GDK_AVAILABLE_IN_ALL 99 void gtk_editable_delete_text (GtkEditable *editable, 100 gint start_pos, 101 gint end_pos); 102 GDK_AVAILABLE_IN_ALL 103 gchar* gtk_editable_get_chars (GtkEditable *editable, 104 gint start_pos, 105 gint end_pos); 106 GDK_AVAILABLE_IN_ALL 107 void gtk_editable_cut_clipboard (GtkEditable *editable); 108 GDK_AVAILABLE_IN_ALL 109 void gtk_editable_copy_clipboard (GtkEditable *editable); 110 GDK_AVAILABLE_IN_ALL 111 void gtk_editable_paste_clipboard (GtkEditable *editable); 112 GDK_AVAILABLE_IN_ALL 113 void gtk_editable_delete_selection (GtkEditable *editable); 114 GDK_AVAILABLE_IN_ALL 115 void gtk_editable_set_position (GtkEditable *editable, 116 gint position); 117 GDK_AVAILABLE_IN_ALL 118 gint gtk_editable_get_position (GtkEditable *editable); 119 GDK_AVAILABLE_IN_ALL 120 void gtk_editable_set_editable (GtkEditable *editable, 121 gboolean is_editable); 122 GDK_AVAILABLE_IN_ALL 123 gboolean gtk_editable_get_editable (GtkEditable *editable); 124 125 G_END_DECLS 126 127 #endif /* __GTK_EDITABLE_H__ */ 128