… | |
… | |
115 | if ($kv == $Gtk2::Gdk::Keysyms{Control_L}) { |
115 | if ($kv == $Gtk2::Gdk::Keysyms{Control_L}) { |
116 | $self->{ea_alt} = $::MAINWIN->{edit_collection}{erase}; |
116 | $self->{ea_alt} = $::MAINWIN->{edit_collection}{erase}; |
117 | |
117 | |
118 | } elsif ($kv == $Gtk2::Gdk::Keysyms{Alt_L}) { |
118 | } elsif ($kv == $Gtk2::Gdk::Keysyms{Alt_L}) { |
119 | $self->{ea_alt} = $::MAINWIN->{edit_collection}{pick}; |
119 | $self->{ea_alt} = $::MAINWIN->{edit_collection}{pick}; |
|
|
120 | } elsif ($kv == $Gtk2::Gdk::Keysyms{x}) { |
|
|
121 | $::MAINWIN->{edit_collection}{select}->move; |
120 | } elsif ($kv == $Gtk2::Gdk::Keysyms{c}) { |
122 | } elsif ($kv == $Gtk2::Gdk::Keysyms{c}) { |
121 | $::MAINWIN->{edit_collection}{select}->copy; |
123 | $::MAINWIN->{edit_collection}{select}->copy; |
122 | } elsif ($kv == $Gtk2::Gdk::Keysyms{v}) { |
124 | } elsif ($kv == $Gtk2::Gdk::Keysyms{v}) { |
123 | my ($x, $y) = $map->coord ($map->get_pointer); |
125 | my ($x, $y) = $map->coord ($map->get_pointer); |
124 | $::MAINWIN->{edit_collection}{select}->paste ($x, $y); |
126 | $::MAINWIN->{edit_collection}{select}->paste ($x, $y); |
… | |
… | |
237 | $map->{undo_stack} |
239 | $map->{undo_stack} |
238 | and $map->{undo_stack_pos} < @{$map->{undo_stack}} |
240 | and $map->{undo_stack_pos} < @{$map->{undo_stack}} |
239 | or return; |
241 | or return; |
240 | |
242 | |
241 | $map->change_swap ($map->{undo_stack}[$map->{undo_stack_pos}++]); |
243 | $map->change_swap ($map->{undo_stack}[$map->{undo_stack_pos}++]); |
242 | } |
|
|
243 | |
|
|
244 | sub delete_arch { |
|
|
245 | my ($self, $x, $y) = @_; |
|
|
246 | |
|
|
247 | defined $self->{map} |
|
|
248 | or return 0; |
|
|
249 | |
|
|
250 | my $as = $self->{map}->get ($x, $y); |
|
|
251 | pop @$as; |
|
|
252 | $self->{map}->set ($x, $y, $as); |
|
|
253 | } |
|
|
254 | |
|
|
255 | sub place_pick { |
|
|
256 | my ($self, $x, $y) = @_; |
|
|
257 | |
|
|
258 | my $pick = $::MAINWIN->get_pick; |
|
|
259 | my $as = $self->{map}->get ($x, $y); |
|
|
260 | |
|
|
261 | my $arch = { _name => $pick->{_name} }; |
|
|
262 | |
|
|
263 | push @$as, $arch |
|
|
264 | unless @$as && $as->[-1]->{_name} eq $arch->{_name}; |
|
|
265 | |
|
|
266 | $self->{map}->set ($x, $y, $as); |
|
|
267 | } |
244 | } |
268 | |
245 | |
269 | sub delete { |
246 | sub delete { |
270 | my ($self) = @_; |
247 | my ($self) = @_; |
271 | |
248 | |