| 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 |
GI.Gtk.Objects.AccelLabel
Description
The AccelLabel is a widget that shows an accelerator next to a description
of said accelerator, e.g. “Save Document Ctrl+S”.
It is commonly used in menus to show the keyboard short-cuts for commands.
The accelerator key to display is typically not set explicitly (although it
can be, with accelLabelSetAccel). Instead, the AccelLabel displays
the accelerators which have been added to a particular widget. This widget is
set by calling accelLabelSetAccelWidget.
For example, a MenuItem widget may have an accelerator added to emit
the “activate” signal when the “Ctrl+S” key combination is pressed.
A AccelLabel is created and added to the MenuItem, and
accelLabelSetAccelWidget is called with the MenuItem as the
second argument. The AccelLabel will now display “Ctrl+S” after its label.
Note that creating a MenuItem with menuItemNewWithLabel (or
one of the similar functions for CheckMenuItem and RadioMenuItem)
automatically adds a AccelLabel to the MenuItem and calls
accelLabelSetAccelWidget to set it up for you.
A AccelLabel will only display accelerators which have AccelFlagsVisible
set (see AccelFlags).
A AccelLabel can display multiple accelerators and even signal names,
though it is almost always used to display just one accelerator key.
Creating a simple menu item with an accelerator key.
C code
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkWidget *menu = gtk_menu_new ();
GtkWidget *save_item;
GtkAccelGroup *accel_group;
// Create a GtkAccelGroup and add it to the window.
accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
// Create the menu item using the convenience function.
save_item = gtk_menu_item_new_with_label ("Save");
gtk_container_add (GTK_CONTAINER (menu), save_item);
// Now add the accelerator to the GtkMenuItem. Note that since we
// called gtk_menu_item_new_with_label() to create the GtkMenuItem
// the GtkAccelLabel is automatically set up to display the
// GtkMenuItem accelerators. We just need to make sure we use
// GTK_ACCEL_VISIBLE here.
gtk_widget_add_accelerator (save_item, "activate", accel_group,
GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);CSS nodes
plain code
accellabel
╰── box
├── label
╰── acceleratorAccelLabel has a main CSS node with the name accellabel.
It adds a subnode with name box, containing two child nodes with
name label and accelerator.
Synopsis
- newtype AccelLabel = AccelLabel (ManagedPtr AccelLabel)
- class (GObject o, IsDescendantOf AccelLabel o) => IsAccelLabel o
- toAccelLabel :: (MonadIO m, IsAccelLabel o) => o -> m AccelLabel
- noAccelLabel :: Maybe AccelLabel
- accelLabelGetAccel :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m (Word32, [ModifierType])
- accelLabelGetAccelWidget :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m (Maybe Widget)
- accelLabelGetAccelWidth :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m Word32
- accelLabelGetLabel :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m Text
- accelLabelGetUseUnderline :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m Bool
- accelLabelNew :: (HasCallStack, MonadIO m) => Text -> m AccelLabel
- accelLabelRefetch :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> m Bool
- accelLabelSetAccel :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> Word32 -> [ModifierType] -> m ()
- accelLabelSetAccelClosure :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> Maybe (GClosure b) -> m ()
- accelLabelSetAccelWidget :: (HasCallStack, MonadIO m, IsAccelLabel a, IsWidget b) => a -> Maybe b -> m ()
- accelLabelSetLabel :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> Text -> m ()
- accelLabelSetUseUnderline :: (HasCallStack, MonadIO m, IsAccelLabel a) => a -> Bool -> m ()
- clearAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> m ()
- constructAccelLabelAccelClosure :: IsAccelLabel o => GClosure a -> IO (GValueConstruct o)
- getAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> m (Maybe (GClosure ()))
- setAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> GClosure a -> m ()
- clearAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o) => o -> m ()
- constructAccelLabelAccelWidget :: (IsAccelLabel o, IsWidget a) => a -> IO (GValueConstruct o)
- getAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o) => o -> m (Maybe Widget)
- setAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o, IsWidget a) => o -> a -> m ()
- constructAccelLabelLabel :: IsAccelLabel o => Text -> IO (GValueConstruct o)
- getAccelLabelLabel :: (MonadIO m, IsAccelLabel o) => o -> m Text
- setAccelLabelLabel :: (MonadIO m, IsAccelLabel o) => o -> Text -> m ()
- constructAccelLabelUseUnderline :: IsAccelLabel o => Bool -> IO (GValueConstruct o)
- getAccelLabelUseUnderline :: (MonadIO m, IsAccelLabel o) => o -> m Bool
- setAccelLabelUseUnderline :: (MonadIO m, IsAccelLabel o) => o -> Bool -> m ()
Exported types
newtype AccelLabel Source #
Memory-managed wrapper type.
Constructors
| AccelLabel (ManagedPtr AccelLabel) |
Instances
| Eq AccelLabel Source # | |
Defined in GI.Gtk.Objects.AccelLabel | |
| IsGValue AccelLabel Source # | Convert |
Defined in GI.Gtk.Objects.AccelLabel | |
| GObject AccelLabel Source # | |
Defined in GI.Gtk.Objects.AccelLabel Methods gobjectType :: IO GType # | |
| HasParentTypes AccelLabel Source # | |
Defined in GI.Gtk.Objects.AccelLabel | |
| type ParentTypes AccelLabel Source # | |
Defined in GI.Gtk.Objects.AccelLabel | |
class (GObject o, IsDescendantOf AccelLabel o) => IsAccelLabel o Source #
Type class for types which can be safely cast to AccelLabel, for instance with toAccelLabel.
Instances
| (GObject o, IsDescendantOf AccelLabel o) => IsAccelLabel o Source # | |
Defined in GI.Gtk.Objects.AccelLabel | |
toAccelLabel :: (MonadIO m, IsAccelLabel o) => o -> m AccelLabel Source #
Cast to AccelLabel, for types for which this is known to be safe. For general casts, use castTo.
noAccelLabel :: Maybe AccelLabel Source #
A convenience alias for Nothing :: Maybe AccelLabel.
Methods
Overloaded methods
getAccel
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m (Word32, [ModifierType]) |
Gets the keyval and modifier mask set with
accelLabelSetAccel.
getAccelWidget
accelLabelGetAccelWidget Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m (Maybe Widget) | Returns: the object monitored by the accelerator label, or |
Fetches the widget monitored by this accelerator label. See
accelLabelSetAccelWidget.
getAccelWidth
accelLabelGetAccelWidth Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m Word32 | Returns: the width needed to display the accelerator key(s). |
Returns the width needed to display the accelerator key(s).
This is used by menus to align all of the MenuItem widgets, and shouldn't
be needed by applications.
getLabel
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m Text | Returns: |
Returns the current label, set via accelLabelSetLabel
getUseUnderline
accelLabelGetUseUnderline Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m Bool | Returns: whether the accel label uses mnemonic underlines |
Returns whether the accel label interprets underscores in it's
label property as mnemonic indicators.
See accelLabelSetUseUnderline and labelSetUseUnderline;
new
Arguments
| :: (HasCallStack, MonadIO m) | |
| => Text |
|
| -> m AccelLabel | Returns: a new |
Creates a new AccelLabel.
refetch
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> m Bool | Returns: always returns |
Recreates the string representing the accelerator keys. This should not be needed since the string is automatically updated whenever accelerators are added or removed from the associated widget.
setAccel
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> Word32 |
|
| -> [ModifierType] |
|
| -> m () |
Manually sets a keyval and modifier mask as the accelerator rendered
by accelLabel.
If a keyval and modifier are explicitly set then these values are used regardless of any associated accel closure or widget.
Providing an acceleratorKey of 0 removes the manual setting.
setAccelClosure
accelLabelSetAccelClosure Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> Maybe (GClosure b) |
|
| -> m () |
Sets the closure to be monitored by this accelerator label. The closure
must be connected to an accelerator group; see accelGroupConnect.
Passing Nothing for accelClosure will dissociate accelLabel from its
current closure, if any.
setAccelWidget
accelLabelSetAccelWidget Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a, IsWidget b) | |
| => a |
|
| -> Maybe b |
|
| -> m () |
Sets the widget to be monitored by this accelerator label. Passing Nothing for
accelWidget will dissociate accelLabel from its current widget, if any.
setLabel
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> Text |
|
| -> m () |
Sets the label part of the accel label.
setUseUnderline
accelLabelSetUseUnderline Source #
Arguments
| :: (HasCallStack, MonadIO m, IsAccelLabel a) | |
| => a |
|
| -> Bool |
|
| -> m () |
Controls whether to interpret underscores in the text label of accelLabel
as mnemonic indicators. See also labelSetUseUnderline
Properties
accelClosure
No description available in the introspection data.
clearAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> m () Source #
Set the value of the “accel-closure” property to Nothing.
When overloading is enabled, this is equivalent to
clear #accelClosure
constructAccelLabelAccelClosure :: IsAccelLabel o => GClosure a -> IO (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “accel-closure” property. This is rarely needed directly, but it is used by new.
getAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> m (Maybe (GClosure ())) Source #
Get the value of the “accel-closure” property.
When overloading is enabled, this is equivalent to
get accelLabel #accelClosure
setAccelLabelAccelClosure :: (MonadIO m, IsAccelLabel o) => o -> GClosure a -> m () Source #
Set the value of the “accel-closure” property.
When overloading is enabled, this is equivalent to
setaccelLabel [ #accelClosure:=value ]
accelWidget
No description available in the introspection data.
clearAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o) => o -> m () Source #
Set the value of the “accel-widget” property to Nothing.
When overloading is enabled, this is equivalent to
clear #accelWidget
constructAccelLabelAccelWidget :: (IsAccelLabel o, IsWidget a) => a -> IO (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “accel-widget” property. This is rarely needed directly, but it is used by new.
getAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o) => o -> m (Maybe Widget) Source #
Get the value of the “accel-widget” property.
When overloading is enabled, this is equivalent to
get accelLabel #accelWidget
setAccelLabelAccelWidget :: (MonadIO m, IsAccelLabel o, IsWidget a) => o -> a -> m () Source #
Set the value of the “accel-widget” property.
When overloading is enabled, this is equivalent to
setaccelLabel [ #accelWidget:=value ]
label
No description available in the introspection data.
constructAccelLabelLabel :: IsAccelLabel o => Text -> IO (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “label” property. This is rarely needed directly, but it is used by new.
getAccelLabelLabel :: (MonadIO m, IsAccelLabel o) => o -> m Text Source #
Get the value of the “label” property.
When overloading is enabled, this is equivalent to
get accelLabel #label
setAccelLabelLabel :: (MonadIO m, IsAccelLabel o) => o -> Text -> m () Source #
Set the value of the “label” property.
When overloading is enabled, this is equivalent to
setaccelLabel [ #label:=value ]
useUnderline
No description available in the introspection data.
constructAccelLabelUseUnderline :: IsAccelLabel o => Bool -> IO (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “use-underline” property. This is rarely needed directly, but it is used by new.
getAccelLabelUseUnderline :: (MonadIO m, IsAccelLabel o) => o -> m Bool Source #
Get the value of the “use-underline” property.
When overloading is enabled, this is equivalent to
get accelLabel #useUnderline
setAccelLabelUseUnderline :: (MonadIO m, IsAccelLabel o) => o -> Bool -> m () Source #
Set the value of the “use-underline” property.
When overloading is enabled, this is equivalent to
setaccelLabel [ #useUnderline:=value ]