GtkComboBoxEntry

GtkComboBoxEntry — A text entry field with a dropdown list

Synopsis

#include <gtk/gtk.h>

                    GtkComboBoxEntry;
GtkWidget *         gtk_combo_box_entry_new             (void);
GtkWidget *         gtk_combo_box_entry_new_with_model  (GtkTreeModel *model,
                                                         gint text_column);
GtkWidget *         gtk_combo_box_entry_new_text        (void);
void                gtk_combo_box_entry_set_text_column (GtkComboBoxEntry *entry_box,
                                                         gint text_column);
gint                gtk_combo_box_entry_get_text_column (GtkComboBoxEntry *entry_box);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GtkObject
               +----GtkWidget
                     +----GtkContainer
                           +----GtkBin
                                 +----GtkComboBox
                                       +----GtkComboBoxEntry

Implemented Interfaces

GtkComboBoxEntry implements AtkImplementorIface, GtkBuildable, GtkCellLayout and GtkCellEditable.

Properties

  "text-column"              gint                  : Read / Write

Description

A GtkComboBoxEntry is a widget that allows the user to choose from a list of valid choices or enter a different value. It is very similar to a GtkComboBox, but it displays the selected value in an entry to allow modifying it.

In contrast to a GtkComboBox, the underlying model of a GtkComboBoxEntry must always have a text column (see gtk_combo_box_entry_set_text_column()), and the entry will show the content of the text column in the selected row. To get the text from the entry, use gtk_combo_box_get_active_text().

The changed signal will be emitted while typing into a GtkComboBoxEntry, as well as when selecting an item from the GtkComboBoxEntry's list. Use gtk_combo_box_get_active() or gtk_combo_box_get_active_iter() to discover whether an item was actually selected from the list.

Connect to the activate signal of the GtkEntry (use gtk_bin_get_child()) to detect when the user actually finishes entering text.

The convenience API to construct simple text-only GtkComboBoxes can also be used with GtkComboBoxEntrys which have been constructed with gtk_combo_box_entry_new_text().

If you have special needs that go beyond a simple entry (e.g. input validation), it is possible to replace the child entry by a different widget using gtk_container_remove() and gtk_container_add().

GtkComboBoxEntry as GtkBuildable

Beyond the <attributes> support that is shared by all GtkCellLayout implementation, GtkComboBoxEntry makes the entry available in UI definitions as an internal child with name "entry".

Details

GtkComboBoxEntry

typedef struct _GtkComboBoxEntry GtkComboBoxEntry;


gtk_combo_box_entry_new ()

GtkWidget *         gtk_combo_box_entry_new             (void);

Creates a new GtkComboBoxEntry which has a GtkEntry as child. After construction, you should set a model using gtk_combo_box_set_model() and a text column using gtk_combo_box_entry_set_text_column().

Returns :

A new GtkComboBoxEntry.

Since 2.4


gtk_combo_box_entry_new_with_model ()

GtkWidget *         gtk_combo_box_entry_new_with_model  (GtkTreeModel *model,
                                                         gint text_column);

Creates a new GtkComboBoxEntry which has a GtkEntry as child and a list of strings as popup. You can get the GtkEntry from a GtkComboBoxEntry using GTK_ENTRY (GTK_BIN (combo_box_entry)->child). To add and remove strings from the list, just modify model using its data manipulation API.

model :

A GtkTreeModel.

text_column :

A column in model to get the strings from.

Returns :

A new GtkComboBoxEntry.

Since 2.4


gtk_combo_box_entry_new_text ()

GtkWidget *         gtk_combo_box_entry_new_text        (void);

Convenience function which constructs a new editable text combo box, which is a GtkComboBoxEntry just displaying strings. If you use this function to create a text combo box, you should only manipulate its data source with the following convenience functions: gtk_combo_box_append_text(), gtk_combo_box_insert_text(), gtk_combo_box_prepend_text() and gtk_combo_box_remove_text().

Returns :

A new text GtkComboBoxEntry.

Since 2.4


gtk_combo_box_entry_set_text_column ()

void                gtk_combo_box_entry_set_text_column (GtkComboBoxEntry *entry_box,
                                                         gint text_column);

Sets the model column which entry_box should use to get strings from to be text_column.

entry_box :

A GtkComboBoxEntry.

text_column :

A column in model to get the strings from.

Since 2.4


gtk_combo_box_entry_get_text_column ()

gint                gtk_combo_box_entry_get_text_column (GtkComboBoxEntry *entry_box);

Returns the column which entry_box is using to get the strings from.

entry_box :

A GtkComboBoxEntry.

Returns :

A column in the data source model of entry_box.

Since 2.4

Property Details

The "text-column" property

  "text-column"              gint                  : Read / Write

A column in the data source model to get the strings from.

Allowed values: >= G_MAXULONG

Default value: -1

See Also

GtkComboBox