
@c %start of fragment

@node GtkEditable
@chapter GtkEditable
Interface for text-editing widgets

@section Overview
The @code{<gtk-editable>} interface is an interface which should be implemented
by text editing widgets, such as @code{<gtk-entry>} and @code{<gtk-text>}. 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.

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 

#include <ctype.h>

void
insert_text_handler (GtkEditable *editable,
                     const gchar *text,
                     gint         length,
                     gint        *position,
                     gpointer     data)
@{
  int i;
  gchar *result = g_utf8_strup (text, length);

  g_signal_handlers_block_by_func (editable,
				   (gpointer) insert_text_handler, data);
  gtk_editable_insert_text (editable, result, length, position);
  g_signal_handlers_unblock_by_func (editable,
                                     (gpointer) insert_text_handler, data);

  g_signal_stop_emission_by_name (editable, "insert_text"); 

  g_free (result);
@}
@end example

@section Usage
@include defuns-gtkeditable.xml.texi

@c %end of fragment
