Учебник PHP

         

LXVII. Функции управления экраном терминала Ncurses

Предупреждение!
Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, имена его функций и всё, что задокументировано, может измениться в последующих релизах РНР без предупреждения. Вы предупреждены и можете использовать это расширение только под вашу ответственность.


Что такое ncurses?

ncurses (new curses/новые курсы) это свободная программная эмуляция курсов в System V Rel 4.0 (и выше). Она использует формат terminfo, поддерживает заполнения, цвета, множественную подсветку/highlights, отображение символов формы и ключей функций.


Платформы

Ncurses имеется для следующих платформ:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS


Требования

Вам необходимы библиотеки и header-файлы ncurses. Загрузите последнюю версию с ftp://ftp.gnu.org/pub/gnu/ncurses/ или с другого зеркала GNU.


Установка

Чтобы эти функции работали, вы должны скомпилировали CGI-версию PHP с опцией --with-ncurses.


Предопределённые константы Ncurses



Коды ошибок

При ошибке ncurses-функции возвращают NCURSES_ERR.

Цвета

Таблица 1. Константы цветов ncurses
константазначение
NCURSES_COLOR_BLACKнет цвета (чёрный)
NCURSES_COLOR_WHITE белый
NCURSES_COLOR_REDкрасный - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_GREENзелёный - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_YELLOWжёлтый - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_BLUEсиний - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_CYANcyan - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_MAGENTAmagenta - поддерживается, если терминал находится в режиме color

Клавиши

Таблица 2. Константы клавиш ncurses
константазначение
NCURSES_KEY_F0 - NCURSES_KEY_F64 функциональные клавиши F1 - F64
NCURSES_KEY_DOWNстрелка вниз
NCURSES_KEY_UPстрелка вверх
NCURSES_KEY_LEFTстрелка влево
NCURSES_KEY_RIGHTстрелка вправо
NCURSES_KEY_HOMEклавиша home (upward+left arrow)
NCURSES_KEY_BACKSPACEbackspace
NCURSES_KEY_DLудалить строку
NCURSES_KEY_ILвставить строку
NCURSES_KEY_DCудалить символ
NCURSES_KEY_ICвставить символ или войти в режим insert/вставки
NCURSES_KEY_EICвыйти из режима вставки символов
NCURSES_KEY_CLEARочистить экран
NCURSES_KEY_EOSочистить до конца экрана
NCURSES_KEY_EOL очистить до конца строки
NCURSES_KEY_SFпрокрутить вперёд на одну строку
NCURSES_KEY_SRпрокрутить назад на одну строку
NCURSES_KEY_NPAGE следующая страница
NCURSES_KEY_PPAGEпредыдущая страница
NCURSES_KEY_STABустановить tab/табуляцию
NCURSES_KEY_CTABочистить tab
NCURSES_KEY_CATABочистить все tabs
NCURSES_KEY_SRESETмягкий (частичный) reset
NCURSES_KEY_RESETreset (или жёсткий reset)
NCURSES_KEY_PRINT print
NCURSES_KEY_LLlower left/самая нижняя левая
NCURSES_KEY_A1 upper left цифрового блока
NCURSES_KEY_A3upper right цифрового блока
NCURSES_KEY_B2center цифрового блока
NCURSES_KEY_C1lower left цифрового блока
NCURSES_KEY_C3lower right цифрового блока
NCURSES_KEY_BTAB back tab
NCURSES_KEY_BEGСодержание
NCURSES_KEY_CANCEL cancel
NCURSES_KEY_CLOSEclose
NCURSES_KEY_COMMAND cmd (command/команда)
NCURSES_KEY_COPYcopy
NCURSES_KEY_CREATE create
NCURSES_KEY_ENDend
NCURSES_KEY_EXITexit
NCURSES_KEY_FINDfind
NCURSES_KEY_HELPhelp
NCURSES_KEY_MARK mark
NCURSES_KEY_MESSAGEmessage
NCURSES_KEY_MOVE move
NCURSES_KEY_NEXTnext
NCURSES_KEY_OPENopen
NCURSES_KEY_OPTIONSопции
NCURSES_KEY_PREVIOUSprevious
NCURSES_KEY_REDOredo
NCURSES_KEY_REFERENCEref (reference)
NCURSES_KEY_REFRESHrefresh
NCURSES_KEY_REPLACEreplace
NCURSES_KEY_RESTARTrestart
NCURSES_KEY_RESUMEresume
NCURSES_KEY_SAVEsave
NCURSES_KEY_SBEGshiftet beg (beginning)
NCURSES_KEY_SCANCELshifted cancel
NCURSES_KEY_SCOMMANDshifted command
NCURSES_KEY_SCOPYshifted copy
NCURSES_KEY_SCREATEshifted create
NCURSES_KEY_SDCshifted delete char
NCURSES_KEY_SDLshifted delete line
NCURSES_KEY_SELECTselect
NCURSES_KEY_SENDshifted end
NCURSES_KEY_SEOLshifted end of line
NCURSES_KEY_SEXITshifted exit
NCURSES_KEY_SFINDshifted find
NCURSES_KEY_SHELPshifted help
NCURSES_KEY_SHOMEshifted home
NCURSES_KEY_SICshifted input
NCURSES_KEY_SLEFTshifted left arrow
NCURSES_KEY_SMESSAGEshifted message
NCURSES_KEY_SMOVEshifted move
NCURSES_KEY_SNEXTshifted next
NCURSES_KEY_SOPTIONSshifted options
NCURSES_KEY_SPREVIOUSshifted previous
NCURSES_KEY_SPRINTshifted print
NCURSES_KEY_SREDOshifted redo
NCURSES_KEY_SREPLACEshifted replace
NCURSES_KEY_SRIGHTshifted right arrow
NCURSES_KEY_SRSUMEshifted resume
NCURSES_KEY_SSAVEshifted save
NCURSES_KEY_SSUSPENDshifted suspend
NCURSES_KEY_UNDOundo
NCURSES_KEY_MOUSEmouse event has occured
NCURSES_KEY_MAXmaximum key value

Мышь

Таблица 3. mouse-константы
константазначение
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED кнопка (1-4) отпущена
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED кнопка (1-4) нажата
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED кнопка (1-4) щёлкнула
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED кнопка (1-4) дважды щёлкнула
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED кнопка (1-4) трижды щёлкнула
NCURSES_BUTTON_CTRLctrl нажата при щелчке
NCURSES_BUTTON_SHIFTshift нажата при щелчке
NCURSES_BUTTON_ALT alt нажата при щелчке
NCURSES_ALL_MOUSE_EVENTSсообщает обо всех событиях мыши
NCURSES_REPORT_MOUSE_POSITIONсообщает о позиции мыши
Содержание
ncurses_addch - добавляет символ в текущей позиции и продвигает курсор вперёд
ncurses_addchnstr - добавляет атрибуированную строку со специфицированной длиной в текущей позиции
ncurses_addchstr - добавляет атрибуированную строку в текущей позиции
ncurses_addnstr - добавляет строку со специфицированной длиной в текущей позиции
ncurses_addstr - выводит текст в текущей позиции
ncurses_assume_default_colors - определяет цвет по умолчанию для цвета 0
ncurses_attroff - отключает данный атрибут
ncurses_attron - включает данный атрибут
ncurses_attrset - устанавливает данные атрибуты
ncurses_baudrate - возвращает baudrate терминала
ncurses_beep - разрешает терминалу подать сигнал
ncurses_bkgd - устанавливает свойство background экрана терминала
ncurses_bkgdset - управляет фоном экрана
ncurses_border - рисует рамку вокруг экрана с использованием атрибуированных символов
ncurses_can_change_color - проверяет, можем ли мы изменить цвета терминала
ncurses_cbreak - отключает буферизацию ввода
ncurses_clear - очищает экран
ncurses_clrtobot - очищает экран от текущей позиции до низа
ncurses_clrtoeol - очищает экран от текущей позиции до конца строчки
ncurses_color_set - устанавливает цвета переднего плана и фона
ncurses_curs_set - устанавливает статус курсора
ncurses_def_prog_mode - сохраняет режим терминала (программы)
ncurses_def_shell_mode - сохраняет режим терминала (оболочки/shell)
ncurses_define_key - определяет keycode/код клавиши
ncurses_delay_output - задерживает вывод на терминал, используя заполняющие символы
ncurses_delch - удаляет символ в текущей позиции, остаток строки сдвигается влево
ncurses_deleteln - удаляет строчку в текущей позиции, остаток экрана сдвигается вверх
ncurses_delwin - удаляет ncurses-окно
ncurses_doupdate - записывает все подготовленные обновления в терминал
ncurses_echo - активирует отображение ввода с клавиатуры
ncurses_echochar - вывод одного символа, включая обновление
ncurses_end - останавливает использование ncurses, очищает экран
ncurses_erase - стирает экран терминала
ncurses_erasechar - возвращает текущий удалённый символ
ncurses_filter -
ncurses_flash - вспышка на экране терминала (визуальный сигнал)
ncurses_flushinp - очищает буфер клавиатурного ввода
ncurses_getch - читает символ с клавиатуры
ncurses_getmouse - читает событие от мыши
ncurses_halfdelay - переводит терминал в режим halfdelay
ncurses_has_colors - проверяет, имеет ли терминал цвета
ncurses_has_ic - проверяет возможность вставки/удаления
ncurses_has_il - проверяет возможность вставки/удаления
ncurses_has_key - проверяет существование функциональной клавиши на клавиатуре терминала
ncurses_hline - рисует горизонтальную линию в текущей позиции, используя атрибуированный символ и max. n длину символов
ncurses_inch - получает символ и атрибут в текущей позиции
ncurses_init_color - устанавливает новое RGB-значение цвета
ncurses_init_pair - размещает цветовую пару
ncurses_init - инициализирует ncurses
ncurses_insch - вставляет символ, перемещая остаток строки, включая символ в текущей позиции
ncurses_insdelln - вставляет строчки перед текущей строчкой, прокручивая вниз (отрицательные числа удаляют и прокручивают вверх)
ncurses_insertln - вставляет строчку, перемещая остаток экрана вниз
ncurses_insstr - вставляет string в текущей позиции, перемещая остаток строчки вправо
ncurses_instr - читает строчку с экрана терминала
ncurses_isendwin - Ncurses находится в режиме endwin, может выполняться нормальный вывод экрана
ncurses_keyok - включает или отключает keycode/код клавиши
ncurses_killchar - возвращает kill-символ текущей строки
ncurses_longname - возвращает описание терминала
ncurses_mouseinterval - устанавливает timeout для щелчка кнопки мыши
ncurses_mousemask - устанавливает опции мыши
ncurses_move - переводит позицию вывода
ncurses_mvaddch - переводит текущую позицию и добавляет символ
ncurses_mvaddchnstr - переводит позицию и добавляет атрибуированную строку специфицированной длины
ncurses_mvaddchstr - переводит позицию и добавляет атрибуированную строку
ncurses_mvaddnstr - переводит позицию и добавляет строку со специфицированной длиной
ncurses_mvaddstr - переводит позицию и добавляет строку
ncurses_mvcur - переводит курсор немедленно
ncurses_mvdelch - переводит позицию и удаляет символ, сдвигая остаток строчки влево
ncurses_mvgetch - переводит позицию и получает символ в новой позиции
ncurses_mvhline - устанавливает новую позицию рисует горизонтальную линию, используя трибуированный символ и max. n длину символов
ncurses_mvinch - переводит позицию и получает атрибуированный символ в новой позиции
ncurses_mvvline - устанавливает новую позицию и рисует вертикальную линию, используя атрибуированный символ и max. n длину символов
ncurses_mvwaddstr - добавляет строку в новой позиции в окне
ncurses_napms - Sleep
ncurses_newwin - создаёт новое окно
ncurses_nl - транслирует newline и carriage return / line feed
ncurses_nocbreak - переключает терминал в режим cooked
ncurses_noecho - отключает отображение ввода с клавиатуры
ncurses_nonl - не транслировать newline и carriage return / line feed
ncurses_noqiflush - не зачищает сигнальные символы
ncurses_noraw - отключает терминал от режима raw
ncurses_putp -
ncurses_qiflush - зачищает сигнальные символы
ncurses_raw - переключает терминал в режим raw
ncurses_refresh - обновляет экран
ncurses_resetty - восстанавливает сохранённый статус терминала
ncurses_savetty - сохраняет статус терминала
ncurses_scr_dump - выполняет дамп содержимого экрана в файл
ncurses_scr_init - инициализирует экран из дампа файла
ncurses_scr_restore - восстанавливает экран из дампа файла
ncurses_scr_set - наследует экран из дампа файла
ncurses_scrl - прокручивает содержимое окна верх или вниз без изменения текущей позиции
ncurses_slk_attr - возвращает ключевой атрибут текущей soft-метки/label
ncurses_slk_attroff -
ncurses_slk_attron -
ncurses_slk_attrset -
ncurses_slk_clear - очищает soft-метки с экрана
ncurses_slk_color - устанавливает цвет для ключей soft-меток
ncurses_slk_init - инициализирует soft label key-функции
ncurses_slk_noutrefresh - копирует soft label ключи в виртуальный экран
ncurses_slk_refresh - копирует soft label ключи в экран
ncurses_slk_restore - восстанавливает soft label keys
ncurses_slk_touch - форсирует вывод при выполнении ncurses_slk_noutrefresh
ncurses_standend - останавливает использование атрибута 'standout'
ncurses_standout - стартует использование атрибута 'standout'
ncurses_start_color - стартует использование цветов
ncurses_termattrs - возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом
ncurses_termname - возвращает (short)-имя терминала
ncurses_timeout - устанавливает timeout для специальных последовательностей клавиш
ncurses_typeahead - специфицирует другой filedescriptor для проверки typeahead
ncurses_ungetch - помещает символ обратно в поток ввода
ncurses_ungetmouse - проталкивает событие от мыши в очередь/queue
ncurses_use_default_colors - присваивает цвета по умолчанию color id -1
ncurses_use_env - управляет использованием информации окружения о размере терминала
ncurses_use_extended_names - управляет использованием расширенных имён в описаниях terminfo
ncurses_vidattr -
ncurses_vline - рисует вертикальную линию в текущей позиции, используя атрибуированный символ и max. n длину символов
ncurses_wrefresh - обновляет окно экрана терминала
Содержание раздела