App-ClusterSSH
view release on metacpan or search on metacpan
lib/App/ClusterSSH.pm view on Meta::CPAN
$windows{main_window}->update();
select( undef, undef, undef, 0.2 ); #sleep for a mo
$windows{main_window}->withdraw
if $windows{main_window}->state ne "withdrawn";
# Sleep for a moment to give WM time to bring console back
select( undef, undef, undef, 0.5 );
if ( $self->config->{menu_send_autotearoff} ) {
$menus{send}->menu->tearOffMenu()->raise;
}
if ( $self->config->{menu_host_autotearoff} ) {
$menus{hosts}->menu->tearOffMenu()->raise;
}
$windows{main_window}->deiconify;
$windows{main_window}->raise;
$windows{main_window}->focus( -force );
$windows{text_entry}->focus( -force );
$self->config->{internal_previous_state} = "normal";
# fvwm seems to need this (Debian #329440)
lib/App/ClusterSSH.pm view on Meta::CPAN
my ($self) = @_;
return if ( $self->config->{hide_menu} );
$self->debug( 2, "Building hosts menu" );
# first, empty the hosts menu from the last static entry + 1 on
my $menu = $menus{bar}->entrycget( 'Hosts', -menu );
$menu->delete( $host_menu_static_items, 'end' );
$self->debug( 3, "Menu deleted" );
# add back the separator
$menus{hosts}->separator;
$self->debug( 3, "Parsing list" );
my $menu_item_counter = $host_menu_static_items;
foreach my $svr ( $sort->( keys(%servers) ) ) {
$self->debug( 3, "Checking $svr and restoring active value" );
my $colbreak = 0;
lib/App/ClusterSSH.pm view on Meta::CPAN
}
}
$xdisplay->flush();
return $self;
}
sub create_menubar() {
my ($self) = @_;
$self->debug( 2, "create_menubar: started" );
$menus{bar} = $windows{main_window}->Menu();
$windows{main_window}->configure( -menu => $menus{bar}, )
unless $self->config->{hide_menu};
$menus{file} = $menus{bar}->cascade(
-label => 'File',
-menuitems => [
[ "command",
"Show History",
-command => sub { $self->show_history; },
lib/App/ClusterSSH.pm view on Meta::CPAN
sub populate_send_menu_entries_from_xml {
my ( $self, $menu, $menu_xml ) = @_;
foreach my $menu_ref ( @{ $menu_xml->{menu} } ) {
if ( $menu_ref->{menu} ) {
$menus{ $menu_ref->{title} }
= $menu->cascade( -label => $menu_ref->{title}, );
$self->populate_send_menu_entries_from_xml(
$menus{ $menu_ref->{title} }, $menu_ref, );
if ( $menu_ref->{detach} && $menu_ref->{detach} =~ m/y/i ) {
$menus{ $menu_ref->{title} }->menu->tearOffMenu()->raise;
}
}
else {
my $accelerator = undef;
if ( $menu_ref->{accelerator} ) {
$accelerator = $menu_ref->{accelerator};
}
if ( $menu_ref->{toggle} ) {
$menus{send}->checkbutton(
-label => 'Use Macros',
lib/App/ClusterSSH.pm view on Meta::CPAN
eval { require XML::Simple; };
die 'Cannot load XML::Simple - has it been installed? ', $@ if ($@);
my $xml = XML::Simple->new( ForceArray => 1, );
my $menu_xml = $xml->XMLin( $self->config->{send_menu_xml_file} );
$self->debug( 3, 'xml send menu: ', $/, $xml->XMLout($menu_xml) );
if ( $menu_xml->{detach} && $menu_xml->{detach} =~ m/y/i ) {
$menus{send}->menu->tearOffMenu()->raise;
}
$self->populate_send_menu_entries_from_xml( $menus{send}, $menu_xml );
}
return $self;
}
sub run {
my ($self) = @_;
( run in 0.780 second using v1.01-cache-2.11-cpan-49f99fa48dc )