… | |
… | |
129 | |
129 | |
130 | sub init { |
130 | sub init { |
131 | my ($self) = @_; |
131 | my ($self) = @_; |
132 | |
132 | |
133 | my $vb = new Gtk2::VBox; |
133 | my $vb = new Gtk2::VBox; |
134 | $vb->pack_start ($self->{only_attr} = Gtk2::CheckButton->new ('pick attr'), 0, 1, 0); |
|
|
135 | $self->{widget} = $vb; |
134 | $self->{widget} = $vb; |
136 | } |
135 | } |
137 | |
136 | |
138 | sub begin { |
137 | sub begin { |
139 | my ($self, $map, $x, $y) = @_; |
138 | my ($self, $map, $x, $y) = @_; |
140 | $self->edit ($map, $x, $y); |
139 | $self->edit ($map, $x, $y); |
141 | } |
140 | } |
142 | |
141 | |
143 | sub edit { |
142 | sub edit { |
144 | my ($self, $map, $x, $y) = @_; |
143 | my ($self, $map, $x, $y) = @_; |
145 | |
|
|
146 | $::MAINWIN->update_stack_view ($map, $x, $y); |
|
|
147 | |
144 | |
148 | my $cstack = $map->get ($x, $y); |
145 | my $cstack = $map->get ($x, $y); |
149 | |
146 | |
150 | my $arch = $cstack->[-1]; |
147 | my $arch = $cstack->[-1]; |
151 | |
148 | |
… | |
… | |
155 | $x = $arch->{virtual_x}; |
152 | $x = $arch->{virtual_x}; |
156 | $y = $arch->{virtual_y}; |
153 | $y = $arch->{virtual_y}; |
157 | $arch = $arch->{_virtual}; |
154 | $arch = $arch->{_virtual}; |
158 | $cstack = $map->get ($x, $y); |
155 | $cstack = $map->get ($x, $y); |
159 | } |
156 | } |
160 | |
|
|
161 | # unless ($self->{only_attr}->get_active) { |
|
|
162 | # $::MAINWIN->set_pick ($arch) |
|
|
163 | # if @$cstack; |
|
|
164 | # } |
|
|
165 | |
157 | |
166 | $::MAINWIN->update_attr_editor ($arch, sub { |
158 | $::MAINWIN->update_attr_editor ($arch, sub { |
167 | $map->change_begin (ref $self); |
159 | $map->change_begin (ref $self); |
168 | $map->change_stack ($x, $y, $cstack); |
160 | $map->change_stack ($x, $y, $cstack); |
169 | # XXX: Put this into a generic function!!! See also EditTools.pm |
161 | # XXX: Put this into a generic function!!! See also EditTools.pm |
… | |
… | |
172 | splice @{ $map->{undo_stack} ||= [] }, |
164 | splice @{ $map->{undo_stack} ||= [] }, |
173 | $map->{undo_stack_pos}++, 1e6, |
165 | $map->{undo_stack_pos}++, 1e6, |
174 | $changeset; |
166 | $changeset; |
175 | } |
167 | } |
176 | }); |
168 | }); |
|
|
169 | |
|
|
170 | $::MAINWIN->update_stack_view ($map, $x, $y); |
177 | } |
171 | } |
178 | |
172 | |
179 | sub end {} |
173 | sub end {} |
180 | |
174 | |
181 | package GCE::EditAction::Perl; |
175 | package GCE::EditAction::Perl; |