Gtk2::BindingSet(3) User Contributed Perl Documentation Gtk2::BindingSet(3)NAMEGtk2::BindingSetDESCRIPTION
A "Gtk2::BindingSet" is basically a mapping from keyval+modifiers to a
named action signal to invoke and with argument values for the signal.
Bindings are normally run by the "Gtk2::Widget" default
"key-press-event" handler, but can also be activated explicitly.
Binding sets can be populated from program code with
"entry_add_signal", or created from an RC file or string (see
Gtk2::Rc). If you use the RC note it doesn't parse and create anything
until there's someone interested in the result, such as
"Gtk2::Settings" for widgets. This means binding sets in RC files or
strings don't exist for "Gtk2::BindingSet->find" to retrieve until at
least one widget has been created (or similar).
Currently there's no Perl-level access to the contents of a BindingSet,
except for "set_name".
HIERARCHY
Glib::Boxed
+----Gtk2::BindingSet
METHODS
GtkBindingSet = Gtk2::BindingSet->new ($set_name)
· $set_name (string)
boolean = $binding_set->activate ($keyval, $modifiers, $object)
· $keyval (integer)
· $modifiers (Gtk2::Gdk::ModifierType)
· $object (Gtk2::Object)
$binding_set->add_path ($path_type, $path_pattern, $priority)
· $path_type (Gtk2::PathType)
· $path_pattern (string)
· $priority (integer)
The following constants are defined for standard priority levels,
Gtk2::GTK_PATH_PRIO_LOWEST
Gtk2::GTK_PATH_PRIO_GTK
Gtk2::GTK_PATH_PRIO_APPLICATION
Gtk2::GTK_PATH_PRIO_THEME
Gtk2::GTK_PATH_PRIO_RC
Gtk2::GTK_PATH_PRIO_HIGHEST
LOWEST, which is 0, and HIGHEST, which is 15, are the limits of the
allowed priorities. The standard values are from the
"Gtk2::PathPriorityType" enum, but the parameter here is an integer,
not an enum string, so you can give a value for instance a little above
or below the pre-defined levels.
bindingset or undef = Gtk2::BindingSet->by_class ($name)
· $name (string)
$binding_set->entry_add_signal ($keyval, $modifiers, $signal_name)
$binding_set->entry_add_signal ($keyval, $modifiers, $signal_name,
$type,$value, ...)
· $keyval (integer)
· $modifiers (Gtk2::Gdk::ModifierType)
· $signal_name (string)
· $value (scalar)
· $type (string)
Add an entry to $binding_set. $keyval and $modifier are setup as a
binding for $signal_name and with signal parameters given by $value
arguments. Each value is preceded by a type (a string), which must be
one of
Glib::Long
Glib::Double
Glib::String
an enum type, ie. subtype of Glib::Enum
Glib::Flags, or a flags subtype
For example,
$binding_set->entry_add_signal
(Gtk2->keyval_from_name('Return'),
[ 'control-mask' ], # modifiers
'some-signal-name',
'Glib::Double', 1.5,
'Glib::String, 'hello');
A parameter holds one of the three types Long, Double or String. When
invoked they're coerced to the parameter types expected by the target
object or widget. Use Glib::Long for any integer argument, including
chars and unichars by ordinal value. Use Glib::Double for both single
and double precision floats.
Flags and enums are held as Longs in the BindingSet. You can pass an
enum type and string and "entry_with_signal" will lookup and store
accordingly. For example
$binding_set->entry_add_signal
(Gtk2->keyval_from_name('Escape), [],
'set-direction',
'Gtk2::Orientation', 'vertical');
Likewise flags from an arrayref,
$binding_set->entry_add_signal
(Gtk2->keyval_from_name('d'), [],
'initiate-drag',
'Gtk2::Gdk::DragAction', ['move,'ask']);
If you've got a Glib::Flags object, rather than just an arrayref, then
you can just give Glib::Flags as the type and the value is taken from
the object. For example,
my $flags = Gtk2::DebugFlag->new (['tree', 'updates']);
$binding_set->entry_add_signal
(Gtk2->keyval_from_name('x'), ['control-mask'],
'change-debug',
'Glib::Flags', $flags);
$binding_set->entry_remove ($keyval, $modifiers)
· $keyval (integer)
· $modifiers (Gtk2::Gdk::ModifierType)
$binding_set->entry_skip ($keyval, $modifiers)
· $keyval (integer)
· $modifiers (Gtk2::Gdk::ModifierType)
Since: gtk+ 2.12
bindingset or undef = Gtk2::BindingSet->find ($name)
· $name (string)
string = $binding_set->set_name
Return the name of $binding_set.
ENUMS AND FLAGS
flags Gtk2::Gdk::ModifierType
· 'shift-mask' / 'GDK_SHIFT_MASK'
· 'lock-mask' / 'GDK_LOCK_MASK'
· 'control-mask' / 'GDK_CONTROL_MASK'
· 'mod1-mask' / 'GDK_MOD1_MASK'
· 'mod2-mask' / 'GDK_MOD2_MASK'
· 'mod3-mask' / 'GDK_MOD3_MASK'
· 'mod4-mask' / 'GDK_MOD4_MASK'
· 'mod5-mask' / 'GDK_MOD5_MASK'
· 'button1-mask' / 'GDK_BUTTON1_MASK'
· 'button2-mask' / 'GDK_BUTTON2_MASK'
· 'button3-mask' / 'GDK_BUTTON3_MASK'
· 'button4-mask' / 'GDK_BUTTON4_MASK'
· 'button5-mask' / 'GDK_BUTTON5_MASK'
· 'super-mask' / 'GDK_SUPER_MASK'
· 'hyper-mask' / 'GDK_HYPER_MASK'
· 'meta-mask' / 'GDK_META_MASK'
· 'release-mask' / 'GDK_RELEASE_MASK'
· 'modifier-mask' / 'GDK_MODIFIER_MASK'
enum Gtk2::PathType
· 'widget' / 'GTK_PATH_WIDGET'
· 'widget-class' / 'GTK_PATH_WIDGET_CLASS'
· 'class' / 'GTK_PATH_CLASS'
SEE ALSO
Gtk2, Glib::Boxed
COPYRIGHT
Copyright (C) 2003-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See Gtk2 for a full notice.
perl v5.14.1 2011-08-30 Gtk2::BindingSet(3)