[Compbench-devel] CompBenchmarks++ compbenchmarks-ui.pl,NONE,1.1
Brought to you by:
xfred
From: Frederic T. <xf...@us...> - 2007-01-16 18:43:00
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27738 Added Files: compbenchmarks-ui.pl Log Message: First import. --- NEW FILE: compbenchmarks-ui.pl --- #!/usr/bin/perl -w -I../CBM-PI # ----------------------------------------------------------------------------- # $Id: compbenchmarks-ui.pl,v 1.1 2007/01/16 18:42:51 xfred Exp $ # # This is free software. # For details, see the GNU Public License in the COPYING file, or # Look http://www.fsf.org # ----------------------------------------------------------------------------- use strict; use Gtk2 "-init" ; use Glib qw/TRUE FALSE/; use CBM; my $VERSION = "0.5.0"; my $CBM = CBM::Init(); my $CBM_STATUS_PRECONFIGURED = 4; my $CBM_STATUS_NA = 0; my $CBM_STATUS_DOWNLOADED = 1; my %CBM_STATUS = (0 => 'Not installed', $CBM_STATUS_DOWNLOADED => 'Downloaded', 2 => 'Extracted', 3 => 'Installed & patched', $CBM_STATUS_PRECONFIGURED => 'Installed & preconfigured', 5 => 'Installed & configured', 6 => 'Installed & built', 7 => 'Installed & tested', 8 => 'Benchmarked'); my @PACKAGES; my $SELECTED_PACKAGE; my $GUI_MAINWINDOW; my $GUI_MAINWINDOW_EBOX; my $GUI_MAINNOTEBOOK; my $GUI_PACKAGE_SELECTOR; my $GUI_PACKAGE_NAME; my $GUI_PACKAGE_NAME2; my $GUI_PACKAGE_VERSION; my $GUI_PACKAGE_LANGUAGE; my $GUI_PACKAGE_SIZE; my $GUI_PACKAGE_SIZE2; my $GUI_PACKAGE_HOMEPAGE; my $GUI_PACKAGE_DESCRIPTION; my $GUI_PACKAGE_AUTHOR; my $GUI_PACKAGE_LICENSE; my $GUI_PACKAGE_TSIZE; my $GUI_PACKAGE_STATUS; my $GUI_PACKAGE_STATUS2; my $GUI_PACKAGE_MANAGECOMBO; my $GUI_PACKAGE_MANAGECOMBO_NUMBER = 0; my $GUI_STATUS_LABEL; my $GUI_STATUS_PROGRESS; my @BENCHMARKS; my $GUI_BENCHMARK_SELECTOR; my $GUI_BENCHMARK_TREE; my $GUI_BENCHMARK_NAME; my $GUI_BENCHMARK_DESCRIPTION; my $SELECTED_BENCHMARK; my $PACKAGE_FIRST; my $BENCHMARK_FIRST; $CBM->packageList(); my $n = $CBM->packageNumber(); my $i; for($i=0;$i<$n;$i++) { push(@PACKAGES, $CBM->Package($i)); } sub supported_packages_frame { my $parent = shift; my $p; my $table = Gtk2::Table->new(1+1,1,FALSE); my $frame = Gtk2::Frame->new("Supported packages"); my $sw = Gtk2::ScrolledWindow->new (undef, undef); $sw->set_shadow_type ('etched-out'); $sw->set_policy ('automatic', 'automatic'); $sw->set_size_request (50, 50); $sw->set_border_width(5); my $tree_store = Gtk2::TreeStore->new(qw/Glib::String/); my $first = 1; foreach $p (@PACKAGES) { my $pn = $p->packageName(); my $iter = $tree_store->append(undef); $tree_store->set ($iter,0, "$pn"); if ($first) { $PACKAGE_FIRST=$iter; } $first=0; } $GUI_PACKAGE_SELECTOR = Gtk2::TreeView->new($tree_store); my $select = $GUI_PACKAGE_SELECTOR->get_selection(); my $tree_column = Gtk2::TreeViewColumn->new(); $tree_column->set_title("Package"); $select->signal_connect("changed", \&package_update) ; my $renderer = Gtk2::CellRendererText->new(); $tree_column->pack_start ($renderer, FALSE); $tree_column->add_attribute($renderer, text => 0); $GUI_PACKAGE_SELECTOR->append_column ($tree_column); # $GUI_PACKAGE_SELECTOR->set_search_column(0); # $tree_column->set_sort_column_id(0); $GUI_PACKAGE_SELECTOR->set_reorderable(FALSE); $GUI_PACKAGE_SELECTOR->show(); $sw->add($GUI_PACKAGE_SELECTOR); $sw->show(); $table->attach_defaults($sw,0,1,0,1); $frame->add($table); $frame->show(); # $table->add($frame); $table->show(); $parent->attach_defaults($frame,0,1,0,1); my $nb = Gtk2::Notebook->new(); # $table->add($nb); $table->attach_defaults($nb, 1, 2, 0, 1); $nb->show(); package_description_tab($nb); package_management_tab($nb); } sub gui_status_update { my $mode = shift; my $xlabel = shift; my $pc = shift; my $label; my $show_progress_bar = 0; my $arrow; $label="Status : "; if ($mode =~ /^install-/) { $xlabel=$SELECTED_PACKAGE->packageName() . "..."; } if ($mode eq 'idle') { $label.="Idle"; $arrow=Gtk2::Gdk::Cursor->new('GDK_LEFT_PTR'); } elsif ($mode eq 'uninstall') { $label.="Uninstalling package "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-resetcontext') { $label.="Reset context for "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-download') { $label.="Downloading "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-fetch') { $label.="Copying local archive for "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-extract') { $label.="Extracting "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-patch') { $label.="Patching "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } elsif ($mode eq 'install-preconfigure') { $label.="Pre-configuring "; $arrow=Gtk2::Gdk::Cursor->new('GDK_WATCH'); } if (defined($xlabel)) { $label.=$xlabel; } if (defined($arrow)) { $GUI_MAINWINDOW_EBOX->window->set_cursor($arrow); # Gtk2::Gdk->set_cursor($arrow); } if (! $show_progress_bar) { $GUI_STATUS_PROGRESS->hide(); } else { $GUI_STATUS_PROGRESS->show(); } $GUI_STATUS_LABEL->set_text($label); $GUI_STATUS_LABEL->show(); while (Gtk2->events_pending()) { Gtk2->main_iteration(); } } sub package_description_tab { my $parent = shift; my $frame = Gtk2::Frame->new(); $frame->set_border_width(5); $frame->set_shadow_type('in'); $frame->show(); my $table = Gtk2::Table->new(1+1,9,FALSE); # my $tag = Gtk2::TextTag->new(); # $tag->set_property('justification' => 'left'); # $table->add($tag); my $name_l = Gtk2::Label->new("Package :"); $table->attach_defaults($name_l,0,1,0,1); $name_l->show(); $GUI_PACKAGE_NAME = Gtk2::Label->new("No package selected."); $table->attach_defaults($GUI_PACKAGE_NAME,1,2,0,1); $GUI_PACKAGE_NAME->show(); my $ver_l = Gtk2::Label->new("Version :"); $table->attach_defaults($ver_l,0,1,1,2); $ver_l->show(); $GUI_PACKAGE_VERSION = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_VERSION,1,2,1,2); $GUI_PACKAGE_VERSION->show(); my $lang_l = Gtk2::Label->new("Language :"); $table->attach_defaults($lang_l,0,1,2,3); $lang_l->show(); $GUI_PACKAGE_LANGUAGE = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_LANGUAGE,1,2,2,3); $GUI_PACKAGE_LANGUAGE->show(); my $size_l = Gtk2::Label->new("Size :"); $table->attach_defaults($size_l,0,1,3,4); $size_l->show(); $GUI_PACKAGE_SIZE = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_SIZE,1,2,3,4); $GUI_PACKAGE_SIZE->show(); my $home_l = Gtk2::Label->new("Homepage :"); $table->attach_defaults($home_l,0,1,4,5); $home_l->show(); $GUI_PACKAGE_HOMEPAGE = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_HOMEPAGE,1,2,4,5); $GUI_PACKAGE_HOMEPAGE->show(); my $auth_l = Gtk2::Label->new("Author :"); $table->attach_defaults($auth_l,0,1,5,6); $auth_l->show(); $GUI_PACKAGE_AUTHOR = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_AUTHOR,1,2,5,6); $GUI_PACKAGE_AUTHOR->show(); my $lic_l = Gtk2::Label->new("License :"); $table->attach_defaults($lic_l,0,1,6,7); $lic_l->show(); $GUI_PACKAGE_LICENSE = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_LICENSE,1,2,6,7); $GUI_PACKAGE_LICENSE->show(); my $status_l = Gtk2::Label->new("Status :"); $table->attach_defaults($status_l,0,1,7,8); $status_l->show(); $GUI_PACKAGE_STATUS = Gtk2::Label->new(""); $table->attach_defaults($GUI_PACKAGE_STATUS,1,2,7,8); $GUI_PACKAGE_STATUS->show(); my $desc_l = Gtk2::Label->new("Description :"); $table->attach_defaults($desc_l,0,1,8,9); $desc_l->show(); my $sw = Gtk2::ScrolledWindow->new (undef, undef); $sw->set_shadow_type ('etched-out'); $sw->set_policy ('automatic', 'automatic'); $sw->set_size_request (300, 200); $sw->set_border_width(5); $table->attach_defaults($sw,1,2,8,9); $table->show(); my $buf = Gtk2::TextBuffer->new(); $buf->set_text("Select a package..."); $GUI_PACKAGE_DESCRIPTION = Gtk2::TextView->new_with_buffer($buf); $GUI_PACKAGE_DESCRIPTION->set_wrap_mode('word'); $GUI_PACKAGE_DESCRIPTION->set_editable(FALSE); $sw->add($GUI_PACKAGE_DESCRIPTION); $sw->show(); $GUI_PACKAGE_DESCRIPTION->show(); # $parent->attach_defaults($frame, 1, 2, 0, 1); $parent->append_page($frame, "Description"); $frame->add($table); } sub package_management_tab { my $parent = shift; my $frame = Gtk2::Frame->new(); $frame->set_border_width(5); $frame->set_shadow_type('in'); $frame->show(); my $table = Gtk2::Table->new(1+1,6,FALSE); # my $tag = Gtk2::TextTag->new(); # $tag->set_property('justification' => 'left'); # $table->add($tag); my $name_l = Gtk2::Label->new("Package :"); $table->attach($name_l,0,1,0,1, 'fill', 'shrink', 0, 0); $name_l->show(); $GUI_PACKAGE_NAME2 = Gtk2::Label->new("No package selected."); $table->attach($GUI_PACKAGE_NAME2,1,2,0,1, 'fill', 'shrink', 0, 0); $GUI_PACKAGE_NAME2->show(); my $size_l = Gtk2::Label->new("Package size :"); $table->attach($size_l,0,1,1,2, 'fill', 'shrink', 0, 0); $size_l->show(); $GUI_PACKAGE_SIZE2 = Gtk2::Label->new(""); $table->attach($GUI_PACKAGE_SIZE2,1,2,1,2, 'fill', 'shrink', 0, 0); $GUI_PACKAGE_SIZE2->show(); my $tsize_l = Gtk2::Label->new("Extra data size :"); $table->attach($tsize_l,0,1,3,4, 'fill', 'shrink', 0, 0); $tsize_l->show(); $GUI_PACKAGE_TSIZE = Gtk2::Label->new(""); $table->attach($GUI_PACKAGE_TSIZE,1,2,3,4, 'fill', 'shrink', 0, 0); $GUI_PACKAGE_TSIZE->show(); my $status_l = Gtk2::Label->new("Status :"); $table->attach($status_l,0,1,4,5, 'fill', 'shrink', 0, 0); $status_l->show(); $GUI_PACKAGE_STATUS2 = Gtk2::Label->new(""); $table->attach($GUI_PACKAGE_STATUS2,1,2,4,5, 'fill', 'shrink', 0, 0); $GUI_PACKAGE_STATUS2->show(); $GUI_PACKAGE_MANAGECOMBO = Gtk2::ComboBox->new_text; $GUI_PACKAGE_MANAGECOMBO->append_text("Keep in current state"); $GUI_PACKAGE_MANAGECOMBO->set_active(0); $table->attach($GUI_PACKAGE_MANAGECOMBO,0,2,5,6, 'fill', 'shrink', 0, 0); $GUI_PACKAGE_MANAGECOMBO->show(); $GUI_PACKAGE_MANAGECOMBO_NUMBER++; $GUI_PACKAGE_MANAGECOMBO->signal_connect("changed", \&package_management) ; $frame->add($table); $table->show(); $frame->show(); $parent->append_page($frame, "Management"); } sub nice_bytes { my $b = shift; my $u = 0; my @u = ('b.', 'kb.', 'Mb.'); if (! $b) { return("0b."); } while ($b>1024) { if ($u>=2) { last; } $b/=1024.0; $u++; } return(sprintf("%0.2f", $b) . "$u[$u]"); } sub package_update { my $widget = shift; my $selected; my $package; my $txt = ""; my $status; if (defined($widget)) { $selected=$widget->get_selected_rows(); if (!defined($selected)) { $package=$PACKAGES[0]; } else { $package=$PACKAGES[$selected->to_string]; } $SELECTED_PACKAGE=$package; } else { $package=$SELECTED_PACKAGE; } $txt=$package->packageComments(); my $buf = Gtk2::TextBuffer->new(); $buf->set_text($txt); $GUI_PACKAGE_NAME->set_text($package->packageName()); $GUI_PACKAGE_NAME2->set_text($package->packageName()); $GUI_PACKAGE_VERSION->set_text($package->packageVersion()); $GUI_PACKAGE_SIZE->set_text(nice_bytes($package->packageSize())); $GUI_PACKAGE_SIZE2->set_text(nice_bytes($package->packageSize())); $GUI_PACKAGE_HOMEPAGE->set_text($package->homePage()); $GUI_PACKAGE_LANGUAGE->set_text($package->language()); $GUI_PACKAGE_AUTHOR->set_text($package->author()); $GUI_PACKAGE_LICENSE->set_text($package->license()); $GUI_PACKAGE_DESCRIPTION->set_buffer($buf); $GUI_PACKAGE_TSIZE->set_text(nice_bytes($package->benchmarkSize()-$package->packageSize())); $status=$package->getStatus(); $GUI_PACKAGE_STATUS->set_text($CBM_STATUS{$status}); $GUI_PACKAGE_STATUS2->set_text($CBM_STATUS{$status}); while ($GUI_PACKAGE_MANAGECOMBO_NUMBER--) { $GUI_PACKAGE_MANAGECOMBO->remove_text(0); } $GUI_PACKAGE_MANAGECOMBO_NUMBER=0; $GUI_PACKAGE_MANAGECOMBO->append_text("Keep in current state"); $GUI_PACKAGE_MANAGECOMBO_NUMBER++; if ($status>=$CBM_STATUS_DOWNLOADED) { $GUI_PACKAGE_MANAGECOMBO->append_text("Uninstall"); $GUI_PACKAGE_MANAGECOMBO_NUMBER++; } if ($status < $CBM_STATUS_PRECONFIGURED) { if (defined($package->downloadURL()) && ($package->downloadURL() ne '')) { $GUI_PACKAGE_MANAGECOMBO->append_text("Install"); $GUI_PACKAGE_MANAGECOMBO_NUMBER++; } $GUI_PACKAGE_MANAGECOMBO->append_text("Install from a local archive"); $GUI_PACKAGE_MANAGECOMBO_NUMBER++; } $GUI_PACKAGE_MANAGECOMBO->show(); $GUI_PACKAGE_MANAGECOMBO->set_active(0); } sub package_management_common_install { gui_status_update('install-extract'); $SELECTED_PACKAGE->Extract(); gui_status_update('install-patch'); $SELECTED_PACKAGE->Patch(); gui_status_update('install-preconfigure'); $SELECTED_PACKAGE->PreConfigure(); gui_status_update('idle'); package_update(undef); } sub package_management { my $widget = shift; my $action = $widget->get_active_text(); my $do_common_install = 0; my $status_old = $SELECTED_PACKAGE->getStatus(); if ($action eq 'Uninstall') { gui_status_update('uninstall'); $SELECTED_PACKAGE->Uninstall(); gui_status_update('idle'); package_update(undef); } elsif ($action eq 'Install') { gui_status_update('install-resetcontext'); $SELECTED_PACKAGE->resetContext(); gui_status_update('install-download'); $SELECTED_PACKAGE->Download(); $do_common_install=1; } elsif ($action eq 'Install from a local archive') { my $file_dialog = Gtk2::FileSelection->new("Please select archive for " . $SELECTED_PACKAGE->packageName()) ; $file_dialog->signal_connect('destroy', \&package_archive_dialog_destroy, $file_dialog); $file_dialog->ok_button->signal_connect('clicked', \&package_archive_selected, $file_dialog ); $file_dialog->cancel_button->signal_connect('clicked', \&package_archive_dialog_destroy, $file_dialog); $file_dialog->show(); } if ($do_common_install) { package_management_common_install(); } if ($SELECTED_PACKAGE->getStatus()!=$status_old) { benchmarks_update(); benchmark_update_info(); } } sub benchmarks_update { my $p; my $first = 1; @BENCHMARKS=(); $GUI_BENCHMARK_TREE->clear(); foreach $p (@PACKAGES) { if ($p->getStatus()<$CBM_STATUS_PRECONFIGURED) { next; } my $n = $p->benchmarkNumber(); my $i; for($i=0; $i<$n; $i++) { push(@BENCHMARKS, $p->Benchmark($i)); } } my $b; foreach $b (@BENCHMARKS) { my $bn = $b->benchmarkName(); my $iter = $GUI_BENCHMARK_TREE->append(undef); $GUI_BENCHMARK_TREE->set ($iter,0, "$bn"); if ($first) { $BENCHMARK_FIRST=$iter; } $first=0; } } sub benchmark_update_info { my $widget = shift; my $selected; my $benchmark; my $txt = ""; my $status; if (defined($widget)) { $selected=$widget->get_selected_rows(); if (!defined($selected)) { $benchmark=$BENCHMARKS[0]; } else { $benchmark=$BENCHMARKS[$selected->to_string]; } $SELECTED_BENCHMARK=$benchmark; } else { return; # $benchmark=$SELECTED_BENCHMARK; } if (!defined($benchmark)) { $GUI_BENCHMARK_NAME->set_text("No benchmark selected."); my $buf = Gtk2::TextBuffer->new(); $buf->set_text(""); $GUI_PACKAGE_DESCRIPTION->set_buffer($buf); return; } $GUI_BENCHMARK_NAME->set_text($benchmark->benchmarkName()); my $buf = Gtk2::TextBuffer->new(); $txt=$benchmark->benchmarkComments(); $buf->set_text($txt); $GUI_BENCHMARK_DESCRIPTION->set_buffer($buf); } sub package_archive_selected { my ( $widget, $file_selection ) = @_ ; my $file = $file_selection->get_filename() ; my $status_old = $SELECTED_PACKAGE->getStatus(); package_archive_dialog_destroy(undef, $file_selection); gui_status_update('install-resetcontext'); $SELECTED_PACKAGE->resetContext(); gui_status_update('install-fetch'); $SELECTED_PACKAGE->Fetch($file); package_management_common_install(); if ($SELECTED_PACKAGE->getStatus()!=$status_old) { benchmarks_update(); benchmark_update_info(); } } sub package_archive_dialog_destroy { my $window = shift; my $widget = shift; $widget->destroy(); package_update(undef); } sub main_widget { my $window = shift; my $main_table = Gtk2::Table->new(1,2,FALSE); $GUI_MAINWINDOW_EBOX = Gtk2::EventBox->new; $GUI_STATUS_LABEL = Gtk2::Label->new(""); $GUI_STATUS_PROGRESS = Gtk2::ProgressBar->new(); $GUI_MAINNOTEBOOK = Gtk2::Notebook->new(); $main_table->attach_defaults($GUI_MAINNOTEBOOK,0,1,0,1); my $table = Gtk2::Table->new(1,2,FALSE); $GUI_MAINWINDOW_EBOX->add($main_table); $window->add($GUI_MAINWINDOW_EBOX); $GUI_MAINWINDOW_EBOX->realize(); $GUI_MAINNOTEBOOK->append_page($table, "Package"); my $bottom = Gtk2::Frame->new(); $bottom->set_border_width(5); $bottom->set_shadow_type('in'); $bottom->show(); $main_table->attach_defaults($bottom, 0, 1, 1, 2); my $status_t = Gtk2::Table->new(2,1,FALSE); $bottom->add($status_t); $status_t->show(); $status_t->attach_defaults($GUI_STATUS_LABEL, 0, 1, 0, 1); $GUI_STATUS_LABEL->show(); $status_t->attach_defaults($GUI_STATUS_PROGRESS, 1, 2, 0, 1); $GUI_STATUS_PROGRESS->hide(); return($table); } sub benchmarks_frame { my $parent = shift; my $frame = Gtk2::Frame->new("Benchmarks"); my $table_main = Gtk2::Table->new(1+1,1,FALSE); my $sw = Gtk2::ScrolledWindow->new (undef, undef); $sw->set_shadow_type ('etched-out'); $sw->set_policy ('automatic', 'automatic'); $sw->set_size_request (50, 50); $sw->set_border_width(5); $GUI_BENCHMARK_TREE = Gtk2::TreeStore->new(qw/Glib::String/); $GUI_MAINNOTEBOOK->append_page($frame, "Benchmarks' selection"); $GUI_BENCHMARK_SELECTOR = Gtk2::TreeView->new($GUI_BENCHMARK_TREE); my $select = $GUI_BENCHMARK_SELECTOR->get_selection(); $select->signal_connect("changed", \&benchmark_update_info); my $tree_column = Gtk2::TreeViewColumn->new(); $tree_column->set_title("Benchmark"); benchmarks_update(); # $select->signal_connect("changed", \&package_update) ; my $renderer = Gtk2::CellRendererText->new(); $tree_column->pack_start ($renderer, FALSE); $tree_column->add_attribute($renderer, text => 0); $GUI_BENCHMARK_SELECTOR->append_column ($tree_column); # $GUI_BENCHMARK_SELECTOR->set_search_column(0); # $tree_column->set_sort_column_id(0); $GUI_BENCHMARK_SELECTOR->set_reorderable(FALSE); $GUI_BENCHMARK_SELECTOR->show(); $frame->show(); # $table->add($frame); $table_main->attach_defaults($sw, 0, 1, 0, 1); $sw->show(); $sw->add($GUI_BENCHMARK_SELECTOR); $frame->add($table_main); $table_main->show(); my $table = Gtk2::Table->new(1+1,3,FALSE); my $sw_d = Gtk2::ScrolledWindow->new (undef, undef); $sw_d->set_shadow_type ('etched-out'); $sw_d->set_policy ('automatic', 'automatic'); $sw_d->set_size_request (50, 50); $sw_d->set_border_width(5); my $name_l = Gtk2::Label->new("Benchmark :"); $table->attach_defaults($name_l,0,1,0,1); $name_l->show(); $GUI_BENCHMARK_NAME = Gtk2::Label->new("No benchmark selected."); $table->attach_defaults($GUI_BENCHMARK_NAME,1,2,0,1); $GUI_BENCHMARK_NAME->show(); my $desc_l = Gtk2::Label->new("Description :"); $table->attach_defaults($desc_l,0,1,1,2); $desc_l->show(); my $buf = Gtk2::TextBuffer->new(); $buf->set_text(""); $GUI_BENCHMARK_DESCRIPTION = Gtk2::TextView->new_with_buffer($buf); $GUI_BENCHMARK_DESCRIPTION->set_wrap_mode('word'); $GUI_BENCHMARK_DESCRIPTION->set_editable(FALSE); $sw_d->show(); $sw_d->add($GUI_BENCHMARK_DESCRIPTION); $GUI_BENCHMARK_DESCRIPTION->show(); $table->attach_defaults($sw_d,1,2,1,2); $table_main->attach_defaults($table, 1, 2, 0, 1); # package_description_tab($nb); # package_management_tab($nb); } sub Destroy_Window { Gtk2->main_quit; $CBM->done(); return FALSE; } $GUI_MAINWINDOW = Gtk2::Window->new('toplevel'); $GUI_MAINWINDOW->set_title("CompBenchmarks $VERSION"); $GUI_MAINWINDOW->signal_connect("destroy", \&Destroy_Window ) ; my $mw = main_widget($GUI_MAINWINDOW); $mw->set_border_width(5); # $ebox->show(); supported_packages_frame($mw); benchmarks_frame($mw); $GUI_MAINWINDOW->show_all() ; gui_status_update('idle'); $GUI_PACKAGE_SELECTOR->get_selection()->select_iter($PACKAGE_FIRST); if (defined($BENCHMARK_FIRST)) { $GUI_BENCHMARK_SELECTOR->get_selection()->select_iter($BENCHMARK_FIRST); } Gtk2->main ; |