DESCRIPTION
The module provides a standard widget for selecting a user-defined key combination. The widget class allows import, export, and modification of key combinations.The module provides a set of routines, useful for conversion of a key combination between representations.
SYNOPSIS
my $ks = Prima::KeySelector-> create( );
$ks-> key( km::Alt | ord('X'));
print Prima::KeySelector::describe( $ks-> key );
API
Properties
- key INTEGER
-
Selects a key combination in integer format. The format is
described in ``Hot key'' in Prima::Menu, and is a combination
of "km::XXX" key modifiers and either a "kb::XXX" virtual
key, or a character code value.
The property allows almost, but not all possible combinations of key constants. Only "km::Ctrl", "km::Alt", and "km::Shift" modifiers are allowed.
Methods
All methods here can ( and must ) be called without the object syntax; - the first parameter must not be neither package nor widget.- describe KEY
-
Accepts KEY in integer format, and returns string
description of the key combination in human readable
format. Useful for supplying an accelerator text to
a menu.
print describe( km::Shift|km::Ctrl|km::F10); Ctrl+Shift+F10
- export KEY
-
Accepts KEY in integer format, and returns string
with a perl-evaluable expression, which after
evaluation resolves to the original KEY value. Useful for storing
a key into text config files, where value must be both
human readable and easily passed to a program.
print export( km::Shift|km::Ctrl|km::F10); km::Shift|km::Ctrl|km::F10
- shortcut KEY
-
Converts KEY from integer format to a string,
acceptable by "Prima::AbstractMenu" input methods.
print shortcut( km::Ctrl|ord('X')); ^X
- translate_codes KEY, [ USE_CTRL = 0 ]
- Converts KEY in integer format to three integers in the format accepted by ``KeyDown'' in Prima::Widget event: code, key, and modifier. USE_CTRL is only relevant when KEY first byte ( "KEY & 0xFF" ) is between 1 and 26, what means that the key is a combination of an alpha key with the control key. If USE_CTRL is 1, code result is unaltered, and is in range 1 - 26. Otherwise, code result is converted to the character code ( 1 to ord('A'), 2 to ord('B') etc ).