Class ToggleGroup
- All Implemented Interfaces:
Proxy
,Accessible
,Buildable
,ConstraintTarget
,Orientable
AdwToggleGroup
presents a set of exclusive toggles, represented as
Toggle
objects. Each toggle can display an icon, a label, an icon
and a label, or a custom child.
Toggles are indexed by their position, with the first toggle being equivalent
to 0, and so on. Use the ToggleGroup:active
to get that position.
Toggles can also have optional names, set via the Toggle:name
property. The name of the active toggle can be accessed via the
ToggleGroup:active-name
property.
AdwToggle
objects can be retrieved via their index or name, using
getToggle(int)
or getToggleByName(java.lang.String)
respectively. AdwToggleGroup
also provides a SelectionModel
of
its toggles via the ToggleGroup:toggles
property.
AdwToggleGroup
is orientable, and the toggles can be displayed horizontally
or vertically. This is mostly useful for icon-only toggles.
Use the ToggleGroup:homogeneous
property to make the toggles take
the same size, and the ToggleGroup:can-shrink
to control whether
the toggles can ellipsize.
Example of an AdwToggleGroup
UI definition:
<object class="AdwToggleGroup">
<property name="active-name">picture</property>
<child>
<object class="AdwToggle">
<property name="icon-name">camera-photo-symbolic</property>
<property name="tooltip" translatable="yes">Picture Mode</property>
<property name="name">picture</property>
</object>
</child>
<child>
<object class="AdwToggle">
<property name="icon-name">camera-video-symbolic</property>
<property name="tooltip" translatable="yes">Recording Mode</property>
<property name="name">recording</property>
</object>
</child>
</object>
See also: InlineViewSwitcher
.
CSS nodes
AdwToggleGroup
has a main CSS node with the name toggle-group
.
Its toggles have CSS nodes with the name toggle
, and its separators have nodes
with the name separator
.
Toggle nodes will have a different style classes depending on their content:
.text-button
for labels, .image-button
for icons, .image-text-button
for both or no style class for custom children.
The hidden separators use the .hidden
style class.
Style classes
AdwToggleGroup
can use the .flat
style class
to remove its background and make it look like a group of buttons.
It can also use the .round
style class to make
its toggles and the group itself rounded.
They can also be combined with each other.
Accessibility
AdwToggleGroup
uses the GTK_ACCESSIBLE_ROLE_RADIO_GROUP
role. Its toggles
use the GTK_ACCESSIBLE_ROLE_RADIO
role.
- Since:
- 1.7
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
ToggleGroup.Builder<B extends ToggleGroup.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
Nested classes/interfaces inherited from interface org.gnome.gtk.Orientable
Orientable.OrientableIface, Orientable.OrientableImpl
-
Field Summary
Fields inherited from class io.github.jwharm.javagi.base.ProxyInstance
address
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ToggleGroup.ToggleGroup
(MemorySegment address) Create a ToggleGroup proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a toggle to this ToggleGroup.protected ToggleGroup
asParent()
Returns this instance as if it were its parent type.static ToggleGroup.Builder
<? extends ToggleGroup.Builder> builder()
AToggleGroup.Builder
object constructs aToggleGroup
with the specified properties.int
Gets the index of the active toggle in this ToggleGroup.Gets the name of the active toggle in this ToggleGroup.boolean
Gets whether the toggles can be smaller than the natural size of their contents.boolean
Gets whether all toggles take the same size.int
Gets the number of toggles within this ToggleGroup.getToggle
(int index) Gets the toggle withindex
from this ToggleGroup.getToggleByName
(String name) Gets the toggle with the namename
from this ToggleGroup.Returns aListModel
that contains the toggles of the group.static Type
getType()
Get the GType of the ToggleGroup classvoid
Removestoggle
from this ToggleGroup.void
Removes all toggles from this ToggleGroup.void
setActive
(int active) Sets the active toggle for this ToggleGroup.void
setActiveName
(@Nullable String name) Sets the active toggle for this ToggleGroup.void
setCanShrink
(boolean canShrink) Sets whether the toggles can be smaller than the natural size of their contents.void
setHomogeneous
(boolean homogeneous) Sets whether all toggles take the same size.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, getLimitEvents, 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, setLimitEvents, 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, 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, updatePlatformState, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
Methods inherited from interface org.gnome.gtk.Orientable
getOrientation, setOrientation
-
Constructor Details
-
ToggleGroup
Create a ToggleGroup proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
ToggleGroup
public ToggleGroup()Creates a new ToggleGroup.
-
-
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. -
add
Adds a toggle to this ToggleGroup.- Parameters:
toggle
- the toggle to add- Since:
- 1.7
-
getActive
public int getActive()Gets the index of the active toggle in this ToggleGroup.Returns
GTK_INVALID_LIST_POSITION
if no toggle is active.- Returns:
- the active toggle index
- Since:
- 1.7
-
getActiveName
Gets the name of the active toggle in this ToggleGroup.Can be
NULL
if the currently active toggle doesn't have a name.See
Toggle:name
.- Returns:
- the active toggle name
- Since:
- 1.7
-
getCanShrink
public boolean getCanShrink()Gets whether the toggles can be smaller than the natural size of their contents.- Returns:
- whether the toggles can shrink
- Since:
- 1.7
-
getHomogeneous
public boolean getHomogeneous()Gets whether all toggles take the same size.- Returns:
- whether all toggles take the same size
- Since:
- 1.7
-
getNToggles
public int getNToggles()Gets the number of toggles within this ToggleGroup.- Returns:
- the number of toggles
- Since:
- 1.7
-
getToggle
Gets the toggle withindex
from this ToggleGroup.- Parameters:
index
- toggle's index- Returns:
- the toggle
- Since:
- 1.7
-
getToggleByName
-
getToggles
Returns aListModel
that contains the toggles of the group.This can be used to keep an up-to-date view. The model also implements
SelectionModel
and can be used to track and change the active toggle.- Returns:
- a
GtkSelectionModel
for the group's toggles
-
remove
Removestoggle
from this ToggleGroup.- Parameters:
toggle
- a toggle to remove- Since:
- 1.7
-
removeAll
public void removeAll()Removes all toggles from this ToggleGroup.- Since:
- 1.7
-
setActive
public void setActive(int active) Sets the active toggle for this ToggleGroup.If the index is larger than the number of toggles in this ToggleGroup, unsets the current active toggle.
- Parameters:
active
- toggle index- Since:
- 1.7
-
setActiveName
Sets the active toggle for this ToggleGroup.The name can be set via
Toggle:name
.If
name
isNULL
, unset the current active toggle instead.- Parameters:
name
- toggle name- Since:
- 1.7
-
setCanShrink
public void setCanShrink(boolean canShrink) Sets whether the toggles can be smaller than the natural size of their contents.If
canShrink
isTRUE
, the toggle labels will ellipsize.See
Gtk.Button:can-shrink
.- Parameters:
canShrink
- whether the toggles can shrink- Since:
- 1.7
-
setHomogeneous
public void setHomogeneous(boolean homogeneous) Sets whether all toggles take the same size.- Parameters:
homogeneous
- whether all toggles should take the same size- Since:
- 1.7
-
builder
AToggleGroup.Builder
object constructs aToggleGroup
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withToggleGroup.Builder.build()
.
-