class Gtk::ShortcutController
- Gtk::ShortcutController
- Gtk::EventController
- GObject::Object
- Reference
- Object
Overview
Gtk::ShortcutController
is an event controller that manages shortcuts.
Most common shortcuts are using this controller implicitly, e.g. by
adding a mnemonic underline to a Gtk::Label
, or by installing a key
binding using Gtk::WidgetClass#add_binding
, or by adding accelerators
to global actions using Gtk::Application#accels_for_action=
.
But it is possible to create your own shortcut controller, and add shortcuts to it.
Gtk::ShortcutController
implements GListModel
for querying the
shortcuts that have been added to it.
Gtk::ShortcutController as a Gtk::Buildable
Gtk::ShortcutControllers
can be creates in ui files to set up
shortcuts in the same place as the widgets.
An example of a UI definition fragment with Gtk::ShortcutController
:
WARNING ⚠️ The following code is in xml ⚠️
<object class='Gtk::Button'>
<child>
<object class='Gtk::ShortcutController'>
<property name='scope'>managed</property>
<child>
<object class='Gtk::Shortcut'>
<property name='trigger'><Control>k</property>
<property name='action'>activate</property>
</object>
</child>
</object>
</child>
</object>
This example creates a Gtk::ActivateAction
for triggering the
activate
signal of the Gtk::Button
. See Gtk::ShortcutAction#parse_string
for the syntax for other kinds of Gtk::ShortcutAction
. See
Gtk::ShortcutTrigger#parse_string
to learn more about the syntax
for triggers.
Included Modules
Defined in:
lib/gi-crystal/src/auto/gtk-4.0/shortcut_controller.crConstructors
-
.new : self
Creates a new shortcut controller.
- .new(*, mnemonic_modifiers : Gdk::ModifierType | Nil = nil, model : Gio::ListModel | Nil = nil, name : String | Nil = nil, propagation_limit : Gtk::PropagationLimit | Nil = nil, propagation_phase : Gtk::PropagationPhase | Nil = nil, scope : Gtk::ShortcutScope | Nil = nil, widget : Gtk::Widget | Nil = nil)
-
.new_for_model(model : Gio::ListModel) : self
Creates a new shortcut controller that takes its shortcuts from the given list model.
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#add_shortcut(shortcut : Gtk::Shortcut) : Nil
Adds shortcut to the list of shortcuts handled by self.
-
#hash(hasher)
See
Object#hash(hasher)
- #mnemonic_modifiers : Gdk::ModifierType
- #mnemonic_modifiers=(value : Gdk::ModifierType) : Gdk::ModifierType
-
#mnemonics_modifiers : Gdk::ModifierType
Gets the mnemonics modifiers for when this controller activates its shortcuts.
-
#mnemonics_modifiers=(modifiers : Gdk::ModifierType) : Nil
Sets the controller to use the given modifier for mnemonics.
- #model=(value : Gio::ListModel | Nil) : Gio::ListModel | Nil
-
#remove_shortcut(shortcut : Gtk::Shortcut) : Nil
Removes shortcut from the list of shortcuts handled by self.
-
#scope : Gtk::ShortcutScope
Gets the scope for when this controller activates its shortcuts.
-
#scope=(scope : Gtk::ShortcutScope) : Nil
Sets the controller to have the given scope.
Instance methods inherited from module Gtk::Buildable
buildable_id : String | Nil
buildable_id,
to_unsafe
to_unsafe
Constructor methods inherited from module Gtk::Buildable
cast(obj : GObject::Object) : self
cast
Class methods inherited from module Gtk::Buildable
cast?(obj : GObject::Object) : self | Nil
cast?,
g_type : UInt64
g_type
Instance methods inherited from module Gio::ListModel
item(position : UInt32) : GObject::Object | Nil
item,
item_type : UInt64
item_type,
items_changed(position : UInt32, removed : UInt32, added : UInt32) : Nilitems_changed(position : Int, removed : Int, added : Int) : Nil items_changed, items_changed_signal items_changed_signal, n_items : UInt32 n_items, to_unsafe to_unsafe
Constructor methods inherited from module Gio::ListModel
cast(obj : GObject::Object) : self
cast
Class methods inherited from module Gio::ListModel
cast?(obj : GObject::Object) : self | Nil
cast?,
g_type : UInt64
g_type
Instance methods inherited from class Gtk::EventController
==(other : self)
==,
current_event : Gdk::Event | Nil
current_event,
current_event_device : Gdk::Device | Nil
current_event_device,
current_event_state : Gdk::ModifierType
current_event_state,
current_event_time : UInt32
current_event_time,
hash(hasher)
hash,
name : String | Nil
name,
name=(value : String) : Stringname=(value : Nil) : Nil
name=(name : String | Nil) : Nil name=, name? : String | Nil name?, propagation_limit : Gtk::PropagationLimit propagation_limit, propagation_limit=(limit : Gtk::PropagationLimit) : Nil propagation_limit=, propagation_phase : Gtk::PropagationPhase propagation_phase, propagation_phase=(phase : Gtk::PropagationPhase) : Nil propagation_phase=, reset : Nil reset, widget : Gtk::Widget widget
Constructor methods inherited from class Gtk::EventController
newnew(*, name : String | Nil = nil, propagation_limit : Gtk::PropagationLimit | Nil = nil, propagation_phase : Gtk::PropagationPhase | Nil = nil, widget : Gtk::Widget | Nil = nil) new
Class methods inherited from class Gtk::EventController
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
==(other : self)
==,
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void) | Nil
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
hash(hasher)
hash,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void) | Nil
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void) | Nil) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void) | Nil
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void) | Nil
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
cast?(obj : GObject::Object) : self | Nil
cast?,
compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Macros inherited from class GObject::Object
previous_vfunc(*args)
previous_vfunc,
previous_vfunc!(*args)
previous_vfunc!,
signal(signature)
signal
Constructor Detail
Creates a new shortcut controller that takes its shortcuts from the given list model.
A controller created by this function does not let you add or remove individual shortcuts using the shortcut controller api, but you can change the contents of the model.
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
Adds shortcut to the list of shortcuts handled by self.
If this controller uses an external shortcut list, this function does nothing.
Gets the mnemonics modifiers for when this controller activates its shortcuts.
Sets the controller to use the given modifier for mnemonics.
The mnemonics modifiers determines which modifiers need to be pressed to allow activation of shortcuts with mnemonics triggers.
GTK normally uses the Alt modifier for mnemonics, except in Gtk::PopoverMenu
s,
where mnemonics can be triggered without any modifiers. It should be very
rarely necessary to change this, and doing so is likely to interfere with
other shortcuts.
This value is only relevant for local shortcut controllers. Global and managed shortcut controllers will have their shortcuts activated from other places which have their own modifiers for activating mnemonics.
Removes shortcut from the list of shortcuts handled by self.
If shortcut had not been added to controller or this controller uses an external shortcut list, this function does nothing.
Gets the scope for when this controller activates its shortcuts.
See Gtk::ShortcutController#scope=
for details.
Sets the controller to have the given scope.
The scope allows shortcuts to be activated outside of the normal event propagation. In particular, it allows installing global keyboard shortcuts that can be activated even when a widget does not have focus.
With %GTK_SHORTCUT_SCOPE_LOCAL, shortcuts will only be activated when the widget has focus.