GtkEntry

Name

GtkEntry -- a single line text entry field.

Synopsis


#include <gtk/gtk.h>


struct      GtkEntry;
GtkWidget*  gtk_entry_new                   (void);
GtkWidget*  gtk_entry_new_with_max_length   (gint max);
void        gtk_entry_set_text              (GtkEntry *entry,
                                             const gchar *text);
void        gtk_entry_append_text           (GtkEntry *entry,
                                             const gchar *text);
void        gtk_entry_prepend_text          (GtkEntry *entry,
                                             const gchar *text);
void        gtk_entry_set_position          (GtkEntry *entry,
                                             gint position);
G_CONST_RETURN gchar* gtk_entry_get_text    (GtkEntry *entry);
void        gtk_entry_select_region         (GtkEntry *entry,
                                             gint start,
                                             gint end);
void        gtk_entry_set_visibility        (GtkEntry *entry,
                                             gboolean visible);
void        gtk_entry_set_invisible_char    (GtkEntry *entry,
                                             gunichar ch);
void        gtk_entry_set_editable          (GtkEntry *entry,
                                             gboolean editable);
void        gtk_entry_set_max_length        (GtkEntry *entry,
                                             gint max);
gboolean    gtk_entry_get_activates_default (GtkEntry *entry);
gboolean    gtk_entry_get_has_frame         (GtkEntry *entry);
gint        gtk_entry_get_width_chars       (GtkEntry *entry);
void        gtk_entry_set_activates_default (GtkEntry *entry,
                                             gboolean setting);
void        gtk_entry_set_has_frame         (GtkEntry *entry,
                                             gboolean setting);
void        gtk_entry_set_width_chars       (GtkEntry *entry,
                                             gint n_chars);
gunichar    gtk_entry_get_invisible_char    (GtkEntry *entry);
PangoLayout* gtk_entry_get_layout           (GtkEntry *entry);
void        gtk_entry_get_layout_offsets    (GtkEntry *entry,
                                             gint *x,
                                             gint *y);
gint        gtk_entry_get_max_length        (GtkEntry *entry);
gboolean    gtk_entry_get_visibility        (GtkEntry *entry);


Object Hierarchy


  GObject
   +----GtkObject
         +----GtkWidget
               +----GtkEntry

Properties


  "cursor-position"      gint                 : Read
  "selection-bound"      gint                 : Read
  "editable"             gboolean             : Read / Write
  "max-length"           gint                 : Read / Write
  "visibility"           gboolean             : Read / Write
  "has-frame"            gboolean             : Read / Write
  "invisible-char"       guint                : Read / Write
  "activates-default"    gboolean             : Read / Write
  "width-chars"          gint                 : Read / Write
  "scroll-offset"        gint                 : Read
  "text"                 gchararray           : Read / Write

Signal Prototypes


"activate"  void        user_function      (GtkEntry *entry,
                                            gpointer user_data);
"copy-clipboard"
            void        user_function      (GtkEntry *entry,
                                            gpointer user_data);
"cut-clipboard"
            void        user_function      (GtkEntry *entry,
                                            gpointer user_data);
"delete-from-cursor"
            void        user_function      (GtkEntry *entry,
                                            GtkDeleteType arg1,
                                            gint arg2,
                                            gpointer user_data);
"insert-at-cursor"
            void        user_function      (GtkEntry *entry,
                                            gchar *arg1,
                                            gpointer user_data);
"move-cursor"
            void        user_function      (GtkEntry *entry,
                                            GtkMovementStep arg1,
                                            gint arg2,
                                            gboolean arg3,
                                            gpointer user_data);
"paste-clipboard"
            void        user_function      (GtkEntry *entry,
                                            gpointer user_data);
"populate-popup"
            void        user_function      (GtkEntry *entry,
                                            GtkMenu *arg1,
                                            gpointer user_data);
"toggle-overwrite"
            void        user_function      (GtkEntry *entry,
                                            gpointer user_data);

Description

The GtkEntry widget is a single line text entry widget. A fairly large set of key bindings are supported by default. If the entered text is longer than the allocation of the widget, the widget will scroll so that the cursor position is visible.

Details

struct GtkEntry

struct GtkEntry;

The GtkEntry struct contains only private data.


gtk_entry_new ()

GtkWidget*  gtk_entry_new                   (void);

Creates a new GtkEntry widget.


gtk_entry_new_with_max_length ()

GtkWidget*  gtk_entry_new_with_max_length   (gint max);

Warning

gtk_entry_new_with_max_length is deprecated and should not be used in newly-written code.

Creates a new GtkEntry widget with the given maximum length.

Note: the existance of this function is inconsistent with the rest of the GTK+ API. The normal setup would be to just require the user to make an extra call to gtk_entry_set_max_length() instead. It is not expected that this function will be removed, but it would be better practice not to use it.


gtk_entry_set_text ()

void        gtk_entry_set_text              (GtkEntry *entry,
                                             const gchar *text);

Sets the text in the widget to the given value, replacing the current contents.


gtk_entry_append_text ()

void        gtk_entry_append_text           (GtkEntry *entry,
                                             const gchar *text);

Warning

gtk_entry_append_text is deprecated and should not be used in newly-written code.

Appends the given text to the contents of the widget.


gtk_entry_prepend_text ()

void        gtk_entry_prepend_text          (GtkEntry *entry,
                                             const gchar *text);

Warning

gtk_entry_prepend_text is deprecated and should not be used in newly-written code.

Prepends the given text to the contents of th ewidget.


gtk_entry_set_position ()

void        gtk_entry_set_position          (GtkEntry *entry,
                                             gint position);

Warning

gtk_entry_set_position is deprecated and should not be used in newly-written code.

Sets the cursor position in an entry to the given value. This function is obsolete. You should use gtk_editable_set_position() instead.


gtk_entry_get_text ()

G_CONST_RETURN gchar* gtk_entry_get_text    (GtkEntry *entry);

Retrieve the contents of the entry widget. The returned pointer points to internally allocated storage in the widget and must not be freed, modified or stored. See also gtk_editable_get_chars().


gtk_entry_select_region ()

void        gtk_entry_select_region         (GtkEntry *entry,
                                             gint start,
                                             gint end);

Warning

gtk_entry_select_region is deprecated and should not be used in newly-written code.

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. This function is obsolete. You should use gtk_editable_select_region() instead.


gtk_entry_set_visibility ()

void        gtk_entry_set_visibility        (GtkEntry *entry,
                                             gboolean visible);

Sets whether the contents of the entry are visible or not. When visibility is set to FALSE, characters are displayed as the invisible char, and will also appear that way when the text in the entry widget is copied elsewhere.

The default invisible char is the asterisk '*', but it can be changed with gtk_entry_set_invisible_char().


gtk_entry_set_invisible_char ()

void        gtk_entry_set_invisible_char    (GtkEntry *entry,
                                             gunichar ch);

Sets the character to use in place of the actual text when gtk_entry_set_visibility() has been called to set text visibility to FALSE. i.e. this is the character used in "password mode" to show the user how many characters have been typed. The default invisible char is an asterisk ('*'). If you set the invisible char to 0, then the user will get no feedback at all; there will be no text on the screen as they type.


gtk_entry_set_editable ()

void        gtk_entry_set_editable          (GtkEntry *entry,
                                             gboolean editable);

Warning

gtk_entry_set_editable is deprecated and should not be used in newly-written code.

Determines if the user can edit the text in the editable widget or not. This function is obsolete. You should use gtk_editable_set_editable() instead.


gtk_entry_set_max_length ()

void        gtk_entry_set_max_length        (GtkEntry *entry,
                                             gint max);

Sets the maximum allowed length of the contents of the widget. If the current contents are longer than the given length, then they will be truncated to fit.


gtk_entry_get_activates_default ()

gboolean    gtk_entry_get_activates_default (GtkEntry *entry);

Retrieves the value set by gtk_entry_set_activates_default().


gtk_entry_get_has_frame ()

gboolean    gtk_entry_get_has_frame         (GtkEntry *entry);

Gets the value set by gtk_entry_set_has_frame().


gtk_entry_get_width_chars ()

gint        gtk_entry_get_width_chars       (GtkEntry *entry);

Gets the value set by gtk_entry_set_width_chars().


gtk_entry_set_activates_default ()

void        gtk_entry_set_activates_default (GtkEntry *entry,
                                             gboolean setting);

If setting is TRUE, pressing Enter in the entry will activate the default widget for the window containing the entry. This usually means that the dialog box containing the entry will be closed, since the default widget is usually one of the dialog buttons.

(For experts: if setting is TRUE, the entry calls gtk_window_activate_default() on the window containing the entry, in the default handler for the "activate" signal.)


gtk_entry_set_has_frame ()

void        gtk_entry_set_has_frame         (GtkEntry *entry,
                                             gboolean setting);

Sets whether the entry has a beveled frame around it.


gtk_entry_set_width_chars ()

void        gtk_entry_set_width_chars       (GtkEntry *entry,
                                             gint n_chars);

Changes the size request of the entry to be about the right size for n_chars characters. Note that it changes the size request, the size can still be affected by how you pack the widget into containers. If n_chars is -1, the size reverts to the default entry size.


gtk_entry_get_invisible_char ()

gunichar    gtk_entry_get_invisible_char    (GtkEntry *entry);

Retrieves the character displayed in place of the real characters for entries with visisbility set to false. See gtk_entry_set_invisible_char().


gtk_entry_get_layout ()

PangoLayout* gtk_entry_get_layout           (GtkEntry *entry);

Gets the PangoLayout used to display the entry. The layout is useful to e.g. convert text positions to pixel positions, in combination with gtk_entry_get_layout_offsets(). The returned layout is owned by the entry so need not be freed by the caller.

Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.


gtk_entry_get_layout_offsets ()

void        gtk_entry_get_layout_offsets    (GtkEntry *entry,
                                             gint *x,
                                             gint *y);

Obtains the position of the PangoLayout used to render text in the entry, in widget coordinates. Useful if you want to line up the text in an entry with some other text, e.g. when using the entry to implement editable cells in a sheet widget.

Also useful to convert mouse events into coordinates inside the PangoLayout, e.g. to take some action if some part of the entry text is clicked.

Note that as the user scrolls around in the entry the offsets will change; you'll need to connect to the "notify::scroll_offset" signal to track this. Remember when using the PangoLayout functions you need to convert to and from pixels using PANGO_PIXELS() or PANGO_SCALE.

Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.


gtk_entry_get_max_length ()

gint        gtk_entry_get_max_length        (GtkEntry *entry);

Retrieves the maximum allowed length of the text in entry. See gtk_entry_set_max_length().


gtk_entry_get_visibility ()

gboolean    gtk_entry_get_visibility        (GtkEntry *entry);

Retrieves whether the text in entry is visible. See gtk_entry_set_visibility().

Properties

"cursor-position" (gint : Read)

"selection-bound" (gint : Read)

"editable" (gboolean : Read / Write)

"max-length" (gint : Read / Write)

Determines the maximum allowed length of the contents of the widget. See gtk_entry_set_max_length().

"visibility" (gboolean : Read / Write)

Determines whether the contents of the entry widget are visible or not. See gtk_entry_set_visibility().

"has-frame" (gboolean : Read / Write)

"invisible-char" (guint : Read / Write)

"activates-default" (gboolean : Read / Write)

"width-chars" (gint : Read / Write)

"scroll-offset" (gint : Read)

"text" (gchararray : Read / Write)

Signals

The "activate" signal

void        user_function                  (GtkEntry *entry,
                                            gpointer user_data);


The "copy-clipboard" signal

void        user_function                  (GtkEntry *entry,
                                            gpointer user_data);


The "cut-clipboard" signal

void        user_function                  (GtkEntry *entry,
                                            gpointer user_data);


The "delete-from-cursor" signal

void        user_function                  (GtkEntry *entry,
                                            GtkDeleteType arg1,
                                            gint arg2,
                                            gpointer user_data);


The "insert-at-cursor" signal

void        user_function                  (GtkEntry *entry,
                                            gchar *arg1,
                                            gpointer user_data);


The "move-cursor" signal

void        user_function                  (GtkEntry *entry,
                                            GtkMovementStep arg1,
                                            gint arg2,
                                            gboolean arg3,
                                            gpointer user_data);


The "paste-clipboard" signal

void        user_function                  (GtkEntry *entry,
                                            gpointer user_data);


The "populate-popup" signal

void        user_function                  (GtkEntry *entry,
                                            GtkMenu *arg1,
                                            gpointer user_data);


The "toggle-overwrite" signal

void        user_function                  (GtkEntry *entry,
                                            gpointer user_data);

See Also

GtkText

a widget for handling multi-line text entry.