source: trunk/third/gtk/gtk/gtkeditable.h @ 14482

Revision 14482, 5.6 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14481, which included commits to RCS files with non-trunk default branches.
RevLine 
[14481]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 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/*
21 * Modified by the GTK+ Team and others 1997-1999.  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#include <gdk/gdk.h>
32#include <gtk/gtkwidget.h>
33
34
35#ifdef __cplusplus
36extern "C" {
37#endif /* __cplusplus */
38
39
40#define GTK_TYPE_EDITABLE            (gtk_editable_get_type ())
41#define GTK_EDITABLE(obj)            (GTK_CHECK_CAST ((obj), GTK_TYPE_EDITABLE, GtkEditable))
42#define GTK_EDITABLE_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_EDITABLE, GtkEditableClass))
43#define GTK_IS_EDITABLE(obj)         (GTK_CHECK_TYPE ((obj), GTK_TYPE_EDITABLE))
44#define GTK_IS_EDITABLE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_EDITABLE))
45
46
47typedef struct _GtkEditable       GtkEditable;
48typedef struct _GtkEditableClass  GtkEditableClass;
49
50typedef void (*GtkTextFunction) (GtkEditable  *editable, guint32 time);
51
52struct _GtkEditable
53{
54  GtkWidget widget;
55
56  /*< public >*/
57  guint      current_pos;
58
59  guint      selection_start_pos;
60  guint      selection_end_pos;
61  guint      has_selection : 1;
62
63  /*< private >*/
64  guint      editable : 1;
65  guint      visible : 1;
66  GdkIC     *ic;
67  GdkICAttr *ic_attr;
68 
69  gchar *clipboard_text;
70};
71
72struct _GtkEditableClass
73{
74  GtkWidgetClass parent_class;
75 
76  /* Signals for notification/filtering of changes */
77  void (* changed)      (GtkEditable    *editable);
78  void (* insert_text)  (GtkEditable    *editable,
79                         const gchar    *text,
80                         gint            length,
81                         gint           *position);
82  void (* delete_text)  (GtkEditable    *editable,
83                         gint            start_pos,
84                         gint            end_pos);
85
86  /* Bindings actions */
87  void (* activate)        (GtkEditable *editable);
88  void (* set_editable)    (GtkEditable *editable,
89                            gboolean     is_editable);
90  void (* move_cursor)     (GtkEditable *editable,
91                            gint         x,
92                            gint         y);
93  void (* move_word)       (GtkEditable *editable,
94                            gint         n);
95  void (* move_page)       (GtkEditable *editable,
96                            gint         x,
97                            gint         y);
98  void (* move_to_row)     (GtkEditable *editable,
99                            gint         row);
100  void (* move_to_column)  (GtkEditable *editable,
101                            gint         row);
102  void (* kill_char)       (GtkEditable *editable,
103                            gint         direction);
104  void (* kill_word)       (GtkEditable *editable,
105                            gint         direction);
106  void (* kill_line)       (GtkEditable *editable,
107                            gint         direction);
108  void (* cut_clipboard)   (GtkEditable *editable);
109  void (* copy_clipboard)  (GtkEditable *editable);
110  void (* paste_clipboard) (GtkEditable *editable);
111
112  /* Virtual functions. get_chars is in paricular not a signal because
113   * it returns malloced memory. The others are not signals because
114   * they would not be particularly useful as such. (All changes to
115   * selection and position do not go through these functions)
116   */
117  void (* update_text)  (GtkEditable    *editable,
118                         gint            start_pos,
119                         gint            end_pos);
120  gchar* (* get_chars)  (GtkEditable    *editable,
121                         gint            start_pos,
122                         gint            end_pos);
123  void (* set_selection)(GtkEditable    *editable,
124                         gint            start_pos,
125                         gint            end_pos);
126  void (* set_position) (GtkEditable    *editable,
127                         gint            position);
128};
129
130GtkType    gtk_editable_get_type       (void);
131void       gtk_editable_select_region  (GtkEditable      *editable,
132                                        gint              start,
133                                        gint              end);
134void       gtk_editable_insert_text   (GtkEditable       *editable,
135                                        const gchar      *new_text,
136                                        gint              new_text_length,
137                                        gint             *position);
138void       gtk_editable_delete_text    (GtkEditable      *editable,
139                                        gint              start_pos,
140                                        gint              end_pos);
141gchar*     gtk_editable_get_chars      (GtkEditable      *editable,
142                                        gint              start_pos,
143                                        gint              end_pos);
144void       gtk_editable_cut_clipboard  (GtkEditable      *editable);
145void       gtk_editable_copy_clipboard (GtkEditable      *editable);
146void       gtk_editable_paste_clipboard (GtkEditable     *editable);
147void       gtk_editable_claim_selection (GtkEditable     *editable,
148                                         gboolean         claim,
149                                         guint32          time);
150void       gtk_editable_delete_selection (GtkEditable    *editable);
151
152void       gtk_editable_changed         (GtkEditable    *editable);
153void       gtk_editable_set_position    (GtkEditable    *editable,
154                                         gint            position);
155gint       gtk_editable_get_position    (GtkEditable    *editable);
156void       gtk_editable_set_editable    (GtkEditable    *editable,
157                                         gboolean        is_editable);
158
159
160#ifdef __cplusplus
161}
162#endif /* __cplusplus */
163
164
165#endif /* __GTK_EDITABLE_H__ */
Note: See TracBrowser for help on using the repository browser.