gi-gtk-4.0.4: Gtk bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gtk.Objects.Popover

Description

GtkPopover is a bubble-like context window, primarily meant to provide context-dependent information or options. Popovers are attached to a widget, set with widgetSetParent. By default they will point to the whole widget area, although this behavior can be changed through popoverSetPointingTo.

The position of a popover relative to the widget it is attached to can also be changed through popoverSetPosition.

By default, Popover performs a grab, in order to ensure input events get redirected to it while it is shown, and also so the popover is dismissed in the expected situations (clicks outside the popover, or the Escape key being pressed). If no such modal behavior is desired on a popover, popoverSetAutohide may be called on it to tweak its behavior.

GtkPopover as menu replacement

GtkPopover is often used to replace menus. The best was to do this is to use the PopoverMenu subclass which supports being populated from a MenuModel with popoverMenuNewFromModel.

<section>
  <attribute name="display-hint">horizontal-buttons</attribute>
  <item>
    <attribute name="label">Cut</attribute>
    <attribute name="action">app.cut</attribute>
    <attribute name="verb-icon">edit-cut-symbolic</attribute>
  </item>
  <item>
    <attribute name="label">Copy</attribute>
    <attribute name="action">app.copy</attribute>
    <attribute name="verb-icon">edit-copy-symbolic</attribute>
  </item>
  <item>
    <attribute name="label">Paste</attribute>
    <attribute name="action">app.paste</attribute>
    <attribute name="verb-icon">edit-paste-symbolic</attribute>
  </item>
</section>

CSS nodes

plain code

popover[.menu]
├── arrow
╰── contents.background
    ╰── <child>

The contents child node always gets the .background style class and the popover itself gets the .menu style class if the popover is menu-like (i.e. PopoverMenu).

Particular uses of GtkPopover, such as touch selection popups or magnifiers in Entry or TextView get style classes like .touch-selection or .magnifier to differentiate from plain popovers.

When styling a popover directly, the popover node should usually not have any background.

Note that, in order to accomplish appropriate arrow visuals, Popover uses custom drawing for the arrow node. This makes it possible for the arrow to change its shape dynamically, but it also limits the possibilities of styling it using CSS. In particular, the arrow gets drawn over the content node's border so they look like one shape, which means that the border-width of the content node and the arrow node should be the same. The arrow also does not support any border shape other than solid, no border-radius, only one border width (border-bottom-width is used) and no box-shadow.

Synopsis

Exported types

newtype Popover Source #

Memory-managed wrapper type.

Constructors

Popover (ManagedPtr Popover) 

Instances

Instances details
Eq Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

Methods

(==) :: Popover -> Popover -> Bool #

(/=) :: Popover -> Popover -> Bool #

GObject Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

ManagedPtrNewtype Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

Methods

toManagedPtr :: Popover -> ManagedPtr Popover

TypedObject Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

Methods

glibType :: IO GType

HasParentTypes Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

IsGValue (Maybe Popover) Source #

Convert Popover to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.Popover

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe Popover -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe Popover)

type ParentTypes Popover Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

class (GObject o, IsDescendantOf Popover o) => IsPopover o Source #

Type class for types which can be safely cast to Popover, for instance with toPopover.

Instances

Instances details
(GObject o, IsDescendantOf Popover o) => IsPopover o Source # 
Instance details

Defined in GI.Gtk.Objects.Popover

toPopover :: (MonadIO m, IsPopover o) => o -> m Popover Source #

Cast to Popover, for types for which this is known to be safe. For general casts, use castTo.

Methods

Click to display all available methods, including inherited ones

Expand

Methods

actionSetEnabled, activate, activateAction, activateDefault, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, bindProperty, bindPropertyFull, childFocus, computeBounds, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, dragCheckThreshold, errorBell, forceFloating, freezeNotify, getv, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFloating, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, notify, notifyByPspec, observeChildren, observeControllers, pick, popdown, popup, present, queueAllocate, queueDraw, queueResize, realize, ref, refSink, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, resetProperty, resetRelation, resetState, runDispose, shouldLayout, show, sizeAllocate, snapshotChild, stealData, stealQdata, thawNotify, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unref, unsetStateFlags, updateProperty, updateRelation, updateState, watchClosure.

Getters

getAccessibleRole, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getAutohide, getBuildableId, getCanFocus, getCanTarget, getCascadePopdown, getChild, getChildVisible, getClipboard, getCssClasses, getCssName, getCursor, getData, getDirection, getDisplay, getFirstChild, getFocusChild, getFocusOnClick, getFocusable, getFontMap, getFontOptions, getFrameClock, getHalign, getHasArrow, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getMnemonicsVisible, getName, getNative, getNextSibling, getOffset, getOpacity, getOverflow, getPangoContext, getParent, getPointingTo, getPosition, getPreferredSize, getPrevSibling, getPrimaryClipboard, getProperty, getQdata, getRealized, getReceivesDefault, getRenderer, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getSurface, getSurfaceTransform, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth.

Setters

setAutohide, setCanFocus, setCanTarget, setCascadePopdown, setChild, setChildVisible, setCssClasses, setCursor, setCursorFromName, setData, setDataFull, setDefaultWidget, setDirection, setFocusChild, setFocusOnClick, setFocusable, setFontMap, setFontOptions, setHalign, setHasArrow, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setMnemonicsVisible, setName, setOffset, setOpacity, setOverflow, setParent, setPointingTo, setPosition, setProperty, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible.

getAutohide

popoverGetAutohide Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m Bool

Returns: TRUE if popover is modal

Returns whether the popover is modal.

See popoverSetAutohide for the implications of this.

getCascadePopdown

popoverGetCascadePopdown Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m Bool

Returns: TRUE if popover will close after a modal child.

Returns whether the popover will close after a modal child is closed.

getChild

popoverGetChild Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m (Maybe Widget)

Returns: the child widget of popover

Gets the child widget of popover.

getHasArrow

popoverGetHasArrow Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m Bool

Returns: whether the popover has an arrow

Gets whether this popover is showing an arrow pointing at the widget that it is relative to.

getMnemonicsVisible

popoverGetMnemonicsVisible Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m Bool

Returns: True if mnemonics are supposed to be visible in this popover

Gets the value of the Popover:mnemonics-visible property.

getOffset

popoverGetOffset Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m (Int32, Int32) 

Gets the offset previous set with popoverSetOffset.

getPointingTo

popoverGetPointingTo Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m (Bool, Rectangle)

Returns: True if a rectangle to point to was set.

If a rectangle to point to has been set, this function will return True and fill in rect with such rectangle, otherwise it will return False and fill in rect with the attached widget coordinates.

getPosition

popoverGetPosition Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m PositionType

Returns: The preferred position.

Returns the preferred position of popover.

new

popoverNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Popover

Returns: the new popover

Creates a new popover.

popdown

popoverPopdown Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m () 

Pops popover down.This is different than a widgetHide call in that it shows the popover with a transition. If you want to hide the popover without a transition, use widgetHide.

popup

popoverPopup Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m () 

Pops popover up. This is different than a widgetShow call in that it shows the popover with a transition. If you want to show the popover without a transition, use widgetShow.

present

popoverPresent Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> m () 

Presents the popover to the user.

setAutohide

popoverSetAutohide Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> Bool

autohide: TRUE to dismiss the popover on outside clicks

-> m () 

Sets whether popover is modal.

A modal popover will grab the keyboard focus on it when being displayed. Clicking outside the popover area or pressing Esc will dismiss the popover.

Called this function on an already showing popup with a new autohide value different from the current one, will cause the popup to be hidden.

setCascadePopdown

popoverSetCascadePopdown Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: A Popover

-> Bool

cascadePopdown: TRUE if the popover should follow a child closing

-> m () 

If cascadePopdown is TRUE, the popover will be closed when a child modal popover is closed. If FALSE, popover will stay visible.

setChild

popoverSetChild Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) 
=> a

popover: a Popover

-> Maybe b

child: the child widget

-> m () 

Sets the child widget of popover.

setDefaultWidget

popoverSetDefaultWidget Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) 
=> a

popover: a Popover

-> Maybe b

widget: a child widget of popover to set as the default, or Nothing to unset the default widget for the popover

-> m () 

The default widget is the widget that’s activated when the user presses Enter in a dialog (for example). This function sets or unsets the default widget for a Popover.

setHasArrow

popoverSetHasArrow Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> Bool

hasArrow: True to draw an arrow

-> m () 

Sets whether this popover should draw an arrow pointing at the widget it is relative to.

setMnemonicsVisible

popoverSetMnemonicsVisible Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> Bool

mnemonicsVisible: the new value

-> m () 

Sets the Popover:mnemonics-visible property.

setOffset

popoverSetOffset Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> Int32

xOffset: the x offset to adjust the position by

-> Int32

yOffset: the y offset to adjust the position by

-> m () 

Sets the offset to use when calculating the position of the popover.

These values are used when preparing the GtkPopupLayout for positioning the popover.

setPointingTo

popoverSetPointingTo Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> Rectangle

rect: rectangle to point to

-> m () 

Sets the rectangle that popover will point to, in the coordinate space of the popover parent.

setPosition

popoverSetPosition Source #

Arguments

:: (HasCallStack, MonadIO m, IsPopover a) 
=> a

popover: a Popover

-> PositionType

position: preferred popover position

-> m () 

Sets the preferred position for popover to appear. If the popover is currently visible, it will be immediately updated.

This preference will be respected where possible, although on lack of space (eg. if close to the window edges), the Popover may choose to appear on the opposite side

Properties

autohide

No description available in the introspection data.

constructPopoverAutohide :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “autohide” property. This is rarely needed directly, but it is used by new.

getPopoverAutohide :: (MonadIO m, IsPopover o) => o -> m Bool Source #

Get the value of the “autohide” property. When overloading is enabled, this is equivalent to

get popover #autohide

setPopoverAutohide :: (MonadIO m, IsPopover o) => o -> Bool -> m () Source #

Set the value of the “autohide” property. When overloading is enabled, this is equivalent to

set popover [ #autohide := value ]

cascadePopdown

No description available in the introspection data.

constructPopoverCascadePopdown :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “cascade-popdown” property. This is rarely needed directly, but it is used by new.

getPopoverCascadePopdown :: (MonadIO m, IsPopover o) => o -> m Bool Source #

Get the value of the “cascade-popdown” property. When overloading is enabled, this is equivalent to

get popover #cascadePopdown

setPopoverCascadePopdown :: (MonadIO m, IsPopover o) => o -> Bool -> m () Source #

Set the value of the “cascade-popdown” property. When overloading is enabled, this is equivalent to

set popover [ #cascadePopdown := value ]

child

No description available in the introspection data.

clearPopoverChild :: (MonadIO m, IsPopover o) => o -> m () Source #

Set the value of the “child” property to Nothing. When overloading is enabled, this is equivalent to

clear #child

constructPopoverChild :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “child” property. This is rarely needed directly, but it is used by new.

getPopoverChild :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget) Source #

Get the value of the “child” property. When overloading is enabled, this is equivalent to

get popover #child

setPopoverChild :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m () Source #

Set the value of the “child” property. When overloading is enabled, this is equivalent to

set popover [ #child := value ]

defaultWidget

No description available in the introspection data.

clearPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m () Source #

Set the value of the “default-widget” property to Nothing. When overloading is enabled, this is equivalent to

clear #defaultWidget

constructPopoverDefaultWidget :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “default-widget” property. This is rarely needed directly, but it is used by new.

getPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget) Source #

Get the value of the “default-widget” property. When overloading is enabled, this is equivalent to

get popover #defaultWidget

setPopoverDefaultWidget :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m () Source #

Set the value of the “default-widget” property. When overloading is enabled, this is equivalent to

set popover [ #defaultWidget := value ]

hasArrow

No description available in the introspection data.

constructPopoverHasArrow :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “has-arrow” property. This is rarely needed directly, but it is used by new.

getPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> m Bool Source #

Get the value of the “has-arrow” property. When overloading is enabled, this is equivalent to

get popover #hasArrow

setPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> Bool -> m () Source #

Set the value of the “has-arrow” property. When overloading is enabled, this is equivalent to

set popover [ #hasArrow := value ]

mnemonicsVisible

No description available in the introspection data.

constructPopoverMnemonicsVisible :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “mnemonics-visible” property. This is rarely needed directly, but it is used by new.

getPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> m Bool Source #

Get the value of the “mnemonics-visible” property. When overloading is enabled, this is equivalent to

get popover #mnemonicsVisible

setPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> Bool -> m () Source #

Set the value of the “mnemonics-visible” property. When overloading is enabled, this is equivalent to

set popover [ #mnemonicsVisible := value ]

pointingTo

No description available in the introspection data.

constructPopoverPointingTo :: (IsPopover o, MonadIO m) => Rectangle -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “pointing-to” property. This is rarely needed directly, but it is used by new.

getPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> m (Maybe Rectangle) Source #

Get the value of the “pointing-to” property. When overloading is enabled, this is equivalent to

get popover #pointingTo

setPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> Rectangle -> m () Source #

Set the value of the “pointing-to” property. When overloading is enabled, this is equivalent to

set popover [ #pointingTo := value ]

position

No description available in the introspection data.

constructPopoverPosition :: (IsPopover o, MonadIO m) => PositionType -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “position” property. This is rarely needed directly, but it is used by new.

getPopoverPosition :: (MonadIO m, IsPopover o) => o -> m PositionType Source #

Get the value of the “position” property. When overloading is enabled, this is equivalent to

get popover #position

setPopoverPosition :: (MonadIO m, IsPopover o) => o -> PositionType -> m () Source #

Set the value of the “position” property. When overloading is enabled, this is equivalent to

set popover [ #position := value ]

Signals

activateDefault

type C_PopoverActivateDefaultCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

type PopoverActivateDefaultCallback = IO () Source #

The activateDefault signal is a [keybinding signal][GtkSignalAction] which gets emitted when the user activates the default widget of self.

afterPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> PopoverActivateDefaultCallback -> m SignalHandlerId Source #

Connect a signal handler for the activateDefault signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after popover #activateDefault callback

onPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> PopoverActivateDefaultCallback -> m SignalHandlerId Source #

Connect a signal handler for the activateDefault signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on popover #activateDefault callback

closed

type C_PopoverClosedCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

type PopoverClosedCallback = IO () Source #

The closed signal is emitted when the popover is closed.

afterPopoverClosed :: (IsPopover a, MonadIO m) => a -> PopoverClosedCallback -> m SignalHandlerId Source #

Connect a signal handler for the closed signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after popover #closed callback

genClosure_PopoverClosed :: MonadIO m => PopoverClosedCallback -> m (GClosure C_PopoverClosedCallback) Source #

Wrap the callback into a GClosure.

mk_PopoverClosedCallback :: C_PopoverClosedCallback -> IO (FunPtr C_PopoverClosedCallback) Source #

Generate a function pointer callable from C code, from a C_PopoverClosedCallback.

onPopoverClosed :: (IsPopover a, MonadIO m) => a -> PopoverClosedCallback -> m SignalHandlerId Source #

Connect a signal handler for the closed signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on popover #closed callback