… | |
… | |
164 | $changeset; |
164 | $changeset; |
165 | } |
165 | } |
166 | }); |
166 | }); |
167 | |
167 | |
168 | $::MAINWIN->update_stack_view ($map, $x, $y); |
168 | $::MAINWIN->update_stack_view ($map, $x, $y); |
|
|
169 | } |
|
|
170 | |
|
|
171 | package GCE::EditAction::Perl; |
|
|
172 | |
|
|
173 | use GCE::Util; |
|
|
174 | use Gtk2; |
|
|
175 | use strict; |
|
|
176 | |
|
|
177 | our @ISA = qw/GCE::EditAction/; |
|
|
178 | |
|
|
179 | sub name { 'perl' } |
|
|
180 | |
|
|
181 | sub init { |
|
|
182 | my ($self) = @_; |
|
|
183 | |
|
|
184 | my $vb = new Gtk2::VBox; |
|
|
185 | $vb->pack_start (my $sw = Gtk2::ScrolledWindow->new, 1, 1, 0); |
|
|
186 | $sw->add ($self->{txt} = Gtk2::TextView->new); |
|
|
187 | |
|
|
188 | $self->tool_widget ($vb); |
|
|
189 | } |
|
|
190 | |
|
|
191 | sub want_cursor { 0 } |
|
|
192 | |
|
|
193 | sub begin { |
|
|
194 | my ($self, $map, $x, $y) = @_; |
|
|
195 | |
|
|
196 | $self->SUPER::begin ($map, $x, $y); |
|
|
197 | $self->edit ($map, $x, $y); |
|
|
198 | } |
|
|
199 | |
|
|
200 | sub edit { |
|
|
201 | my ($self, $map, $x, $y) = @_; |
|
|
202 | |
|
|
203 | my $pick = $::MAINWIN->get_pick; |
|
|
204 | my $as = $map->get ($x, $y); |
|
|
205 | |
|
|
206 | $as = $self->eval ($map, $pick, $as, $x, $y); |
|
|
207 | $map->change_stack ($x, $y, $as); # insert_arch_stack_layer ($as, $arch)); |
|
|
208 | } |
|
|
209 | |
|
|
210 | sub eval { |
|
|
211 | my ($self, $map, $pick, $stack, $x, $y) = @_; |
|
|
212 | my $buf = $self->{txt}->get_buffer; |
|
|
213 | my $code = $buf->get_text ($buf->get_start_iter, $buf->get_end_iter, 0); |
|
|
214 | |
|
|
215 | eval $code; |
|
|
216 | return $stack; |
169 | } |
217 | } |
170 | |
218 | |
171 | package GCE::EditAction::Place; |
219 | package GCE::EditAction::Place; |
172 | |
220 | |
173 | use GCE::Util; |
221 | use GCE::Util; |