Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
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
- newtype Popover = Popover (ManagedPtr Popover)
- class (GObject o, IsDescendantOf Popover o) => IsPopover o
- toPopover :: (MonadIO m, IsPopover o) => o -> m Popover
- popoverGetAutohide :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool
- popoverGetChild :: (HasCallStack, MonadIO m, IsPopover a) => a -> m (Maybe Widget)
- popoverGetHasArrow :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool
- popoverGetMnemonicsVisible :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool
- popoverGetPointingTo :: (HasCallStack, MonadIO m, IsPopover a) => a -> m (Bool, Rectangle)
- popoverGetPosition :: (HasCallStack, MonadIO m, IsPopover a) => a -> m PositionType
- popoverNew :: (HasCallStack, MonadIO m) => m Popover
- popoverPopdown :: (HasCallStack, MonadIO m, IsPopover a) => a -> m ()
- popoverPopup :: (HasCallStack, MonadIO m, IsPopover a) => a -> m ()
- popoverSetAutohide :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()
- popoverSetChild :: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) => a -> Maybe b -> m ()
- popoverSetDefaultWidget :: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) => a -> Maybe b -> m ()
- popoverSetHasArrow :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()
- popoverSetMnemonicsVisible :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()
- popoverSetPointingTo :: (HasCallStack, MonadIO m, IsPopover a) => a -> Rectangle -> m ()
- popoverSetPosition :: (HasCallStack, MonadIO m, IsPopover a) => a -> PositionType -> m ()
- constructPopoverAutohide :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)
- getPopoverAutohide :: (MonadIO m, IsPopover o) => o -> m Bool
- setPopoverAutohide :: (MonadIO m, IsPopover o) => o -> Bool -> m ()
- clearPopoverChild :: (MonadIO m, IsPopover o) => o -> m ()
- constructPopoverChild :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)
- getPopoverChild :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget)
- setPopoverChild :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m ()
- clearPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m ()
- constructPopoverDefaultWidget :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)
- getPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget)
- setPopoverDefaultWidget :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m ()
- constructPopoverHasArrow :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)
- getPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> m Bool
- setPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> Bool -> m ()
- constructPopoverMnemonicsVisible :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)
- getPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> m Bool
- setPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> Bool -> m ()
- constructPopoverPointingTo :: (IsPopover o, MonadIO m) => Rectangle -> m (GValueConstruct o)
- getPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> m (Maybe Rectangle)
- setPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> Rectangle -> m ()
- constructPopoverPosition :: (IsPopover o, MonadIO m) => PositionType -> m (GValueConstruct o)
- getPopoverPosition :: (MonadIO m, IsPopover o) => o -> m PositionType
- setPopoverPosition :: (MonadIO m, IsPopover o) => o -> PositionType -> m ()
- type C_PopoverActivateDefaultCallback = Ptr () -> Ptr () -> IO ()
- type PopoverActivateDefaultCallback = IO ()
- afterPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> PopoverActivateDefaultCallback -> m SignalHandlerId
- genClosure_PopoverActivateDefault :: MonadIO m => PopoverActivateDefaultCallback -> m (GClosure C_PopoverActivateDefaultCallback)
- mk_PopoverActivateDefaultCallback :: C_PopoverActivateDefaultCallback -> IO (FunPtr C_PopoverActivateDefaultCallback)
- noPopoverActivateDefaultCallback :: Maybe PopoverActivateDefaultCallback
- onPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> PopoverActivateDefaultCallback -> m SignalHandlerId
- wrap_PopoverActivateDefaultCallback :: PopoverActivateDefaultCallback -> C_PopoverActivateDefaultCallback
- type C_PopoverClosedCallback = Ptr () -> Ptr () -> IO ()
- type PopoverClosedCallback = IO ()
- afterPopoverClosed :: (IsPopover a, MonadIO m) => a -> PopoverClosedCallback -> m SignalHandlerId
- genClosure_PopoverClosed :: MonadIO m => PopoverClosedCallback -> m (GClosure C_PopoverClosedCallback)
- mk_PopoverClosedCallback :: C_PopoverClosedCallback -> IO (FunPtr C_PopoverClosedCallback)
- noPopoverClosedCallback :: Maybe PopoverClosedCallback
- onPopoverClosed :: (IsPopover a, MonadIO m) => a -> PopoverClosedCallback -> m SignalHandlerId
- wrap_PopoverClosedCallback :: PopoverClosedCallback -> C_PopoverClosedCallback
Exported types
Memory-managed wrapper type.
Instances
Eq Popover Source # | |
IsGValue Popover Source # | Convert |
ManagedPtrNewtype Popover Source # | |
Defined in GI.Gtk.Objects.Popover toManagedPtr :: Popover -> ManagedPtr Popover # | |
TypedObject Popover Source # | |
Defined in GI.Gtk.Objects.Popover | |
GObject Popover Source # | |
Defined in GI.Gtk.Objects.Popover | |
HasParentTypes Popover Source # | |
Defined in GI.Gtk.Objects.Popover | |
type ParentTypes Popover Source # | |
Defined in GI.Gtk.Objects.Popover type ParentTypes Popover = '[Widget, Object, ImplementorIface, Buildable, ConstraintTarget, Native, ShortcutManager] |
class (GObject o, IsDescendantOf Popover o) => IsPopover o Source #
Instances
(GObject o, IsDescendantOf Popover o) => IsPopover o Source # | |
Defined in GI.Gtk.Objects.Popover |
Methods
Overloaded methods
getAutohide
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> m Bool | Returns: |
Returns whether the popover is modal.
See popoverSetAutohide
for the
implications of this.
getChild
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> m (Maybe Widget) | Returns: the child widget of |
Gets the child widget of popover
.
getHasArrow
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> 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 #
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> m Bool | Returns: |
Gets the value of the Popover
:mnemonics-visible
property.
getPointingTo
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> m (Bool, Rectangle) | Returns: |
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
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> m PositionType | Returns: The preferred position. |
Returns the preferred position of popover
.
new
:: (HasCallStack, MonadIO m) | |
=> m Popover | Returns: the new popover |
Creates a new popover.
popdown
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> 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
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> 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
.
setAutohide
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> Bool |
|
-> 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.
setChild
:: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) | |
=> a |
|
-> Maybe b |
|
-> m () |
Sets the child widget of popover
.
setDefaultWidget
popoverSetDefaultWidget Source #
:: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) | |
=> a |
|
-> Maybe b |
|
-> 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
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets whether this popover should draw an arrow pointing at the widget it is relative to.
setMnemonicsVisible
popoverSetMnemonicsVisible Source #
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets the Popover
:mnemonics-visible
property.
setPointingTo
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> Rectangle |
|
-> m () |
Sets the rectangle that popover
will point to, in the
coordinate space of the popover
parent.
setPosition
:: (HasCallStack, MonadIO m, IsPopover a) | |
=> a |
|
-> PositionType |
|
-> 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 ]
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 #
No description available in the introspection data.
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
genClosure_PopoverActivateDefault :: MonadIO m => PopoverActivateDefaultCallback -> m (GClosure C_PopoverActivateDefaultCallback) Source #
Wrap the callback into a GClosure
.
mk_PopoverActivateDefaultCallback :: C_PopoverActivateDefaultCallback -> IO (FunPtr C_PopoverActivateDefaultCallback) Source #
Generate a function pointer callable from C code, from a C_PopoverActivateDefaultCallback
.
noPopoverActivateDefaultCallback :: Maybe PopoverActivateDefaultCallback Source #
A convenience synonym for
.Nothing
:: Maybe
PopoverActivateDefaultCallback
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
wrap_PopoverActivateDefaultCallback :: PopoverActivateDefaultCallback -> C_PopoverActivateDefaultCallback Source #
Wrap a PopoverActivateDefaultCallback
into a C_PopoverActivateDefaultCallback
.
closed
type C_PopoverClosedCallback = Ptr () -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
type PopoverClosedCallback = IO () Source #
No description available in the introspection data.
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
.
noPopoverClosedCallback :: Maybe PopoverClosedCallback Source #
A convenience synonym for
.Nothing
:: Maybe
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