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
38G_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
47typedef struct _GtkEditable GtkEditable; /* Dummy typedef */
48typedef struct _GtkEditableClass GtkEditableClass;
49
50struct _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
87GType gtk_editable_get_type (void) G_GNUC_CONST;
88void gtk_editable_select_region (GtkEditable *editable,
89 gint start_pos,
90 gint end_pos);
91gboolean gtk_editable_get_selection_bounds (GtkEditable *editable,
92 gint *start_pos,
93 gint *end_pos);
94void gtk_editable_insert_text (GtkEditable *editable,
95 const gchar *new_text,
96 gint new_text_length,
97 gint *position);
98void gtk_editable_delete_text (GtkEditable *editable,
99 gint start_pos,
100 gint end_pos);
101gchar* gtk_editable_get_chars (GtkEditable *editable,
102 gint start_pos,
103 gint end_pos);
104void gtk_editable_cut_clipboard (GtkEditable *editable);
105void gtk_editable_copy_clipboard (GtkEditable *editable);
106void gtk_editable_paste_clipboard (GtkEditable *editable);
107void gtk_editable_delete_selection (GtkEditable *editable);
108void gtk_editable_set_position (GtkEditable *editable,
109 gint position);
110gint gtk_editable_get_position (GtkEditable *editable);
111void gtk_editable_set_editable (GtkEditable *editable,
112 gboolean is_editable);
113gboolean gtk_editable_get_editable (GtkEditable *editable);
114
115G_END_DECLS
116
117#endif /* __GTK_EDITABLE_H__ */
118