Class

GtkDropDown

Description [src]

final class Gtk.DropDown : Gtk.Widget {
  /* No available fields */
}

GtkDropDown is a widget that allows the user to choose an item from a list of options.

An example GtkDropDown

The GtkDropDown displays the [selected]GtkDropDown:selected choice.

The options are given to GtkDropDown in the form of GListModel and how the individual options are represented is determined by a GtkListItemFactory. The default factory displays simple strings, and adds a checkmark to the selected item in the popup.

To set your own factory, use gtk_drop_down_set_factory(). It is possible to use a separate factory for the items in the popup, with gtk_drop_down_set_list_factory().

GtkDropDown knows how to obtain strings from the items in a GtkStringList; for other models, you have to provide an expression to find the strings via gtk_drop_down_set_expression().

GtkDropDown can optionally allow search in the popup, which is useful if the list of options is long. To enable the search entry, use gtk_drop_down_set_enable_search().

Here is a UI definition example for GtkDropDown with a simple model:

<object class="GtkDropDown">
  <property name="model">
    <object class="GtkStringList">
      <items>
        <item translatable="yes">Factory</item>
        <item translatable="yes">Home</item>
        <item translatable="yes">Subway</item>
      </items>
    </object>
  </property>
</object>

To learn more about the list widget framework, see the overview.

CSS nodes

GtkDropDown has a single CSS node with name dropdown, with the button and popover nodes as children.

Accessibility

GtkDropDown uses the GTK_ACCESSIBLE_ROLE_COMBO_BOX role.

Ancestors

Constructors

gtk_drop_down_new

Creates a new GtkDropDown.

gtk_drop_down_new_from_strings

Creates a new GtkDropDown that is populated with the strings.

Instance methods

gtk_drop_down_get_enable_search

Returns whether search is enabled.

gtk_drop_down_get_expression

Gets the expression set that is used to obtain strings from items.

gtk_drop_down_get_factory

Gets the factory that’s currently used to populate list items.

gtk_drop_down_get_header_factory

Gets the factory that’s currently used to create header widgets for the popup.

Available since: 4.12

gtk_drop_down_get_list_factory

Gets the factory that’s currently used to populate list items in the popup.

gtk_drop_down_get_model

Gets the model that provides the displayed items.

gtk_drop_down_get_search_match_mode

Returns the match mode that the search filter is using.

Available since: 4.12

gtk_drop_down_get_selected

Gets the position of the selected item.

gtk_drop_down_get_selected_item

Gets the selected item. If no item is selected, NULL is returned.

gtk_drop_down_get_show_arrow

Returns whether to show an arrow within the widget.

Available since: 4.6

gtk_drop_down_set_enable_search

Sets whether a search entry will be shown in the popup that allows to search for items in the list.

gtk_drop_down_set_expression

Sets the expression that gets evaluated to obtain strings from items.

gtk_drop_down_set_factory

Sets the GtkListItemFactory to use for populating list items.

gtk_drop_down_set_header_factory

Sets the GtkListItemFactory to use for creating header widgets for the popup.

Available since: 4.12

gtk_drop_down_set_list_factory

Sets the GtkListItemFactory to use for populating list items in the popup.

gtk_drop_down_set_model

Sets the GListModel to use.

gtk_drop_down_set_search_match_mode

Sets the match mode for the search filter.

Available since: 4.12

gtk_drop_down_set_selected

Selects the item at the given position.

gtk_drop_down_set_show_arrow

Sets whether an arrow will be displayed within the widget.

Available since: 4.6

Methods inherited from GtkWidget (162)
gtk_widget_action_set_enabled

Enable or disable an action installed with gtk_widget_class_install_action().

gtk_widget_activate

For widgets that can be “activated” (buttons, menu items, etc.), this function activates them.

gtk_widget_activate_action

Looks up the action in the action groups associated with widget and its ancestors, and activates it.

gtk_widget_activate_action_variant

Looks up the action in the action groups associated with widget and its ancestors, and activates it.

gtk_widget_activate_default

Activates the default.activate action from widget.

gtk_widget_add_controller

Adds controller to widget so that it will receive events.

gtk_widget_add_css_class

Adds a style class to widget.

gtk_widget_add_mnemonic_label

Adds a widget to the list of mnemonic labels for this widget.

gtk_widget_add_tick_callback

Queues an animation frame update and adds a callback to be called before each frame.

gtk_widget_allocate

This function is only used by GtkWidget subclasses, to assign a size, position and (optionally) baseline to their child widgets.

gtk_widget_child_focus

Called by widgets as the user moves around the window using keyboard shortcuts.

gtk_widget_compute_bounds

Computes the bounds for widget in the coordinate space of target.

gtk_widget_compute_expand

Computes whether a container should give this widget extra space when possible.

gtk_widget_compute_point

Translates the given point in widgets coordinates to coordinates relative to target’s coordinate system.

gtk_widget_compute_transform

Computes a matrix suitable to describe a transformation from widgets coordinate system into targets coordinate system.

gtk_widget_contains

Tests if the point at (x, y) is contained in widget.

gtk_widget_create_pango_context

Creates a new PangoContext with the appropriate font map, font options, font description, and base direction for drawing text for this widget.

gtk_widget_create_pango_layout

Creates a new PangoLayout with the appropriate font map, font description, and base direction for drawing text for this widget.

gtk_widget_dispose_template

Clears the template children for the given widget.

Available since: 4.8

gtk_drag_check_threshold

Checks to see if a drag movement has passed the GTK drag threshold.

gtk_widget_error_bell

Notifies the user about an input-related error on this widget.

gtk_widget_get_allocated_baseline

Returns the baseline that has currently been allocated to widget.

Deprecated since: 4.12

gtk_widget_get_allocated_height

Returns the height that has currently been allocated to widget.

Deprecated since: 4.12

Methods inherited from GtkAccessible (18)
gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

Available since: 4.10

gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

gtk_accessible_get_at_context

Retrieves the accessible implementation for the given GtkAccessible.

Available since: 4.10

gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

Available since: 4.10

gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

Available since: 4.10

gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

Available since: 4.10

gtk_accessible_get_platform_state

Query a platform state, such as focus.

Available since: 4.10

gtk_accessible_reset_property

Resets the accessible property to its default value.

gtk_accessible_reset_relation

Resets the accessible relation to its default value.

gtk_accessible_reset_state

Resets the accessible state to its default value.

gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

Available since: 4.10

gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling of self.

Available since: 4.10

gtk_accessible_update_property

Updates a list of accessible properties.

gtk_accessible_update_property_value

Updates an array of accessible properties.

gtk_accessible_update_relation

Updates a list of accessible relations.

gtk_accessible_update_relation_value

Updates an array of accessible relations.

gtk_accessible_update_state

Updates a list of accessible states. See the GtkAccessibleState documentation for the value types of accessible states.

gtk_accessible_update_state_value

Updates an array of accessible states.

Methods inherited from GtkBuildable (1)
gtk_buildable_get_buildable_id

Gets the ID of the buildable object.

Properties

Gtk.DropDown:enable-search

Whether to show a search entry in the popup.

Gtk.DropDown:expression

An expression to evaluate to obtain strings to match against the search term.

Gtk.DropDown:factory

Factory for populating list items.

Gtk.DropDown:header-factory

The factory for creating header widgets for the popup.

Available since: 4.12

Gtk.DropDown:list-factory

The factory for populating list items in the popup.

Gtk.DropDown:model

Model for the displayed items.

Gtk.DropDown:search-match-mode

The match mode for the search filter.

Available since: 4.12

Gtk.DropDown:selected

The position of the selected item.

Gtk.DropDown:selected-item

The selected item.

Gtk.DropDown:show-arrow

Whether to show an arrow within the GtkDropDown widget.

Available since: 4.6

Properties inherited from GtkWidget (34)
Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

Gtk.Widget:can-target

Whether the widget can receive pointer events.

Gtk.Widget:css-classes

A list of css classes applied to this widget.

Gtk.Widget:css-name

The name of this widget in the CSS tree.

Gtk.Widget:cursor

The cursor used by widget.

Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

Gtk.Widget:has-default

Whether the widget is the default widget.

Gtk.Widget:has-focus

Whether the widget has the input focus.

Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on widget.

Gtk.Widget:height-request

Override for height request of the widget.

Gtk.Widget:hexpand

Whether to expand horizontally.

Gtk.Widget:hexpand-set

Whether to use the hexpand property.

Gtk.Widget:layout-manager

The GtkLayoutManager instance to use to compute the preferred size of the widget, and allocate its children.

Gtk.Widget:margin-bottom

Margin on bottom side of widget.

Gtk.Widget:margin-end

Margin on end of widget, horizontally.

Gtk.Widget:margin-start

Margin on start of widget, horizontally.

Gtk.Widget:margin-top

Margin on top side of widget.

Gtk.Widget:name

The name of the widget.

Gtk.Widget:opacity

The requested opacity of the widget.

Gtk.Widget:overflow

How content outside the widget’s content area is treated.

Gtk.Widget:parent

The parent widget of this widget.

Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

Gtk.Widget:root

The GtkRoot widget of the widget tree containing this widget.

Gtk.Widget:scale-factor

The scale factor of the widget.

Gtk.Widget:sensitive

Whether the widget responds to input.

Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

Gtk.Widget:vexpand

Whether to expand vertically.

Gtk.Widget:vexpand-set

Whether to use the vexpand property.

Gtk.Widget:visible

Whether the widget is visible.

Gtk.Widget:width-request

Override for width request of the widget.

Properties inherited from GtkAccessible (1)
Gtk.Accessible:accessible-role

The accessible role of the given GtkAccessible implementation.

Signals

Gtk.DropDown::activate

Emitted to when the drop down is activated.

Available since: 4.6

Signals inherited from GtkWidget (13)
Gtk.Widget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

Gtk.Widget::direction-changed

Emitted when the text direction of a widget changes.

Gtk.Widget::hide

Emitted when widget is hidden.

Gtk.Widget::keynav-failed

Emitted if keyboard navigation fails.

Gtk.Widget::map

Emitted when widget is going to be mapped.

Gtk.Widget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

Gtk.Widget::move-focus

Emitted when the focus is moved.

Gtk.Widget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

Gtk.Widget::realize

Emitted when widget is associated with a GdkSurface.

Gtk.Widget::show

Emitted when widget is shown.

Gtk.Widget::state-flags-changed

Emitted when the widget state changes.

Gtk.Widget::unmap

Emitted when widget is going to be unmapped.

Gtk.Widget::unrealize

Emitted when the GdkSurface associated with widget is destroyed.

Class structure

struct GtkDropDownClass {
  GtkWidgetClass parent_class;
  
}
Class members
parent_class
GtkWidgetClass
  No description available.