Provided by: libgtk2-perl-doc_1.249-2_all
NAME
Gtk2::BindingSet - wrapper for GtkBindingSet
DESCRIPTION
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.