… | |
… | |
53 | "RAlt" => DC::KMOD_RALT, |
53 | "RAlt" => DC::KMOD_RALT, |
54 | # "Alt" => DC::KMOD_LALT | DC::KMOD_RALT, |
54 | # "Alt" => DC::KMOD_LALT | DC::KMOD_RALT, |
55 | "LMeta" => DC::KMOD_LMETA, |
55 | "LMeta" => DC::KMOD_LMETA, |
56 | "RMeta" => DC::KMOD_RMETA, |
56 | "RMeta" => DC::KMOD_RMETA, |
57 | # "Meta" => DC::KMOD_LMETA | DC::KMOD_RMETA, |
57 | # "Meta" => DC::KMOD_LMETA | DC::KMOD_RMETA, |
58 | "LRAM" => DC::KMOD_LRAM, # left/right/alt/meta |
|
|
59 | ); |
58 | ); |
60 | |
59 | |
61 | # allowed modifiers |
60 | # allowed modifiers |
62 | our $MODIFIER_MASK |= $_ for values %MODIFIER; |
61 | our $MODIFIER_MASK |= $_ for values %MODIFIER; |
63 | |
62 | |
… | |
… | |
110 | |
109 | |
111 | our $DEFAULT_KEYMAP; |
110 | our $DEFAULT_KEYMAP; |
112 | |
111 | |
113 | sub init { |
112 | sub init { |
114 | $DEFAULT_KEYMAP ||= do { |
113 | $DEFAULT_KEYMAP ||= do { |
|
|
114 | local $MODIFIER{LRAM} = DC::KMOD_LRAM; # hack to enable internal LRAM modifer |
|
|
115 | |
115 | my %sym = map +(DC::SDL_GetKeyName $_, $_), DC::SDLK_FIRST .. DC::SDLK_LAST; |
116 | my %sym = map +(DC::SDL_GetKeyName $_, $_), DC::SDLK_FIRST .. DC::SDLK_LAST; |
116 | my $map; |
117 | my $map; |
117 | |
118 | |
118 | while (my ($k, $v) = each %DEFAULT_KEYMAP) { |
119 | while (my ($k, $v) = each %DEFAULT_KEYMAP) { |
119 | if ($k =~ /^\((.)\)$/) { |
120 | if ($k =~ /^\((.)\)$/) { |
… | |
… | |
455 | my ($widget, $ev) = @_; |
456 | my ($widget, $ev) = @_; |
456 | |
457 | |
457 | if ($ev->{button} == 1) { |
458 | if ($ev->{button} == 1) { |
458 | $edit_macro->($macro), |
459 | $edit_macro->($macro), |
459 | } elsif ($ev->{button} == 2) { |
460 | } elsif ($ev->{button} == 2) { |
460 | $::CONN->macro_send ($macro) if $::CONN; |
461 | execute ($macro); |
461 | } elsif ($ev->{button} == 3) { |
462 | } elsif ($ev->{button} == 3) { |
462 | (new DC::UI::Menu |
463 | (new DC::UI::Menu |
463 | items => [ |
464 | items => [ |
464 | ["Edit" => sub { $edit_macro->($macro) }], |
465 | ["Edit" => sub { $edit_macro->($macro) }], |
465 | ["Invoke" => sub { $::CONN->macro_send ($macro) if $::CONN }], |
466 | ["Invoke" => sub { execute ($macro) }], |
466 | ["Delete" => sub { |
467 | ["Delete" => sub { |
467 | # might want to use grep instead |
468 | # might want to use grep instead |
468 | splice @{$::PROFILE->{macro}}, $idx, 1, (); |
469 | splice @{$::PROFILE->{macro}}, $idx, 1, (); |
469 | $refresh->(); |
470 | $refresh->(); |
470 | }], |
471 | }], |