Package ch.bailu.gtk.adw
Class Squeezer
- All Implemented Interfaces:
PointerInterface
A best fit container.
<picture>
<source srcset="squeezer-wide-dark.png" media="(prefers-color-scheme: dark)">
<img src="squeezer-wide.png" alt="squeezer-wide">
</picture>
<picture>
<source srcset="squeezer-narrow-dark.png" media="(prefers-color-scheme: dark)">
<img src="squeezer-narrow.png" alt="squeezer-narrow">
</picture>
The `AdwSqueezer` widget is a container which only shows the first of its
children that fits in the available size. It is convenient to offer different
widgets to represent the same data with different levels of detail, making
the widget seem to squeeze itself to fit in the available space.
Transitions between children can be animated as fades. This can be controlled
with [property@Squeezer:transition-type].
## CSS nodes
`AdwSqueezer` has a single CSS node with name `squeezer`.
<picture>
<source srcset="squeezer-wide-dark.png" media="(prefers-color-scheme: dark)">
<img src="squeezer-wide.png" alt="squeezer-wide">
</picture>
<picture>
<source srcset="squeezer-narrow-dark.png" media="(prefers-color-scheme: dark)">
<img src="squeezer-narrow.png" alt="squeezer-narrow">
</picture>
The `AdwSqueezer` widget is a container which only shows the first of its
children that fits in the available size. It is convenient to offer different
widgets to represent the same data with different levels of detail, making
the widget seem to squeeze itself to fit in the available space.
Transitions between children can be animated as fades. This can be controlled
with [property@Squeezer:transition-type].
## CSS nodes
`AdwSqueezer` has a single CSS node with name `squeezer`.
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Squeezer.html
-
Nested Class Summary
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.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 TypeMethodDescriptionAdds a child to @self.Implements interfaceAccessible
.Implements interfaceBuildable
.Implements interfaceConstraintTarget
.Implements interfaceOrientable
.boolean
Gets whether to allow squeezing beyond the last child's minimum size.static ClassHandler
boolean
Gets whether all children have the same size for the opposite orientation.static int
boolean
Gets whether @self interpolates its size when changing the visible child.Returns the [class@SqueezerPage] object for @child.getPages()
Returns a [iface@Gio.ListModel] that contains the pages of @self.static long
static TypeSystem.TypeSize
int
Gets the switch threshold policy for @self.int
Gets the transition animation duration for @self.boolean
Gets whether a transition is currently running for @self.int
Gets the type of animation used for transitions between children in @self.static long
static TypeSystem.TypeSize
Gets the currently visible child of @self.float
Gets the horizontal alignment, from 0 (start) to 1 (end).float
Gets the vertical alignment, from 0 (top) to 1 (bottom).void
Removes a child widget from @self.void
setAllowNone
(boolean allow_none) Sets whether to allow squeezing beyond the last child's minimum size.void
setHomogeneous
(boolean homogeneous) Sets whether all children have the same size for the opposite orientation.void
setInterpolateSize
(boolean interpolate_size) Sets whether @self interpolates its size when changing the visible child.void
setSwitchThresholdPolicy
(int policy) Sets the switch threshold policy for @self.void
setTransitionDuration
(int duration) Sets the transition animation duration for @self.void
setTransitionType
(int transition) Sets the type of animation used for transitions between children in @self.void
setXalign
(float xalign) Sets the horizontal alignment, from 0 (start) to 1 (end).void
setYalign
(float yalign) Sets the vertical alignment, from 0 (top) to 1 (bottom).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
-
Squeezer
-
Squeezer
public Squeezer()Creates a new `AdwSqueezer`.
-
-
Method Details
-
getClassHandler
-
add
Adds a child to @self.- Parameters:
child
- the widget to add- Returns:
- the [class@SqueezerPage] for @child
-
getAllowNone
public boolean getAllowNone()Gets whether to allow squeezing beyond the last child's minimum size.- Returns:
- whether @self allows squeezing beyond the last child
-
getHomogeneous
public boolean getHomogeneous()Gets whether all children have the same size for the opposite orientation.- Returns:
- whether @self is homogeneous
-
getInterpolateSize
public boolean getInterpolateSize()Gets whether @self interpolates its size when changing the visible child.- Returns:
- whether the size is interpolated
-
getPage
Returns the [class@SqueezerPage] object for @child.- Parameters:
child
- a child of @self- Returns:
- the page object for @child
-
getPages
Returns a [iface@Gio.ListModel] that contains the pages of @self.
This can be used to keep an up-to-date view. The model also implements
[iface@Gtk.SelectionModel] and can be used to track the visible page.- Returns:
- a `GtkSelectionModel` for the squeezer's children
-
getSwitchThresholdPolicy
public int getSwitchThresholdPolicy()Gets the switch threshold policy for @self.- Returns:
-
getTransitionDuration
public int getTransitionDuration()Gets the transition animation duration for @self.- Returns:
- the transition duration, in milliseconds
-
getTransitionRunning
public boolean getTransitionRunning()Gets whether a transition is currently running for @self.
If a transition is impossible, the property value will be set to `TRUE` and
then immediately to `FALSE`, so it's possible to rely on its notifications
to know that a transition has happened.- Returns:
- whether a transition is currently running
-
getTransitionType
public int getTransitionType()Gets the type of animation used for transitions between children in @self.- Returns:
- the current transition type of @self
-
getVisibleChild
Gets the currently visible child of @self.- Returns:
- the visible child
-
getXalign
public float getXalign()Gets the horizontal alignment, from 0 (start) to 1 (end).- Returns:
- the alignment value
-
getYalign
public float getYalign()Gets the vertical alignment, from 0 (top) to 1 (bottom).- Returns:
- the alignment value
-
remove
Removes a child widget from @self.- Parameters:
child
- the child to remove
-
setAllowNone
public void setAllowNone(boolean allow_none) Sets whether to allow squeezing beyond the last child's minimum size.
If set to `TRUE`, the squeezer can shrink to the point where no child can be
shown. This is functionally equivalent to appending a widget with 0×0 minimum
size.- Parameters:
allow_none
- whether @self allows squeezing beyond the last child
-
setHomogeneous
public void setHomogeneous(boolean homogeneous) Sets whether all children have the same size for the opposite orientation.
For example, if a squeezer is horizontal and is homogeneous, it will request
the same height for all its children. If it isn't, the squeezer may change
size when a different child becomes visible.- Parameters:
homogeneous
- whether @self is homogeneous
-
setInterpolateSize
public void setInterpolateSize(boolean interpolate_size) Sets whether @self interpolates its size when changing the visible child.
If `TRUE`, the squeezer will interpolate its size between the one of the
previous visible child and the one of the new visible child, according to the
set transition duration and the orientation, e.g. if the squeezer is
horizontal, it will interpolate the its height.- Parameters:
interpolate_size
- whether to interpolate the size
-
setSwitchThresholdPolicy
public void setSwitchThresholdPolicy(int policy) Sets the switch threshold policy for @self.
Determines when the squeezer will switch children.
If set to `ADW_FOLD_THRESHOLD_POLICY_MINIMUM`, it will only switch when the
visible child cannot fit anymore. With `ADW_FOLD_THRESHOLD_POLICY_NATURAL`,
it will switch as soon as the visible child doesn't get their natural size.
This can be useful if you have a long ellipsizing label and want to let it
ellipsize instead of immediately switching.- Parameters:
policy
- the policy to use
-
setTransitionDuration
public void setTransitionDuration(int duration) Sets the transition animation duration for @self.- Parameters:
duration
- the new duration, in milliseconds
-
setTransitionType
public void setTransitionType(int transition) Sets the type of animation used for transitions between children in @self.- Parameters:
transition
- the new transition type
-
setXalign
public void setXalign(float xalign) Sets the horizontal alignment, from 0 (start) to 1 (end).
This affects the children allocation during transitions, when they exceed the
size of the squeezer.
For example, 0.5 means the child will be centered, 0 means it will keep the
start side aligned and overflow the end side, and 1 means the opposite.- Parameters:
xalign
- the new alignment value
-
setYalign
public void setYalign(float yalign) Sets the vertical alignment, from 0 (top) to 1 (bottom).
This affects the children allocation during transitions, when they exceed the
size of the squeezer.
For example, 0.5 means the child will be centered, 0 means it will keep the
top side aligned and overflow the bottom side, and 1 means the opposite.- Parameters:
yalign
- the new alignment value
-
asAccessible
Implements interfaceAccessible
. Call this to get access to interface functions.- Overrides:
asAccessible
in classWidget
- Returns:
Accessible
-
asBuildable
Implements interfaceBuildable
. Call this to get access to interface functions.- Overrides:
asBuildable
in classWidget
- Returns:
Buildable
-
asConstraintTarget
Implements interfaceConstraintTarget
. Call this to get access to interface functions.- Overrides:
asConstraintTarget
in classWidget
- Returns:
ConstraintTarget
-
asOrientable
Implements interfaceOrientable
. Call this to get access to interface functions.- Returns:
Orientable
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-