1/* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * Copyright (C) 2004-2006 Christian Hammond
5 * Copyright (C) 2008 Cody Russell
6 * Copyright (C) 2008 Red Hat, Inc.
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22/*
23 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
24 * file for a list of people on the GTK+ Team. See the ChangeLog
25 * files for a list of changes. These files are distributed with
26 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
27 */
28
29#ifndef __GTK_TEXT_H__
30#define __GTK_TEXT_H__
31
32
33#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
34#error "Only <gtk/gtk.h> can be included directly."
35#endif
36
37#include <gtk/gtkeditable.h>
38#include <gtk/gtkentrybuffer.h>
39
40
41G_BEGIN_DECLS
42
43#define GTK_TYPE_TEXT (gtk_text_get_type ())
44#define GTK_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT, GtkText))
45#define GTK_IS_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT))
46
47typedef struct _GtkText GtkText;
48
49struct _GtkText
50{
51 /*< private >*/
52 GtkWidget parent_instance;
53};
54
55GDK_AVAILABLE_IN_ALL
56GType gtk_text_get_type (void) G_GNUC_CONST;
57
58GDK_AVAILABLE_IN_ALL
59GtkWidget * gtk_text_new (void);
60GDK_AVAILABLE_IN_ALL
61GtkWidget * gtk_text_new_with_buffer (GtkEntryBuffer *buffer);
62
63GDK_AVAILABLE_IN_ALL
64GtkEntryBuffer *gtk_text_get_buffer (GtkText *self);
65GDK_AVAILABLE_IN_ALL
66void gtk_text_set_buffer (GtkText *self,
67 GtkEntryBuffer *buffer);
68
69GDK_AVAILABLE_IN_ALL
70void gtk_text_set_visibility (GtkText *self,
71 gboolean visible);
72GDK_AVAILABLE_IN_ALL
73gboolean gtk_text_get_visibility (GtkText *self);
74
75GDK_AVAILABLE_IN_ALL
76void gtk_text_set_invisible_char (GtkText *self,
77 gunichar ch);
78GDK_AVAILABLE_IN_ALL
79gunichar gtk_text_get_invisible_char (GtkText *self);
80GDK_AVAILABLE_IN_ALL
81void gtk_text_unset_invisible_char (GtkText *self);
82
83GDK_AVAILABLE_IN_ALL
84void gtk_text_set_overwrite_mode (GtkText *self,
85 gboolean overwrite);
86GDK_AVAILABLE_IN_ALL
87gboolean gtk_text_get_overwrite_mode (GtkText *self);
88
89GDK_AVAILABLE_IN_ALL
90void gtk_text_set_max_length (GtkText *self,
91 int length);
92GDK_AVAILABLE_IN_ALL
93int gtk_text_get_max_length (GtkText *self);
94GDK_AVAILABLE_IN_ALL
95guint16 gtk_text_get_text_length (GtkText *self);
96
97GDK_AVAILABLE_IN_ALL
98void gtk_text_set_activates_default (GtkText *self,
99 gboolean activates);
100GDK_AVAILABLE_IN_ALL
101gboolean gtk_text_get_activates_default (GtkText *self);
102
103GDK_AVAILABLE_IN_ALL
104const char * gtk_text_get_placeholder_text (GtkText *self);
105GDK_AVAILABLE_IN_ALL
106void gtk_text_set_placeholder_text (GtkText *self,
107 const char *text);
108
109GDK_AVAILABLE_IN_ALL
110void gtk_text_set_input_purpose (GtkText *self,
111 GtkInputPurpose purpose);
112GDK_AVAILABLE_IN_ALL
113GtkInputPurpose gtk_text_get_input_purpose (GtkText *self);
114
115GDK_AVAILABLE_IN_ALL
116void gtk_text_set_input_hints (GtkText *self,
117 GtkInputHints hints);
118GDK_AVAILABLE_IN_ALL
119GtkInputHints gtk_text_get_input_hints (GtkText *self);
120
121GDK_AVAILABLE_IN_ALL
122void gtk_text_set_attributes (GtkText *self,
123 PangoAttrList *attrs);
124GDK_AVAILABLE_IN_ALL
125PangoAttrList * gtk_text_get_attributes (GtkText *self);
126
127GDK_AVAILABLE_IN_ALL
128void gtk_text_set_tabs (GtkText *self,
129 PangoTabArray *tabs);
130
131GDK_AVAILABLE_IN_ALL
132PangoTabArray * gtk_text_get_tabs (GtkText *self);
133
134GDK_AVAILABLE_IN_ALL
135gboolean gtk_text_grab_focus_without_selecting (GtkText *self);
136
137GDK_AVAILABLE_IN_ALL
138void gtk_text_set_extra_menu (GtkText *self,
139 GMenuModel *model);
140GDK_AVAILABLE_IN_ALL
141GMenuModel * gtk_text_get_extra_menu (GtkText *self);
142
143GDK_AVAILABLE_IN_ALL
144void gtk_text_set_enable_emoji_completion (GtkText *self,
145 gboolean enable_emoji_completion);
146GDK_AVAILABLE_IN_ALL
147gboolean gtk_text_get_enable_emoji_completion (GtkText *self);
148
149
150GDK_AVAILABLE_IN_ALL
151void gtk_text_set_propagate_text_width (GtkText *self,
152 gboolean propagate_text_width);
153GDK_AVAILABLE_IN_ALL
154gboolean gtk_text_get_propagate_text_width (GtkText *self);
155
156GDK_AVAILABLE_IN_ALL
157void gtk_text_set_truncate_multiline (GtkText *self,
158 gboolean truncate_multiline);
159GDK_AVAILABLE_IN_ALL
160gboolean gtk_text_get_truncate_multiline (GtkText *self);
161
162GDK_AVAILABLE_IN_4_4
163void gtk_text_compute_cursor_extents (GtkText *self,
164 gsize position,
165 graphene_rect_t *strong,
166 graphene_rect_t *weak);
167
168
169G_END_DECLS
170
171#endif /* __GTK_TEXT_H__ */
172

source code of gtk/gtk/gtktext.h