X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/snom-frontend/blobdiff_plain/3cb02741a3740f1ebfbc60e20ff1fde79429e84b..9307ec52aff2dbbd2fd1feb1a4b46ab53a376ce7:/snom.pl diff --git a/snom.pl b/snom.pl index 6f580ab..34d61a2 100755 --- a/snom.pl +++ b/snom.pl @@ -1,5 +1,4 @@ #!/bin/sh -#$Id: snom.pl,v 1.44 2006/05/24 14:31:16 michael Exp $ PATH=/opt/csw/bin:/opt/local/bin:/usr/bin:/bin exec perl -w -x "$0" "$@" @@ -201,7 +200,55 @@ $mainbox->show(); +######################################################### +# +# Tray Icon +# +######################################################### +sub quit_cb { + my ($widget, $status_icon) = @_; + + $status_icon->set_visible(0) if $status_icon; + Gtk2->main_quit(); +} + +sub popup_menu_cb { + my ($widget, $button, $time, $menu) = @_; + + if ($button == 3) { + my ($x, $y, $push_in) + = Gtk2::StatusIcon::position_menu($menu, $widget); + + $menu->show_all(); + $menu->popup( undef, undef, + sub{return ($x,$y,0)} , + undef, 0, $time ); + } +} + +sub activate_icon_cb { + if ($window->visible){ + $window->hide(); + } else { + $window->show(); + } +} + +my $status_icon = Gtk2::StatusIcon->new_from_file('snom.ico'); +my $menu = Gtk2::Menu->new(); + +my $menuItem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit'); +$menuItem->signal_connect('activate', \&quit_cb, $status_icon); +$menu->append($menuItem); + +$status_icon->set_tooltip(" Snom Tray "); +$status_icon->signal_connect('activate', \&activate_icon_cb); +$status_icon->signal_connect('popup-menu', \&popup_menu_cb, $menu); +$status_icon->set_visible(1); +########################################################################333 + $window->add($mainbox); +$window->set_icon_from_file('snom.ico'); $window->show(); $g_key{OK}->grab_focus(); @@ -389,18 +436,24 @@ sub UpdatePhoneInfo } my @lines=split("\n", $response->content()); my $num = 0; + my $activated = 0; + foreach (@lines) { chomp; # # # - if (m/^\