App-Guiio
view release on metacpan or search on metacpan
setup/actions/unsorted.pl view on Meta::CPAN
'Flip grid display' => ['000-g', \&flip_grid_display],
'Undo' => ['C00-z', \&undo],
'Display undo stack statistics' => ['C0S-Z', \&display_undo_stack_statistics],
'Redo' => ['C00-y', \&redo],
'Display keyboard mapping' => ['000-k', \&display_keyboard_mapping],
'Display commands' => ['C00-k', \&display_commands],
'Display action files' => ['C0S-K', \&display_action_files],
'Zoom in' => ['000-KP_Add', \&zoom, 2],
'Zoom out' => ['000-KP_Subtract', \&zoom, -2],
'Help' => ['000-F1', \&display_help],
'External command output in a box' => ['000-x', \&external_command_output, 1],
'External command output in a box no frame' => ['C00-x', \&external_command_output, 0],
) ;
#----------------------------------------------------------------------------------------------
sub display_help
{
my ($self) = @_ ;
$self->display_message_modal(<<EOM) ;
Some very short help.
k shows you all the keyboard mapping.
b, Add a box
B, Add a box, edit the text directly
t, Add a text element
a, add a wirl arrow (guiio arrow)
copy elements with the CTL key
add elements to the selection with shift
quick link:
select a box
CTL+SHIFT+ left mouse on the other element
d, change the direction of the arrows (selection)
f, flip the arrows (selection)
CTL+m, Add multiple box in one shot
CTL+t, Add multiple boxes in one shot
CTL+g, group elements
CTL+u, ungroup object
Mouse right button shows a context menu.
Double click (may) shows the element editing dialog
EOM
}
#----------------------------------------------------------------------------------------------
sub zoom
{
my ($self, $direction) = @_ ;
my ($family, $size) = $self->get_font() ;
$self->set_font($family, $size + $direction) ;
}
#----------------------------------------------------------------------------------------------
sub display_keyboard_mapping
{
my ($self) = @_ ;
#~ print Data::TreeDumper::DumpTree $self->{ACTIONS_BY_NAME}, 'ACTIONS_BY_NAME:';
my $keyboard_mapping = get_keyboard_mapping($self->{ACTIONS_BY_NAME}) ;
#~ print Data::TreeDumper::DumpTree $keyboard_mapping , 'Keyboard mapping:';
$self->show_dump_window
(
$keyboard_mapping ,
'Keyboard mapping:',
DISPLAY_ADDRESS => 0,
)
}
sub get_keyboard_mapping
{
my ($actions, $list) = @_ ;
$list ||= [] ;
my $keyboard_mapping ;
for my $action (keys %{$actions})
{
if('ARRAY' eq ref $actions->{$action})
{
my $shortcut = ref $actions->{$action}[0] eq ''
? $actions->{$action}[0]
: '[' . join('/', @{$actions->{$action}[0]}) . ']';
$keyboard_mapping->{$shortcut . ' => ' . $action} = {FILE=> $actions->{$action}[6]} ;
}
elsif('HASH' eq ref $actions->{$action})
{
my $sub_keyboard_mapping = get_keyboard_mapping($actions->{$action}) ;
for my $shortcut (keys %{$sub_keyboard_mapping})
{
my $start_shortcut = '[' . join('/', $actions->{$action}{SHORTCUTS}) . '] + ';
$keyboard_mapping->{$start_shortcut . $shortcut} = $sub_keyboard_mapping->{$shortcut} ;
}
}
else
{
#~ die "unknown type while running 'dump_keyboard_mapping'\n" ;
}
}
return($keyboard_mapping) ;
}
#----------------------------------------------------------------------------------------------
( run in 0.840 second using v1.01-cache-2.11-cpan-97f6503c9c8 )