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, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 /* 21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS 22 * file for a list of people on the GTK+ Team. See the ChangeLog 23 * files for a list of changes. These files are distributed with 24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 25 */ 26 27 #ifndef __GTK_EDITABLE_H__ 28 #define __GTK_EDITABLE_H__ 29 30 31 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 32 #error "Only <gtk/gtk.h> can be included directly." 33 #endif 34 35 #include <gtk/gtkwidget.h> 36 37 38 G_BEGIN_DECLS 39 40 #define GTK_TYPE_EDITABLE (gtk_editable_get_type ()) 41 #define GTK_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EDITABLE, GtkEditable)) 42 #define GTK_EDITABLE_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), GTK_TYPE_EDITABLE, GtkEditableClass)) 43 #define GTK_IS_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EDITABLE)) 44 #define GTK_IS_EDITABLE_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), GTK_TYPE_EDITABLE)) 45 #define GTK_EDITABLE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_EDITABLE, GtkEditableClass)) 46 47 typedef struct _GtkEditable GtkEditable; /* Dummy typedef */ 48 typedef struct _GtkEditableClass GtkEditableClass; 49 50 struct _GtkEditableClass 51 { 52 GTypeInterface base_iface; 53 54 /* signals */ 55 void (* insert_text) (GtkEditable *editable, 56 const gchar *text, 57 gint length, 58 gint *position); 59 void (* delete_text) (GtkEditable *editable, 60 gint start_pos, 61 gint end_pos); 62 void (* changed) (GtkEditable *editable); 63 64 /* vtable */ 65 void (* do_insert_text) (GtkEditable *editable, 66 const gchar *text, 67 gint length, 68 gint *position); 69 void (* do_delete_text) (GtkEditable *editable, 70 gint start_pos, 71 gint end_pos); 72 73 gchar* (* get_chars) (GtkEditable *editable, 74 gint start_pos, 75 gint end_pos); 76 void (* set_selection_bounds) (GtkEditable *editable, 77 gint start_pos, 78 gint end_pos); 79 gboolean (* get_selection_bounds) (GtkEditable *editable, 80 gint *start_pos, 81 gint *end_pos); 82 void (* set_position) (GtkEditable *editable, 83 gint position); 84 gint (* get_position) (GtkEditable *editable); 85 }; 86 87 GType gtk_editable_get_type (void) G_GNUC_CONST; 88 void gtk_editable_select_region (GtkEditable *editable, 89 gint start_pos, 90 gint end_pos); 91 gboolean gtk_editable_get_selection_bounds (GtkEditable *editable, 92 gint *start_pos, 93 gint *end_pos); 94 void gtk_editable_insert_text (GtkEditable *editable, 95 const gchar *new_text, 96 gint new_text_length, 97 gint *position); 98 void gtk_editable_delete_text (GtkEditable *editable, 99 gint start_pos, 100 gint end_pos); 101 gchar* gtk_editable_get_chars (GtkEditable *editable, 102 gint start_pos, 103 gint end_pos); 104 void gtk_editable_cut_clipboard (GtkEditable *editable); 105 void gtk_editable_copy_clipboard (GtkEditable *editable); 106 void gtk_editable_paste_clipboard (GtkEditable *editable); 107 void gtk_editable_delete_selection (GtkEditable *editable); 108 void gtk_editable_set_position (GtkEditable *editable, 109 gint position); 110 gint gtk_editable_get_position (GtkEditable *editable); 111 void gtk_editable_set_editable (GtkEditable *editable, 112 gboolean is_editable); 113 gboolean gtk_editable_get_editable (GtkEditable *editable); 114 115 G_END_DECLS 116 117 #endif /* __GTK_EDITABLE_H__ */ 118