LXVII. Функции управления экраном терминала 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_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_CYAN cyan - поддерживается, если терминал находится в режиме color
NCURSES_COLOR_MAGENTA magenta - поддерживается, если терминал находится в режиме 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_BACKSPACE backspace 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_RESET reset (или жёсткий reset) NCURSES_KEY_PRINT
print NCURSES_KEY_LL lower left/самая нижняя левая NCURSES_KEY_A1
upper left цифрового блока NCURSES_KEY_A3 upper right цифрового блока
NCURSES_KEY_B2 center цифрового блока NCURSES_KEY_C1 lower left цифрового блока
NCURSES_KEY_C3 lower right цифрового блока NCURSES_KEY_BTAB
back tab NCURSES_KEY_BEG начало NCURSES_KEY_CANCEL
cancel NCURSES_KEY_CLOSE close NCURSES_KEY_COMMAND
cmd (command/команда) NCURSES_KEY_COPY copy NCURSES_KEY_CREATE
create NCURSES_KEY_END end NCURSES_KEY_EXIT exit
NCURSES_KEY_FIND find NCURSES_KEY_HELP help NCURSES_KEY_MARK
mark NCURSES_KEY_MESSAGE message NCURSES_KEY_MOVE
move NCURSES_KEY_NEXT next NCURSES_KEY_OPEN open
NCURSES_KEY_OPTIONS опции NCURSES_KEY_PREVIOUS previous
NCURSES_KEY_REDO redo NCURSES_KEY_REFERENCE ref (reference)
NCURSES_KEY_REFRESH refresh NCURSES_KEY_REPLACE replace
NCURSES_KEY_RESTART restart NCURSES_KEY_RESUME resume
NCURSES_KEY_SAVE save NCURSES_KEY_SBEG shiftet beg (beginning)
NCURSES_KEY_SCANCEL shifted cancel NCURSES_KEY_SCOMMAND shifted command
NCURSES_KEY_SCOPY shifted copy NCURSES_KEY_SCREATE shifted create
NCURSES_KEY_SDC shifted delete char NCURSES_KEY_SDL shifted delete line
NCURSES_KEY_SELECT select NCURSES_KEY_SEND shifted end
NCURSES_KEY_SEOL shifted end of line NCURSES_KEY_SEXIT shifted exit
NCURSES_KEY_SFIND shifted find NCURSES_KEY_SHELP shifted help
NCURSES_KEY_SHOME shifted home NCURSES_KEY_SIC shifted input
NCURSES_KEY_SLEFT shifted left arrow NCURSES_KEY_SMESSAGE shifted message
NCURSES_KEY_SMOVE shifted move NCURSES_KEY_SNEXT shifted next
NCURSES_KEY_SOPTIONS shifted options NCURSES_KEY_SPREVIOUS shifted previous
NCURSES_KEY_SPRINT shifted print NCURSES_KEY_SREDO shifted redo
NCURSES_KEY_SREPLACE shifted replace NCURSES_KEY_SRIGHT shifted right arrow
NCURSES_KEY_SRSUME shifted resume NCURSES_KEY_SSAVE shifted save
NCURSES_KEY_SSUSPEND shifted suspend NCURSES_KEY_UNDO undo
NCURSES_KEY_MOUSE mouse event has occured NCURSES_KEY_MAX maximum 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_CTRL ctrl нажата при щелчке
NCURSES_BUTTON_SHIFT shift нажата при щелчке 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 - обновляет окно экрана терминала