App-FQStat

 view release on metacpan or  search on metacpan

lib/App/FQStat/Menu.pm  view on Meta::CPAN


package App::FQStat::Menu;
# App::FQStat is (c) 2007-2009 Steffen Mueller
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.

use strict;
use warnings;
use Term::ANSIScreen qw/RESET :cursor/;
use App::FQStat::Debug;
use App::FQStat::Config qw(get_config);
use App::FQStat::Colors qw(get_color);

use base 'Exporter';
our %EXPORT_TAGS = (
  'all' => [qw(
  )],
);
our @EXPORT_OK = @{$EXPORT_TAGS{'all'}};

our @Menus = (
  { width => 11, name => 'Display', entries => [
      { name => 'Summary',     action => \&App::FQStat::Actions::toggle_summary_mode },
      { name => 'Summ.Clust.', action => \&App::FQStat::Actions::toggle_summary_name_clustering },
      { name => 'Refresh',     action => sub { App::FQStat::Drawing::update_display(1) } },
      { name => 'Sort',        action => \&App::FQStat::Actions::select_sort_field },
      { name => 'Reverse',     action => \&App::FQStat::Actions::toggle_reverse_sort },
      { name => 'Interval',    action => \&App::FQStat::Actions::set_user_interval },
      { name => 'Highl. User', action => \&App::FQStat::Actions::update_highlighted_user_name },
      { name => 'Job Details', action => \&App::FQStat::Actions::show_job_details, },
      { name => 'Job Log',     action => \&App::FQStat::Actions::show_job_log, },
  ], },
  { width => 11, name => 'Actions', entries => [
      { name => 'Hold',        action => \&App::FQStat::Actions::hold_jobs, },
      { name => 'Resume',      action => \&App::FQStat::Actions::resume_jobs, },
      { name => 'Kill',        action => \&App::FQStat::Actions::kill_jobs, },
      { name => 'Set Prio.',   action => \&App::FQStat::Actions::change_priority, },
      { name => 'Clear Error', action => \&App::FQStat::Actions::clear_job_error_state, },
      { name => 'Change Deps', action => \&App::FQStat::Actions::change_dependencies, },
  ], },
  { width => 5, name => 'Help', entries => [
      { name => 'Help',  action => \&App::FQStat::Actions::show_manual, },
      { name => 'About', action => \&App::FQStat::Actions::show_manual, },
  ], },
  { width => 6, name => 'Config', entries => [
      { name => 'Edit',  action => \&App::FQStat::Config::edit_configuration, },
      { name => 'Reset',  action => \&App::FQStat::Config::reset_configuration, },
  ], },
  { width => 4, name => 'Quit', entries => [
      { name => 'Menu',  action => \&App::FQStat::Menu::close_menu, },
      { name => 'Quit',  action => \&main::cleanup_and_exit, },
  ], },
  {
    width => 8, name => 'Colors', entries => \&App::FQStat::Colors::get_color_scheme_menu_entries,
    nEntries => \&App::FQStat::Colors::get_n_color_scheme_entries,
  },
);

# Set cumulative width
{
  my $width = 0;
  foreach my $menu (@Menus) {
    $menu->{startx} = $width+1;
    $width += $menu->{width} + 2;
  }
}

sub enter_menu {
  warnenter if ::DEBUG > 0;



( run in 0.672 second using v1.01-cache-2.11-cpan-39bf76dae61 )