diff --git a/documentation/mdbook_asciio/src/guide/installation.md b/documentation/mdbook_asciio/src/guide/installation.md index 732e4a2c..61fd654e 100644 --- a/documentation/mdbook_asciio/src/guide/installation.md +++ b/documentation/mdbook_asciio/src/guide/installation.md @@ -2,7 +2,7 @@ We're working on having packages pre-build for different distributions -## Ubuntu (probably other bian derived too) +## Ubuntu (probably other debian derivates too) ```bash apt install libdata-compare-perl libdata-compare-perl libdirectory-scratch-structured-perl libeval-context-perl libextutils-pkgconfig-perl libfile-homedir-perl libgtk3-perl libio-prompter-perl libterm-size-any-perl libterm-termkey-perl libtest-block-perl libtermkey-dev libmodule-build-perl libsereal-perl libcompress-bzip2-perl libpango-perl libcarp-clan-perl libtest-deep-perl libtest-most-perl libdevel-stacktrace-perl libexception-class-perl libcapture-tiny-perl libtest-differences-perl libmodule-util-perl libtest-nowarnings-perl diff --git a/group_bindings.md b/group_bindings.md deleted file mode 100644 index c2c9e244..00000000 --- a/group_bindings.md +++ /dev/null @@ -1,378 +0,0 @@ -Help -Add help box -Display keyboard mapping -Display commands -Display action files -Display man page -Open -Save -SaveAs -Insert -Quit -Quit no save - - -Add box -Add shrink box -Add text -Add arrow -Add angled arrow -Add connector -Add connector type2 -Add if -Add process -Add rhombus -Add ellipse -Add ascii line -Add ascii no-connectline -Add multiple texts -Add multiple boxes -use group unicode -use group box -use group ruler - - - -commands -Insert -align -arrow -movearrowends -clone -grouping -display -git -slides -stripes -debug -Clipboard -Insertfromclipboard -elementaction -Delete - - -| commands | 00S-colon | | | - -| Insert | 000-i | | | -| | use groupe type | **000-t | | -| | use groupe line | **000-l | | -| | use group unicode | 000-u | | -| | | **use group unicode line | 000-l | -| | use group box | 000-u | | -| | use group ruler | 000-r | | - -| align | 00S-A | | | -| arrow | 000-a | | | -| move arrow ends | 0A0-a | | | -| clone | 000-c | | | -| grouping | 000-g | | | -| display | 000-z | | | -| git | 00S-G | | | - -| slides | 00S-S | | | -| stripes | 0A0-g | | | -| debug | 00S-D | | | - -| **Clipboard | 000-y | | | -| **Insert from clipboard | 000-p, | | | - -| **element action | 000-e | | | -| **Delete | 000-d | | | - - -| leader | | | | -| ------------------------ | --------- | --- | - | -| commands | 00S-colon | | | -| | Help | 000-h | | -| | Add help box | 00S-H | | -| | Display keyboard mapping | 000-k | | -| | Display commands | 000-c | | -| | Display action files | 000-f | | -| | Display manpage | 000-m | | -| | Open | 000-e | | -| | Save | 000-w | | -| | SaveAs | 00S-W | | -| | Insert | 000-r | | -| | Quit | 000-q | | -| | Quit no save | 00S-Q | | - -| Insert | 000-i | | | -| | Add box | 000-b | | -| | Add shrink box | 00S-B | | -| | Add text | 000-t | | -| | Add arrow | 000-a | | -| | Add angled arrow | 00S-A | | -| | Add connector | 000-c | | -| | Add connector type 2 | 00S-C | | -| | Add if | 000-i | iti | -| | Add process | 000-p | itp | -| | Add rhombus | 0A0-r | itr | -| | Add ellipse | 000-e | ite | -| | **** Add triangle | **** | itt | -| | Add ascii line | 000-l | ill | -| | Add ascii no-connect line | 000-k | iln | -| | Add multiple texts | C00-t | imt | -| | Add multiple boxes | C00-b | imb | - -| | use group unicode | 000-u | | -| | | Add unicode box | 000-b | -| | | Add unicode arrow | 000-a | -| | | Add unicode angled arrow | 00S-A | - -| | ? sub group in unicode | Add unicode line | 000-l | -| | | Add unicode bold line | 00S-L | -| | | Add unicode double line | 0A0-l | -| | | Add unicode no-connect line | 000-k | -| | | Add unicode no-connect bold line | 00S-K | -| | | Add unicode no-connect double line | 0A0-K | - -| | use group box | 000-u | | -| | | Add exec box | C00-e | -| | | Add exec box verbatim | C00-v | -| | | Add exec box verbatim once | C00-o | -| | | Add line numbered box | C00-l | - -| | use group ruler | 000-r | | -| | | Add vertical ruler | 000-v | -| | | Add horizontal ruler | 000-h | -| | | delete rulers | 000-d | - -| align | 00S-A | | | -| | Align top | 000-ta | | -| | Align left | 000-la | | -| | Align bottom | 000-ba | | -| | Align right | 000-ra | | -| | Align vertically | 000-va | | -| | Align horizontally | 000-ha | | - -| arrow | 000-a | | | -| | Change arrow direction | 000-d | | -| | Flip arrow start and end | 000-f | | -| | Append multi_wirl section | 000-s | | -| | Insert multi_wirl section | 00S-S | | -| | Prepend multi_wirl section | 0A0-s | | -| | Remove last section from multi_wirl | C00-s | | -| | start no disconnect | C00-d | | -| | end no disconnect | C0S-D | | - -| display | 000-z | | | -| | Change elements foreground color | 000-c | | -| | Change elements background color | 00S-C | | -| | Change Asciio background color | 0A0-c | | -| | Change grid color | 0AS-C | | -| | Flip color scheme | 000-s | | -| | Flip transparent element background | 000-t | | -| | Flip grid display | 000-g | | -| | Flip hint lines | 000-h | | -| | Change font | 000-f | | -| | Edit inline | 000-i | | -| | show/hide connectors | 000-v | | -| | flip cross mode | 000-x | * zx | -| | Zoom in | 000-plus, C00-j, C00-scroll-up | * z+ | -| | Zoom out | 000-minus, C00-h, C00-scroll-down | * z- | - -| clone | 000-c | | | -| | clone escape | 000-Escape, | | -| | clone motion | 000-motion_notify | | -| | clone insert | 000-button-press-1 | | -| | clone insert2 | 000-Return, | | -| | clone arrow | 000-a, | | -| | clone angled arrow | 00S-A, | | -| | clone box | 000-b, | | -| | clone text | 000-t, | | -| | clone flip hint lines | 000-h, | | -| | //clone left | 00-Left, | | -| | //clone right | 00-Right, | | -| | //clone up | 00-Up, | | -| | //clone down | 00-Down, | | -| | //clone emulation left | 00-Left, | | -| | //clone emulation right | 00-Right, | | -| | //clone emulation up | 00-Up, | | -| | //clone emulation down | 00-Down, | | - -| debug | 00S-D | | | -| | Display undo stack statistics | 000-u | | -| | Dump self | 000-s | | -| | Dump all elements | 000-e | | -| | Dump selected elements | 000-E | | -| | Display numbered objects | 000-t | | -| | Test | 000-o | | -| | ZBuffer Test | 000-z | | - -| git | 00S-G | | | -| | Quick git | 000-button-press-3, 000-g], | | -| | Git add box | 000-b, | | -| | Git add text | 000-t, | | -| | Git add arrow | 000-a, | | -| | Git edit selected element | 000-2button-press-1, 000-Return | | -| | Git mouse left-click | 000-button-press-1, | | -| | Git change arrow direction | 000-d, | | -| | Git undo | 000-u, | | -| | Git delete elements | 000-Delete, 000-x], | | -| | Git mouse motion | 000-motion_notify, | | -| | Git move elements left | 000-Left, | | -| | Git move elements right | 000-Right, | | -| | Git move elements up | 000-Up, | | -| | Git move elements down | 000-Down, | | -| | Git mouse right-click | 0A0-button-press-3, | | -| | Git flip hint lines | 000-h, | | - -| grouping | 000-g | | | -| | Group selected elements | 000-g | | -| | Ungroup selected elements | 000-u | | -| | Move selected elements to the front | 000-f | | -| | Move selected elements to the back | 000-b | | -| | Temporary move to the front | 00S-F | | - -| move arrow ends | 0A0-a | | | -| | arrow start up | 000-Up, | | -| | arrow start down | 000-Down, | | -| | arrow start right | 000-Right | | -| | arrow start left | 000-Left, | | -| | arrow start up2 | 000-k, | | -| | arrow start down2 | 000-j, | | -| | arrow start right2 | 000-l, | | -| | arrow start left2 | 000-h, | | -| | arrow end up | 00S-Up, | | -| | arrow end down | 00S-Down, | | -| | arrow end right | 00S-Right | | -| | arrow end left | 00S-Left, | | -| | arrow end up2 | 00S-K, | | -| | arrow end down2 | 00S-J, | | -| | arrow end right2 | 00S-L, | | -| | arrow end left2 | 00S-H, | | - -| slides | 00S-S | | | -| | Load slides | 000-l | | -| | previous slide | 00S-N | | -| | next slide | 000-n | | -| | first slide | 000-g | | -| | show previous message | 000-m | | -| | show next message | 00S-M | | - -| stripes | 0A0-g | | | -| | create stripes group | 000-g | | -| | create one stripe group | 000-1 | | -| | ungroup stripes group | 000-u | | - -| -------------------------------- | --------------------------------- | -------------- | | -| clipboard | | | | -| --------------------------------------- | --------------------------------- | -------------- | | -| Copy to clipboard | C00-c, C00-Insert, y | yy | | -| Export to clipboard & primary as ascii | C00-e, 00S-Y, Y], | ya | | -| Export to clipboard & primary as markup | C0S-E, | ym | | -| Insert from clipboard | C00-v, 00S-Insert, p | pp | | -| Import from primary to box | C0S-V, 00S-P, P | ?? | | -| Import from primary to text | 0A0-p,A-P], | pcp | | -| Import from clipboard to box | 0AS-E , | | | -| Import from clipboard to text | 0AS-T , | | | - -| -------------------------------- | --------------------------------- | -------------- | | -| selection | | | | -| -------------------------------- | --------------------------------- | -------------- | | -| Deselect all elements | 000-Escape, | | | -| Select next element | 000-Tab, 000-n, | | | -| Select previous element | 00S-ISO_Left_Tab, 00S-N | | | -| Select next non arrow | C00-Tab, C00-n, | | | -| Select previous non arrow | C0S-ISO_Left_Tab, C0S-N | | | -| Select next arrow | CA0-Tab, C00-m, | | | -| Select previous arrow | CAS-ISO_Left_Tab, C0S-M | | | -| Select element by id | 0A0-Tab, | | | -| Select all elements | C00-a, 00S-V | | | -| Select connected elements | 000-v, | | | -| Select elements by word | C00-f, | | | -| Select elements by word no group | C0S-F, | | | - -| -------------------------------- | --------------------------------- | -------------- | | -| movement | | | | -| ---------------------------------- | --------------------------------- | -------------- | | -| Move selected elements left | 000-Left, | | | -| Move selected elements right | 000-Right, | | | -| Move selected elements up | 000-Up, | | | -| Move selected elements down | 000-Down, | | | -| | | | | -| Move selected elements left quick | 0A0-Left, | | | -| Move selected elements right quick | 0A0-Right, | | | -| Move selected elements up quick | 0A0-Up, | | | -| Move selected elements down quick | 0A0-Down, | | | -| | | | | -| Move selected elements left 2 | 000-h, h | | | -| Move selected elements right 2 | 000-l, l | | | -| Move selected elements up 2 | 000-k, k | | | -| Move selected elements down 2 | 000-j, j | | | - -| ---------------------------- | --------------------------------- | -------------- | | -| element modification | | | | -| ---------------------------- | --------------------------------- | -------------- | | -| Shrink box | 000-s | es | | -| | | | | -| Make element narrower | 000-1 | en | | -| Make element taller | 000-2 | et | | -| Make element shorter | 000-3 | es | | -| Make element wider | 000-4 | ew | | -| | | | | -| Make elements Unicode | C00-u | eu | | -| Make elements not Unicode | C0S-U | eU | | -| | | | | -| Delete selected elements | 000-Delete 000-d] | dd | | -| | | | | -| Edit selected element | 000-2button-press-1, 000-Return | ee | | -| Edit selected element inline | C00-2button-press-1, C00-Return | eE | | - -| -------------------------------- | --------------------------------- | -------------- | | -| mouse | | | | -| --------------------------- | --------------------------------- | -------------- | | -| Mouse right-click | 000-button-press-3 | | | -| | | | | -| Mouse left-click | 000-button-press-1 | | | -| Mouse expand selection | 00S-button-press-1 | | | -| Mouse selection flip | C00-button-press-1 | | | -| | | | | -| Mouse quick link | [0A0-button-press-1, 000-period | | | -| Mouse duplicate elements | 0AS-button-press-1, 000-comma | | | -| Mouse quick box | C0S-button-press-1 | | | -| | | | | -| Arrow to mouse | CA0-motion_notify | | | -| Arrow mouse change directio | CA0-2button-press-1 | | | -| Arrow change direction | CA0-d | | | -| Wirl arrow add section | CA0-button-press-1 | | | -| Wirl arrow insert flex poin | CA0-button-press-2 | | | -| | | | | -| Mouse motion | 000-motion_notify | | | -| Mouse motion 2 | 0AS-motion_notify | | | -| Mouse drag canvas | C00-motion_notify | | | -| Mouse on element id | 000-m | | | - -| -------------------------------- | --------------------------------- | -------------- | | -| mouse emulation | | | | -| -------------------------------- | --------------------------------- | -------------- | | -| Mouse emulation toggle | 000-apostrophe | | | -| | | | | -| Mouse emulation left-click | 000-odiaeresis | | | -| Mouse emulation expand selection | 00S-Odiaeresis | | | -| Mouse emulation selection flip | C00-odiaeresis | | | -| | | | | -| Mouse emulation right-click | 000-adiaeresis | | | -| | | | | -| Mouse emulation move left | C00-Left | | | -| Mouse emulation move right | C00-Right | | | -| Mouse emulation move up | C00-Up | | | -| Mouse emulation move down | C00-Down | | | -| | | | | -| Mouse emulation drag left | 00S-Left | | | -| Mouse emulation drag right | 00S-Right | | | -| Mouse emulation drag up | 00S-Up | | | -| Mouse emulation drag down | 00S-Down | | - | - - -| context menues | -| ------------------------- | -| Asciio context_menu | -| Box context_menu | -| Multi_wirl context_menu | -| Angled arrow context_menu | -| Ruler context_menu | -| Shapes context_menu | -| Undo | -| Redo | - diff --git a/lib/App/Asciio/Actions/Mouse.pm b/lib/App/Asciio/Actions/Mouse.pm index dfa8dae2..c82d782c 100644 --- a/lib/App/Asciio/Actions/Mouse.pm +++ b/lib/App/Asciio/Actions/Mouse.pm @@ -33,7 +33,7 @@ $self->{MOUSE_X} += $x_offset ; $self->{MOUSE_Y} += $y_offset ; ($self->{SELECTION_RECTANGLE}{START_X}, $self->{SELECTION_RECTANGLE}{START_Y}) = ($self->{MOUSE_X}, $self->{MOUSE_Y}) ; -($self->{SELECTION_RECTANGLE}{END_X}, $self->{SELECTION_RECTANGLE}{END_Y}) = ($self->{MOUSE_X}, $self->{MOUSE_Y}) ; +($self->{SELECTION_RECTANGLE}{END_X}, $self->{SELECTION_RECTANGLE}{END_Y}) = ($self->{MOUSE_X}, $self->{MOUSE_Y}) ; $self->update_display() ; } diff --git a/lib/App/Asciio/Setup.pm b/lib/App/Asciio/Setup.pm index f51ac3cb..96b2874d 100644 --- a/lib/App/Asciio/Setup.pm +++ b/lib/App/Asciio/Setup.pm @@ -21,7 +21,7 @@ my($self, $setup_ini_files) = @_ ; for my $setup_file (@{$setup_ini_files}) { - print "Initializing with '$setup_file'\n" if $self->{DISPLAY_SETUP_INFORMATION}; + print STDERR "Initializing with '$setup_file'\n" if $self->{DISPLAY_SETUP_INFORMATION}; warn "Asciio: Warning: can't find setup data '$setup_file'\n" and next unless -e $setup_file ; push @{$self->{SETUP_PATHS}}, $setup_file ; @@ -62,25 +62,25 @@ for my $stencil (@{$stencils}) { if(-f "$setup_path/$stencil") { - print "loading stencil '$setup_path/$stencil'\n" if $self->{DISPLAY_SETUP_INFORMATION} ; + print STDERR "loading stencil '$setup_path/$stencil'\n" if $self->{DISPLAY_SETUP_INFORMATION} ; $self->load_elements("$setup_path/$stencil", $stencil) ; } elsif(-d "$setup_path/$stencil") { for(glob("$setup_path/$stencil/*")) { - print "batch loading stencil '$setup_path/$stencil/$_'\n" if $self->{DISPLAY_SETUP_INFORMATION} ; + print STDERR "batch loading stencil '$setup_path/$stencil/$_'\n" if $self->{DISPLAY_SETUP_INFORMATION} ; $self->load_elements($_, $stencil) ; } } else { - print "Unknown type '$setup_path/$stencil'!\n" ; + print STDERR "Unknown type '$setup_path/$stencil'!\n" ; } } else { - print "Can't find '$setup_path/$stencil'!\n" ; + print STDERR "Can't find '$setup_path/$stencil'!\n" ; } } } @@ -173,7 +173,7 @@ for my $action_file (@{ $action_files }) if('HASH' eq ref $action_handler_definition) { $shortcuts_definition = $action_handler_definition->{SHORTCUTS} ; - # print "\e[31maction_handler: '$name' is group $shortcuts_definition\e[m\n" ; + # print STDERR "\e[31maction_handler: '$name' is group $shortcuts_definition\e[m\n" ; $action_handler = $self->get_group_action_handler($setup_path, $action_file, $name, $action_handler_definition) ; } @@ -193,7 +193,7 @@ for my $action_file (@{ $action_files }) } else { - # print "ignoring '$name'\n" ; + # print STDERR "ignoring '$name'\n" ; next ; } @@ -251,16 +251,16 @@ for my $action_file (@{ $action_files }) { if(exists $self->{ACTIONS}{$shortcut}) { - print "Overriding shortcut '$shortcut'\n" ; - print "\tnew is '$name' defined in file '$setup_path/$action_file'\n" ; - print "\told was '$self->{ACTIONS}{$shortcut}{NAME}' defined in file '$self->{ACTIONS}{$shortcut}{ORIGIN}'\n" ; + print STDERR "Overriding shortcut '$shortcut'\n" ; + print STDERR "\tnew is '$name' defined in file '$setup_path/$action_file'\n" ; + print STDERR "\told was '$self->{ACTIONS}{$shortcut}{NAME}' defined in file '$self->{ACTIONS}{$shortcut}{ORIGIN}'\n" ; } $self->{ACTIONS}{$shortcut} = $action_handler ; if (! defined $action_handler->{CODE} && ! defined $action_handler->{CONTEXT_MENU_SUB}) { - print "\e[33mNo action for action_handler: '$name', file: '$setup_path/$action_file'\e[m\n" ; + print STDERR "\e[33mNo action for action_handler: '$name', file: '$setup_path/$action_file'\e[m\n" ; delete $self->{ACTIONS}{$shortcut} ; } @@ -288,7 +288,7 @@ my $name = $action_handler->{NAME} ; if(exists $self->{ACTIONS_BY_NAME}{$name}) { my $reused = '' ; - print "\e[33mOverriding action: '$name', file: '$action_file', old_file: '" . ($self->{ACTIONS_BY_NAME}{ORIGINS}{$name}{ORIGIN} // 'unknown') ; + print STDERR "\e[33mOverriding action: '$name', file: '$action_file', old_file: '" . ($self->{ACTIONS_BY_NAME}{ORIGINS}{$name}{ORIGIN} // 'unknown') ; my $old_handler = $self->{ACTIONS_BY_NAME}{$name} ; @@ -321,7 +321,7 @@ if(exists $self->{ACTIONS_BY_NAME}{$name}) $action_handler->{CONTEXT_MENU_ARGUMENTS} = $old_handler->{CONTEXT_MENU_ARGUMENTS} ; } - print "$reused\e[m\n" ; + print STDERR "$reused\e[m\n" ; } } @@ -408,10 +408,10 @@ for my $name (keys %{$group_definition}) for my $shortcut ('ARRAY' eq ref $shortcuts_definition ? @$shortcuts_definition : ($shortcuts_definition)) { - print "Overriding action group '$shortcut' with definition from file '$setup_path/$action_file'!\n" + print STDERR "Overriding action group '$shortcut' with definition from file '$setup_path/$action_file'!\n" if exists $handler{$shortcut} ; - # print "\e[32maction_handler: '$name' shortcut: $shortcut\e[m\n" ; + # print STDERR "\e[32maction_handler: '$name' shortcut: $shortcut\e[m\n" ; $handler{$shortcut} = $action_handler ; $handler{$shortcut}{GROUP_NAME} = $group_name if defined $group_name ; @@ -461,7 +461,7 @@ EOC { if(exists $self->{IMPORT_EXPORT_HANDLERS}{$extension}) { - print "Overriding import/export handler for extension '$extension' in file '$setup_path/$import_export_file'\n" ; + print STDERR "Overriding import/export handler for extension '$extension' in file '$setup_path/$import_export_file'\n" ; } $self->{IMPORT_EXPORT_HANDLERS}{$extension} = $import_export_handlers{$extension} ; diff --git a/lib/App/Asciio/Text/Asciio.pm b/lib/App/Asciio/Text/Asciio.pm index 99305adf..677dd878 100644 --- a/lib/App/Asciio/Text/Asciio.pm +++ b/lib/App/Asciio/Text/Asciio.pm @@ -416,12 +416,6 @@ if ($self->{MOUSE_TOGGLE}) } render_text($text_array, $COLS, $ROWS) ; - -if(defined $self->{ACTION_VERBOSE}) - { - print "\e[2;81H\e[32m$self->{LAST_ACTION} " ; - print "\e[3;81H$selection_rectangle" ; - } } #----------------------------------------------------------------------------- @@ -578,5 +572,5 @@ it and/or modify it under the same terms as Perl itself. #------------------------------------------------------------------------------------------------------ -"Terinal world domination!" ; +"Terminal world domination!" ; diff --git a/script/tasciio b/script/tasciio index beebd684..7e4be1db 100755 --- a/script/tasciio +++ b/script/tasciio @@ -45,7 +45,9 @@ $asciio->run_actions_by_name(['Open', $title]) if defined $title ; $asciio->setup($setup_paths) ; $asciio->set_title($title) if defined $title ; -$asciio->{ACTION_VERBOSE} = sub { $asciio->{LAST_ACTION} = $_[0] ; } ; + +STDERR->autoflush(1) ; +$asciio->{ACTION_VERBOSE} = sub { print STDERR "$_[0]\n" ; } ; my ($character_width, $character_height) = $asciio->get_character_size() ; diff --git a/setup/Stencils/default_stencil.asciio b/setup/Stencils/default_stencil.asciio new file mode 100644 index 00000000..85afa8c4 Binary files /dev/null and b/setup/Stencils/default_stencil.asciio differ diff --git a/setup/Stencils/stenciil_computer.asciio b/setup/Stencils/stencil_computer.asciio similarity index 100% rename from setup/Stencils/stenciil_computer.asciio rename to setup/Stencils/stencil_computer.asciio diff --git a/setup/Stencils/stencil_divers.asciio b/setup/Stencils/stencil_divers.asciio new file mode 100644 index 00000000..b6deea02 Binary files /dev/null and b/setup/Stencils/stencil_divers.asciio differ diff --git a/setup/Stencils/stencil_people.asciio b/setup/Stencils/stencil_people.asciio new file mode 100644 index 00000000..042de60f Binary files /dev/null and b/setup/Stencils/stencil_people.asciio differ diff --git a/setup/Text/actions/vim_bindings.pl b/setup/Text/actions/vim_bindings.pl index 25e1608e..66740b6e 100644 --- a/setup/Text/actions/vim_bindings.pl +++ b/setup/Text/actions/vim_bindings.pl @@ -1,235 +1,412 @@ - #---------------------------------------------------------------------------------------------- register_action_handlers_remove_old_shortcuts - ( - # general - 'Undo' => [ 'u' ], - 'Redo' => [ 'C-r'], - 'Zoom in' => [ '~Zoom in' ], - 'Zoom out' => [ '~Zoom out' ], - 'Insert from clipboard' => [ 'p' ], - 'Copy to clipboard' => [ 'y' ], - - 'Export to clipboard & primary as ascii' => [ 'Y' ], - 'Import from primary to box' => [ 'P' ], - 'Import from primary to text' => [ 'A-P' ], - 'Import from clipboard to box' => [ '~import from clipboard to box' ], - 'Import from clipboard to text' => [ '~import from clipboard to text' ], - - 'Remove rulers' => [ 'A-r' ], - - # elements - 'Edit selected element' => [ 'Enter' ], - 'Delete selected elements' => [ 'd' ], - 'Change elements foreground color' => [ 'c' ], - 'Change elements background color' => [ 'C' ], - - 'Insert flex point' => [ 'not set-Insert flex point' ], - - # selection - 'Select all elements' => [ 'V' ], - 'Deselect all elements' => [ 'Escape' ], - 'Select connected elements' => [ 'v' ], - 'Switch cross mode' => ['A-x'], - 'Select next element' => [ 'n' ], - 'Select previous element' => [ 'N' ], - 'Select next element move mouse' => [ 'Tab', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 1, 0] ], - 'Select previous element move mouse' => [ 'S-Tab', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 1, 0] ], - 'Select element by id' => [ 'not_set-Select element by id' ], - 'Select next non arrow' => [ 'C-n' ], - 'Select previous non arrow' => [ '~Select previous non arrow' ], - 'Select next arrow' => [ '~Select next non arrow' ], - 'Select previous arrow' => [ '~Select previous arrow' ], - - # sizing - 'Make element narrower' => [ '1' ], - 'Make element taller' => [ '2' ], - 'Make element shorter' => [ '3' ], - 'Make element wider' => [ '4' ], - 'Shrink box' => [ 's' ], - - # movement - 'Move selected elements left' => [ ['h', 'Left'] ], - 'Move selected elements right' => [ ['l', 'Right'] ], - 'Move selected elements up' => [ ['k', 'Up'] ], - 'Move selected elements down' => [ ['j', 'Down'] ], - - 'Move selected elements left quick' => ['A-Left' ], - 'Move selected elements right quick' => ['A-Right'], - 'Move selected elements up quick' => ['A-Up' ], - 'Move selected elements down quick' => ['A-Down' ], - - # mouse - 'Mouse emulation toggle' => [ "'" ], - 'Mouse emulation right-click' => [ 'ä' ], - 'Mouse emulation left-click' => [ 'ö' ], - - 'Mouse emulation selection flip' => [ '~Mouse emulation selection flip' ], # C-ö doesn't work - 'Mouse emulation expand selection' => [ '~Mouse emulation exapand selection' ], - # 'Mouse left-click' => [ '~Mouse left-click' ], - # 'Mouse motion' => [ '~Mouse motion' ], - # 'Mouse motion 2' => [ '~Mouse motion 2' ], - # 'Mouse right-click' => [ '~Mouse right-click' ], - # 'Mouse expand selection' => [ '~Mouse expand selection' ], - # 'Mouse selection flip' => [ '~Mouse selection flip' ], - - # 'Mouse quick link' => [ ['A-ö', '.'] ], - 'Mouse quick link git' => [ ['A-ä', ';'] ], - 'Mouse duplicate elements' => [ ['A-Ö', ','] ], - - 'Mouse on element id' => [ '~Mouse on element id' ], - - 'Mouse emulation drag left' => [ [ 'H', 'A-C-Left' ] ], - 'Mouse emulation drag right' => [ [ 'L', 'A-C-Right'] ], - 'Mouse emulation drag up' => [ [ 'K', 'A-C-Up' ] ], - 'Mouse emulation drag down' => [ [ 'J', 'A-C-Down'] ], - - 'Mouse emulation move left' => [ 'C-Left' ], - 'Mouse emulation move right' => [ 'C-Right' ], - 'Mouse emulation move up' => [ 'C-Up' ], - 'Mouse emulation move down' => [ 'C-Down' ], - - 'command leader'=> - { - SHORTCUTS => ':', - - 'Help' => [ 'h' ], - 'Display manpage' => [ 'm', sub { my ($self) = @_ ; system('perldoc', 'App::Asciio') ; $self->update_display() ; } ], - 'Display keyboard mapping' => [ 'k', sub - { - my ($self) = @_ ; - my $mapping_file = App::Asciio::Actions::Unsorted::get_keyboard_mapping_file($self) ; - system "cat '$mapping_file' | fzf --cycle --layout=reverse-list" ; - $self->update_display() ; - } - ], - 'Display commands' => [ 'c' ], - 'Display action files' => [ 'f' ], - - 'Open' => [ 'e' ], - 'Insert' => [ 'r' ], - 'Save' => [ 'w' ], - 'SaveAs' => [ 'W' ], - 'Quit' => [ 'q' ], - 'Quit no save' => [ 'Q' ], - }, - - 'Insert leader' => - { - SHORTCUTS => 'i', - - 'Add from file' => [ 'f' ], - 'Add fron stencil' => [ 's' ], - 'Add multiple boxes' => [ 'C-b'], - 'Add multiple texts' => [ 'C-t'], - - 'From default_stencil' => ['000-s'], - 'From stencil' => ['000-S'], - - 'Add angled arrow' => [ 'A' ], - 'Add arrow' => [ 'a' ], - 'Add box' => [ 'b' ], - 'Add connector type 2' => [ 'C' ], - 'Add connector' => [ 'c' ], - 'Add exec box no border' => [ 'E' ], - 'Add exec box' => [ 'e' ], - 'Add external command box no frame' => [ 'X' ], - 'Add external command box' => [ 'x' ], - 'Add help box' => [ 'h' ], - 'Add horizontal ruler' => [ 'R' ], - 'Add if' => [ 'i' ], - 'Add process' => [ 'p' ], - 'Add shrink box' => [ 'A-b' ], - 'Add text' => [ 't' ], - 'Add unicode arrow' => [ 'S' ], - 'Add unicode box' => [ 'B' ], - 'Add vertical ruler' => [ 'r' ], - 'Add rhombus' => [ 'A-r' ], - 'Add ellipse' => [ 'A-e' ], - }, - - 'arrow leader' => - { - SHORTCUTS => 'a', - - 'Append multi_wirl section' => [ 's' ], - 'Insert multi_wirl section' => [ 'S' ], - 'Change arrow direction' => [ 'd' ], - 'Flip arrow start and end' => [ 'f' ], - 'Prepend multi_wirl section' => [ 'p' ], - 'Remove last section from multi_wirl' => [ 'A-s' ], - }, - - 'grouping leader' => - { - SHORTCUTS => 'g', - - 'Group selected elements' => [ 'g' ], - 'Ungroup selected elements' => [ 'u' ], - 'Ungroup group-object' => [ 'u' ], - 'Move selected elements to the back' => [ 'b' ], - 'Move selected elements to the front' => [ 'f' ], - 'Temporary move to the front' => [ 'F' ], - 'Make Unicode ' => [ '~Make Unicode' ], - }, - - 'stripes-group leader' => - { - SHORTCUTS => 'A-g', - - 'create stripes group' => ['g'], - 'create one stripe group' => ['1'], - 'ungroup stripes group' => ['u'], - }, - - 'display leader' => - { - SHORTCUTS => 'z', - - 'Change Asciio background color' => [ 'c' ], - 'Change grid color' => [ 'C' ], - 'Flip grid display' => [ 'g' ], - 'Flip color scheme' => [ 's' ], - 'Flip transparent element background' => [ 't' ], - 'Change font' => [ '~Change font' ], - }, - - 'align leader' => - { - SHORTCUTS => 'A', - - 'Align bottom' => [ 'b' ], - 'Align center' => [ 'c' ], - 'Align left' => [ 'l' ], - 'Align middle' => [ 'm' ], - 'Align right' => [ 'r' ], - 'Align top' => [ 't' ], - }, - - 'slides leader' => - { - SHORTCUTS => 'S', - - 'Load slides' => [ 'l' ], - 'previous slide' => [ 'N' ], - 'next slide' => [ 'n' ], - 'first slide' => [ 'g' ], - }, - - 'debug leader' => - { - SHORTCUTS => 'D', - - 'Display undo stack statistics' => [ 'u' ], - 'Dump self' => [ 's' ] , - 'Dump all elements' => [ 'e' ], - 'Dump selected elements' => [ 'E' ], - 'Display numbered objects' => [ 't' ], - 'Test' => [ 'o' ], - }, - ) ; - - -#------------------------------------------------------------------------------------------ +( +'Undo' => ['u'], +'Redo' => ['C-r'], +'Zoom in' => ['not set Zoom in'], +'Zoom out' => ['not set Zoom out'], + +'Select next element' => ['Tab',], +'Select previous element' => ['S-Tab'], +'Select next non arrow' => ['n'], +'Select previous non arrow' => ['N'], +'Select next arrow' => ['m'], +'Select previous arrow' => ['M'], + +'Select all elements' => ['V'], +'Deselect all elements' => ['Escape'], +'Select connected elements' => ['v'], +'Select elements by word' => ['C-f'], +'Select elements by word no group' => ['not set'], + +'Delete selected elements' => [['Delete', 'd']], + +'Edit selected element' => ['Enter'], +'Edit selected element inline' => ['A-Enter'], + +'Move selected elements left' => ['h'], +'Move selected elements right' => ['l'], +'Move selected elements up' => ['k'], +'Move selected elements down' => ['j'], + +'Move selected elements left quick' => ['A-Left'], +'Move selected elements right quick' => ['A-Right'], +'Move selected elements up quick' => ['A-Up'], +'Move selected elements down quick' => ['A-Down'], + +'Move selected elements left 2' => ['Left'], +'Move selected elements right 2' => ['Right'], +'Move selected elements up 2' => ['Up'], +'Move selected elements down 2' => ['Down'], + +# mouse +'Mouse right-click' => ['000-button-press-3'], + +'Mouse left-click' => ['000-button-press-1'], +'Mouse expand selection' => ['not set'], #'00S-button-press-1' shit + button not available +'Mouse selection flip' => ['C00-button-press-1'], + +'Mouse quick link' => [['0A0-button-press-1', '.']], +'Mouse duplicate elements' => [['A-ö', '.']], +'Mouse quick box' => ['not set'], # 'C0S-button-press-1' not available + +'Arrow to mouse' => ['CA0-motion_notify'], +'Arrow mouse change direction' => ['not set'], # 'CA0-2button-press-1' not available +'Arrow change direction' => ['A-C-d'], +'Wirl arrow add section' => ['CA0-button-press-1'], +'Wirl arrow insert flex point' => ['not set'], # 'CA0-button-press-2' not available + +'Mouse motion' => ['000-motion_notify'], +'Mouse motion 2' => ['not set'], # 'CAS-motion_notify' not available +'Mouse drag canvas' => ['C00-motion_notify'], + +# mouse emulation +'Mouse emulation toggle' => ["'"], + +'Mouse emulation left-click' => ['ä'], +'Mouse emulation expand selection' => ['not set'], # '00S-Odiaeresis' +'Mouse emulation selection flip' => ['not_set'], # 'C00-odiaeresis' + +'Mouse emulation right-click' => ['not set'], # crashes in IO::Prompter + +'Mouse emulation move left' => ['C-Left' ], +'Mouse emulation move right' => ['C-Right'], +'Mouse emulation move up' => ['C-Up' ], +'Mouse emulation move down' => ['C-Down' ], + +'Mouse emulation drag left' => ['H'], +'Mouse emulation drag right' => ['L'], +'Mouse emulation drag up' => ['K'], +'Mouse emulation drag down' => ['J'], + +'Mouse on element id' => ['not set'], + + + + +'<< yank leader >>' => + { + SHORTCUTS => 'y', + + 'Copy to clipboard' => ['y'], + 'Export to clipboard & primary as ascii' => ['Y'], + 'Export to clipboard & primary as markup' => ['m'], + }, + +'<< paste leader >>' => + { + SHORTCUTS => 'p', + 'Insert from clipboard' => ['p'], + 'Import from clipboard to box' => ['b'], + 'Import from clipboard to text' => ['t'], + 'Import from primary to box' => ['B'], + 'Import from primary to text' => ['T'], + }, + +'<< grouping leader >>' => + { + SHORTCUTS => 'g', + + 'Group selected elements' => ['g'], + 'Ungroup selected elements' => ['u'], + 'Move selected elements to the front' => ['f'], + 'Move selected elements to the back' => ['b'], + 'Temporary move to the front' => ['F'], + }, + +'<< stripes leader >>' => + { + SHORTCUTS => 'A-g', + + 'create stripes group' => ['g'], + 'create one stripe group' => ['1'], + 'ungroup stripes group' => ['u'], + }, + +'<< align leader >>' => + { + SHORTCUTS => 'A', + + 'Align top' => ['t'], + 'Align left' => ['l'], + 'Align bottom' => ['b'], + 'Align right' => ['r'], + 'Align vertically' => ['v'], + 'Align horizontally' => ['h'], + }, + +'<< change color/font leader >>'=> + { + SHORTCUTS => 'z', + + 'Change font' => ['F'], + + '<< Change color >>' => ['c'], + + 'Flip binding completion' => ['b'], + 'Flip cross mode' => ['x'], + 'Flip color scheme' => ['s'], + 'Flip transparent element background' => ['t'], + 'Flip grid display' => ['g'], + 'Flip hint lines' => ['h'], + 'Flip edit inline' => ['i'], + 'Flip show/hide connectors' => ['v'], + }, + +'group_color' => + { + SHORTCUTS => 'group_color', + + 'Change elements foreground color' => ['b'], + 'Change elements background color' => ['f'], + + 'Change Asciio background color' => ['B'], + 'Change grid color' => ['g'], + }, + +'<< arrow leader >>' => + { + SHORTCUTS => 'a', + + 'Change arrow direction' => ['d'], + 'Flip arrow start and end' => ['f'], + 'Append multi_wirl section' => ['s'], + 'Insert multi_wirl section' => ['S'], + 'Prepend multi_wirl section' => ['C-s'], + 'Remove last section from multi_wirl' => ['A-C-s'], + 'Start no disconnect' => ['C-d'], + 'End no disconnect' => ['A-D'], + }, + +'<< debug leader >>' => + { + SHORTCUTS => 'D', + + 'Display undo stack statistics' => ['u'], + 'Dump self' => ['s'], + 'Dump all elements' => ['e'], + 'Dump selected elements' => ['E'], + 'Display numbered objects' => ['t'], + 'Test' => ['o'], + 'ZBuffer Test' => ['z'], + }, + +'<< commands leader >>'=> + { + SHORTCUTS => ':', + + 'Help' => ['h'], + 'Add help box' => ['H'], + + 'Display keyboard mapping' => ['k'], + 'Display commands' => ['c'], + 'Display action files' => ['f'], + 'Display manpage' => ['m'], + + 'Run external script' => ['!'], + + 'Open' => ['e'], + 'Save' => ['w'], + 'SaveAs' => ['W'], + 'Insert' => ['r'], + 'Quit' => ['q'], + 'Quit no save' => ['Q'], + }, + +'<< Insert leader >>' => + { + SHORTCUTS => 'i', + + 'Add connector' => ['c'], + 'Add text' => ['t'], + 'Add arrow' => ['a'], + + + + + + + + + 'Add angled arrow' => ['A'], + + 'Add ascii line' => ['l'], + 'Add ascii no-connect line' => ['k'], + + 'From default_stencil' => ['s'], + 'From stencil' => ['S'], + + '<< Multiple >>' => ['m'] , + '<< Unicode >>' => ['u'] , + '<< Box >>' => ['b'] , + '<< Elements >>' => ['e'] , + '<< Ruler >>' => ['r'] , + }, + +'group_insert_multiple' => + { + SHORTCUTS => 'group_insert_multiple', + + 'Add multiple texts' => ['t'], + 'Add multiple boxes' => ['b'], + }, + +'group_insert_ruler' => + { + SHORTCUTS => 'group_insert_ruler', + + 'Add vertical ruler' => ['v'], + 'Add horizontal ruler' => ['h'], + 'delete rulers' => ['d'], + }, + +'group_insert_element' => + { + SHORTCUTS => 'group_insert_element', + + 'Add connector type 2' => ['c'], + 'Add if' => ['i'], + 'Add process' => ['p'], + 'Add rhombus' => ['r'], + 'Add ellipse' => ['e'], + }, + +'group_insert_box' => + { + SHORTCUTS => 'group_insert_box', + + 'Add box' => ['b'], + 'Add shrink box' => ['s'], + + 'Add exec box' => ['e'], + 'Add exec box verbatim' => ['v'], + 'Add exec box verbatim once' => ['o'], + 'Add line numbered box' => ['l'], + }, + +'group_insert_unicode' => + { + SHORTCUTS => 'group_insert_unicode', + + 'Add unicode box' => ['b'], + 'Add unicode arrow' => ['a'], + 'Add unicode angled arrow' => ['A'], + 'Add unicode line' => ['l'], + + 'Add unicode bold line' => ['L'], + 'Add unicode double line' => ['A-l'], + + 'Add unicode no-connect line' => ['k'], + 'Add unicode no-connect bold line' => ['K'], + 'Add unicode no-connect double line' => ['A-K'], + }, + +'<< element leader >>' => + { + SHORTCUTS => 'e', + + 'Shrink box' => ['s'], + + 'Make element narrower' => ['1'], + 'Make element taller' => ['2'], + 'Make element shorter' => ['3'], + 'Make element wider' => ['4'], + + 'Make elements Unicode' => ['u'], + 'Make elements not Unicode' => ['U'], + }, + +'<< clone leader >>' => + { + SHORTCUTS => 'c', + ENTER_GROUP => \&App::Asciio::Actions::Clone::clone_enter, + ESCAPE_KEY => 'Escape', + + # 'clone escape' => ['Escape'], + 'clone motion' => ['000-motion_notify'], + + 'clone insert' => ['000-button-press-1'], + 'clone insert2' => ['Enter'], + 'clone arrow' => ['a'], + 'clone angled arrow' => ['A'], + 'clone box' => ['b'], + 'clone text' => ['t'], + 'clone flip hint lines' => ['h'], + + 'clone left' => ['Left'], + 'clone right' => ['Right'], + 'clone up' => ['Up'], + 'clone down' => ['Down'], + + 'clone emulation left' => ['C-Left'], + 'clone emulation right' => ['C-Right'], + 'clone emulation up' => ['C-Up'], + 'clone emulation down' => ['C-Down'], + }, + +'<< git leader >>' => + { + SHORTCUTS => 'G', + ESCAPE_KEY => 'Escape', + + 'Show git bindings' => ['?'], + + 'Quick git' => ['c'], + + 'Git add box' => ['b'], + 'Git add text' => ['t'], + 'Git add arrow' => ['a'], + 'Git edit selected element' => ['Enter'], + + 'Git mouse left-click' => ['000-button-press-1'], + 'Git change arrow direction' => ['d'], + 'Git undo' => ['u'], + 'Git delete elements' => [['delete', 'x']], + + 'Git mouse motion' => ['000-motion_notify'], + 'Git move elements left' => ['Left'], + 'Git move elements right' => ['Right'], + 'Git move elements up' => ['Up'], + 'Git move elements down' => ['Down'], + + 'Git mouse right-click' => ['not set'], # '0A0-button-press-3' not available + 'Git flip hint lines' => ['h'], + }, + +'<< slides leader >>' => + { + SHORTCUTS => 'S', + + 'Load slides' => ['l'], + 'previous slide' => ['N'], + 'next slide' => ['n'], + 'first slide' => ['g'], + 'show previous message' => ['m'], + 'show next message' => ['M'], + }, + +'<< move arrow ends leader >>' => + { + SHORTCUTS => 'A-a', + ESCAPE_KEY => 'Escape', + + 'arrow start up' => ['Up'], + 'arrow start down' => ['Dpwn'], + 'arrow start right' => ['Right'], + 'arrow start left' => ['Left'], + 'arrow start up2' => ['k'], + 'arrow start down2' => ['j'], + 'arrow start right2' => ['l'], + 'arrow start left2' => ['h'], + 'arrow end up' => ['S-Up'], + 'arrow end down' => ['S-Down'], + 'arrow end right' => ['S-Right'], + 'arrow end left' => ['S-Left'], + 'arrow end up2' => ['K'], + 'arrow end down2' => ['J'], + 'arrow end right2' => ['L'], + 'arrow end left2' => ['H'], + }, +) ; diff --git a/setup/actions/default_bindings.pl b/setup/actions/default_bindings.pl index e2c0e260..a0e17f70 100644 --- a/setup/actions/default_bindings.pl +++ b/setup/actions/default_bindings.pl @@ -30,12 +30,12 @@ 'Zoom in' => [['000-plus', 'C00-j', 'C00-scroll-up'], \&App::Asciio::Actions::Unsorted::zoom, 1 ], 'Zoom out' => [['000-minus', 'C00-h', 'C00-scroll-down'],\&App::Asciio::Actions::Unsorted::zoom, -1 ], -'Select next element' => [['000-Tab', '000-n'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 0] ], -'Select previous element' => [['00S-ISO_Left_Tab', '00S-N'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 0] ], -'Select next non arrow' => [['C00-Tab', 'C00-n'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 1] ], -'Select previous non arrow' => [['C0S-ISO_Left_Tab', 'C0S-N'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 1] ], -'Select next arrow' => [['CA0-Tab', 'C00-m'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 2] ], -'Select previous arrow' => [['CAS-ISO_Left_Tab', 'C0S-M'], \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 2] ], +'Select next element' => ['000-Tab', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 0] ], +'Select previous element' => ['00S-ISO_Left_Tab', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 0] ], +'Select next non arrow' => ['000-n', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 1] ], +'Select previous non arrow' => ['00S-N', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 1] ], +'Select next arrow' => ['000-m', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [1, 0, 2] ], +'Select previous arrow' => ['00S-M', \&App::Asciio::Actions::ElementsManipulation::select_element_direction, [0, 0, 2] ], 'Select all elements' => [['C00-a', '00S-V'], \&App::Asciio::Actions::ElementsManipulation::select_all_elements ], 'Deselect all elements' => ['000-Escape', \&App::Asciio::Actions::ElementsManipulation::deselect_all_elements ], @@ -46,7 +46,7 @@ 'Delete selected elements' => [['000-Delete', '000-d'], \&App::Asciio::Actions::ElementsManipulation::delete_selected_elements ], 'Edit selected element' => [['000-2button-press-1','000-Return'], \&App::Asciio::Actions::ElementsManipulation::edit_selected_element, 0 ], -'Edit selected element inline' => [['C00-2button-press-1','C00-Return'], \&App::Asciio::Actions::ElementsManipulation::edit_selected_element, 1 ], +'Edit selected element inline' => [['C00-2button-press-1','0A0-Return'], \&App::Asciio::Actions::ElementsManipulation::edit_selected_element, 1 ], 'Move selected elements left' => ['000-Left', \&App::Asciio::Actions::ElementsManipulation::move_selection_left ], 'Move selected elements right' => ['000-Right', \&App::Asciio::Actions::ElementsManipulation::move_selection_right ], @@ -58,10 +58,10 @@ 'Move selected elements up quick' => ['0A0-Up', \&App::Asciio::Actions::ElementsManipulation::move_selection_up, 10 ], 'Move selected elements down quick' => ['0A0-Down', \&App::Asciio::Actions::ElementsManipulation::move_selection_down, 10 ], -'Move selected elements left 2' => [['000-h', 'h'], \&App::Asciio::Actions::ElementsManipulation::move_selection_left ], -'Move selected elements right 2' => [['000-l', 'l'], \&App::Asciio::Actions::ElementsManipulation::move_selection_right ], -'Move selected elements up 2' => [['000-k', 'k'], \&App::Asciio::Actions::ElementsManipulation::move_selection_up ], -'Move selected elements down 2' => [['000-j', 'j'], \&App::Asciio::Actions::ElementsManipulation::move_selection_down ], +'Move selected elements left 2' => ['000-h', \&App::Asciio::Actions::ElementsManipulation::move_selection_left ], +'Move selected elements right 2' => ['000-l', \&App::Asciio::Actions::ElementsManipulation::move_selection_right ], +'Move selected elements up 2' => ['000-k', \&App::Asciio::Actions::ElementsManipulation::move_selection_up ], +'Move selected elements down 2' => ['000-j', \&App::Asciio::Actions::ElementsManipulation::move_selection_down ], # mouse 'Mouse right-click' => ['000-button-press-3', \&App::Asciio::Actions::Mouse::mouse_right_click ], @@ -103,7 +103,7 @@ 'Mouse emulation drag up' => ['00S-Up', \&App::Asciio::Actions::Mouse::mouse_drag_up ], 'Mouse emulation drag down' => ['00S-Down', \&App::Asciio::Actions::Mouse::mouse_drag_down ], -'Mouse on element id' => ['000-m', \&App::Asciio::Actions::Mouse::mouse_on_element_id ], +'Mouse on element id' => ['not set', \&App::Asciio::Actions::Mouse::mouse_on_element_id ], 'Copy to clipboard' => [['C00-c', 'C00-Insert'], \&App::Asciio::Actions::Clipboard::export_elements_to_system_clipboard ], 'Insert from clipboard' => [['C00-v', '00S-Insert'], \&App::Asciio::Actions::Clipboard::import_elements_from_system_clipboard ], @@ -163,22 +163,29 @@ { SHORTCUTS => '000-z', - 'Show/hide binding completion' => ['000-b', sub { $_[0]->{USE_BINDINGS_COMPLETION} ^= 1 ; $_[0]->update_display() ;} ], - - 'flip cross mode' => [ '000-x', sub { $_[0]->{USE_CROSS_MODE} ^= 1 ; $_[0]->update_display ; } ], + 'Change font' => ['000-f', \&App::Asciio::Actions::Unsorted::change_font ], + + '<< Change color >>' => ['000-c', sub { $_[0]->use_action_group('group_color') ; } ] , + + 'Flip binding completion' => ['000-b', sub { $_[0]->{USE_BINDINGS_COMPLETION} ^= 1 ; $_[0]->update_display() ;}], + 'Flip cross mode' => ['000-x', sub { $_[0]->{USE_CROSS_MODE} ^= 1 ; $_[0]->update_display ; } ], + 'Flip color scheme' => ['000-s', \&App::Asciio::Actions::Colors::flip_color_scheme ], + 'Flip transparent element background' => ['000-t', \&App::Asciio::Actions::Unsorted::transparent_elements ], + 'Flip grid display' => ['000-g', \&App::Asciio::Actions::Unsorted::flip_grid_display ], + 'Flip hint lines' => ['000-h', \&App::Asciio::Actions::Unsorted::flip_hint_lines ], + 'Flip edit inline' => ['000-i', \&App::Asciio::GTK::Asciio::switch_gtk_popup_box_type ], + 'Flip show/hide connectors' => ['000-v', \&App::Asciio::Actions::Unsorted::flip_connector_display ], + }, - 'Change elements foreground color' => ['000-c', \&App::Asciio::Actions::Colors::change_elements_colors, 0 ], - 'Change elements background color' => ['00S-C', \&App::Asciio::Actions::Colors::change_elements_colors, 1 ], +'group_color' => + { + SHORTCUTS => 'group_color', + + 'Change elements foreground color' => ['000-b', \&App::Asciio::Actions::Colors::change_elements_colors, 0 ], + 'Change elements background color' => ['000-f', \&App::Asciio::Actions::Colors::change_elements_colors, 1 ], - 'Change Asciio background color' => ['0A0-c', \&App::Asciio::Actions::Colors::change_background_color ], - 'Change grid color' => ['0AS-C', \&App::Asciio::Actions::Colors::change_grid_color ], - 'Flip color scheme' => ['000-s', \&App::Asciio::Actions::Colors::flip_color_scheme ], - 'Flip transparent element background' => ['000-t', \&App::Asciio::Actions::Unsorted::transparent_elements ], - 'Flip grid display' => ['000-g', \&App::Asciio::Actions::Unsorted::flip_grid_display ], - 'Flip hint lines' => ['000-h', \&App::Asciio::Actions::Unsorted::flip_hint_lines ], - 'Change font' => ['000-f', \&App::Asciio::Actions::Unsorted::change_font ], - 'Edit inline' => ['000-i', \&App::Asciio::GTK::Asciio::switch_gtk_popup_box_type ], - 'Show/hide connectors' => ['000-v', \&App::Asciio::Actions::Unsorted::flip_connector_display ], + 'Change Asciio background color' => ['000-B', \&App::Asciio::Actions::Colors::change_background_color ], + 'Change grid color' => ['000-g', \&App::Asciio::Actions::Colors::change_grid_color ], }, '<< arrow leader >>' => @@ -189,10 +196,10 @@ 'Flip arrow start and end' => ['000-f', \&App::Asciio::Actions::Arrow::flip_arrow_ends ], 'Append multi_wirl section' => ['000-s', \&App::Asciio::Actions::Multiwirl::append_section, ], 'Insert multi_wirl section' => ['00S-S', \&App::Asciio::Actions::Multiwirl::insert_wirl_arrow_section ], - 'Prepend multi_wirl section' => ['0A0-s', \&App::Asciio::Actions::Multiwirl::prepend_section ], - 'Remove last section from multi_wirl' => ['C00-s', \&App::Asciio::Actions::Multiwirl::remove_last_section_from_section_wirl_arrow ], - 'start no disconnect' => ['C00-d', \&App::Asciio::Actions::Multiwirl::disable_arrow_connector, 0 ], - 'end no disconnect' => ['C0S-D', \&App::Asciio::Actions::Multiwirl::disable_arrow_connector, 1 ], + 'Prepend multi_wirl section' => ['C00-s', \&App::Asciio::Actions::Multiwirl::prepend_section ], + 'Remove last section from multi_wirl' => ['CA0-s', \&App::Asciio::Actions::Multiwirl::remove_last_section_from_section_wirl_arrow ], + 'Start no disconnect' => ['C00-d', \&App::Asciio::Actions::Multiwirl::disable_arrow_connector, 0 ], + 'End no disconnect' => ['0A0-D', \&App::Asciio::Actions::Multiwirl::disable_arrow_connector, 1 ], }, '<< debug leader >>' => @@ -234,8 +241,8 @@ { SHORTCUTS => '000-i', + 'Add connector' => ['000-c', \&App::Asciio::Actions::Elements::add_element, ['Asciio/connector', 0] ], 'Add text' => ['000-t', \&App::Asciio::Actions::Elements::add_element, ['Asciio/text', 1] ], - 'Add arrow' => ['000-a', \&App::Asciio::Actions::Elements::add_element, ['Asciio/wirl_arrow', 0] ], # 'Add arrow' => ['000-a', # sub @@ -281,8 +288,7 @@ { SHORTCUTS => 'group_insert_element', - 'Add connector' => ['000-c', \&App::Asciio::Actions::Elements::add_element, ['Asciio/connector', 0] ], - 'Add connector type 2' => ['00S-C', \&App::Asciio::Actions::Elements::add_element, ['Asciio/connector2', 0] ], + 'Add connector type 2' => ['000-c', \&App::Asciio::Actions::Elements::add_element, ['Asciio/connector2', 0] ], 'Add if' => ['000-i', \&App::Asciio::Actions::Elements::add_element, ['Asciio/Boxes/if', 1] ], 'Add process' => ['000-p', \&App::Asciio::Actions::Elements::add_element, ['Asciio/Boxes/process', 1] ], 'Add rhombus' => ['0A0-r', \&App::Asciio::Actions::Elements::add_element, ['Asciio/Shape/rhombus', 0] ],