Class TabBar
- All Implemented Interfaces:
Accessible, Buildable, ConstraintTarget, Proxy
A tab bar for TabView.
The AdwTabBar widget is a tab bar that can be used with conjunction with
AdwTabView. It is typically used as a top bar within ToolbarView.
AdwTabBar can autohide and can optionally contain action widgets on both
sides of the tabs.
When there's not enough space to show all the tabs, AdwTabBar will scroll
them. Pinned tabs always stay visible and aren't a part of the scrollable
area.
Drag-and-Drop
AdwTabBar tabs can have an additional drop target for arbitrary content.
Use setupExtraDropTarget(Set, Type[]) to set it up, specifying the
supported content types and drag actions, then connect to
TabBar::extra-drag-drop to handle a drop.
In some cases, it may be necessary to determine the used action based on the
content. In that case, set TabBar:extra-drag-preload to TRUE
and connect to TabBar::extra-drag-value signal, then return the
action from its handler. To access this action from the
TabBar::extra-drag-drop handler, use the
TabBar:extra-drag-preferred-action property.
TabBar::extra-drag-value is also always emitted when starting to
hover an item, with a NULL value. This happens even when
TabBar:extra-drag-preload is FALSE.
CSS nodes
AdwTabBar has a single CSS node with name tabbar.
Style classes
By default AdwTabBar look like a part of an AdwHeaderBar and is intended
to be used directly attached to one or used as a ToolbarView toolbar.
The .inline style class removes its background,
so that it can be used in different contexts instead.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classTabBar.Builder<B extends TabBar.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static interfaceFunctional interface declaration of theExtraDragDropCallbackcallback.static interfaceFunctional interface declaration of theExtraDragValueCallbackcallback.static classNested classes/interfaces inherited from class 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.Widget$Impl, Widget.WidgetClassNested classes/interfaces inherited from class InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface Accessible
Accessible.Accessible$Impl, Accessible.AccessibleInterfaceNested classes/interfaces inherited from interface Buildable
Buildable.Buildable$Impl, Buildable.BuildableIfaceNested classes/interfaces inherited from interface ConstraintTarget
ConstraintTarget.ConstraintTarget$Impl, ConstraintTarget.ConstraintTargetInterface -
Constructor Summary
ConstructorsConstructorDescriptionTabBar()Create a new TabBar.TabBar(MemorySegment address) Create a TabBar instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected TabBarasParent()Return this instance as if it were its parent type.static TabBar.Builder<? extends TabBar.Builder> builder()ATabBar.Builderobject constructs aTabBarwith the specified properties.booleanemitExtraDragDrop(@Nullable TabPage page, @Nullable Value value) Emits the "extra-drag-drop" signal.emitExtraDragValue(@Nullable TabPage page, @Nullable Value value) Emits the "extra-drag-value" signal.booleanGets whether the tabs automatically hide.@Nullable WidgetGets the widget shown after the tabs.booleanGets whether tabs expand to full width.Gets the current drag action during a drop.booleanGets whether drop data should be preloaded on hover.booleanGets whether tabs use inverted layout.booleanGets whether this TabBar is overflowing.static MemoryLayoutThe memory layout of the native struct.@Nullable WidgetGets the widget shown before the tabs.booleanGets whether the tabs are currently revealed.static @Nullable TypegetType()Get the GType of the TabBar class.@Nullable TabViewgetView()Gets the tab view this TabBar controls.Emitted when content is dropped onto a tab.Emitted when the dropped content is preloaded.voidsetAutohide(boolean autohide) Sets whether the tabs automatically hide.voidsetEndActionWidget(@Nullable Widget widget) Sets the widget to show after the tabs.voidsetExpandTabs(boolean expandTabs) Sets whether tabs expand to full width.voidsetExtraDragPreload(boolean preload) Sets whether drop data should be preloaded on hover.voidsetInverted(boolean inverted) Sets whether tabs tabs use inverted layout.voidsetStartActionWidget(@Nullable Widget widget) Sets the widget to show before the tabs.voidsetupExtraDropTarget(Set<DragAction> actions, @Nullable Type @Nullable [] types) Sets up an extra drop target on tabs.voidsetupExtraDropTarget(DragAction actions, @Nullable Type @Nullable [] types) Sets up an extra drop target on tabs.voidSets the tab view this TabBar controls.Methods inherited from class 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, 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, unsetStateFlagsMethods inherited from class 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, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCodeMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Accessible
announce, getAccessibleId, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updatePlatformState, updateProperty, updateRelation, updateStateMethods inherited from interface Buildable
getBuildableId
-
Constructor Details
-
TabBar
Create a TabBar instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
TabBar
public TabBar()Create a new TabBar.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
-
getAutohide
public boolean getAutohide()Gets whether the tabs automatically hide.- Returns:
- whether the tabs automatically hide
-
getEndActionWidget
Gets the widget shown after the tabs.- Returns:
- the widget shown after the tabs
-
getExpandTabs
public boolean getExpandTabs()Gets whether tabs expand to full width.- Returns:
- whether tabs expand to full width.
-
getExtraDragPreferredAction
Gets the current drag action during a drop.
This method should only be used from inside a
TabBar::extra-drag-drophandler.The action will be a subset of what was originally passed to
setupExtraDropTarget(Set, Type[]).- Returns:
- the drag action of the current drop
- Since:
- 1.4
-
getExtraDragPreload
public boolean getExtraDragPreload()Gets whether drop data should be preloaded on hover.- Returns:
- whether drop data should be preloaded on hover
- Since:
- 1.3
-
getInverted
public boolean getInverted()Gets whether tabs use inverted layout.- Returns:
- whether tabs use inverted layout
-
getIsOverflowing
public boolean getIsOverflowing()Gets whether this TabBar is overflowing.
If
TRUE, all tabs cannot be displayed at once and require scrolling.- Returns:
- whether this TabBar is overflowing
-
getStartActionWidget
Gets the widget shown before the tabs.- Returns:
- the widget shown before the tabs
-
getTabsRevealed
public boolean getTabsRevealed()Gets whether the tabs are currently revealed.
See
TabBar:autohide.- Returns:
- whether the tabs are currently revealed
-
getView
Gets the tab view this TabBar controls.- Returns:
- the view this TabBar controls
-
setAutohide
public void setAutohide(boolean autohide) Sets whether the tabs automatically hide.
If set to
TRUE, the tab bar disappears whenTabBar:viewhas 0 or 1 tab, no pinned tabs, and no tab is being transferred.See
TabBar:tabs-revealed.- Parameters:
autohide- whether the tabs automatically hide
-
setEndActionWidget
Sets the widget to show after the tabs.- Parameters:
widget- the widget to show after the tabs
-
setExpandTabs
public void setExpandTabs(boolean expandTabs) Sets whether tabs expand to full width.
If set to
TRUE, the tabs will always vary width filling the whole width when possible, otherwise tabs will always have the minimum possible size.- Parameters:
expandTabs- whether to expand tabs
-
setExtraDragPreload
public void setExtraDragPreload(boolean preload) Sets whether drop data should be preloaded on hover.
See
Gtk.DropTarget:preload.- Parameters:
preload- whether to preload drop data- Since:
- 1.3
-
setInverted
public void setInverted(boolean inverted) Sets whether tabs tabs use inverted layout.
If set to
TRUE, non-pinned tabs will have the close button at the beginning and the indicator at the end rather than the opposite.- Parameters:
inverted- whether tabs use inverted layout
-
setStartActionWidget
Sets the widget to show before the tabs.- Parameters:
widget- the widget to show before the tabs
-
setView
Sets the tab view this TabBar controls.- Parameters:
view- a tab view
-
setupExtraDropTarget
Sets up an extra drop target on tabs.
This allows to drag arbitrary content onto tabs, for example URLs in a web browser.
If a tab is hovered for a certain period of time while dragging the content, it will be automatically selected.
The
TabBar::extra-drag-dropsignal can be used to handle the drop.- Parameters:
actions- the supported actionstypes- all supportedGTypes that can be dropped
-
setupExtraDropTarget
Sets up an extra drop target on tabs.
This allows to drag arbitrary content onto tabs, for example URLs in a web browser.
If a tab is hovered for a certain period of time while dragging the content, it will be automatically selected.
The
TabBar::extra-drag-dropsignal can be used to handle the drop.- Parameters:
actions- the supported actionstypes- all supportedGTypes that can be dropped
-
onExtraDragDrop
public SignalConnection<TabBar.ExtraDragDropCallback> onExtraDragDrop(TabBar.ExtraDragDropCallback handler) Emitted when content is dropped onto a tab.
The content must be of one of the types set up via
setupExtraDropTarget(Set, Type[]).See
Gtk.DropTarget::drop.- Parameters:
handler- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitExtraDragDrop
Emits the "extra-drag-drop" signal. SeeonExtraDragDrop(TabBar.ExtraDragDropCallback). -
onExtraDragValue
public SignalConnection<TabBar.ExtraDragValueCallback> onExtraDragValue(TabBar.ExtraDragValueCallback handler) Emitted when the dropped content is preloaded.
In order for data to be preloaded,
TabBar:extra-drag-preloadmust be set toTRUE.The content must be of one of the types set up via
setupExtraDropTarget(Set, Type[]).See
Gtk.DropTarget:value.- Parameters:
handler- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- Since:
- 1.3
- See Also:
-
emitExtraDragValue
Emits the "extra-drag-value" signal. SeeonExtraDragValue(TabBar.ExtraDragValueCallback). -
builder
ATabBar.Builderobject constructs aTabBarwith the specified properties. Use the variousset...()methods to set properties, and finish construction withTabBar.Builder.build().- Returns:
- the builder object
-