mirror of
https://github.com/fspc/gbootroot.git
synced 2025-02-23 00:53:23 -05:00
* The beginnings of a menu.
This commit is contained in:
parent
2ee5ffe452
commit
ca21adebf1
79
YardBox.pm
79
YardBox.pm
@ -31,17 +31,48 @@ use Yard;
|
|||||||
use Error;
|
use Error;
|
||||||
|
|
||||||
my $yard_window;
|
my $yard_window;
|
||||||
|
my $item_factory;
|
||||||
|
my $accel_group;
|
||||||
my $true = 1;
|
my $true = 1;
|
||||||
my $false = 0;
|
my $false = 0;
|
||||||
|
|
||||||
|
my @menu_items = ( { path => '/File',
|
||||||
|
type => '<Branch>' },
|
||||||
|
{ path => '/File/file_tearoff',
|
||||||
|
type => '<Tearoff>' },
|
||||||
|
{ path => '/File/_Save',
|
||||||
|
accelerator => '<control>S',
|
||||||
|
callback => sub { print "hello"; } },
|
||||||
|
{ path => '/File/Save _As ...',
|
||||||
|
accelerator => '<alt>A',
|
||||||
|
callback => sub { print "hello\n"; } },
|
||||||
|
{ path => '/File/file_separator',
|
||||||
|
type => '<Separator>' },
|
||||||
|
{ path => '/File/_Close',
|
||||||
|
callback => sub { destroy $yard_window; }},
|
||||||
|
|
||||||
|
{ path => '/_Edit',
|
||||||
|
type => '<Branch>' },
|
||||||
|
|
||||||
|
{ path => '/_Create',
|
||||||
|
type => '<Branch>' },
|
||||||
|
|
||||||
|
{ path => '/_Tests',
|
||||||
|
type => '<Branch>' },
|
||||||
|
|
||||||
|
{ path => '/_Help',
|
||||||
|
type => '<LastBranch>' },
|
||||||
|
{ path => '/_Help/Tutorial' },
|
||||||
|
{ path => '/_Help/Shortcuts' } );
|
||||||
|
|
||||||
######
|
######
|
||||||
# YARD
|
# YARD
|
||||||
######
|
######
|
||||||
sub yard {
|
sub yard {
|
||||||
|
|
||||||
my ($kernel,$template_dir,$template) = @_;
|
my ($kernel,$template_dir,$template) = @_;
|
||||||
my $error;
|
my $error;
|
||||||
|
|
||||||
# Error handling in Yard will take some strategy
|
# Error handling in Yard will take some strategy
|
||||||
if (!-d $kernel && -f $kernel) {
|
if (!-d $kernel && -f $kernel) {
|
||||||
$error = kernel_version_check($kernel);
|
$error = kernel_version_check($kernel);
|
||||||
@ -64,7 +95,7 @@ sub yard {
|
|||||||
|
|
||||||
$error = read_contents_file("$template_dir$template");
|
$error = read_contents_file("$template_dir$template");
|
||||||
return if $error && $error eq "ERROR";
|
return if $error && $error eq "ERROR";
|
||||||
|
|
||||||
## $error = extra_links("$template_dir$template");
|
## $error = extra_links("$template_dir$template");
|
||||||
## return if $error && $error eq "ERROR";
|
## return if $error && $error eq "ERROR";
|
||||||
|
|
||||||
@ -99,11 +130,16 @@ sub yard_box {
|
|||||||
$yard_window->add( $main_vbox );
|
$yard_window->add( $main_vbox );
|
||||||
$main_vbox->show();
|
$main_vbox->show();
|
||||||
|
|
||||||
my $vbox = new Gtk::HBox( $false, 50 );
|
my $vbox = new Gtk::VBox( $false, 0 );
|
||||||
$vbox->border_width( 10 );
|
$vbox->border_width( 0 );
|
||||||
$main_vbox->pack_start( $vbox, $false, $true, 0 );
|
$main_vbox->pack_start( $vbox, $false, $false, 0 );
|
||||||
$vbox->show();
|
$vbox->show();
|
||||||
|
|
||||||
|
# Item::Factory
|
||||||
|
my $menubar = yard_menu($yard_window);
|
||||||
|
$vbox->pack_start( $menubar, $false, $true, 0 );
|
||||||
|
$menubar->show();
|
||||||
|
|
||||||
$vbox = new Gtk::VBox( $false, 10 );
|
$vbox = new Gtk::VBox( $false, 10 );
|
||||||
$vbox->border_width( 10 );
|
$vbox->border_width( 10 );
|
||||||
$main_vbox->pack_start( $vbox, $true, $true, 0 );
|
$main_vbox->pack_start( $vbox, $true, $true, 0 );
|
||||||
@ -206,10 +242,39 @@ sub yard_box {
|
|||||||
sub { destroy $yard_window; } );
|
sub { destroy $yard_window; } );
|
||||||
$vbox->pack_start( $button, $true, $true, 0 );
|
$vbox->pack_start( $button, $true, $true, 0 );
|
||||||
$button->show();
|
$button->show();
|
||||||
|
|
||||||
show $yard_window;
|
show $yard_window;
|
||||||
|
|
||||||
} # end sub yard_box
|
} # end sub yard_box
|
||||||
|
|
||||||
|
sub print_hello {
|
||||||
|
my ($menu_item, $action, $date) = @_;
|
||||||
|
|
||||||
|
$menu_item->set_active($true);
|
||||||
|
print $menu_item;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub yard_menu {
|
||||||
|
|
||||||
|
my ($window) = @_;
|
||||||
|
|
||||||
|
$accel_group = new Gtk::AccelGroup();
|
||||||
|
$item_factory = new Gtk::ItemFactory( 'Gtk::MenuBar', '<main>',
|
||||||
|
$accel_group );
|
||||||
|
$accel_group->attach($window);
|
||||||
|
$item_factory->create_items(@menu_items);
|
||||||
|
|
||||||
|
# Manipulate Gtk::ItemFactory - The trick here is to use the real path.
|
||||||
|
##my $checkbox = $item_factory->get_item("/File/CheckBox");
|
||||||
|
##$checkbox->set_active($true);
|
||||||
|
|
||||||
|
return ( $item_factory->get_widget( '<main>' ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user