1999-08-16 18:51:52 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
GtkEditable
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
2004-10-11 18:08:35 +00:00
|
|
|
Interface for text-editing widgets
|
1999-08-16 18:51:52 +00:00
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
2002-12-10 23:25:33 +00:00
|
|
|
The #GtkEditable interface is an interface which should be implemented by
|
|
|
|
text editing widgets, such as #GtkEntry and #GtkText. It contains functions
|
|
|
|
for generically manipulating an editable widget, a large number of action
|
|
|
|
signals used for key bindings, and several signals that an application can
|
|
|
|
connect to to modify the behavior of a widget.
|
1999-08-16 18:51:52 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
As an example of the latter usage, by connecting
|
|
|
|
the following handler to "insert_text", an application
|
|
|
|
can convert all entry into a widget into uppercase.
|
|
|
|
|
|
|
|
<example>
|
Markup fixes.
* gtk/gtkdialog.c, gtk/gtkrc.c, gtk/gtkwidget.c: Markup fixes.
* gdk-pixbuf-io.c: Markup fixes.
* gdk-pixbuf/tmpl/scaling.sgml, gdk/tmpl/fonts.sgml,
gdk/tmpl/general.sgml, gdk/tmpl/rgb.sgml, gdk/tmpl/visuals.sgml,
gdk/tmpl/windows.sgml, gtk/gtk-docs.sgml, gtk/tmpl/gtkaccellabel.sgml,
gtk/tmpl/gtkcombo.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkdrawingarea.sgml, gtk/tmpl/gtkeditable.sgml,
gtk/tmpl/gtkfilesel.sgml, gtk/tmpl/gtkfontseldlg.sgml,
gtk/tmpl/gtkimage.sgml, gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkobject.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkradiobutton.sgml,
gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtkscale.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtksocket.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwindow.sgml,
gdk/tmpl/regions.sgml, gtk/tmpl/gtkfontsel.sgml,
gtk/tmpl/gtkpixmap.sgml, gtk/tmpl/gtkprogress.sgml,
gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtktable.sgml,
gtk/tmpl/gtktipsquery.sgml: Markup fixes (mainly examples).
2001-12-13 19:51:24 +00:00
|
|
|
<title>Forcing entry to uppercase.</title>
|
1999-08-16 18:51:52 +00:00
|
|
|
<programlisting>
|
|
|
|
#include <ctype.h>
|
|
|
|
|
|
|
|
void
|
|
|
|
insert_text_handler (GtkEditable *editable,
|
|
|
|
const gchar *text,
|
|
|
|
gint length,
|
|
|
|
gint *position,
|
|
|
|
gpointer data)
|
|
|
|
{
|
|
|
|
int i;
|
2004-06-22 16:06:44 +00:00
|
|
|
gchar *result = g_utf8_strup (text, length);
|
1999-08-16 18:51:52 +00:00
|
|
|
|
2004-04-23 19:48:08 +00:00
|
|
|
g_signal_handlers_block_by_func (editable,
|
|
|
|
(gpointer) insert_text_handler, data);
|
1999-08-16 18:51:52 +00:00
|
|
|
gtk_editable_insert_text (editable, result, length, position);
|
2004-04-23 19:48:08 +00:00
|
|
|
g_signal_handlers_unblock_by_func (editable,
|
|
|
|
(gpointer) insert_text_handler, data);
|
1999-08-16 18:51:52 +00:00
|
|
|
|
2004-04-23 19:48:08 +00:00
|
|
|
g_signal_stop_emission_by_name (editable, "insert_text");
|
1999-08-16 18:51:52 +00:00
|
|
|
|
|
|
|
g_free (result);
|
|
|
|
}
|
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2005-06-20 22:06:27 +00:00
|
|
|
<!-- ##### SECTION Stability_Level ##### -->
|
|
|
|
|
|
|
|
|
1999-08-16 18:51:52 +00:00
|
|
|
<!-- ##### STRUCT GtkEditable ##### -->
|
|
|
|
<para>
|
|
|
|
The #GtkEditable structure contains the following fields.
|
|
|
|
(These fields should be considered read-only. They should
|
|
|
|
never be set by an application.)
|
|
|
|
|
2002-05-28 22:23:55 +00:00
|
|
|
<informaltable pgwide="1" frame="none" role="struct">
|
|
|
|
<tgroup cols="2"><colspec colwidth="2*"/><colspec colwidth="8*"/>
|
1999-08-16 18:51:52 +00:00
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>#guint selection_start;</entry>
|
|
|
|
<entry>the starting position of the selected characters
|
|
|
|
in the widget.</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>#guint selection_end;</entry>
|
|
|
|
<entry>the end position of the selected characters
|
|
|
|
in the widget.</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>#guint editable;</entry>
|
|
|
|
<entry>a flag indicating whether or not the widget is
|
|
|
|
editable by the user.</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
</tbody></tgroup></informaltable>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
2004-07-20 02:26:06 +00:00
|
|
|
<!-- ##### SIGNAL GtkEditable::changed ##### -->
|
|
|
|
<para>
|
|
|
|
Indicates that the user has changed the contents
|
|
|
|
of the widget.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: the object which received the signal.
|
|
|
|
|
|
|
|
<!-- ##### SIGNAL GtkEditable::delete-text ##### -->
|
|
|
|
<para>
|
|
|
|
This signal is emitted when text is deleted from
|
|
|
|
the widget by the user. The default handler for
|
|
|
|
this signal will normally be responsible for inserting
|
|
|
|
the text, so by connecting to this signal and then
|
|
|
|
stopping the signal with gtk_signal_emit_stop(), it
|
|
|
|
is possible to modify the inserted text, or prevent
|
|
|
|
it from being inserted entirely. The @start_pos
|
|
|
|
and @end_pos parameters are interpreted as for
|
|
|
|
gtk_editable_delete_text()
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: the object which received the signal.
|
|
|
|
@start_pos: the starting position.
|
|
|
|
@end_pos: the end position.
|
|
|
|
|
|
|
|
<!-- ##### SIGNAL GtkEditable::insert-text ##### -->
|
|
|
|
<para>
|
|
|
|
This signal is emitted when text is inserted into
|
|
|
|
the widget by the user. The default handler for
|
|
|
|
this signal will normally be responsible for inserting
|
|
|
|
the text, so by connecting to this signal and then
|
|
|
|
stopping the signal with gtk_signal_emit_stop(), it
|
|
|
|
is possible to modify the inserted text, or prevent
|
|
|
|
it from being inserted entirely.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: the object which received the signal.
|
|
|
|
@new_text: the new text to insert.
|
|
|
|
@new_text_length: the length of the new text.
|
|
|
|
@position: the position at which to insert the new text.
|
|
|
|
this is an in-out paramter. After the signal
|
|
|
|
emission is finished, it should point after
|
|
|
|
the newly inserted text.
|
|
|
|
|
1999-08-16 18:51:52 +00:00
|
|
|
<!-- ##### FUNCTION gtk_editable_select_region ##### -->
|
|
|
|
<para>
|
|
|
|
Selects a region of text. The characters that
|
|
|
|
are selected are those characters at positions from
|
|
|
|
@start_pos up to, but not including @end_pos. If
|
|
|
|
@end_pos is negative, then the the characters selected
|
|
|
|
will be those characters from @start_pos to the end
|
|
|
|
of the text.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@start: the starting position.
|
|
|
|
@end: the end position.
|
|
|
|
|
|
|
|
|
2000-11-14 16:36:20 +00:00
|
|
|
<!-- ##### FUNCTION gtk_editable_get_selection_bounds ##### -->
|
|
|
|
<para>
|
2001-10-09 23:29:46 +00:00
|
|
|
Gets the current selection bounds, if there is a selection.
|
2000-11-14 16:36:20 +00:00
|
|
|
</para>
|
|
|
|
|
2001-10-09 23:29:46 +00:00
|
|
|
@editable: a #GtkEditable widget.
|
2001-10-13 05:52:14 +00:00
|
|
|
@start: location to store the starting position, or %NULL.
|
|
|
|
@end: location to store the end position, or %NULL.
|
2001-10-09 23:29:46 +00:00
|
|
|
@Returns: %TRUE if there is a selection.
|
2000-11-14 16:36:20 +00:00
|
|
|
|
|
|
|
|
1999-08-16 18:51:52 +00:00
|
|
|
<!-- ##### FUNCTION gtk_editable_insert_text ##### -->
|
|
|
|
<para>
|
Markup fixes.
* gtk/gtkdialog.c, gtk/gtkrc.c, gtk/gtkwidget.c: Markup fixes.
* gdk-pixbuf-io.c: Markup fixes.
* gdk-pixbuf/tmpl/scaling.sgml, gdk/tmpl/fonts.sgml,
gdk/tmpl/general.sgml, gdk/tmpl/rgb.sgml, gdk/tmpl/visuals.sgml,
gdk/tmpl/windows.sgml, gtk/gtk-docs.sgml, gtk/tmpl/gtkaccellabel.sgml,
gtk/tmpl/gtkcombo.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkdrawingarea.sgml, gtk/tmpl/gtkeditable.sgml,
gtk/tmpl/gtkfilesel.sgml, gtk/tmpl/gtkfontseldlg.sgml,
gtk/tmpl/gtkimage.sgml, gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkobject.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkradiobutton.sgml,
gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtkscale.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtksocket.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwindow.sgml,
gdk/tmpl/regions.sgml, gtk/tmpl/gtkfontsel.sgml,
gtk/tmpl/gtkpixmap.sgml, gtk/tmpl/gtkprogress.sgml,
gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtktable.sgml,
gtk/tmpl/gtktipsquery.sgml: Markup fixes (mainly examples).
2001-12-13 19:51:24 +00:00
|
|
|
Inserts text at a given position.
|
1999-08-16 18:51:52 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@new_text: the text to insert.
|
|
|
|
@new_text_length: the length of the text to insert, in bytes
|
|
|
|
@position: an inout parameter. The caller initializes it to
|
|
|
|
the position at which to insert the text. After the
|
|
|
|
call it points at the position after the newly
|
|
|
|
inserted text.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_delete_text ##### -->
|
|
|
|
<para>
|
Markup fixes.
* gtk/gtkdialog.c, gtk/gtkrc.c, gtk/gtkwidget.c: Markup fixes.
* gdk-pixbuf-io.c: Markup fixes.
* gdk-pixbuf/tmpl/scaling.sgml, gdk/tmpl/fonts.sgml,
gdk/tmpl/general.sgml, gdk/tmpl/rgb.sgml, gdk/tmpl/visuals.sgml,
gdk/tmpl/windows.sgml, gtk/gtk-docs.sgml, gtk/tmpl/gtkaccellabel.sgml,
gtk/tmpl/gtkcombo.sgml, gtk/tmpl/gtkdialog.sgml,
gtk/tmpl/gtkdrawingarea.sgml, gtk/tmpl/gtkeditable.sgml,
gtk/tmpl/gtkfilesel.sgml, gtk/tmpl/gtkfontseldlg.sgml,
gtk/tmpl/gtkimage.sgml, gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkobject.sgml,
gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkradiobutton.sgml,
gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtkscale.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtksocket.sgml, gtk/tmpl/gtkspinbutton.sgml,
gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtksignal.sgml,
gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwindow.sgml,
gdk/tmpl/regions.sgml, gtk/tmpl/gtkfontsel.sgml,
gtk/tmpl/gtkpixmap.sgml, gtk/tmpl/gtkprogress.sgml,
gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtktable.sgml,
gtk/tmpl/gtktipsquery.sgml: Markup fixes (mainly examples).
2001-12-13 19:51:24 +00:00
|
|
|
Deletes a sequence of characters. The characters that
|
1999-08-16 18:51:52 +00:00
|
|
|
are deleted are those characters at positions from
|
|
|
|
@start_pos up to, but not including @end_pos. If
|
|
|
|
@end_pos is negative, then the the characters deleted
|
|
|
|
will be those characters from @start_pos to the end
|
|
|
|
of the text.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@start_pos: the starting position.
|
|
|
|
@end_pos: the end position.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_get_chars ##### -->
|
|
|
|
<para>
|
|
|
|
Retrieves a sequence of characters. The characters that
|
|
|
|
are retrieved are those characters at positions from
|
|
|
|
@start_pos up to, but not including @end_pos. If
|
|
|
|
@end_pos is negative, then the the characters retrieved
|
|
|
|
will be those characters from @start_pos to the end
|
|
|
|
of the text.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@start_pos: the starting position.
|
|
|
|
@end_pos: the end position.
|
|
|
|
@Returns: the characters in the indicated region.
|
|
|
|
The result must be freed with g_free() when
|
|
|
|
the application is finished with it.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_cut_clipboard ##### -->
|
|
|
|
<para>
|
|
|
|
Causes the characters in the current selection to
|
|
|
|
be copied to the clipboard and then deleted from
|
|
|
|
the widget.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_copy_clipboard ##### -->
|
|
|
|
<para>
|
|
|
|
Causes the characters in the current selection to
|
|
|
|
be copied to the clipboard.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_paste_clipboard ##### -->
|
|
|
|
<para>
|
|
|
|
Causes the contents of the clipboard to be pasted into
|
|
|
|
the given widget at the current cursor position.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_delete_selection ##### -->
|
|
|
|
<para>
|
|
|
|
Deletes the current contents of the widgets selection and
|
|
|
|
disclaims the selection.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_set_position ##### -->
|
|
|
|
<para>
|
|
|
|
Sets the cursor position.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@position: the position of the cursor. The cursor is displayed
|
|
|
|
before the character with the given (base 0) index
|
|
|
|
in the widget. The value must be less than or
|
|
|
|
equal to the number of characters in the widget.
|
|
|
|
A value of -1 indicates that the position should
|
|
|
|
be set after the last character in the entry.
|
|
|
|
Note that this position is in characters, not in
|
|
|
|
bytes.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_get_position ##### -->
|
|
|
|
<para>
|
|
|
|
Retrieves the current cursor position.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@Returns: the position of the cursor. The cursor is displayed
|
|
|
|
before the character with the given (base 0) index
|
|
|
|
in the widget. The value will be less than or
|
|
|
|
equal to the number of characters in the widget.
|
|
|
|
Note that this position is in characters, not in
|
|
|
|
bytes.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_editable_set_editable ##### -->
|
|
|
|
<para>
|
|
|
|
Determines if the user can edit the text in the editable
|
|
|
|
widget or not.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable: a #GtkEditable widget.
|
|
|
|
@is_editable: %TRUE if the user is allowed to edit the text
|
|
|
|
in the widget.
|
|
|
|
|
|
|
|
|
2001-09-08 06:24:46 +00:00
|
|
|
<!-- ##### FUNCTION gtk_editable_get_editable ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@editable:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|