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 )