App-DBBrowser

 view release on metacpan or  search on metacpan

lib/App/DBBrowser/Options/Menus.pm  view on Meta::CPAN

    return;
}


sub __settings_menu_wrap {
    # sets the options to the index of the chosen values, not to the values itself
    my ( $sf, $info, $lo, $section, $sub_menu, $prompt ) = @_;
    my $tu = Term::Choose::Util->new( $sf->{i}{tcu_default} );
    my $changed = $tu->settings_menu(
        $sub_menu, $lo->{$section},
        { info => $info, prompt => $prompt, back => $sf->{i}{_back}, confirm => $sf->{i}{_confirm} }
    );
}


sub __choose_a_subset_wrap {
    my ( $sf, $info, $lo, $section, $opt, $available, $prompt ) = @_;
    my $tu = Term::Choose::Util->new( $sf->{i}{tcu_default} );
    my $current = $lo->{$section}{$opt};
    $info .= "\n" if length $info;
    $info .= 'Cur: ' . join( ', ', @$current );
    my $name = 'New: ';
    # Choose_a_list
    my $list = $tu->choose_a_subset(
        $available,
        { info => $info, prompt => $prompt, cs_label => $name, prefix => '- ', keep_chosen => 0,
          index => 0, confirm => $sf->{i}{_confirm}, back => $sf->{i}{_back}, layout => 2,
          clear_screen => 1 }
    );
    return if ! defined $list;
    return if ! @$list;
    $lo->{$section}{$opt} = $list;
    return;
}


sub __choose_a_number_wrap {
    my ( $sf, $info, $lo, $section, $opt, $prompt, $digits, $small_first ) = @_;
    my $tu = Term::Choose::Util->new( $sf->{i}{tcu_default} );
    my $current = $lo->{$section}{$opt};
    my $w = $digits + int( ( $digits - 1 ) / 3 ) * length $sf->{i}{info_thsd_sep};
    $info .= "\n" . 'Cur: ' . sprintf( "%*s", $w, insert_sep( $current, $sf->{i}{info_thsd_sep} ) );
    my $name = 'New: ';
    # Choose_a_number
    my $choice = $tu->choose_a_number( $digits,
        { info => $info, prompt => $prompt, cs_label => $name, small_first => $small_first,
          clear_screen => 1, confirm => $sf->{i}{confirm}, back => $sf->{i}{back} }
    );
    return if ! defined $choice;
    $lo->{$section}{$opt} = $choice;
    return;
}


sub __choose_a_directory_wrap {
    my ( $sf, $info, $lo, $section, $opt, $prompt ) = @_;
    my $tu = Term::Choose::Util->new( $sf->{i}{tcu_default} );
    #my $current = $lo->{$section}{$opt};
    # Choose_a_directory
    my $choice = $tu->choose_a_directory(
        { show_hidden => 1, info => $info, prompt => $prompt, clear_screen => 1, decoded => 1,
          confirm => $sf->{i}{confirm}, back => $sf->{i}{back} } ##
    );
    return if ! defined $choice;
    $lo->{$section}{$opt} = $choice;
    return;
}


sub __group_readline {
    my ( $sf, $info, $lo, $section, $items, $prompt ) = @_;
    my $list = [ map {
        [ exists $_->{prompt} ? $_->{prompt} : $_->{name}, $lo->{$section}{$_->{name}} ]
    } @{$items} ];
    my $tf = Term::Form->new( $sf->{i}{tf_default} );
    # Fill_Form
    my $new_list = $tf->fill_form(
        $list,
        { info => $info, prompt => $prompt, confirm => $sf->{i}{confirm}, back => $sf->{i}{back} }
    );
    if ( $new_list ) {
        for my $i ( 0 .. $#$items ) {
            $lo->{$section}{$items->[$i]{name}} = $new_list->[$i][1];
        }
    }
}



1;


__END__



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