ComboBox
open class ComboBox : Widget, ComboBoxProtocol
A GtkComboBox
is a widget that allows the user to choose from a list of
valid choices.
The GtkComboBox
displays the selected choice; when activated, the
GtkComboBox
displays a popup which allows the user to make a new choice.
The GtkComboBox
uses the model-view pattern; the list of valid choices
is specified in the form of a tree model, and the display of the choices
can be adapted to the data in the model by using cell renderers, as you
would in a tree view. This is possible since GtkComboBox
implements the
[ifaceGtk.CellLayout
] interface. The tree model holding the valid
choices is not restricted to a flat list, it can be a real tree, and the
popup will reflect the tree structure.
To allow the user to enter values not in the model, the
[propertyGtk.ComboBox:has-entry
] property allows the GtkComboBox
to
contain a [classGtk.Entry
]. This entry can be accessed by calling
[methodGtk.ComboBox.get_child
] on the combo box.
For a simple list of textual choices, the model-view API of GtkComboBox
can be a bit overwhelming. In this case, [classGtk.ComboBoxText
] offers
a simple alternative. Both GtkComboBox
and GtkComboBoxText
can contain
an entry.
CSS nodes
combobox
├── box.linked
│ ╰── button.combo
│ ╰── box
│ ├── cellview
│ ╰── arrow
╰── window.popup
A normal combobox contains a box with the .linked class, a button with the .combo class and inside those buttons, there are a cellview and an arrow.
combobox
├── box.linked
│ ├── entry.combo
│ ╰── button.combo
│ ╰── box
│ ╰── arrow
╰── window.popup
A GtkComboBox
with an entry has a single CSS node with name combobox.
It contains a box with the .linked class. That box contains an entry and
a button, both with the .combo class added. The button also contains another
node with name arrow.
Accessibility
GtkComboBox
uses the GTK_ACCESSIBLE_ROLE_COMBO_BOX
role.
The ComboBox
type acts as a reference-counted owner of an underlying GtkComboBox
instance.
It provides the methods that can operate on this data type through ComboBoxProtocol
conformance.
Use ComboBox
as a strong reference or owner of a GtkComboBox
instance.
-
Designated initialiser from the underlying `C` data type.
This creates an instance without performing an unbalanced retain i.e., ownership is transferred to the
ComboBox
instance.Declaration
Swift
@inlinable public init(_ op: UnsafeMutablePointer<GtkComboBox>)
Parameters
op
pointer to the underlying object
-
Designated initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable public init(_ op: UnsafePointer<GtkComboBox>)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a non-mutating
gpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable override public init!(gpointer op: gpointer?)
Parameters
op
gpointer to the underlying object
-
Optional initialiser from a non-mutating
gconstpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable override public init!(gconstpointer op: gconstpointer?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafePointer<GtkComboBox>?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafeMutablePointer<GtkComboBox>?)
Parameters
op
pointer to the underlying object
-
Designated initialiser from the underlying
C
data type. Will retainGtkComboBox
. i.e., ownership is transferred to theComboBox
instance.Declaration
Swift
@inlinable public init(retaining op: UnsafeMutablePointer<GtkComboBox>)
Parameters
op
pointer to the underlying object
-
Reference intialiser for a related type that implements
ComboBoxProtocol
Will retainGtkComboBox
.Declaration
Swift
@inlinable public init<T>(comboBox other: T) where T : ComboBoxProtocol
Parameters
other
an instance of a related type that implements
ComboBoxProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init<T>(cPointer p: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe typed, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init<T>(retainingCPointer cPointer: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init(raw p: UnsafeRawPointer)
Parameters
p
raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init(retainingRaw raw: UnsafeRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable public required init(raw p: UnsafeMutableRawPointer)
Parameters
p
mutable raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable required public init(retainingRaw raw: UnsafeMutableRawPointer)
Parameters
raw
mutable raw pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init(opaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol
.Declaration
Swift
@inlinable override public init(retainingOpaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Creates a new empty
GtkComboBox
.Declaration
Swift
@inlinable public init()
-
Creates a new
GtkComboBox
with a model.Declaration
Swift
@inlinable public init<TreeModelT>(model: TreeModelT) where TreeModelT : TreeModelProtocol
-
Creates a new empty
GtkComboBox
with an entry and a model.See also [ctor
Gtk.ComboBox.new_with_entry
].Declaration
Swift
@inlinable public init<TreeModelT>(modelAndEntry model: TreeModelT) where TreeModelT : TreeModelProtocol
-
Creates a new empty
GtkComboBox
with an entry.In order to use a combo box with entry, you need to tell it which column of the model contains the text for the entry by calling [method
Gtk.ComboBox.set_entry_text_column
].Declaration
Swift
@inlinable public static func newWithEntry() -> Widget!
-
Creates a new
GtkComboBox
with a model.Declaration
Swift
@inlinable public static func newWith<TreeModelT>(model: TreeModelT) -> Widget! where TreeModelT : TreeModelProtocol
-
Creates a new empty
GtkComboBox
with an entry and a model.See also [ctor
Gtk.ComboBox.new_with_entry
].Declaration
Swift
@inlinable public static func newWith<TreeModelT>(modelAndEntry model: TreeModelT) -> Widget! where TreeModelT : TreeModelProtocol