mirror of
				https://github.com/fspc/gbootroot.git
				synced 2025-11-04 08:15:36 -05:00 
			
		
		
		
	* This is the Yard ARS Method.
* This is part of the restructuring to allow new methods to be easily added by developers.
This commit is contained in:
		
							parent
							
								
									3005f27ec4
								
							
						
					
					
						commit
						2ee5ffe452
					
				
							
								
								
									
										215
									
								
								YardBox.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								YardBox.pm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,215 @@
 | 
				
			|||||||
 | 
					#############################################################################
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					##  YardBox.pm 
 | 
				
			||||||
 | 
					##  Copyright (C) 2000 Modifications by the gBootRoot Project
 | 
				
			||||||
 | 
					##  Copyright (C) 2000 by Jonathan Rosenbaum
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					##  This program is free software; you may redistribute it and/or modify
 | 
				
			||||||
 | 
					##  it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					##  the Free Software Foundation; either version 2 of the License, or
 | 
				
			||||||
 | 
					##  (at your option) any later version.
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					##  This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					##  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					##  GNU General Public License for more details.
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					##  You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					##  along with this program; if not, write to the Free Software
 | 
				
			||||||
 | 
					##  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					##############################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package YardBox;
 | 
				
			||||||
 | 
					use vars qw(@ISA @EXPORT %EXPORT_TAGS);
 | 
				
			||||||
 | 
					use Exporter;
 | 
				
			||||||
 | 
					@ISA = qw(Exporter);
 | 
				
			||||||
 | 
					@EXPORT =  qw(yard yard_box);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					use Yard;
 | 
				
			||||||
 | 
					use Error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $yard_window;
 | 
				
			||||||
 | 
					my $true = 1;
 | 
				
			||||||
 | 
					my $false = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					######
 | 
				
			||||||
 | 
					# YARD
 | 
				
			||||||
 | 
					###### 
 | 
				
			||||||
 | 
					sub yard {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    my ($kernel,$template_dir,$template) = @_;
 | 
				
			||||||
 | 
					    my $error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Error handling in Yard will take some strategy
 | 
				
			||||||
 | 
					    if (!-d $kernel && -f $kernel) {
 | 
				
			||||||
 | 
					        $error = kernel_version_check($kernel);  
 | 
				
			||||||
 | 
					                                              # Yard: kernel,kernel version
 | 
				
			||||||
 | 
					                                              # Becomes $ENV{'RELEASE'}
 | 
				
			||||||
 | 
						return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
						open(CONTENTS, "<$template_dir$template") or 
 | 
				
			||||||
 | 
					        ($error = error("$template_dir$template: $!"));
 | 
				
			||||||
 | 
						return "ERROR"if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
						my @template = <CONTENTS>;
 | 
				
			||||||
 | 
						close(CONTENTS);
 | 
				
			||||||
 | 
						my $stuff = join("",@template);
 | 
				
			||||||
 | 
						yard_box($stuff);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
						error_window("Kernel Selection required");
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $error = read_contents_file("$template_dir$template");
 | 
				
			||||||
 | 
					    return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##    $error = extra_links("$template_dir$template");
 | 
				
			||||||
 | 
					##    return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##    $error = hard_links();
 | 
				
			||||||
 | 
					##    return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##    $error = library_dependencies("$template_dir$template");
 | 
				
			||||||
 | 
					##    return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##    $error = space_check($filesystem_size, 
 | 
				
			||||||
 | 
					##              $lib_strip_check_root->get_active(),
 | 
				
			||||||
 | 
					##		$bin_strip_check_root->get_active(), 
 | 
				
			||||||
 | 
					##		$module_strip_check_root->get_active(), 
 | 
				
			||||||
 | 
					##		$obj_count_root, $tmp);
 | 
				
			||||||
 | 
					##    return if $error && $error eq "ERROR";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} # end sub yard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub yard_box {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					       $yard_window = new Gtk::Window "toplevel";
 | 
				
			||||||
 | 
					       $yard_window->signal_connect("destroy", \&destroy_window,
 | 
				
			||||||
 | 
					                                    \$yard_window);
 | 
				
			||||||
 | 
					       $yard_window->signal_connect("delete_event", \&destroy_window,
 | 
				
			||||||
 | 
					                                    \$yard_window);
 | 
				
			||||||
 | 
					       $yard_window->set_usize( 525, 450 );
 | 
				
			||||||
 | 
					       $yard_window->set_policy( $true, $true, $false );
 | 
				
			||||||
 | 
					       $yard_window->set_title( "Yard Box" );
 | 
				
			||||||
 | 
					       $yard_window->border_width(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $main_vbox = new Gtk::VBox( $false, 0 );
 | 
				
			||||||
 | 
					       $yard_window->add( $main_vbox );
 | 
				
			||||||
 | 
					       $main_vbox->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $vbox = new Gtk::HBox( $false, 50 );
 | 
				
			||||||
 | 
					       $vbox->border_width( 10 );
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $vbox, $false, $true, 0 );
 | 
				
			||||||
 | 
					       $vbox->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       $vbox = new Gtk::VBox( $false, 10 );
 | 
				
			||||||
 | 
					       $vbox->border_width( 10 );
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $vbox, $true, $true, 0 );
 | 
				
			||||||
 | 
					       $vbox->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $table = new Gtk::Table( 2, 2, $false );
 | 
				
			||||||
 | 
					       $table->set_row_spacing( 0, 2 );
 | 
				
			||||||
 | 
					       $table->set_col_spacing( 0, 2 );
 | 
				
			||||||
 | 
					       $vbox->pack_start( $table, $true, $true, 0 );
 | 
				
			||||||
 | 
					       $table->show( );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       # Create the GtkText widget
 | 
				
			||||||
 | 
					       my $length;
 | 
				
			||||||
 | 
					       my $text = new Gtk::Text( undef, undef );
 | 
				
			||||||
 | 
					       $text->set_editable($true);
 | 
				
			||||||
 | 
					       my $start_length = $text->get_length();
 | 
				
			||||||
 | 
					       my $beginning_text = $text->get_chars(0,$length);
 | 
				
			||||||
 | 
					       $text->signal_connect("changed", sub { 
 | 
				
			||||||
 | 
						   $length =  $text->get_length();
 | 
				
			||||||
 | 
						   #my $changed_text = $text->get_chars(0,$length);
 | 
				
			||||||
 | 
						   print "$length\n"; } );
 | 
				
			||||||
 | 
					       $table->attach( $text, 0, 1, 0, 1,
 | 
				
			||||||
 | 
					                       [ 'expand', 'shrink', 'fill' ],
 | 
				
			||||||
 | 
					                       [ 'expand', 'shrink', 'fill' ],
 | 
				
			||||||
 | 
					                       0, 0 );
 | 
				
			||||||
 | 
					       $text->grab_focus();
 | 
				
			||||||
 | 
					       $text->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       $text->freeze();
 | 
				
			||||||
 | 
					       $text->insert( undef, undef, undef, $_[0]);
 | 
				
			||||||
 | 
					       $text->thaw();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       # Add a vertical scrollbar to the GtkText widget
 | 
				
			||||||
 | 
					       my $vscrollbar = new Gtk::VScrollbar( $text->vadj );
 | 
				
			||||||
 | 
					       $table->attach( $vscrollbar, 1, 2, 0, 1, 'fill',
 | 
				
			||||||
 | 
					                       [ 'expand', 'shrink', 'fill' ], 0, 0 );
 | 
				
			||||||
 | 
					       $vscrollbar->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #_______________________________________ 
 | 
				
			||||||
 | 
					       # Separator
 | 
				
			||||||
 | 
					       my $separator = new Gtk::HSeparator();
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $separator, $false, $true, 0 );
 | 
				
			||||||
 | 
					       $separator->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #_______________________________________ 
 | 
				
			||||||
 | 
					       # Check stage boxes
 | 
				
			||||||
 | 
					       # check | links & deps | space | create | test
 | 
				
			||||||
 | 
					       $vbox = new Gtk::HBox( $false, 0 );
 | 
				
			||||||
 | 
					       $vbox->border_width( 0 );
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $vbox, $false, $true, 0 );
 | 
				
			||||||
 | 
					       $vbox->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $check = new Gtk::CheckButton("Check");
 | 
				
			||||||
 | 
					       $vbox->pack_start( $check, $true, $true, 10 );
 | 
				
			||||||
 | 
					       show $check;       
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $dep = new Gtk::CheckButton("Links & Deps");
 | 
				
			||||||
 | 
					       $vbox->pack_start( $dep, $true, $true, 0 );
 | 
				
			||||||
 | 
					       show $dep;       
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $space = new Gtk::CheckButton("Space Left");
 | 
				
			||||||
 | 
					       $vbox->pack_start( $space, $true, $true, 0 );
 | 
				
			||||||
 | 
					       show $space;       
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $create = new Gtk::CheckButton("Create");
 | 
				
			||||||
 | 
					       $vbox->pack_start( $create, $true, $true, 0 );
 | 
				
			||||||
 | 
					       show $create;       
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $test = new Gtk::CheckButton("Test");
 | 
				
			||||||
 | 
					       $vbox->pack_start( $test, $true, $true, 0 );
 | 
				
			||||||
 | 
					       show $test;       
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #_______________________________________ 
 | 
				
			||||||
 | 
					       # Separator
 | 
				
			||||||
 | 
					       $separator = new Gtk::HSeparator();
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $separator, $false, $true, 0 );
 | 
				
			||||||
 | 
					       $separator->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #_______________________________________ 
 | 
				
			||||||
 | 
					       # Continue - Cancel - Save Buttons
 | 
				
			||||||
 | 
					       $vbox = new Gtk::HBox( $false, 10 );
 | 
				
			||||||
 | 
					       $vbox->border_width( 10 );
 | 
				
			||||||
 | 
					       $main_vbox->pack_start( $vbox, $false, $true, 0 );
 | 
				
			||||||
 | 
					       $vbox->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       my $button = new Gtk::Button( "Continue" );
 | 
				
			||||||
 | 
					       $button->signal_connect( 'clicked', 
 | 
				
			||||||
 | 
					       				sub { destroy $yard_window; } );
 | 
				
			||||||
 | 
					       $vbox->pack_start( $button, $true, $true, 0 );
 | 
				
			||||||
 | 
					       $button->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       $button = new Gtk::Button( "Close" );
 | 
				
			||||||
 | 
					       $button->signal_connect( 'clicked', 
 | 
				
			||||||
 | 
					       				sub { destroy $yard_window; } );
 | 
				
			||||||
 | 
					       $vbox->pack_start( $button, $true, $true, 0 );
 | 
				
			||||||
 | 
					       $button->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       $button = new Gtk::Button( "Save" );
 | 
				
			||||||
 | 
					       $button->signal_connect( 'clicked', 
 | 
				
			||||||
 | 
					       				sub { destroy $yard_window; } );
 | 
				
			||||||
 | 
					       $vbox->pack_start( $button, $true, $true, 0 );
 | 
				
			||||||
 | 
					       $button->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       show $yard_window;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} # end sub yard_box
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1;
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user