Как избежать магических чисел Gtk2 accel_key?

Мне нужен ускоритель для подпрограммы в моем приложении GTK, использующий привязки Gtk2 для Perl. Gtk2::AccelGroup->connect() принимает $accel_key в качестве аргумента, который, похоже, целое число, представляющее ключ. Может ли Gtk2 экспортировать константы или функцию для использования вместо этого магического числа?


person Tim    schedule 24.05.2011    source источник


Ответы (1)


Используйте Gtk2::Accelerator->parse():

use Gtk2;
my ( $key, $mods ) = Gtk2::Accelerator->parse( '<control><alt>a' );
# $key is 97
# $mods is '[ control-mask mod1-mask ]'

my $ag = Gtk2::AccelGroup->new();
$ag->connect(
    Gtk2::Accelerator->parse( '<control><alt><a>' ),
    [qw/visible/], sub { say 'hi' }
);
person Tim    schedule 24.05.2011