diff options
-rwxr-xr-x | perl-install/standalone/net_monitor | 92 |
1 files changed, 67 insertions, 25 deletions
diff --git a/perl-install/standalone/net_monitor b/perl-install/standalone/net_monitor index 8cf3ca160..8ed2523b7 100755 --- a/perl-install/standalone/net_monitor +++ b/perl-install/standalone/net_monitor @@ -39,12 +39,12 @@ my $window1 = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window -toplevel $window1->signal_connect ( delete_event => sub { Gtk->exit(0); }); $window1->set_position(1); $window1->set_title(_("Network Monitoring")); -#$window1->set_policy(0, 0, 0); +$window1->set_policy(1, 1, 1); $window1->set_border_width(5); -#$::isEmbedded or $window1->set_usize(600, 200); +#$::isEmbedded or $window1->set_usize(580, 320); my $colorr = my_gtk::gtkcolor(50400, 655, 20000); -my $colort = my_gtk::gtkcolor(55400, 65400, 655); +my $colort = my_gtk::gtkcolor(55400, 55400, 655); my $colora = my_gtk::gtkcolor(655, 50400, 655); my $isconnected=0; my @interfaces; @@ -93,12 +93,16 @@ gtkadd($window1, ), 0, gtksignal_connect(my $button_connect = new Gtk::Button(), clicked => \&connection), 0, new Gtk::HSeparator, - 0, gtksignal_connect(my $button_close = new Gtk::Button(_("Close")), clicked => sub { Gtk->exit(0) }) + 0, gtkpack(new Gtk::HBox(0,5), + gtksignal_connect(new Gtk::Button(_("Logs")), clicked => sub { system("/usr/sbin/logdrake --file /var/log/messages &") }), + gtksignal_connect(my $button_close = new Gtk::Button(_("Close")), clicked => sub { Gtk->exit(0) }), + ) ) ), 0, my $statusbar = new Gtk::Statusbar ) ); +$window1->show_all; $window1->realize; $combo1->entry->signal_connect( 'changed', sub { network::netconnect::set_profile($netcnx, $combo1->entry->get_text()); @@ -121,10 +125,10 @@ $button_connect->add(gtkpack__(new Gtk::VBox(0,3), $statusbar->push(1, _("Not connected")); $window1->show_all(); #$window1->set_policy (1, 1, 1); -update(); -my ($labelr, $labelt); my $time_tag = Gtk->timeout_add(1000, \&rescan); my $time_tag2 = Gtk->timeout_add(5000, \&update); +update(); + rescan(); connection() if ($connect && ! $isconnected); Gtk->main; @@ -189,7 +193,7 @@ sub rescan { push(@{$monitor->{$intf}{stack_r}}, $recv - $refr); shift @{$monitor->{$intf}{stack_r}} if @{$monitor->{$intf}{stack_r}} > 250; - $labelr->set(formatXiB($recv - $monitor->{$intf}{initialr})); + $monitor->{$intf}{labelr}->set(formatXiB($recv - $monitor->{$intf}{initialr})); $monitor->{$intf}{referencer} = $recv; $monitor->{$intf}{transmita} += $transmit - $reft; @@ -202,7 +206,7 @@ sub rescan { push(@{$monitor->{$intf}{stack_t}}, $transmit - $reft); shift @{$monitor->{$intf}{stack_t}} if @{$monitor->{$intf}{stack_t}} > 250; - $labelt->set(formatXiB($transmit - $monitor->{$intf}{initialt})); + $monitor->{$intf}{labelt}->set(formatXiB($transmit - $monitor->{$intf}{initialt})); $monitor->{$intf}{referencet} = $transmit; draw_monitor($monitor->{$intf}); @@ -240,6 +244,32 @@ sub get_val { @ret; } +sub change_color { + my ($color) = @_; + my $window = new Gtk::Window -toplevel; + my $doit; + $window->signal_connect ( delete_event => sub { Gtk->main_quit() }); + $window->set_position(1); + $window->set_title(_("Color configuration")); + $window->set_border_width(5); + gtkadd(gtkset_modal($window,1), + gtkpack_(new Gtk::VBox(0,5), + 1, my $colorsel = new Gtk::ColorSelection, + 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -end), + gtksignal_connect(new Gtk::Button(_("OK")), clicked => sub { $doit=1; Gtk->main_quit() }), + gtksignal_connect(new Gtk::Button(_("Cancel")), clicked => sub { Gtk->main_quit() }), + ) + ) + ); + $colorsel->set_color($color->red()/65535, $color->green()/65535, $color->blue()/65535, $color->pixel()); + $window->show_all(); + Gtk->main; + $window->destroy(); + $doit or return $color; + my (@color) = $colorsel->get_color(); + my_gtk::gtkcolor($color[0]*65535, $color[1]*65535, $color[2]*65535); +} + sub update { my @intfs = get_val(); if($combo1->entry->get_text ne ($netcnx->{PROFILE} ? $netcnx->{PROFILE} : "default")) { @@ -253,29 +283,41 @@ sub update { $monitor->{$intf}{initialt} = $monitor->{$intf}{val}->[8]; $notebook->append_page(gtkshow(my $page = gtkpack_(new Gtk::VBox(0,0), 0, gtkpack__(gtkset_border_width(new Gtk::HBox(0,0), 5), - gtksize(my $darea = $monitor->{$intf}{darea} = new Gtk::DrawingArea(),300, 150)), + gtksize($monitor->{$intf}{darea} = new Gtk::DrawingArea(),300, 150)), + 0, gtkpack__(gtkset_border_width(new Gtk::HBox(0,5), 5), + gtksignal_connect(my $button_t = new Gtk::Button(), clicked => sub { + $colort = change_color($colort); + $gct->set_foreground($colort); + $_[0]->draw(undef); + }), + _("sent: "), $monitor->{$intf}{labelt} = new Gtk::Label("0")), 0, gtkpack__(gtkset_border_width(new Gtk::HBox(0,5), 5), - gtksize(my $dareat = new Gtk::DrawingArea(),15, 15), - _("sent: "), $labelt = new Gtk::Label("0")), + gtksignal_connect(my $button_r = new Gtk::Button(), clicked => sub { + $colorr = change_color($colorr); + $gcr->set_foreground($colorr); + $_[0]->draw(undef); + }), + _("received: "), $monitor->{$intf}{labelr} = new Gtk::Label("0")), 0, gtkpack__(gtkset_border_width(new Gtk::HBox(0,5), 5), - gtksize(my $darear = new Gtk::DrawingArea(),15, 15), - _("received: "), $labelr = new Gtk::Label("0")), - )), + gtksignal_connect(my $button_a = new Gtk::Button(), clicked => sub { + $colora = change_color($colora); + $gca->set_foreground($colora); + $_[0]->draw(undef); + }), + _("average")) + )), new Gtk::Label($intf)); - $dareat->signal_connect( expose_event => sub { - $dareat->window->draw_rectangle ($gct, 1, 0, 0, 15, 15); - }); - $darear->signal_connect( expose_event => sub { - $darear->window->draw_rectangle ($gcr, 1, 0, 0, 15, 15); - }); + foreach my $i ([$button_t, $gct],[$button_r, $gcr],[$button_a, $gca]) { + $i->[0]->add(gtksignal_connect(gtkshow(gtksize(gtkset_usize(new Gtk::DrawingArea(), 10, 10), 10, 10)), expose_event => sub{ $_[0]->window->draw_rectangle ($i->[1], 1, 0, 0, 10, 10)} )); + } $notebook->set_page($notebook->page_num($page)); $monitor->{$intf}{page}=($notebook->page_num($page)); - $monitor->{$intf}{pixmap_db} = new Gtk::Gdk::Pixmap($darea->window, 300, 150); + $monitor->{$intf}{pixmap_db} = new Gtk::Gdk::Pixmap($monitor->{$intf}{darea}->window, 300, 150); $monitor->{$intf}{referencer} = $monitor->{$intf}{val}->[0]; $monitor->{$intf}{referencet} = $monitor->{$intf}{val}->[8]; $monitor->{$intf}{pixmap_db}->draw_rectangle ($monitor->{$intf}{darea}->style->black_gc, 1, 0, 0, 300, 150); - $darea->signal_connect( expose_event => sub { - $darea->window->draw_pixmap ($darea->style->bg_gc('normal'), + $monitor->{$intf}{darea}->signal_connect( expose_event => sub { + $monitor->{$intf}{darea}->window->draw_pixmap ($monitor->{$intf}{darea}->style->bg_gc('normal'), $monitor->{$intf}{pixmap_db}, 0, 0, 0, 0, 300, 150); }); } @@ -320,7 +362,7 @@ sub draw_monitor { if($_ != -1) { if( !defined $av1) { $av1 = $_ } else { defined $av2 or $av2 = $_ } if ($av1 && $av2) { - $o->{pixmap_db}->draw_line($gca, $step-10, $av1*150/$ech, $step, $av2*150/$ech); + $o->{pixmap_db}->draw_line($gca, $step-15, $av1*150/$ech, $step-5, $av2*150/$ech); $av1 = $av2; undef $av2; $last_a = $step-50; @@ -339,7 +381,7 @@ sub draw_monitor { if($_ != -1) { if(!defined $av1) { $av1 = $_ } else { defined $av2 or $av2 = $_ } if ((defined $av1) && (defined $av2)) { - $o->{pixmap_db}->draw_line($gca, $step-10, 151-$av1*150/$ech, $step, 151-$av2*150/$ech); + $o->{pixmap_db}->draw_line($gca, $step-15, 151-$av1*150/$ech, $step-5, 151-$av2*150/$ech); $av1 = $av2; undef $av2; } |