… | |
… | |
39 | my ($self, $command, $tooltip, $widget, $cb) = @_; |
39 | my ($self, $command, $tooltip, $widget, $cb) = @_; |
40 | |
40 | |
41 | (my $data = $command) =~ s/\\//g; |
41 | (my $data = $command) =~ s/\\//g; |
42 | |
42 | |
43 | $tooltip =~ s/^\s+//; |
43 | $tooltip =~ s/^\s+//; |
44 | |
|
|
45 | $tooltip = "<big>$data</big>\n\n$tooltip"; |
44 | $tooltip = "<big>$data</big>\n\n$tooltip"; |
46 | |
|
|
47 | $tooltip =~ s/\s+$//; |
45 | $tooltip =~ s/\s+$//; |
48 | |
46 | |
49 | $self->{completer}{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; |
47 | $self->{completer}{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; |
50 | } |
48 | } |
51 | |
49 | |
… | |
… | |
136 | $::CONN->user_send ("apply"); |
134 | $::CONN->user_send ("apply"); |
137 | } elsif ($uni == ord ".") { |
135 | } elsif ($uni == ord ".") { |
138 | $::CONN->user_send ($self->{completer}{last_command}) |
136 | $::CONN->user_send ($self->{completer}{last_command}) |
139 | if exists $self->{completer}{last_command}; |
137 | if exists $self->{completer}{last_command}; |
140 | } elsif ($uni == ord "\t") { |
138 | } elsif ($uni == ord "\t") { |
141 | # TODO: toggle inventory |
139 | $::INV_WINDOW->toggle_visibility; |
142 | } elsif ($sym == CFClient::SDLK_KP_PLUS || $uni == ord "+") { |
140 | } elsif ($sym == CFClient::SDLK_KP_PLUS || $uni == ord "+") { |
143 | $::CONN->user_send ("rotateshoottype +"); |
141 | $::CONN->user_send ("rotateshoottype +"); |
144 | } elsif ($sym == CFClient::SDLK_KP_MINUS || $uni == ord "-") { |
142 | } elsif ($sym == CFClient::SDLK_KP_MINUS || $uni == ord "-") { |
145 | $::CONN->user_send ("rotateshoottype -"); |
143 | $::CONN->user_send ("rotateshoottype -"); |
146 | } elsif ($uni == ord '"') { |
144 | } elsif ($uni == ord '"') { |
… | |
… | |
157 | $self->{ctrl}++; |
155 | $self->{ctrl}++; |
158 | $::CONN->user_send ("run $DIR{$sym}[0]"); |
156 | $::CONN->user_send ("run $DIR{$sym}[0]"); |
159 | } else { |
157 | } else { |
160 | $::CONN->user_send ("$DIR{$sym}[1]"); |
158 | $::CONN->user_send ("$DIR{$sym}[1]"); |
161 | } |
159 | } |
162 | } elsif ($ev->{unicode}) { |
160 | } elsif ($sym == CFClient::SDLK_INSERT && $mod & CFClient::KMOD_CTRL) { |
|
|
161 | CFClient::Recorder::start (1); |
|
|
162 | } elsif ($sym == CFClient::SDLK_INSERT && not ($mod & CFClient::KMOD_CTRL)) { |
|
|
163 | CFClient::Recorder::stop (1); |
|
|
164 | } elsif (my $bind_cmd = $::CFG->{bindings}->{$mod}->{$sym}) { |
|
|
165 | $::CONN->user_send ($_) for @$bind_cmd; |
|
|
166 | } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) { |
163 | $self->{completer}->key_down ($ev); |
167 | $self->{completer}->key_down ($ev); |
164 | $self->{completer}->show; |
168 | $self->{completer}->show; |
165 | } |
169 | } |
166 | } |
170 | } |
167 | |
171 | |
… | |
… | |
279 | # |
283 | # |
280 | # $label->show; |
284 | # $label->show; |
281 | # $label->update; |
285 | # $label->update; |
282 | # |
286 | # |
283 | # $CFClient::UI::ROOT->on_post_alloc ("$self$label" => sub { |
287 | # $CFClient::UI::ROOT->on_post_alloc ("$self$label" => sub { |
284 | # $label->move ( |
288 | # $label->move_abs ( |
285 | # ($::WIDTH - $label->{w}) * 0.5, |
289 | # ($::WIDTH - $label->{w}) * 0.5, |
286 | # ($::HEIGHT - $label->{h}) * 0.5, |
290 | # ($::HEIGHT - $label->{h}) * 0.5, |
287 | # ); |
291 | # ); |
288 | # }); |
292 | # }); |
289 | # |
293 | # |
… | |
… | |
458 | |
462 | |
459 | sub size_allocate { |
463 | sub size_allocate { |
460 | my ($self, $w, $h) = @_; |
464 | my ($self, $w, $h) = @_; |
461 | |
465 | |
462 | $self->SUPER::size_allocate ($w, $h); |
466 | $self->SUPER::size_allocate ($w, $h); |
463 | $self->move (($::WIDTH - $w) * 0.5, ($::HEIGHT - $h) * 0.6, 10); |
467 | $self->move_abs (($::WIDTH - $w) * 0.5, ($::HEIGHT - $h) * 0.6, 10); |
464 | } |
468 | } |
465 | |
469 | |
466 | sub show { |
470 | sub show { |
467 | my ($self) = @_; |
471 | my ($self) = @_; |
468 | |
472 | |