Class DropDown
- All Implemented Interfaces:
Proxy
,Accessible
,Buildable
,ConstraintTarget
GtkDropDown
is a widget that allows the user to choose an item
from a list of options.
The GtkDropDown
displays the Gtk.DropDown:selected
choice.
The options are given to GtkDropDown
in the form of GListModel
and how the individual options are represented is determined by
a ListItemFactory
. The default factory displays simple strings,
and adds a checkmark to the selected item in the popup.
To set your own factory, use setFactory(org.gnome.gtk.ListItemFactory)
. It is
possible to use a separate factory for the items in the popup, with
setListFactory(org.gnome.gtk.ListItemFactory)
.
GtkDropDown
knows how to obtain strings from the items in a
StringList
; for other models, you have to provide an expression
to find the strings via setExpression(org.gnome.gtk.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 setEnableSearch(boolean)
.
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>
If a GtkDropDown
is created in this manner, or with
fromStrings(java.lang.String[])
, for instance, the object returned from
getSelectedItem()
will be a StringObject
.
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 AccessibleRole.COMBO_BOX
role.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Functional interface declaration of theActivateCallback
callback.static class
DropDown.Builder<B extends DropDown.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
Nested classes/interfaces inherited from class org.gnome.gtk.Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.WidgetClass, Widget.WidgetImpl
Nested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClass
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
Nested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.AccessibleImpl, Accessible.AccessibleInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.BuildableIface, Buildable.BuildableImpl
Nested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTargetImpl, ConstraintTarget.ConstraintTargetInterface
-
Constructor Summary
ConstructorDescriptionDropDown
(MemorySegment address) Create a DropDown proxy instance for the provided memory address.DropDown
(@Nullable ListModel model, @Nullable Expression expression) Creates a newGtkDropDown
. -
Method Summary
Modifier and TypeMethodDescriptionprotected DropDown
asParent()
Returns this instance as if it were its parent type.static DropDown.Builder
<? extends DropDown.Builder> builder()
ADropDown.Builder
object constructs aDropDown
with the specified properties.void
Emits the "activate" signal.static DropDown
fromStrings
(String[] strings) Creates a newGtkDropDown
that is populated with the strings.boolean
Returns whether search is enabled.Gets the expression set that is used to obtain strings from items.Gets the factory that's currently used to populate list items.Gets the factory that's currently used to create header widgets for the popup.Gets the factory that's currently used to populate list items in the popup.getModel()
Gets the model that provides the displayed items.Returns the match mode that the search filter is using.int
Gets the position of the selected item.Gets the selected item.boolean
Returns whether to show an arrow within the widget.static Type
getType()
Get the GType of the DropDown classonActivate
(DropDown.ActivateCallback handler) Emitted to when the drop down is activated.void
setEnableSearch
(boolean enableSearch) Sets whether a search entry will be shown in the popup that allows to search for items in the list.void
setExpression
(@Nullable Expression expression) Sets the expression that gets evaluated to obtain strings from items.void
setFactory
(@Nullable ListItemFactory factory) Sets theGtkListItemFactory
to use for populating list items.void
setHeaderFactory
(@Nullable ListItemFactory factory) Sets theGtkListItemFactory
to use for creating header widgets for the popup.void
setListFactory
(@Nullable ListItemFactory factory) Sets theGtkListItemFactory
to use for populating list items in the popup.void
Sets theGListModel
to use.void
setSearchMatchMode
(StringFilterMatchMode searchMatchMode) Sets the match mode for the search filter.void
setSelected
(int position) Selects the item at the given position.void
setShowArrow
(boolean showArrow) Sets whether an arrow will be displayed within the widget.Methods inherited from class org.gnome.gtk.Widget
actionSetEnabled, activateActionIfExists, activateDefault, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getMemoryLayout, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlags
Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
-
Constructor Details
-
DropDown
Create a DropDown proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
DropDown
Creates a newGtkDropDown
.You may want to call
setFactory(org.gnome.gtk.ListItemFactory)
to set up a way to map its items to widgets.- Parameters:
model
- the model to useexpression
- the expression to use
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
fromStrings
-
getEnableSearch
public boolean getEnableSearch()Returns whether search is enabled.- Returns:
true
if the popup includes a search entry
-
getExpression
Gets the expression set that is used to obtain strings from items.- Returns:
- a
GtkExpression
-
getFactory
Gets the factory that's currently used to populate list items.The factory returned by this function is always used for the item in the button. It is also used for items in the popup if
Gtk.DropDown:list-factory
is not set.- Returns:
- The factory in use
-
getHeaderFactory
Gets the factory that's currently used to create header widgets for the popup.- Returns:
- The factory in use
-
getListFactory
Gets the factory that's currently used to populate list items in the popup.- Returns:
- The factory in use
-
getModel
Gets the model that provides the displayed items.- Returns:
- The model in use
-
getSearchMatchMode
Returns the match mode that the search filter is using.- Returns:
- the match mode of the search filter
-
getSelected
public int getSelected()Gets the position of the selected item.- Returns:
- the position of the selected item, or
GTK_INVALID_LIST_POSITION
if not item is selected
-
getSelectedItem
Gets the selected item. If no item is selected,null
is returned.- Returns:
- The selected item
-
getShowArrow
public boolean getShowArrow()Returns whether to show an arrow within the widget.- Returns:
true
if an arrow will be shown.
-
setEnableSearch
public void setEnableSearch(boolean enableSearch) Sets whether a search entry will be shown in the popup that allows to search for items in the list.Note that
Gtk.DropDown:expression
must be set for search to work.- Parameters:
enableSearch
- whether to enable search
-
setExpression
Sets the expression that gets evaluated to obtain strings from items.This is used for search in the popup. The expression must have a value type of
G_TYPE_STRING
.- Parameters:
expression
- aGtkExpression
-
setFactory
Sets theGtkListItemFactory
to use for populating list items.- Parameters:
factory
- the factory to use
-
setHeaderFactory
Sets theGtkListItemFactory
to use for creating header widgets for the popup.- Parameters:
factory
- the factory to use
-
setListFactory
Sets theGtkListItemFactory
to use for populating list items in the popup.- Parameters:
factory
- the factory to use
-
setModel
Sets theGListModel
to use.- Parameters:
model
- the model to use
-
setSearchMatchMode
Sets the match mode for the search filter.- Parameters:
searchMatchMode
- the new match mode
-
setSelected
public void setSelected(int position) Selects the item at the given position.- Parameters:
position
- the position of the item to select, orGTK_INVALID_LIST_POSITION
-
setShowArrow
public void setShowArrow(boolean showArrow) Sets whether an arrow will be displayed within the widget.- Parameters:
showArrow
- whether to show an arrow within the widget
-
onActivate
Emitted to when the drop down is activated.The
::activate
signal onGtkDropDown
is an action signal and emitting it causes the drop down to pop up its dropdown.- Parameters:
handler
- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitActivate
public void emitActivate()Emits the "activate" signal. SeeonActivate(org.gnome.gtk.DropDown.ActivateCallback)
. -
builder
ADropDown.Builder
object constructs aDropDown
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withDropDown.Builder.build()
.
-