gi-gtk3-3.0.44: Gtk 3.x bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gtk.Objects.AccelGroup

Contents

- Exported types
- Methods
  - activate
  - connect
  - connectByPath
  - disconnect
  - disconnectKey
  - find
  - fromAccelClosure
  - getIsLocked
  - getModifierMask
  - lock
  - new
  - query
  - unlock
- Properties
  - isLocked
  - modifierMask
- Signals
  - accelActivate
  - accelChanged

Description

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.

Constructors

AccelGroup (ManagedPtr AccelGroup) |

#### Instances

Instances details

Eq AccelGroup Source # |
Instance details Defined in GI.Gtk.Objects.AccelGroup Methods (==) :: AccelGroup -> AccelGroup -> Bool Source # (/=) :: AccelGroup -> AccelGroup -> Bool Source #
GObject AccelGroup Source # |
Instance details Defined in GI.Gtk.Objects.AccelGroup
ManagedPtrNewtype AccelGroup Source # |
Instance details Defined in GI.Gtk.Objects.AccelGroup Methods toManagedPtr :: AccelGroup -> ManagedPtr AccelGroup Source #
TypedObject AccelGroup Source # |
Instance details Defined in GI.Gtk.Objects.AccelGroup Methods glibType :: IO GType Source #
HasParentTypes AccelGroup Source # |
Instance details Defined in GI.Gtk.Objects.AccelGroup
IsGValue (Maybe AccelGroup) Source # | Convert `AccelGroup` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gtk.Objects.AccelGroup Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe AccelGroup -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe AccelGroup) Source #
type ParentTypes AccelGroup Source # |
Instance details 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

Instances details

(GObject o, IsDescendantOf AccelGroup o) => IsAccelGroup o Source # |
Instance details 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

Expand

#### 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

setData, setDataFull, setProperty.

## activate

accelGroupActivate Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a, IsObject b) |
=> a | `accelGroup`: a `AccelGroup`
-> Word32 | `accelQuark`: the quark for the accelerator name
-> b | `acceleratable`: the `Object`, usually a `Window`, on which to activate the accelerator
-> Word32 | `accelKey`: accelerator keyval from a key event
-> [ModifierType] | `accelMods`: keyboard state mask from a key event
-> m Bool | Returns: `True` if an accelerator was activated and handled this keypress

Finds the first accelerator in `accelGroup` that matches `accelKey` and `accelMods`, and activates it.

## connect

accelGroupConnect Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: the accelerator group to install an accelerator in
-> Word32 | `accelKey`: key value of the accelerator
-> [ModifierType] | `accelMods`: modifier combination of the accelerator
-> [AccelFlags] | `accelFlags`: a flag mask to configure this accelerator
-> GClosure C_AccelGroupActivate | `closure`: closure to be executed upon accelerator activation
-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: the accelerator group to install an accelerator in
-> Text | `accelPath`: path used for determining key and modifiers
-> GClosure b | `closure`: closure to be executed upon accelerator activation
-> 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

accelGroupDisconnect Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: the accelerator group to remove an accelerator from
-> Maybe (GClosure b) | `closure`: the closure to remove from this accelerator group, or `Nothing` to remove all closures
-> m Bool | Returns: `True` if the closure was found and got disconnected

Removes an accelerator previously installed through `accelGroupConnect`.

Since 2.20 `closure` can be `Nothing`.

## disconnectKey

accelGroupDisconnectKey Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: the accelerator group to install an accelerator in
-> Word32 | `accelKey`: key value of the accelerator
-> [ModifierType] | `accelMods`: modifier combination of the accelerator
-> m Bool | Returns: `True` if there was an accelerator which could be removed, `False` otherwise

Removes an accelerator previously installed through `accelGroupConnect`.

## find

accelGroupFind Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: a `AccelGroup`
-> AccelGroupFindFunc | `findFunc`: a function to filter the entries of `accelGroup` with
-> m AccelKey | Returns: the key of the first entry passing `findFunc`. The key is owned by GTK+ and must not be freed.

Finds the first entry in an accelerator group for which `findFunc` returns `True` and returns its `AccelKey`.

## fromAccelClosure

accelGroupFromAccelClosure Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> GClosure a | `closure`: a `Closure`
-> m (Maybe AccelGroup) | Returns: the `AccelGroup` to which `closure` is connected, or `Nothing`

Finds the `AccelGroup` to which `closure` is connected; see `accelGroupConnect`.

## getIsLocked

accelGroupGetIsLocked Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: a `AccelGroup`
-> m Bool | Returns: `True` if there are 1 or more locks on the `accelGroup`, `False` otherwise.

Locks are added and removed using `accelGroupLock` and `accelGroupUnlock`.

Since: 2.14

## getModifierMask

accelGroupGetModifierMask Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: a `AccelGroup`
-> 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

accelGroupLock Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: a `AccelGroup`
-> 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

accelGroupNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m AccelGroup | Returns: a new `AccelGroup` object

Creates a new `AccelGroup`.

## query

accelGroupQuery Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: the accelerator group to query
-> Word32 | `accelKey`: key value of the accelerator
-> [ModifierType] | `accelMods`: modifier combination of the accelerator
-> m (Maybe [AccelGroupEntry]) | Returns: an array of `nEntries` `AccelGroupEntry` elements, or `Nothing`. The array is owned by GTK+ and must not be freed.

Queries an accelerator group for all entries matching `accelKey` and `accelMods`.

## unlock

accelGroupUnlock Source #

Arguments

:: (HasCallStack, MonadIO m, IsAccelGroup a) |
=> a | `accelGroup`: a `AccelGroup`
-> 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 #

Arguments

= Object | `acceleratable`: the object on which the accelerator was activated
-> Word32 | `keyval`: the accelerator keyval
-> [ModifierType] | `modifier`: the modifier combination of the accelerator
-> IO Bool | Returns: `True` if the accelerator was activated

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 #

Arguments

= Word32 | `keyval`: the accelerator keyval
-> [ModifierType] | `modifier`: the modifier combination of the accelerator
-> GClosure () | `accelClosure`: the `Closure` of the accelerator
-> 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.