… | |
… | |
233 | } |
233 | } |
234 | |
234 | |
235 | sub build_buttons { |
235 | sub build_buttons { |
236 | my ($self) = @_; |
236 | my ($self) = @_; |
237 | |
237 | |
238 | my $tbl = Gtk2::Table->new (2, 4); |
238 | my $tbl = Gtk2::Table->new (2, 5); |
239 | my $plcinfo = { width => 1, height => 4, next => [0, 0] }; |
239 | my $plcinfo = { width => 1, height => 5, next => [0, 0] }; |
240 | |
240 | |
241 | $self->{edit_collection}{pick} = GCE::EditAction::Pick->new; |
241 | $self->{edit_collection}{pick} = GCE::EditAction::Pick->new; |
242 | $self->{edit_collection}{place} = GCE::EditAction::Place->new; |
242 | $self->{edit_collection}{place} = GCE::EditAction::Place->new; |
243 | $self->{edit_collection}{erase} = GCE::EditAction::Erase->new; |
243 | $self->{edit_collection}{erase} = GCE::EditAction::Erase->new; |
244 | $self->{edit_collection}{select}= GCE::EditAction::Select->new; |
244 | $self->{edit_collection}{select}= GCE::EditAction::Select->new; |
|
|
245 | $self->{edit_collection}{perl} = GCE::EditAction::Perl->new; |
245 | |
246 | |
246 | $self->set_edit_tool ('pick'); |
247 | $self->set_edit_tool ('pick'); |
247 | |
248 | |
248 | $self->add_button ($tbl, $plcinfo, "Pick", sub { $self->set_edit_tool ('pick') }); |
249 | $self->add_button ($tbl, $plcinfo, "Pick", sub { $self->set_edit_tool ('pick') }); |
249 | $self->add_button ($tbl, $plcinfo, "Place", sub { $self->set_edit_tool ('place') }); |
250 | $self->add_button ($tbl, $plcinfo, "Place", sub { $self->set_edit_tool ('place') }); |
250 | $self->add_button ($tbl, $plcinfo, "Erase", sub { $self->set_edit_tool ('erase') }); |
251 | $self->add_button ($tbl, $plcinfo, "Erase", sub { $self->set_edit_tool ('erase') }); |
251 | $self->add_button ($tbl, $plcinfo, "Select", sub { $self->set_edit_tool ('select') }); |
252 | $self->add_button ($tbl, $plcinfo, "Select", sub { $self->set_edit_tool ('select') }); |
|
|
253 | $self->add_button ($tbl, $plcinfo, "Eval", sub { $self->set_edit_tool ('perl') }); |
252 | |
254 | |
253 | return $tbl; |
255 | return $tbl; |
254 | } |
256 | } |
255 | |
257 | |
256 | sub set_edit_tool { |
258 | sub set_edit_tool { |
… | |
… | |
262 | $self->update_edit_tool ($self->{edit_collection}{place}, "Place");; |
264 | $self->update_edit_tool ($self->{edit_collection}{place}, "Place");; |
263 | } elsif ($name eq 'erase') { |
265 | } elsif ($name eq 'erase') { |
264 | $self->update_edit_tool ($self->{edit_collection}{erase}, "Erase");; |
266 | $self->update_edit_tool ($self->{edit_collection}{erase}, "Erase");; |
265 | } elsif ($name eq 'select') { |
267 | } elsif ($name eq 'select') { |
266 | $self->update_edit_tool ($self->{edit_collection}{select}, "Select");; |
268 | $self->update_edit_tool ($self->{edit_collection}{select}, "Select");; |
|
|
269 | } elsif ($name eq 'perl') { |
|
|
270 | $self->update_edit_tool ($self->{edit_collection}{perl}, "Eval");; |
267 | } |
271 | } |
268 | } |
272 | } |
269 | |
273 | |
270 | sub update_edit_tool { |
274 | sub update_edit_tool { |
271 | my ($self, $tool, $name) = @_; |
275 | my ($self, $tool, $name) = @_; |
… | |
… | |
333 | |
337 | |
334 | $vb->pack_start (Gtk2::HSeparator->new, 0, 1, 0); |
338 | $vb->pack_start (Gtk2::HSeparator->new, 0, 1, 0); |
335 | $vb->pack_start ($self->{edit_tool}, 0, 1, 0); |
339 | $vb->pack_start ($self->{edit_tool}, 0, 1, 0); |
336 | |
340 | |
337 | $vb->pack_start (Gtk2::HSeparator->new, 0, 1, 0); |
341 | $vb->pack_start (Gtk2::HSeparator->new, 0, 1, 0); |
338 | $vb->pack_start ($self->{edit_tool_cont}, 0, 1, 0); |
342 | $vb->pack_start ($self->{edit_tool_cont}, 1, 1, 0); |
339 | |
343 | |
340 | # XXX:load $ARGV _cleanly_? |
344 | # XXX:load $ARGV _cleanly_? |
341 | $self->open_map_editor ($_) |
345 | $self->open_map_editor ($_) |
342 | for @ARGV; |
346 | for @ARGV; |
343 | |
347 | |