Package ch.bailu.gtk.adw
Class ComboRow
- All Implemented Interfaces:
PointerInterface
A [class@Gtk.ListBoxRow] used to choose from a list of items.
<picture>
<source srcset="combo-row-dark.png" media="(prefers-color-scheme: dark)">
<img src="combo-row.png" alt="combo-row">
</picture>
The `AdwComboRow` widget allows the user to choose from a list of valid
choices. The row displays the selected choice. When activated, the row
displays a popover which allows the user to make a new choice.
Example of an `AdwComboRow` UI definition:
```xml
<object class="AdwComboRow">
<property name="title" translatable="yes">Combo Row</property>
<property name="model">
<object class="GtkStringList">
<items>
<item translatable="yes">Foo</item>
<item translatable="yes">Bar</item>
<item translatable="yes">Baz</item>
</items>
</object>
</property>
</object>
```
The [property@ComboRow:selected] and [property@ComboRow:selected-item]
properties can be used to keep track of the selected item and react to their
changes.
`AdwComboRow` mirrors [class@Gtk.DropDown], see that widget for details.
`AdwComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set.
## CSS nodes
`AdwComboRow` has a main CSS node with name `row` and the `.combo` style
class.
Its popover has the node named `popover` with the `.menu` style class, it
contains a [class@Gtk.ScrolledWindow], which in turn contains a
[class@Gtk.ListView], both are accessible via their regular nodes.
## Accessibility
`AdwComboRow` uses the `GTK_ACCESSIBLE_ROLE_COMBO_BOX` role.
<picture>
<source srcset="combo-row-dark.png" media="(prefers-color-scheme: dark)">
<img src="combo-row.png" alt="combo-row">
</picture>
The `AdwComboRow` widget allows the user to choose from a list of valid
choices. The row displays the selected choice. When activated, the row
displays a popover which allows the user to make a new choice.
Example of an `AdwComboRow` UI definition:
```xml
<object class="AdwComboRow">
<property name="title" translatable="yes">Combo Row</property>
<property name="model">
<object class="GtkStringList">
<items>
<item translatable="yes">Foo</item>
<item translatable="yes">Bar</item>
<item translatable="yes">Baz</item>
</items>
</object>
</property>
</object>
```
The [property@ComboRow:selected] and [property@ComboRow:selected-item]
properties can be used to keep track of the selected item and react to their
changes.
`AdwComboRow` mirrors [class@Gtk.DropDown], see that widget for details.
`AdwComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set.
## CSS nodes
`AdwComboRow` has a main CSS node with name `row` and the `.combo` style
class.
Its popover has the node named `popover` with the `.menu` style class, it
contains a [class@Gtk.ScrolledWindow], which in turn contains a
[class@Gtk.ListView], both are accessible via their regular nodes.
## Accessibility
`AdwComboRow` uses the `GTK_ACCESSIBLE_ROLE_COMBO_BOX` role.
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ComboRow.html
-
Nested Class Summary
Nested classes/interfaces inherited from class ch.bailu.gtk.adw.ActionRow
ActionRow.OnActivated
Nested classes/interfaces inherited from class ch.bailu.gtk.gtk.ListBoxRow
ListBoxRow.OnActivate
Nested classes/interfaces inherited from class ch.bailu.gtk.gtk.Widget
Widget.OnDestroy, Widget.OnDestroyNotify, Widget.OnDirectionChanged, Widget.OnHide, Widget.OnKeynavFailed, Widget.OnMap, Widget.OnMnemonicActivate, Widget.OnMoveFocus, Widget.OnQueryTooltip, Widget.OnRealize, Widget.OnShow, Widget.OnStateFlagsChanged, Widget.OnTickCallback, Widget.OnUnmap, Widget.OnUnrealize
Nested classes/interfaces inherited from class ch.bailu.gtk.gobject.Object
Object.OnBindingTransformFunc, Object.OnDuplicateFunc, Object.OnNotify, Object.OnToggleNotify, Object.OnWeakNotify
-
Field Summary
Fields inherited from class ch.bailu.gtk.adw.ActionRow
SIGNAL_ON_ACTIVATED
Fields inherited from class ch.bailu.gtk.gtk.ListBoxRow
SIGNAL_ON_ACTIVATE
Fields inherited from class ch.bailu.gtk.gtk.Widget
SIGNAL_ON_DESTROY, SIGNAL_ON_DIRECTION_CHANGED, SIGNAL_ON_HIDE, SIGNAL_ON_KEYNAV_FAILED, SIGNAL_ON_MAP, SIGNAL_ON_MNEMONIC_ACTIVATE, SIGNAL_ON_MOVE_FOCUS, SIGNAL_ON_QUERY_TOOLTIP, SIGNAL_ON_REALIZE, SIGNAL_ON_SHOW, SIGNAL_ON_STATE_FLAGS_CHANGED, SIGNAL_ON_UNMAP, SIGNAL_ON_UNREALIZE
Fields inherited from class ch.bailu.gtk.gobject.Object
SIGNAL_ON_NOTIFY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionImplements interfaceAccessible
.Implements interfaceActionable
.Implements interfaceBuildable
.Implements interfaceConstraintTarget
.static ClassHandler
Gets the expression used to obtain strings from items.Gets the factory for populating list items.static int
Gets the factory for populating list items in the popup.getModel()
Gets the model that provides the displayed items.static long
static TypeSystem.TypeSize
int
Gets the position of the selected item.Gets the selected item.static long
static TypeSystem.TypeSize
boolean
Gets whether to use the current value as the subtitle.void
setExpression
(Expression expression) Sets the expression used to obtain strings from items.void
setFactory
(ListItemFactory factory) Sets the factory for populating list items.void
setListFactory
(ListItemFactory factory) Sets the factory for populating list items in the popup.void
Sets the model that provides the displayed items.void
setSelected
(int position) Selects the item at the given position.void
setUseSubtitle
(boolean use_subtitle) Sets whether to use the current value as the subtitle.Methods inherited from class ch.bailu.gtk.adw.ActionRow
addPrefix, addSuffix, getActivatableWidget, getIconName, getSubtitle, getSubtitleLines, getTitleLines, onActivated, remove, setActivatableWidget, setIconName, setIconName, setSubtitle, setSubtitle, setSubtitleLines, setTitleLines
Methods inherited from class ch.bailu.gtk.adw.PreferencesRow
getTitle, getTitleSelectable, getUseMarkup, getUseUnderline, setTitle, setTitle, setTitleSelectable, setUseMarkup, setUseUnderline
Methods inherited from class ch.bailu.gtk.gtk.ListBoxRow
changed, getActivatable, getChild, getHeader, getIndex, getSelectable, isSelected, onActivate, setActivatable, setChild, setHeader, setSelectable
Methods inherited from class ch.bailu.gtk.gtk.Widget
actionSetEnabled, actionSetEnabled, activate, activateAction, activateAction, activateActionVariant, activateActionVariant, activateDefault, addController, addCssClass, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, createPangoLayout, disposeTemplate, dragCheckThreshold, errorBell, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getCanFocus, getCanTarget, getChildVisible, getClipboard, 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, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeCssClass, removeMnemonicLabel, removeTickCallback, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setTooltipMarkup, setTooltipMarkup, setTooltipText, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, snapshotChild, triggerTooltipQuery, unmap, unparent, unrealize, unsetStateFlags
Methods inherited from class ch.bailu.gtk.gobject.Object
addToggleRef, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, disconnect, disconnect, dupData, dupData, dupQdata, forceFloating, freezeNotify, get, get, getData, getData, getProperty, getProperty, getQdata, interfaceFindProperty, interfaceInstallProperty, isFloating, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, replaceData, replaceData, replaceQdata, runDispose, set, set, setData, setData, setDataFull, setDataFull, setProperty, setProperty, setQdata, setQdataFull, stealData, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref
Methods inherited from class ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Methods inherited from class ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Constructor Details
-
ComboRow
-
ComboRow
public ComboRow()Creates a new `AdwComboRow`.
-
-
Method Details
-
getClassHandler
-
getExpression
Gets the expression used to obtain strings from items.- Returns:
- the expression used to obtain strings from items
-
getFactory
Gets the factory for populating list items.- Returns:
- the factory in use
-
getListFactory
Gets the factory for populating list items in the popup.- Returns:
- the factory in use
-
getModel
Gets the model that provides the displayed items.- Returns:
- The model in use
-
getSelected
public int getSelected()Gets the position of the selected item.- Returns:
- the position of the selected item, or [const@Gtk.INVALID_LIST_POSITION] if no item is selected
-
getSelectedItem
Gets the selected item.- Returns:
- the selected item
-
getUseSubtitle
public boolean getUseSubtitle()Gets whether to use the current value as the subtitle.- Returns:
- whether to use the current value as the subtitle
-
setExpression
Sets the expression used to obtain strings from items.
The expression must have a value type of `G_TYPE_STRING`.
It's used to bind strings to labels produced by the default factory if
[property@ComboRow:factory] is not set, or when
[property@ComboRow:use-subtitle] is set to `TRUE`.- Parameters:
expression
- an expression
-
setFactory
Sets the factory for populating list items.
This factory is always used for the item in the row. It is also used for
items in the popup unless [property@ComboRow:list-factory] is set.- Parameters:
factory
- the factory to use
-
setListFactory
Sets the factory for populating list items in the popup.
If this is not set, [property@ComboRow:factory] is used.- Parameters:
factory
- the factory to use
-
setModel
Sets the model that provides the displayed items.- Parameters:
model
- the model to use
-
setSelected
public void setSelected(int position) Selects the item at the given position.- Parameters:
position
- the position of the item to select, or [const@Gtk.INVALID_LIST_POSITION]
-
setUseSubtitle
public void setUseSubtitle(boolean use_subtitle) Sets whether to use the current value as the subtitle.
If you use a custom list item factory, you will need to give the row a
name conversion expression with [property@ComboRow:expression].
If set to `TRUE`, you should not access [property@ActionRow:subtitle].
The subtitle is interpreted as Pango markup if
[property@PreferencesRow:use-markup] is set to `TRUE`.- Parameters:
use_subtitle
- whether to use the current value as the subtitle
-
asAccessible
Implements interfaceAccessible
. Call this to get access to interface functions.- Overrides:
asAccessible
in classActionRow
- Returns:
Accessible
-
asActionable
Implements interfaceActionable
. Call this to get access to interface functions.- Overrides:
asActionable
in classActionRow
- Returns:
Actionable
-
asBuildable
Implements interfaceBuildable
. Call this to get access to interface functions.- Overrides:
asBuildable
in classActionRow
- Returns:
Buildable
-
asConstraintTarget
Implements interfaceConstraintTarget
. Call this to get access to interface functions.- Overrides:
asConstraintTarget
in classActionRow
- Returns:
ConstraintTarget
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-