Goo-Canvas
view release on metacpan or search on metacpan
bin/perlmine.pl view on Meta::CPAN
start_game();
Gtk2->main;
sub END {
write_history();
}
#}}}
#{{{ create menu and canvas
sub create_menu {
my $menu_bar = Gtk2::MenuBar->new;
# File
my $file_menu = Gtk2::Menu->new;
# |- junior
my $junior_menuitem = Gtk2::MenuItem->new_with_label( gettext('_Junior') );
$junior_menuitem->signal_connect('activate' => \&set_level,
$Config{level}{junior} );
$file_menu->append($junior_menuitem);
# |- senior
my $senior_menuitem = Gtk2::MenuItem->new_with_label( gettext('_Senior') );
$senior_menuitem->signal_connect('activate' => \&set_level,
$Config{level}{senior} );
$file_menu->append($senior_menuitem);
# |- advance
my $advance_menuitem = Gtk2::MenuItem->new_with_label( gettext('_Advance') );
$advance_menuitem->signal_connect('activate' => \&set_level,
$Config{level}{advance} );
$file_menu->append($advance_menuitem);
# |- Exit
my $exit_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit', undef);
$exit_menuitem->signal_connect('activate' => sub { Gtk2->main_quit });
$file_menu->append($exit_menuitem);
# Setting
my $setting_menu = Gtk2::Menu->new;
# |- Settings
my $setting_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-preferences', undef);
$setting_menuitem->signal_connect('activate' => \&setting);
$setting_menu->append($setting_menuitem);
# Help
my $help_menu = Gtk2::Menu->new;
# |- About
my $about_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-about', undef);
$about_menuitem->signal_connect('activate' => \&about);
$help_menu->append($about_menuitem);
my $file_menuitem = Gtk2::MenuItem->new(gettext("_File"));
$file_menuitem->set_submenu($file_menu);
$menu_bar->append( $file_menuitem );
my $setting_menuitem2 = Gtk2::MenuItem->new(gettext("_Setting"));
$setting_menuitem2->set_submenu($setting_menu);
$menu_bar->append($setting_menuitem2);
my $help_menuitem = Gtk2::MenuItem->new(gettext("_Help"));
$help_menuitem->set_submenu($help_menu);
$menu_bar->append($help_menuitem);
return $menu_bar;
}
sub about {
my $dia = Gtk2::AboutDialog->new();
$dia->set_authors(gettext('Ye Wenbin'));
$dia->run;
$dia->destroy;
bin/perltetris.pl view on Meta::CPAN
}
remove_heading();
($score, $lines, $level) = (0, 0, $Config{start_level});
update_label();
$canvas->{table}->clear;
$canvas->{preview}->clear;
$game_start = 0;
}
sub create_menu {
my $menu_bar = Gtk2::MenuBar->new;
# File
my $file_menu = Gtk2::Menu->new;
# |- New
my $new_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-new', undef);
$new_menuitem->signal_connect('activate' => \&new_game);
$file_menu->append($new_menuitem);
# |- Stop
my $stop_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-close', undef);
$stop_menuitem->signal_connect('activate' => \&stop_game);
$file_menu->append($stop_menuitem);
# |- Rank
my $rank_menuitem = Gtk2::MenuItem->new_with_mnemonic(gettext('_Rank'));
$rank_menuitem->signal_connect( 'activate' => sub { rank_dia() } );
$file_menu->append($rank_menuitem);
# |- Exit
my $exit_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit', undef);
$exit_menuitem->signal_connect('activate' => sub { Gtk2->main_quit });
$file_menu->append($exit_menuitem);
# Setting
my $setting_menu = Gtk2::Menu->new;
# |- Settings
my $setting_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-preferences', undef);
$setting_menuitem->signal_connect('activate' => \&setting);
$setting_menu->append($setting_menuitem);
# Help
my $help_menu = Gtk2::Menu->new;
# |- About
my $about_menuitem = Gtk2::ImageMenuItem->new_from_stock('gtk-about', undef);
$about_menuitem->signal_connect('activate' => \&about);
$help_menu->append($about_menuitem);
my $file_menuitem = Gtk2::MenuItem->new(gettext("_File"));
$file_menuitem->set_submenu($file_menu);
$menu_bar->append( $file_menuitem );
my $setting_menuitem2 = Gtk2::MenuItem->new(gettext("_Setting"));
$setting_menuitem2->set_submenu($setting_menu);
$menu_bar->append($setting_menuitem2);
my $help_menuitem = Gtk2::MenuItem->new(gettext("_Help"));
$help_menuitem->set_submenu($help_menu);
$menu_bar->append($help_menuitem);
return $menu_bar;
}
sub create_canvas {
my $canvas = Goo::Canvas->new;
$canvas->set_size_request(330, 400);
my $root = $canvas->get_root_item;
my ($rows, $cols) = ($Config{rows}, $Config{cols});
( run in 0.608 second using v1.01-cache-2.11-cpan-49f99fa48dc )