Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A AccelGroup
represents a group of keyboard accelerators,
typically attached to a toplevel Window
(with
windowAddAccelGroup
). Usually you won’t need to create a
AccelGroup
directly; instead, when using UIManager
, GTK+
automatically sets up the accelerators for your menus in the ui
manager’s AccelGroup
.
Note that “accelerators” are different from
“mnemonics”. Accelerators are shortcuts for
activating a menu item; they appear alongside the menu item they’re a
shortcut for. For example “Ctrl+Q” might appear alongside the “Quit”
menu item. Mnemonics are shortcuts for GUI elements such as text
entries or buttons; they appear as underlined characters. See
labelNewWithMnemonic
. Menu items can have both accelerators
and mnemonics, of course.
Synopsis
- newtype AccelGroup = AccelGroup (ManagedPtr AccelGroup)
- class (GObject o, IsDescendantOf AccelGroup o) => IsAccelGroup o
- toAccelGroup :: (MonadIO m, IsAccelGroup o) => o -> m AccelGroup
- accelGroupActivate :: (HasCallStack, MonadIO m, IsAccelGroup a, IsObject b) => a -> Word32 -> b -> Word32 -> [ModifierType] -> m Bool
- accelGroupConnect :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> Word32 -> [ModifierType] -> [AccelFlags] -> GClosure C_AccelGroupActivate -> m ()
- accelGroupConnectByPath :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> Text -> GClosure b -> m ()
- accelGroupDisconnect :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> Maybe (GClosure b) -> m Bool
- accelGroupDisconnectKey :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> Word32 -> [ModifierType] -> m Bool
- accelGroupFind :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> AccelGroupFindFunc -> m AccelKey
- accelGroupFromAccelClosure :: (HasCallStack, MonadIO m) => GClosure a -> m (Maybe AccelGroup)
- accelGroupGetIsLocked :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> m Bool
- accelGroupGetModifierMask :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> m [ModifierType]
- accelGroupLock :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> m ()
- accelGroupNew :: (HasCallStack, MonadIO m) => m AccelGroup
- accelGroupQuery :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> Word32 -> [ModifierType] -> m (Maybe [AccelGroupEntry])
- accelGroupUnlock :: (HasCallStack, MonadIO m, IsAccelGroup a) => a -> m ()
- getAccelGroupIsLocked :: (MonadIO m, IsAccelGroup o) => o -> m Bool
- getAccelGroupModifierMask :: (MonadIO m, IsAccelGroup o) => o -> m [ModifierType]
- type AccelGroupAccelActivateCallback = Object -> Word32 -> [ModifierType] -> IO Bool
- afterAccelGroupAccelActivate :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelActivateCallback) -> m SignalHandlerId
- onAccelGroupAccelActivate :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelActivateCallback) -> m SignalHandlerId
- type AccelGroupAccelChangedCallback = Word32 -> [ModifierType] -> GClosure () -> IO ()
- afterAccelGroupAccelChanged :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelChangedCallback) -> m SignalHandlerId
- onAccelGroupAccelChanged :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelChangedCallback) -> m SignalHandlerId
Exported types
newtype AccelGroup Source #
Memory-managed wrapper type.
AccelGroup (ManagedPtr AccelGroup) |
Instances
Eq AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup (==) :: AccelGroup -> AccelGroup -> Bool # (/=) :: AccelGroup -> AccelGroup -> Bool # | |
GObject AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup | |
ManagedPtrNewtype AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup toManagedPtr :: AccelGroup -> ManagedPtr AccelGroup | |
TypedObject AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup | |
HasParentTypes AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup | |
IsGValue (Maybe AccelGroup) Source # | Convert |
Defined in GI.Gtk.Objects.AccelGroup gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe AccelGroup -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe AccelGroup) | |
type ParentTypes AccelGroup Source # | |
Defined in GI.Gtk.Objects.AccelGroup type ParentTypes AccelGroup = '[Object] |
class (GObject o, IsDescendantOf AccelGroup o) => IsAccelGroup o Source #
Type class for types which can be safely cast to AccelGroup
, for instance with toAccelGroup
.
Instances
(GObject o, IsDescendantOf AccelGroup o) => IsAccelGroup o Source # | |
Defined in GI.Gtk.Objects.AccelGroup |
toAccelGroup :: (MonadIO m, IsAccelGroup o) => o -> m AccelGroup Source #
Cast to AccelGroup
, 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
Methods
activate, bindProperty, bindPropertyFull, connect, connectByPath, disconnect, disconnectKey, find, forceFloating, freezeNotify, getv, isFloating, lock, notify, notifyByPspec, query, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unlock, unref, watchClosure.
Getters
getData, getIsLocked, getModifierMask, getProperty, getQdata.
Setters
activate
:: (HasCallStack, MonadIO m, IsAccelGroup a, IsObject b) | |
=> a |
|
-> Word32 |
|
-> b |
|
-> Word32 |
|
-> [ModifierType] |
|
-> m Bool | Returns: |
Finds the first accelerator in accelGroup
that matches
accelKey
and accelMods
, and activates it.
connect
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> Word32 |
|
-> [ModifierType] |
|
-> [AccelFlags] |
|
-> GClosure C_AccelGroupActivate |
|
-> m () |
Installs an accelerator in this group. When accelGroup
is being
activated in response to a call to accelGroupsActivate
,
closure
will be invoked if the accelKey
and accelMods
from
accelGroupsActivate
match those of this connection.
The signature used for the closure
is that of AccelGroupActivate
.
Note that, due to implementation details, a single closure can only be connected to one accelerator group.
connectByPath
accelGroupConnectByPath Source #
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> Text |
|
-> GClosure b |
|
-> m () |
Installs an accelerator in this group, using an accelerator path
to look up the appropriate key and modifiers (see
accelMapAddEntry
). When accelGroup
is being activated
in response to a call to accelGroupsActivate
, closure
will
be invoked if the accelKey
and accelMods
from
accelGroupsActivate
match the key and modifiers for the path.
The signature used for the closure
is that of AccelGroupActivate
.
Note that accelPath
string will be stored in a GQuark
. Therefore,
if you pass a static string, you can save some memory by interning it
first with internStaticString
.
disconnect
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> Maybe (GClosure b) |
|
-> m Bool | Returns: |
Removes an accelerator previously installed through
accelGroupConnect
.
Since 2.20 closure
can be Nothing
.
disconnectKey
accelGroupDisconnectKey Source #
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> Word32 |
|
-> [ModifierType] |
|
-> m Bool | Returns: |
Removes an accelerator previously installed through
accelGroupConnect
.
find
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> AccelGroupFindFunc |
|
-> m AccelKey | Returns: the key of the first entry passing
|
fromAccelClosure
accelGroupFromAccelClosure Source #
:: (HasCallStack, MonadIO m) | |
=> GClosure a |
|
-> m (Maybe AccelGroup) | Returns: the |
Finds the AccelGroup
to which closure
is connected;
see accelGroupConnect
.
getIsLocked
accelGroupGetIsLocked Source #
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> m Bool | Returns: |
Locks are added and removed using accelGroupLock
and
accelGroupUnlock
.
Since: 2.14
getModifierMask
accelGroupGetModifierMask Source #
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> m [ModifierType] | Returns: the modifier mask for this accel group. |
Gets a ModifierType
representing the mask for this
accelGroup
. For example, GDK_CONTROL_MASK
, GDK_SHIFT_MASK
, etc.
Since: 2.14
lock
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> m () |
Locks the given accelerator group.
Locking an acelerator group prevents the accelerators contained
within it to be changed during runtime. Refer to
accelMapChangeEntry
about runtime accelerator changes.
If called more than once, accelGroup
remains locked until
accelGroupUnlock
has been called an equivalent number
of times.
new
:: (HasCallStack, MonadIO m) | |
=> m AccelGroup | Returns: a new |
Creates a new AccelGroup
.
query
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> Word32 |
|
-> [ModifierType] |
|
-> m (Maybe [AccelGroupEntry]) | Returns: an array of
|
Queries an accelerator group for all entries matching accelKey
and accelMods
.
unlock
:: (HasCallStack, MonadIO m, IsAccelGroup a) | |
=> a |
|
-> m () |
Undoes the last call to accelGroupLock
on this accelGroup
.
Properties
isLocked
No description available in the introspection data.
getAccelGroupIsLocked :: (MonadIO m, IsAccelGroup o) => o -> m Bool Source #
Get the value of the “is-locked
” property.
When overloading is enabled, this is equivalent to
get
accelGroup #isLocked
modifierMask
No description available in the introspection data.
getAccelGroupModifierMask :: (MonadIO m, IsAccelGroup o) => o -> m [ModifierType] Source #
Get the value of the “modifier-mask
” property.
When overloading is enabled, this is equivalent to
get
accelGroup #modifierMask
Signals
accelActivate
type AccelGroupAccelActivateCallback Source #
= Object |
|
-> Word32 |
|
-> [ModifierType] |
|
-> IO Bool | Returns: |
The accel-activate signal is an implementation detail of
AccelGroup
and not meant to be used by applications.
afterAccelGroupAccelActivate :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelActivateCallback) -> m SignalHandlerId Source #
Connect a signal handler for the accelActivate signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
accelGroup #accelActivate callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “accel-activate::detail
” instead.
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onAccelGroupAccelActivate :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelActivateCallback) -> m SignalHandlerId Source #
Connect a signal handler for the accelActivate signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
accelGroup #accelActivate callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “accel-activate::detail
” instead.
accelChanged
type AccelGroupAccelChangedCallback Source #
= Word32 |
|
-> [ModifierType] |
|
-> GClosure () |
|
-> IO () |
The accel-changed signal is emitted when an entry is added to or removed from the accel group.
Widgets like AccelLabel
which display an associated
accelerator should connect to this signal, and rebuild
their visual representation if the accelClosure
is theirs.
afterAccelGroupAccelChanged :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the accelChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
accelGroup #accelChanged callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “accel-changed::detail
” instead.
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onAccelGroupAccelChanged :: (IsAccelGroup a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AccelGroupAccelChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the accelChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
accelGroup #accelChanged callback
This signal admits a optional parameter detail
.
If it's not Nothing
, we will connect to “accel-changed::detail
” instead.