Provided by: libgtk2-perl-doc_1.2498-1_all bug

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.