[Contents] [Back] [Prev] [Up] [Next] [Forward]

# Package Gtk.GEntry

A Gtk_Entry is a single line text editing widget. The text is automatically scrolled if it is longer than can be displayed on the screen, so that the cursor position is visible at all times.

See Gtk_Text_View for a multiple-line text editing widget.

- Gtk.GEntry Widget Hierarchy
- Gtk.GEntry Signals
- Gtk.GEntry Subprograms

## Widget Hierarchy

    GObject                       (see section Package Glib.Object)
    Gtk_Object                    (see section Package Gtk.Object)
       \___ Gtk_Widget            (see section Package Gtk.Widget)
          \___ Gtk_Editable       (see section Package Gtk.Editable)
             \___ Gtk_Entry       (see section Package Gtk.GEntry)

## Signals

- "activate"
- "copy_clipboard"
- "cut_clipboard"
- "delete_from_cursor"
- "insert_at_cursor"
- "move_cursor"
- "paste_clipboard"
- "populate_popup"
- "toggle_overwrite"

## Subprograms

    procedure Gtk_New
      (Widget             : out    Gtk_Entry);

| Create a new entry with no maximum length for the text

    function Get_Type              return Gtk.Gtk_Type;

| Return the internal value associated with a Gtk_Entry.

    procedure Set_Visibility
      (The_Entry          : access Gtk_Entry_Record;
       Visible            :        Boolean);

| Set the visibility of the characters in the entry. If Visible is set to False, the characters will be replaced with the invisible character ('*' by default) in the display, and when the text is copied elsewhere.

    function Get_Visibility
      (The_Entry          : access Gtk_Entry_Record)
       return Boolean;

| Return the visibility of the characters in the entry.

    procedure Set_Invisible_Char
      (The_Entry          : access Gtk_Entry_Record;
       Char               :        Gunichar);

Set the character to use in place of the actual text when
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.

    function Get_Invisible_Char
      (The_Entry          : access Gtk_Entry_Record)
       return Gunichar;

| Retrieve the character displayed in place of the real characters for entries with visisbility set to false. See Set_Invisible_Char.

    procedure Set_Has_Frame
      (The_Entry          : access Gtk_Entry_Record;
       Setting            :        Boolean := True);

| Set whether the entry has a beveled frame around it.

    function Get_Has_Frame
      (The_Entry          : access Gtk_Entry_Record)
       return Boolean;

| Return whether the entry has a beveled frame.

    procedure Set_Max_Length
      (The_Entry          : access Gtk_Entry_Record;
       Max                :        Gint);

| Set the maximum length for the text. The current text is truncated if needed.

    function Get_Max_Length
      (The_Entry          : access Gtk_Entry_Record)
       return Gint;

| Return the maximum length for the text.

    procedure Set_Activates_Default
      (The_Entry          : access Gtk_Entry_Record;
       Setting            :        Boolean);

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.)

    function Get_Activates_Default
      (The_Entry          : access Gtk_Entry_Record)
       return Boolean;

| Return whether the entry will activate the default widget.

    procedure Set_Width_Chars
      (The_Entry          : access Gtk_Entry_Record'Class;
       Width              :        Gint);

| Number of characters to leave space for in the entry, on the screen. This is the number of visible characters, not the maximal number of characters the entry can contain

    function Get_Width_Chars
      (The_Entry          : access Gtk_Entry_Record'Class)
       return Gint;

| Return number of characters to leave space for in the entry.

    procedure Set_Text
      (The_Entry          : access Gtk_Entry_Record;
       Text               :        UTF8_String);

| Modify the text in the entry. The text is cut at the maximum length that was set when the entry was created. The text replaces the current contents.

    function Get_Text
      (The_Entry          : access Gtk_Entry_Record)
       return UTF8_String;

| Return the current text written in the entry.

    procedure Get_Layout_Offsets
      (The_Entry          : access Gtk_Entry_Record;
       X                  : out    Gint;
       Y                  : out    Gint);

Obtain the position of the Pango_Layout 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 Pango_Layout, 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 Pango_Layout functions you need to convert to and from pixels using Pango_Pixels or Pango_Scale.

    function Get_Layout
      (The_Entry          : access Gtk_Entry_Record)
       return Pango.Layout.Pango_Layout;

Return the widget that manages all the layout of text (left-to-right,
right-to-left, fonts,...). Changing the font used for the entry should be done by changing the font using for this layout. Note that you should also change the font in the Pango_Context returned by Get_Pango_Context, or the next keypress event in the entry will restore the default initial font.

The layout is useful to e.g. convert text positions to pixel positions, in combination with Get_Layout_Offsets. The returned layout is owned by the entry so need not be freed by the caller.

[Contents] [Back] [Prev] [Up] [Next] [Forward]