Games-RailRoad
view release on metacpan or search on metacpan
lib/Games/RailRoad.pm view on Meta::CPAN
# see http://www.perltk.org/index.php?option=com_content&task=view&id=43&Itemid=37
$poe_main_window->optionAdd('*BorderWidth' => 1);
# icon
$poe_main_window->iconimage($img{main});
# menu
# $poe_main_window->optionAdd('*tearOff', 'false'); # no tear-off menus
# my $menuitems = [
# [ Cascade => '~File', -menuitems => [
# [ Button => '~Open',
# -command => $s->postback('_b_open'),
# -accelerator => 'ctrl+o',
# -compound => 'left',
# -image => $poe_main_window->Photo('fileopen16'),
# ],
# [ Separator => '' ],
# [ Button => '~Quit',
# -command => $s->postback('_b_quit'),
# -accelerator => 'ctrl+q',
# -compound => 'left',
# -image => $poe_main_window->Photo('actexit16'),
# ],
# ],
# ],
# [ Cascade => '~Run', -menuitems => [
# [ Button => '~Restart',
# -command => $s->postback('_b_restart'),
# -accelerator => 'R',
# -compound => 'left',
# -image => $poe_main_window->Photo('playstart16'),
# ],
# [ Button => '~Pause',
# -command => $s->postback('_b_pause'),
# -accelerator => 'p',
# -compound => 'left',
# -image => $poe_main_window->Photo('playpause16'),
# ],
# [ Button => '~Next',
# -command => $s->postback('_b_next'),
# -accelerator => 'n',
# -compound => 'left',
# -image => $poe_main_window->Photo('nav1rightarrow16'),
# ],
# [ Button => '~Continue',
# -command => $s->postback('_b_continue'),
# -accelerator => 'c',
# -compound => 'left',
# -image => $poe_main_window->Photo('nav2rightarrow16'),
# ],
# [ Separator => '' ],
# [ Button => '~Breakpoints',
# -command => $s->postback('_b_breakpoints'),
# #-accelerator => 'c',
# -compound => 'left',
# -image => $poe_main_window->Photo('calbell16'),
# ],
# ],
# ],
# ];
# my $menubar = $poe_main_window->Menu( -menuitems => $menuitems );
# $poe_main_window->configure( -menu => $menubar );
# $h->{w}{mnu_run} = $menubar->entrycget(1, '-menu');
# toolbar
my @tb = (
[ 'Button', 'actexit16', 'quit', '<Control-q>', '_b_quit' ],
[ 'separator' ],
[ 'Button', 'filenew16', 'new', '<Control-n>', '_b_new' ],
[ 'Button', 'fileopen16', 'open', '<Control-o>', '_b_open' ],
[ 'Button', 'filesave16', 'save', '<Control-s>', '_b_save' ],
[ 'separator' ],
[ 'Button', $img{train}, 'trains', '<F5>', '_b_trains' ],
#[ 'Button', 'calbell16', 'breakpoints', '<F8>', '_b_breakpoints' ],
#[ 'separator' ],
#[ 'Button', 'playstart16', 'restart', '<R>', '_b_restart' ],
#[ 'Button', 'playpause16', 'pause', '<p>', '_b_pause' ],
#[ 'Button', 'nav1rightarrow16', 'next', '<n>', '_b_next' ],
#[ 'Button', 'nav2rightarrow16', 'continue', '<c>', '_b_continue' ],
);
my $tb = $poe_main_window->ToolBar(-movable=>0);
foreach my $item ( @tb ) {
my $type = shift @$item;
$tb->separator( -movable => 0 ), next if $type eq 'separator';
$h->{w}{$item->[3]} = $tb->$type(
-image => $item->[0],
-tip => $item->[1],
-accelerator => $item->[2],
-command => $s->postback($item->[3]),
);
}
# playfield
#my $fh1 = $->Frame->pack(-fill=>'both', -expand=>1);
my $c = $poe_main_window->Scrolled( 'Canvas',
-bg => 'white',
-scrollbars => 'osoe',
-width => $NBCOLS * $TILELEN,
-height => $NBROWS * $TILELEN,
#-browsecmd => $s->postback('_tm_click'),
)->pack(-side=>'left', -fill=>'both', -expand=>1);
$h->{w}{canvas} = $c;
# binding canvas events.
my %event = (
'<B1-Motion>' => '_c_b1_motion',
'<Double-ButtonPress-1>' => '_c_b1_dblclick',
'<ButtonPress-1>' => '_c_b1_press',
'<ButtonPress-2>' => '_c_b2_press',
'<ButtonPress-3>' => '_c_b3_press',
);
$c->CanvasBind($_ , [$s->postback($event{$_}), Ev('x'), Ev('y')] )
foreach keys %event;
#-- finish initialization
$k->yield( '_new' );
$k->delay_set( '_tick', $TICK );
}
( run in 2.151 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )