my %g_arrows;
my $g_host = Gtk2::ComboBox->new_text();
my $g_identity = Gtk2::ComboBox->new_text();
+my $cbextern = Gtk2::CheckButton->new("extern");
my $ua = LWP::UserAgent->new;
open(INIFILE,"<$ENV{HOME}/.snomrc") || die("can't open config: $ENV{HOME}/.snomrc: $!");
$window->set_title("snom");
$window->signal_connect(delete_event => \&CloseAppWindow);
$window->signal_connect(destroy => sub { Gtk2->main_quit; });
+
+
my $kphandler = $window->signal_connect(key_press_event => \&KBDInput);
$window->set_border_width(15);
$window->set_resizable(FALSE);
$display->signal_connect(leave_notify_event => \&DisplayMouseOver, FALSE);
$display->show();
-my $cbextern = Gtk2::CheckButton->new("extern");
-$cbextern->show();
-
my $dialbox = Gtk2::HBox->new(0, 30);
$dialbox->pack_start($display, 0, 0, 0);
$dialbox->pack_start($cbextern, 0, 0, 0);
}
}
-my $status_icon = Gtk2::StatusIcon->new_from_file($Bin.'/snom.ico');
-my $menu = Gtk2::Menu->new();
+sub minimize_to_try{
+ my ($w, $event) = @_;
+ if ($event->changed_mask & [ 'iconified', ]){
+ $window->hide();
+ # Needs to be deiconified after hiding, otherwise show will not behave as expected.
+ $window->deiconify();
+ }
+}
-my $menuItem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit');
-$menuItem->signal_connect('activate', \&quit_cb, $status_icon);
-$menu->append($menuItem);
+my $status_icon = Gtk2::StatusIcon->new_from_file($Bin.'/snom.ico');
+if($status_icon->is_embedded){
-$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);
+ 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);
+
+ $window->signal_connect('window-state-event',\&minimize_to_try);
+}
########################################################################333
$window->add($mainbox);
{
my ($entry) = @_;
my ($num) = $entry->get_text();
- if ($cbextern->get_active){
- snom_number("09".$num)
- } else {
- snom_number($num);
+
+ if ($cbextern->get_active && defined(${$Config{$sections[$g_host->get_active]}}{extern})) {
+ $num = ${$Config{$sections[$g_host->get_active]}}{extern} . $num;
}
+
+ snom_number($num);
return TRUE;
}
sub UpdatePhoneInfo
{
+ if (defined(${$Config{$sections[$g_host->get_active]}}{extern})) {
+ $cbextern->show();
+ } else {
+ $cbextern->hide();
+ }
+
my $req = HTTP::Request->new(GET => "http://".${$Config{$sections[$g_host->get_active]}}{host}."/");
my $response = $ua->request($req);