ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/gde/GCE/MainWindow.pm
(Generate patch)

Comparing deliantra/gde/GCE/MainWindow.pm (file contents):
Revision 1.74 by elmex, Fri Jan 5 19:20:44 2007 UTC vs.
Revision 1.75 by elmex, Sat Jan 6 09:41:17 2007 UTC

43 if ($self->{last_map_window}) { 43 if ($self->{last_map_window}) {
44 $main::CFG->{map_window} = main::get_pos_and_size ($self->{last_map_window}); 44 $main::CFG->{map_window} = main::get_pos_and_size ($self->{last_map_window});
45 $self->{last_map_window}->save_layout (); 45 $self->{last_map_window}->save_layout ();
46 } 46 }
47 47
48 $self->{worldmap_coord_query_}->save_layout () 48 $self->{worldmap_coord_query}->save_layout ()
49 if $self->{worldmap_coord_query_}; 49 if $self->{worldmap_coord_query};
50 $self->{worldmap_coord_query_overlay}->save_layout ()
51 if $self->{worldmap_coord_query_overlay};
52 50
53 $main::CFG->{last_folders} = $self->{fc_last_folders}; 51 $main::CFG->{last_folders} = $self->{fc_last_folders};
54 52
55 $main::CFG->{open_pickers} = []; 53 $main::CFG->{open_pickers} = [];
56 54
287 item_type => '<Branch>', 285 item_type => '<Branch>',
288 children => [ 286 children => [
289 "world map at"=> { 287 "world map at"=> {
290 callback => sub { $self->open_worldmap_cb }, 288 callback => sub { $self->open_worldmap_cb },
291 }, 289 },
292 "world overlay map at (CF+);"=> {
293 callback => sub { $self->open_worldmap_cb ('overlay') },
294 },
295 ] 290 ]
296 }, 291 },
297 "_Save Layout" => { 292 "_Save Layout" => {
298 callback => sub { $self->save_layout }, 293 callback => sub { $self->save_layout },
299 accelerator => '<ctrl>L' 294 accelerator => '<ctrl>L'
524 519
525 $fc 520 $fc
526} 521}
527 522
528sub new_coord_query { 523sub new_coord_query {
529 my ($self, $mode, $finishcb) = @_; 524 my ($self, $finishcb) = @_;
530 525
531 my $coordhash = { x => 105, y => 115 }; 526 my $coordhash = { x => 105, y => 115, worldmap => 1, overlay => 0 };
532 my $diag = GCE::HashDialogue->new; 527 my $diag = GCE::HashDialogue->new;
533 $self->{"worldmap_coord_query_$mode"} = $diag; 528 $self->{"worldmap_coord_query"} = $diag;
534 $diag->signal_connect (destroy => sub { 529 $diag->signal_connect (destroy => sub {
535 delete $self->{"worldmap_coord_query_$mode"}; 530 delete $self->{"worldmap_coord_query"};
536 }); 531 });
537 $diag->init ( 532 $diag->init (
538 layout_name => 'worldmap_coord_query_'.$mode, 533 layout_name => 'worldmap_coord_query',
539 info => "Open $mode worldmap at ...", 534 info => "Open worldmap at ...",
540 dialog_default_size => [ 200, 200, 200, 0 ], 535 dialog_default_size => [ 200, 200, 200, 0 ],
541 title => 'Worldmap coordinate entry', 536 title => 'Worldmap coordinate entry',
542 ref_hash => $coordhash, 537 ref_hash => $coordhash,
543 dialog => [ 538 dialog => [
544 [x => 'X Coordinate' => 'string'], 539 [x => 'X Coordinate' => 'spin', sub { (100, 129, 1) }],
545 [y => 'Y Coordinate' => 'string'], 540 [y => 'Y Coordinate' => 'spin', sub { (100, 129, 1) }],
541 [worldmap => 'Open worldmap' => 'check'],
542 [overlay => 'Open overlay (CF+)' => 'check'],
546 ], 543 ],
547 save_button_label => 'open', 544 save_button_label => 'open',
548 save_cb => sub { 545 save_cb => sub {
549 $finishcb->($mode, $_[0]->{x}, $_[0]->{y}); 546 $finishcb->($_[0]);
550 } 547 }
551 ); 548 );
552 $diag->show_all; 549 $diag->show_all;
553} 550}
554 551
555sub open_worldmap_cb { 552sub open_worldmap_cb {
556 my ($self, $mode) = @_; 553 my ($self) = @_;
557 554
558 $self->new_coord_query ($mode, sub { 555 $self->new_coord_query (sub {
559 my ($mode, $x, $y) = @_; 556 my ($info) = @_;
560 my $map = $::CFG->{MAPDIR} 557 my ($x, $y) = ($info->{x}, $info->{y});
561 . "/world" . ($mode eq 'overlay' ? '-overlay' : '') 558 my ($worldmap, $overlay) = ($info->{worldmap}, $info->{overlay});
562 . "/world_$x\_$y"; 559 $self->open_map_editor ($::CFG->{MAPDIR} . "/world/world_$x\_$y")
563 $self->open_map_editor ($map); 560 if $worldmap;
561 $self->open_map_editor ($::CFG->{MAPDIR} . "/world-overlay/world_$x\_$y")
562 if $overlay;
564 }); 563 });
565} 564}
566 565
567sub open_cb { 566sub open_cb {
568 my ($self) = @_; 567 my ($self) = @_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines