mirror of
https://github.com/fspc/gbootroot.git
synced 2025-02-23 00:53:23 -05:00
Linking widgets to variables.
This commit is contained in:
parent
f9c2273010
commit
465b60019c
131
gBootRoot
131
gBootRoot
@ -33,7 +33,6 @@
|
|||||||
use Gtk;
|
use Gtk;
|
||||||
use strict;
|
use strict;
|
||||||
use Yard;
|
use Yard;
|
||||||
|
|
||||||
init Gtk;
|
init Gtk;
|
||||||
|
|
||||||
|
|
||||||
@ -108,6 +107,7 @@ my $version = "1.2.2";
|
|||||||
my $date = "09.03.2000";
|
my $date = "09.03.2000";
|
||||||
my $gtk_perl_version = "0.7002";
|
my $gtk_perl_version = "0.7002";
|
||||||
my $pwd = `pwd`; chomp $pwd;
|
my $pwd = `pwd`; chomp $pwd;
|
||||||
|
my $template_dir = "./";
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
|
|
||||||
my $initrd;
|
my $initrd;
|
||||||
@ -147,7 +147,8 @@ my ($bz2_toggle,$gz_toggle);
|
|||||||
my ($bz2_toggle_root,$gz_toggle_root);
|
my ($bz2_toggle_root,$gz_toggle_root);
|
||||||
my ($combo);
|
my ($combo);
|
||||||
my ($adj2,$adj3);
|
my ($adj2,$adj3);
|
||||||
|
my @strings;
|
||||||
|
my ($root_device,$root_filename,$method,$template);
|
||||||
|
|
||||||
# My own creation - the roots touch the ground if three lines are added.
|
# My own creation - the roots touch the ground if three lines are added.
|
||||||
my @xpm_data = (
|
my @xpm_data = (
|
||||||
@ -298,7 +299,6 @@ $box1->show();
|
|||||||
# First row
|
# First row
|
||||||
hbox();
|
hbox();
|
||||||
my $entry = entry($false,0);
|
my $entry = entry($false,0);
|
||||||
$tooltips->set_tip( $entry, "Choose the Boot method.", "" );
|
|
||||||
|
|
||||||
# Menu - later this may be improved if new methods are added.
|
# Menu - later this may be improved if new methods are added.
|
||||||
my $opt = new Gtk::OptionMenu();
|
my $opt = new Gtk::OptionMenu();
|
||||||
@ -306,6 +306,7 @@ $tooltips->set_tip( $opt, "Choose the Boot method.", "" );
|
|||||||
my $menu = new Gtk::Menu();
|
my $menu = new Gtk::Menu();
|
||||||
my $item = new Gtk::MenuItem("Method -> lilo" );
|
my $item = new Gtk::MenuItem("Method -> lilo" );
|
||||||
$item->show();
|
$item->show();
|
||||||
|
# Eventually get_menu, or something totally different will be used.
|
||||||
$item->signal_connect( 'activate',sub { $entry->set_text("lilo");
|
$item->signal_connect( 'activate',sub { $entry->set_text("lilo");
|
||||||
$container[0] = "lilo"});
|
$container[0] = "lilo"});
|
||||||
$menu->append( $item );
|
$menu->append( $item );
|
||||||
@ -455,7 +456,7 @@ $box2->show();
|
|||||||
|
|
||||||
# Help button
|
# Help button
|
||||||
my $hbutton = new Gtk::Button("Help");
|
my $hbutton = new Gtk::Button("Help");
|
||||||
$hbutton->signal_connect( "clicked", \&create_text);
|
$hbutton->signal_connect( "clicked", sub { create_text("help") });
|
||||||
$tooltips->set_tip( $hbutton, "Help about gBootRoot.", "" );
|
$tooltips->set_tip( $hbutton, "Help about gBootRoot.", "" );
|
||||||
$hbutton->show();
|
$hbutton->show();
|
||||||
$box2->pack_start( $hbutton, $true, $true, 0 );
|
$box2->pack_start( $hbutton, $true, $true, 0 );
|
||||||
@ -518,7 +519,6 @@ sub objcopy_right_click_advanced {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub advanced_boot_section {
|
sub advanced_boot_section {
|
||||||
|
|
||||||
if ($button_count == 0) {
|
if ($button_count == 0) {
|
||||||
@ -607,7 +607,6 @@ sub advanced_boot_section {
|
|||||||
|
|
||||||
} # end sub advanced_boot_section
|
} # end sub advanced_boot_section
|
||||||
|
|
||||||
|
|
||||||
sub advanced_root_section {
|
sub advanced_root_section {
|
||||||
|
|
||||||
if ($button_count_root == 0) {
|
if ($button_count_root == 0) {
|
||||||
@ -760,16 +759,35 @@ sub advanced_root_section {
|
|||||||
$tooltips->set_tip( $ear4,
|
$tooltips->set_tip( $ear4,
|
||||||
"Choose the Root Filesystem Generation Method.",
|
"Choose the Root Filesystem Generation Method.",
|
||||||
"" );
|
"" );
|
||||||
|
|
||||||
my $opt_root = new Gtk::OptionMenu();
|
my $opt_root = new Gtk::OptionMenu();
|
||||||
$tooltips->set_tip( $opt_root,
|
$tooltips->set_tip( $opt_root,
|
||||||
"Choose the Root Filesystem Generation Method.",
|
"Choose the Root Filesystem Generation Method.",
|
||||||
"" );
|
"" );
|
||||||
my $menu_root = new Gtk::Menu();
|
my $menu_root = new Gtk::Menu();
|
||||||
my $item_root = new Gtk::MenuItem("Yard" );
|
|
||||||
$item_root->show();
|
my $yard = new Gtk::MenuItem("Yard" );
|
||||||
$item_root->signal_connect( 'activate',sub {
|
|
||||||
$ear4->set_text("yard"); });
|
$menu_root->append( $yard );
|
||||||
$menu_root->append( $item_root );
|
|
||||||
|
$yard->signal_connect( 'activate', sub {
|
||||||
|
$ear4->set_text("yard");
|
||||||
|
$entry_advanced[6] = $ear4->get_text();
|
||||||
|
opendir(DIR,$template_dir) if -d $template_dir;
|
||||||
|
@strings = grep { m,\.yard$, } readdir(DIR);
|
||||||
|
closedir(DIR);
|
||||||
|
$combo->set_popdown_strings( @strings ) if @strings;
|
||||||
|
} );
|
||||||
|
|
||||||
|
$ear4->set_text($entry_advanced[6]) if $entry_advanced[6];
|
||||||
|
if ($yard) {
|
||||||
|
opendir(DIR,$template_dir) if -d $template_dir;
|
||||||
|
@strings = grep { m,\.yard$, } readdir(DIR) if $yard;
|
||||||
|
closedir(DIR)
|
||||||
|
}
|
||||||
|
|
||||||
|
$yard->show();
|
||||||
|
|
||||||
$opt_root->set_menu( $menu_root );
|
$opt_root->set_menu( $menu_root );
|
||||||
$table_advanced_root->attach($opt_root,2,3,7,8,
|
$table_advanced_root->attach($opt_root,2,3,7,8,
|
||||||
['expand','fill'],['fill','shrink'],0,0);
|
['expand','fill'],['fill','shrink'],0,0);
|
||||||
@ -779,12 +797,20 @@ sub advanced_root_section {
|
|||||||
# Template
|
# Template
|
||||||
# $::contents_file
|
# $::contents_file
|
||||||
label_advanced("Template:",0,1,8,9,$table_advanced_root);
|
label_advanced("Template:",0,1,8,9,$table_advanced_root);
|
||||||
my @strings = ("nothing is here now");
|
|
||||||
$combo = new Gtk::Combo();
|
$combo = new Gtk::Combo();
|
||||||
$combo->set_popdown_strings( @strings );
|
$combo->entry->set_text($entry_advanced[7]) if $entry_advanced[7];
|
||||||
|
#$button_count_root_open = 1 + $button_count_root_open;
|
||||||
|
#print $button_count_root_open;
|
||||||
|
#if ($button_count_root_open > 1) {
|
||||||
|
# $combo->set_popdown_strings( @strings )
|
||||||
|
# if $entry_advanced[7] ne "";
|
||||||
|
#}
|
||||||
$tooltips->set_tip( Gtk::Combo::entry($combo),
|
$tooltips->set_tip( Gtk::Combo::entry($combo),
|
||||||
"Choose a Template for the Method.",
|
"Choose a Template for the Method.",
|
||||||
"" );
|
"" );
|
||||||
|
$entry_advanced[7] = $combo->entry->get_text(); # nothing selected
|
||||||
|
$combo->entry->signal_connect("changed", sub {
|
||||||
|
$entry_advanced[7] = $combo->entry->get_text(); } );
|
||||||
$table_advanced_root->attach($combo,1,3,8,9,
|
$table_advanced_root->attach($combo,1,3,8,9,
|
||||||
['expand','fill'],['fill','shrink'],0,0);
|
['expand','fill'],['fill','shrink'],0,0);
|
||||||
show $combo;
|
show $combo;
|
||||||
@ -797,8 +823,9 @@ sub advanced_root_section {
|
|||||||
# asks the user if they want to modify the template, and/or save a
|
# asks the user if they want to modify the template, and/or save a
|
||||||
# new template with modifications (to be added to Template menu).
|
# new template with modifications (to be added to Template menu).
|
||||||
my $generate_b = button_advanced(0,1,9,10,"Generate");
|
my $generate_b = button_advanced(0,1,9,10,"Generate");
|
||||||
|
$generate_b->signal_connect("clicked",\&Generate);
|
||||||
$tooltips->set_tip( $generate_b, "Generate Root Filesystem.", "" );
|
$tooltips->set_tip( $generate_b, "Generate Root Filesystem.", "" );
|
||||||
|
|
||||||
my $UML_b = button_advanced(1,2,9,10,"UML");
|
my $UML_b = button_advanced(1,2,9,10,"UML");
|
||||||
$tooltips->set_tip( $UML_b, "Test Filesystem with User Mode Linux.",
|
$tooltips->set_tip( $UML_b, "Test Filesystem with User Mode Linux.",
|
||||||
"" );
|
"" );
|
||||||
@ -823,10 +850,66 @@ sub advanced_root_section {
|
|||||||
} # end sub advanced_root_section
|
} # end sub advanced_root_section
|
||||||
|
|
||||||
|
|
||||||
|
sub Generate {
|
||||||
|
|
||||||
|
# @entry_advanced
|
||||||
|
# 0 = Development Drive
|
||||||
|
# 1 = Optional Devices
|
||||||
|
# 2 = Append Options
|
||||||
|
#------------------
|
||||||
|
$root_device = $entry_advanced[3]; # 3 = Root Device
|
||||||
|
$root_filename = $entry_advanced[4]; # 4 = Root Filename
|
||||||
|
# 5 = UML Kernel
|
||||||
|
$method = $entry_advanced[6]; # 6 = Method
|
||||||
|
$template = $entry_advanced[7]; # 7 = Template
|
||||||
|
|
||||||
|
if (!$root_device || $root_device eq "") {
|
||||||
|
error_window("gBootRoot: ERROR: Root Device not defined");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
# devfs may change this
|
||||||
|
if (!-b $root_device) {
|
||||||
|
error_window("gBootRoot: ERROR: Not a valid Block Device");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$root_filename || $root_filename eq "") {
|
||||||
|
error_window("gBootRoot: ERROR: Root Filename not given");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!$method || $method eq "") {
|
||||||
|
error_window("gBootRoot: ERROR: Method must be supplied");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!$template || $template eq "") {
|
||||||
|
error_window("gBootRoot: ERROR: Template name not given");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($method eq "yard") {
|
||||||
|
create_text("yard");
|
||||||
|
yard();
|
||||||
|
}
|
||||||
|
|
||||||
|
#print "$root_selection $root_filename $method $template\n";
|
||||||
|
|
||||||
|
} # end sub Generate
|
||||||
|
|
||||||
|
sub yard {
|
||||||
|
|
||||||
|
#open(YARD,"$template_dir$template");
|
||||||
|
#my @stuff = <YARD>;
|
||||||
|
#print @stuff;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} # end sub yard
|
||||||
|
|
||||||
sub button_advanced {
|
sub button_advanced {
|
||||||
|
|
||||||
# cretzu should like this
|
# cretzu should like this
|
||||||
my ($left_attach,$right_attach,$top_attach,$bottom_attach,$text) = @_;
|
my ($left_attach,$right_attach,$top_attach,
|
||||||
|
$bottom_attach,$text,$widget) = @_;
|
||||||
my $button = new Gtk::Button($text);
|
my $button = new Gtk::Button($text);
|
||||||
$table_advanced_root->attach($button,$left_attach,$right_attach,
|
$table_advanced_root->attach($button,$left_attach,$right_attach,
|
||||||
$top_attach,$bottom_attach,
|
$top_attach,$bottom_attach,
|
||||||
@ -900,6 +983,8 @@ sub label_advanced {
|
|||||||
|
|
||||||
sub create_text {
|
sub create_text {
|
||||||
|
|
||||||
|
my ($text_type) = @_;
|
||||||
|
|
||||||
if (not defined $text_window) {
|
if (not defined $text_window) {
|
||||||
$text_window = new Gtk::Window "toplevel";
|
$text_window = new Gtk::Window "toplevel";
|
||||||
$text_window->signal_connect("destroy", \&destroy_window,
|
$text_window->signal_connect("destroy", \&destroy_window,
|
||||||
@ -943,7 +1028,12 @@ sub create_text {
|
|||||||
$vscrollbar->show();
|
$vscrollbar->show();
|
||||||
|
|
||||||
$text->freeze();
|
$text->freeze();
|
||||||
|
if ($text_type eq "help") {
|
||||||
$text->insert( undef, undef, undef, help() );
|
$text->insert( undef, undef, undef, help() );
|
||||||
|
}
|
||||||
|
elsif ($text_type eq "yard") {
|
||||||
|
$text->insert( undef, undef, undef, "Stuff coming soon" );
|
||||||
|
}
|
||||||
$text->thaw();
|
$text->thaw();
|
||||||
|
|
||||||
my $separator = new Gtk::HSeparator();
|
my $separator = new Gtk::HSeparator();
|
||||||
@ -1122,7 +1212,7 @@ sub entry {
|
|||||||
$todo = "the Compressed Filesystem";
|
$todo = "the Compressed Filesystem";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$todo = "the Device to use";
|
$todo = "the Block Device to use";
|
||||||
}
|
}
|
||||||
$tooltips->set_tip( $entry,
|
$tooltips->set_tip( $entry,
|
||||||
"Type in the location of $todo.", "" );
|
"Type in the location of $todo.", "" );
|
||||||
@ -1180,7 +1270,7 @@ sub submit {
|
|||||||
|
|
||||||
# Run some checks
|
# Run some checks
|
||||||
if (!defined $container[0]) {
|
if (!defined $container[0]) {
|
||||||
error_window("gBootRoot: ERROR: No method supplied");
|
error_window("gBootRoot: ERROR: No Method supplied");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (defined $container[1] && -e $container[1] && !-d $container[1]) {
|
if (defined $container[1] && -e $container[1] && !-d $container[1]) {
|
||||||
@ -1201,7 +1291,8 @@ if (defined $container[2] && -e $container[2] && !-d $container[2] ) {
|
|||||||
$root_image = $container[2];
|
$root_image = $container[2];
|
||||||
if ($root_image =~ m,^$mnt,) {
|
if ($root_image =~ m,^$mnt,) {
|
||||||
# Bug revealed by Cristian Ionescu-Idbohrn <cii@axis.com>
|
# Bug revealed by Cristian Ionescu-Idbohrn <cii@axis.com>
|
||||||
error_window("gBootRoot: ERROR: Rootimage found below Device mount point: $mnt");
|
error_window(
|
||||||
|
"gBootRoot: ERROR: Rootimage found below Device mount point: $mnt");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1210,12 +1301,12 @@ elsif (defined $container[0] && defined $container[1]) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
# we need to check for this, too.
|
# we need to check for this, too.
|
||||||
if (defined $container[3] && -e $container[3] && !-d $container[3] ) {
|
if (defined $container[3] && -b $container[3]) {
|
||||||
$device = $container[3];
|
$device = $container[3];
|
||||||
}
|
}
|
||||||
elsif (defined $container[0] && defined $container[1]
|
elsif (defined $container[0] && defined $container[1]
|
||||||
&& defined $container[2]) {
|
&& defined $container[2]) {
|
||||||
error_window("gBootRoot: ERROR: Device not found");
|
error_window("gBootRoot: ERROR: Block Device not found");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (defined $container[4]) {
|
if (defined $container[4]) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user