Interface

GtkEditable

Description [src]

interface Gtk.Editable : GObject.Object

The GtkEditable interface is an interface which should be implemented by text editing widgets, such as GtkEntry and GtkSpinButton. 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 GtkEditable::insert-text, an application can convert all entry into a widget into uppercase.

Forcing entry to uppercase.

#include <ctype.h>;

void
insert_text_handler (GtkEditable *editable,
                     const gchar *text,
                     gint         length,
                     gint        *position,
                     gpointer     data)
{
  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);
}

Prerequisite

In order to implement Editable, your type must inherit from GObject.

Instance methods

gtk_editable_copy_clipboard

Copies the contents of the currently selected content in the editable and puts it on the clipboard.

gtk_editable_cut_clipboard

Removes the contents of the currently selected content in the editable and puts it on the clipboard.

gtk_editable_delete_selection

Deletes the currently selected text of the editable. This call doesn’t do anything if there is no selected text.

gtk_editable_delete_text

Deletes a sequence of characters. The characters that are deleted are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters deleted are those from start_pos to the end of the text.

gtk_editable_get_chars

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 characters retrieved are those characters from start_pos to the end of the text.

gtk_editable_get_editable

Retrieves whether editable is editable. See gtk_editable_set_editable().

gtk_editable_get_position

Retrieves the current position of the cursor relative to the start of the content of the editable.

gtk_editable_get_selection_bounds

Retrieves the selection bound of the editable. start_pos will be filled with the start of the selection and end_pos with end. If no text was selected both will be identical and FALSE will be returned.

gtk_editable_insert_text

Inserts new_text_length bytes of new_text into the contents of the widget, at position position.

gtk_editable_paste_clipboard

Pastes the content of the clipboard to the current position of the cursor in the editable.

gtk_editable_select_region

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 characters selected are those characters from start_pos to the end of the text.

gtk_editable_set_editable

Determines if the user can edit the text in the editable widget or not.

gtk_editable_set_position

Sets the cursor position in the editable to the given value.

Signals

Gtk.Editable::changed

The ::changed signal is emitted at the end of a single user-visible operation on the contents of the GtkEditable.

Gtk.Editable::delete-text

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 deleting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the range of deleted text, or prevent it from being deleted entirely. The start_pos and end_pos parameters are interpreted as for gtk_editable_delete_text().

Gtk.Editable::insert-text

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 g_signal_stop_emission(), it is possible to modify the inserted text, or prevent it from being inserted entirely.

Interface structure

struct GtkEditableInterface {
  GTypeInterface base_iface;
  void (* insert_text) (
    GtkEditable* editable,
    const gchar* new_text,
    gint new_text_length,
    gint* position
  );
  void (* delete_text) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  );
  void (* changed) (
    GtkEditable* editable
  );
  void (* do_insert_text) (
    GtkEditable* editable,
    const gchar* new_text,
    gint new_text_length,
    gint* position
  );
  void (* do_delete_text) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  );
  gchar* (* get_chars) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  );
  void (* set_selection_bounds) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  );
  gboolean (* get_selection_bounds) (
    GtkEditable* editable,
    gint* start_pos,
    gint* end_pos
  );
  void (* set_position) (
    GtkEditable* editable,
    gint position
  );
  gint (* get_position) (
    GtkEditable* editable
  );
  
}
Interface members
base_iface
GTypeInterface
 No description available.
insert_text
void (* insert_text) (
    GtkEditable* editable,
    const gchar* new_text,
    gint new_text_length,
    gint* position
  )
 No description available.
delete_text
void (* delete_text) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  )
 No description available.
changed
void (* changed) (
    GtkEditable* editable
  )
 No description available.
do_insert_text
void (* do_insert_text) (
    GtkEditable* editable,
    const gchar* new_text,
    gint new_text_length,
    gint* position
  )
 No description available.
do_delete_text
void (* do_delete_text) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  )
 No description available.
get_chars
gchar* (* get_chars) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  )
 No description available.
set_selection_bounds
void (* set_selection_bounds) (
    GtkEditable* editable,
    gint start_pos,
    gint end_pos
  )
 No description available.
get_selection_bounds
gboolean (* get_selection_bounds) (
    GtkEditable* editable,
    gint* start_pos,
    gint* end_pos
  )
 No description available.
set_position
void (* set_position) (
    GtkEditable* editable,
    gint position
  )
 No description available.
get_position
gint (* get_position) (
    GtkEditable* editable
  )
 No description available.

Virtual methods

Gtk.Editable.changed
No description available.
Gtk.Editable.delete_text

Deletes a sequence of characters. The characters that are deleted are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters deleted are those from start_pos to the end of the text.

Gtk.Editable.do_delete_text

Deletes a sequence of characters. The characters that are deleted are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters deleted are those from start_pos to the end of the text.

Gtk.Editable.do_insert_text

Inserts new_text_length bytes of new_text into the contents of the widget, at position position.

Gtk.Editable.get_chars

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 characters retrieved are those characters from start_pos to the end of the text.

Gtk.Editable.get_position

Retrieves the current position of the cursor relative to the start of the content of the editable.

Gtk.Editable.get_selection_bounds

Retrieves the selection bound of the editable. start_pos will be filled with the start of the selection and end_pos with end. If no text was selected both will be identical and FALSE will be returned.

Gtk.Editable.insert_text

Inserts new_text_length bytes of new_text into the contents of the widget, at position position.

Gtk.Editable.set_position

Sets the cursor position in the editable to the given value.

Gtk.Editable.set_selection_bounds

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 characters selected are those characters from start_pos to the end of the text.