Учебник РНР
Назад Вперёд

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_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 - обновляет окно экрана терминала

Назад Оглавление Вперёд
syslog Вверх ncurses_addch