NAME

 

Curses::Lists - модуль для вывода на экран списков данных.


SYNOPSIS

 

 use Curses::Lists;

 $obj = Curses::Lists->new( 'list', $list_data_point );

 $key = $obj->draw; # Рисуем `обычный' список

 $obj->env( type => 'vlist' );

 $key = $obj->draw; # Рисуем `вертикальный' список
 
 $obj->destroy;

 !!! $key - равна нажатому символу.


DESCRIPTION

 

    Пример использования:

         $list_data_point = {                # Свойства для списка.

            'title'       => 'Test window',   # Заголовок окна

            'ypos'        => 0,               # Координаты левого 
            'xpos'        => 0,               # верхнего угла окна

            'lines'       => 25,              # высота окна
            'cols'        => 80,              # ширина окна

            'vpos'        => 0,               # смещение первой строки окна
                                              # относительно начала списка

            'hpos'        => 0,               # смещение первой колонки
                                              # относительно начала строки

            'bg_color'    => 'black',         # цвет фона

            'fg_color'    => 'white',         # цвет символов

            'regex'       => 'qa',            # выйти при нажатии на одну
                                              # из этих кнопок

            'draw_only'   => 0,               # 1 - только отрисовать окно

            'multipart'   => 0,               # 1 - возможность выбора из списка
                                              #     нескольких строк

            'h_active'    => 0,               # Активная строка списка

            'v_active'    => 0,               # Активный столбец списка

            'content'     => [@A,@B],         # Массив строк, @A,@B массивы
                                              # колонок.

            'list_size'   => [23,12,20,10,40],# размер столбцов по умолчанию 
                                              # горизонтального списка

            'list_title'  => [@C],            # Шапка колонок `горизонтальный'
                                              # список

            'vlist_size'  => [10,60],         # размер столбцов по умолчанию
                                              # вертикального списка.
            
            'vlist_title' => [ 'Key', 'Val' ] # Шапка колонок `вертикальный'
                                              # список

            'decorations' => 1                # 0 - нет рамок
                                              # и пр. полезностей...

        };

        use Curses::Lists;

        $obj = Curses::Lists->new( 'list', $list_data_point );

        $key = $obj->draw; # Рисуем `обычный' список

        $obj->env( type => 'vlist' );

        $key = $obj->draw; # Рисуем `вертикальный' список
 
        $obj->destroy;

    В примерах вроде все показано с практической точки зрения...

    Клавиши навигации по списку:

        '>'     - сдвинуть окно на 1 колонку вправо
            
        '<'     - сдвинуть окно на 1 колонку влево

        'q'     - выход (по умолчанию)

        ']'     - сделать активной колонку справа

        '['     - сделать активной колонку слева
            
        'i'     - пометить все строки (если multipart = 1)

        'u'     - отменить выделение всех строк
            
        '*'     - инверсия выделения строк 
            
        'space' - выделить (отменить выделение) строки 

        'ENTER' - выделить строку и выйти
        
        '+'     - увеличить ширину активной колонки

        '-'     - уменьшить ширину активной колонки
            
        'Up'    - передвинуть курсор вверх на одну строку
        
        'Down'  - передвинуть курсор на одну строку вниз

        'PgDn'  - .......................... страницу вверх

        'PgUp'  - .......................... страницу вниз
            
        'Home'  - перейти в начало списка
        
        'End'   - перейти в конец списка


METHODS

opt

Устанавливает/возвращает текущие параметры списков ( те которые передавались при создании обьекта или вызова draw ). Например, чтобы получить значение 'title' надо написать следующее:

 $title = $obj->opt( 'title' );

чтобы установить значение title надо написать примерно следующее:

 $obj->opt( title => $new_title );

Если вызвано без параметров то возвращает ссылку на хеш со всеми параметрами списка.

env

Устанавливает возвращает такие параметры как:

main_win

Ссылка на обьект главного окна

win

Ссылка на обьект окна `потомка'...

win_x

Максимальное количество символов которые может отобразить терминал, по X

win_y

Максимальное количество символов которые может отобразить терминал, по Y

type

Тип списка ( 'list' или 'vlist' )

erase

Очищать консоль перед каждой отрисовкой списка ( по умолчанию 1 )

noecho

Не отображать вводимые с клавиатуры символы ( по умолчанию 1 )

draw

`Нарисовать' список

destroy

Вернуть терминал в исходное состояние.


AUTHOR

 

 Okunev Igor V.  mailto:igor@prv.mts-nn.ru
                 http://www.mts-nn.ru/~gosha