Funciones de Control de Pantalla con Terminal Ncurses

XCII. Funciones de Control de Pantalla con Terminal Ncurses

Introducci贸n

ncurses (new curses) es un sistema de emulaci贸n del paquete curses del Sistema V 4.0 (y superiores). Usa formatos terminfo, soporta pads, colores, resaltados m煤ltiples, caracteres de formulario y asignaciones de funciones de teclado. Debido a la naturaleza interactiva de esta biblioteca, 茅sta ser谩 de poca utilidad para la escritura de aplicaciones Web, pero puede ser 煤til cuando se escriben scripts orientados al uso de PHP desde la l铆nea de comandos.

Aviso

Esta extensi贸n es EXPERIMENTAL. Esto significa que el comportamiento de esta extensi贸n, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensi贸n, puede cambiar en una futura versi贸n de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensi贸n queda bajo su propia responsabilidad.

Ncurses se encuentra disponible para las siguientes plataformas:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Nota: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 6.0.0

Requisitos

Necesita las bibliotecas ncurses y sus archivos de cabecera. Descargue la 煤ltima versi贸n desde ftp://ftp.gnu.org/pub/gnu/ncurses/ o alg煤n otro mirror GNU.

Instalaci贸n

Para que estas funciones trabajen, debe compilar la versi贸n CGI o CLI de PHP con --with-ncurses[=DIR].

Configuraci贸n en tiempo de ejecuci贸n

El comportamiento de estas funciones est谩 afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuraci贸n de ncurses

NombrePredeterminadoModificableCambios
ncurses.value"42"PHP_INI_ALL 
ncurses.string"foobar"PHP_INI_ALL 
For further details and definitions of the PHP_INI_* constants, see the Ap茅ndice G.

Tipos de recursos

Esta extensi贸n no tiene ning煤n tipo de recurso definido.

Constantes predefinidas

Estas constantes est谩n definidas por esta extensi贸n y estar谩n disponibles solamente cuando la extensi贸n ha sido o bien compilada dentro de PHP o grabada din谩micamente en tiempo de ejecuci贸n.

C贸digos de error

En caso de fallos, las funciones ncurses devuelven NCURSES_ERR.

Colores

Tabla 2. constantes de color de ncurses

constantesignificado
NCURSES_COLOR_BLACKsin color (negro)
NCURSES_COLOR_WHITEblanco
NCURSES_COLOR_REDrojo - soportado cuando la terminal se encuentra en modo de color
NCURSES_COLOR_GREENverde - soportado cuando la terminal se encuentra en modo de color
NCURSES_COLOR_YELLOWamarillo - soportado cuando la terminal se encuentra en modo de color
NCURSES_COLOR_BLUEazul - soportado cuando la terminal se encuentra en modo de color
NCURSES_COLOR_CYANcyan - soportado cuando la terminal se encuentra en modo de color
NCURSES_COLOR_MAGENTAmagenta - soportado cuando la terminal se encuentra en modo de color

Teclas

Tabla 3. constantes de teclas ncurses

constantesignificado
NCURSES_KEY_F0 - NCURSES_KEY_F64teclas de funci贸n F1 - F64
NCURSES_KEY_DOWNflecha hacia abajo
NCURSES_KEY_UPflecha hacia arriba
NCURSES_KEY_LEFTflecha hacia la izquierda
NCURSES_KEY_RIGHTflecha hacia la derecha
NCURSES_KEY_HOMEtecla home (flecha arriba+izquierda)
NCURSES_KEY_BACKSPACEbackspace
NCURSES_KEY_DLeliminar l铆nea
NCURSES_KEY_ILinsertar l铆nea
NCURSES_KEY_DCeliminar caracter
NCURSES_KEY_ICinsertar caracter o entrar en modo de inserci贸n
NCURSES_KEY_EICsalir de modo de inserci贸n de caracteres
NCURSES_KEY_CLEARlimpiar la pantalla
NCURSES_KEY_EOSlimpiar hasta el fin de la pantalla
NCURSES_KEY_EOLlimpiar hasta el fin de la l铆nea
NCURSES_KEY_SFdesplazarse una l铆nea hacia adelante
NCURSES_KEY_SRdesplazarse una l铆nea hacia atr谩s
NCURSES_KEY_NPAGEsiguiente p谩gina
NCURSES_KEY_PPAGEp谩gina anterior
NCURSES_KEY_STABdefinir tab
NCURSES_KEY_CTABeliminar tab
NCURSES_KEY_CATABeliminar todos los tabs
NCURSES_KEY_SRESETreset suave (parcial)
NCURSES_KEY_RESETreset o reset fuerte
NCURSES_KEY_PRINTimprimir
NCURSES_KEY_LLizquierda inferior
NCURSES_KEY_A1izquierda superior del teclado num茅rico
NCURSES_KEY_A3derecha superior del teclado num茅rico
NCURSES_KEY_B2centro del teclado num茅rico
NCURSES_KEY_C1izquierda inferior del teclado num茅rico
NCURSES_KEY_C3derecha inferior del teclado num茅rico
NCURSES_KEY_BTABtab hacia atr谩s
NCURSES_KEY_BEGcomienzo
NCURSES_KEY_CANCELcancelar
NCURSES_KEY_CLOSEcerrar
NCURSES_KEY_COMMANDcmd (comando)
NCURSES_KEY_COPYcopiar
NCURSES_KEY_CREATEcrear
NCURSES_KEY_ENDfin
NCURSES_KEY_EXITsalida
NCURSES_KEY_FINDencontrar
NCURSES_KEY_HELPayuda
NCURSES_KEY_MARKmarca
NCURSES_KEY_MESSAGEmensaje
NCURSES_KEY_MOVEmover
NCURSES_KEY_NEXTsiguiente
NCURSES_KEY_OPENabrir
NCURSES_KEY_OPTIONSopciones
NCURSES_KEY_PREVIOUSanterior
NCURSES_KEY_REDOrehacer
NCURSES_KEY_REFERENCEref (referencia)
NCURSES_KEY_REFRESHrefrescar
NCURSES_KEY_REPLACEreemplazar
NCURSES_KEY_RESTARTreiniciar
NCURSES_KEY_RESUMEreiniciar
NCURSES_KEY_SAVEguardar
NCURSES_KEY_SBEGcomienzo usando shift
NCURSES_KEY_SCANCELcancelar usando shift
NCURSES_KEY_SCOMMANDcomando usando shift
NCURSES_KEY_SCOPYcopiar usando shift
NCURSES_KEY_SCREATEcrear usando shift
NCURSES_KEY_SDCeliminar caracter usando shift
NCURSES_KEY_SDLeliminar l铆nea usando shift
NCURSES_KEY_SELECTseleccionar
NCURSES_KEY_SENDfinal usando shift
NCURSES_KEY_SEOLfin de l铆nea usando shift
NCURSES_KEY_SEXITsalida usando shift
NCURSES_KEY_SFINDencontrar usando shift
NCURSES_KEY_SHELPayuda usando shift
NCURSES_KEY_SHOMEhome usando shift
NCURSES_KEY_SICentrada usando shift
NCURSES_KEY_SLEFTflecha hacia la izquierda usando shift
NCURSES_KEY_SMESSAGEmensaje usando shift
NCURSES_KEY_SMOVEmover usando shift
NCURSES_KEY_SNEXTsiguiente usando shift
NCURSES_KEY_SOPTIONSopciones usando shift
NCURSES_KEY_SPREVIOUSanterior usando shift
NCURSES_KEY_SPRINTimprimir usando shift
NCURSES_KEY_SREDOrehacer usando shift
NCURSES_KEY_SREPLACEreemplazar usando shift
NCURSES_KEY_SRIGHTflecha hacia la derecha usando shift
NCURSES_KEY_SRSUMEreiniciar usando shift
NCURSES_KEY_SSAVEguardar usando shift
NCURSES_KEY_SSUSPENDsuspender usando shift
NCURSES_KEY_UNDOdeshacer
NCURSES_KEY_MOUSEevento del mouse ha ocurrido
NCURSES_KEY_MAXvalor m谩ximo de tecla

Mouse

Tabla 4. constantes de mouse

Constantesignificado
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASEDbot贸n (1-4) liberado
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSEDbot贸n (1-4) presionado
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKEDbot贸n (1-4) pulsado
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKEDbot贸n (1-4) pulsado dos veces
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKEDbot贸n (1-4) pulsado tres veces
NCURSES_BUTTON_CTRLctrl presionado durante el clic
NCURSES_BUTTON_SHIFTshift presionado durante el clic
NCURSES_BUTTON_ALTalt presionado durante el clic
NCURSES_ALL_MOUSE_EVENTSreportar todos los eventos del mouse
NCURSES_REPORT_MOUSE_POSITIONreportar la posici贸n del mouse
Tabla de contenidos
ncurses_addch -- Agregar un caracter en la posici贸n actual y avanzar el cursor
ncurses_addchnstr -- Agregar cadena con atributos y longitud especificada en la posici贸n actual
ncurses_addchstr -- Agregar una cadena con atributos en la posici贸n actual
ncurses_addnstr -- Agregar una cadena con la longitud especificada en la posici贸n actual
ncurses_addstr -- Imprimir texto en la posici贸n actual
ncurses_assume_default_colors -- Definir colores predeterminados para el color 0
ncurses_attroff -- Deshabilitar los atributos dados
ncurses_attron -- Habilitar los atributos dados
ncurses_attrset -- Establecer los atributos dados
ncurses_baudrate -- Devuelve la tasa de baudios de la terminal
ncurses_beep -- Producir un beep en la terminal
ncurses_bkgd -- Establecer la propiedad de segundo plano para la pantalla de la terminal
ncurses_bkgdset -- Controla el segundo plano de la pantalla
ncurses_border -- Dibujar un borde alrededor de la pantalla usando caracteres con atributos
ncurses_bottom_panel --  Mueve un panel visible al fondo de la pila
ncurses_can_change_color -- Chequear si es posible cambiar los colores de la terminal
ncurses_cbreak -- Cambio de b煤feres de entrada
ncurses_clear -- Limpiar la pantalla
ncurses_clrtobot -- Limpiar la pantalla desde la posici贸n actual al final
ncurses_clrtoeol -- Limpiar la pantalla desde la posici贸n actual al final de la l铆nea
ncurses_color_content --  Obtiene el valor RGB del color
ncurses_color_set -- Establecer los colores de primer y segundo plano
ncurses_curs_set -- Establecer el estado del cursor
ncurses_def_prog_mode -- Guarda los modos de terminal (programa)
ncurses_def_shell_mode -- Guarda los modos de terminal (int茅rprete de comandos)
ncurses_define_key -- Definir un c贸digo de tecla
ncurses_del_panel --  Remover un panel de la pila y eliminarlo (pero no la ventana asociada)
ncurses_delay_output -- Retrasar la salida en la terminal usando caracteres de relleno
ncurses_delch -- Eliminar un caracter en la posici贸n actual, mover el resto de la l铆nea hacia la izquierda
ncurses_deleteln -- Eliminar una l铆nea en la posici贸n actual, mover el resto de la pantalla hacia arriba
ncurses_delwin -- Eliminar una ventana ncurses
ncurses_doupdate -- Escribir todas las actualizaciones preparadas sobre la terminal
ncurses_echo -- Activar la repetici贸n de entrada del teclado
ncurses_echochar -- Salida de un caracter sencillo, incluyendo actualizaci贸n
ncurses_end -- Dejar de usar ncurses, limpiar la pantalla
ncurses_erase -- Limpiar pantalla de terminal
ncurses_erasechar -- Devuelve el caracter de borrado actual
ncurses_filter -- Definir LINES para iniscr() y newterm() a 1
ncurses_flash -- Relampaguear la pantalla de terminal (campana visual)
ncurses_flushinp -- Volcar el b煤fer de entrada de teclado
ncurses_getch -- Leer un caracter desde el teclado
ncurses_getmaxyx -- Devuelve el tama帽o de una ventana
ncurses_getmouse -- Lee un evento del mouse
ncurses_getyx --  Devuelve la posici贸n de cursor actual para una ventana
ncurses_halfdelay -- Colocar la terminal en modo de medio retraso
ncurses_has_colors -- Chequear si la terminal tiene colores
ncurses_has_ic -- Chequear por el soporte de inserci贸n y borrado
ncurses_has_il -- Chequea el soporte de inserci贸n y borrado
ncurses_has_key -- Chequear por la presencia de una tecla de funci贸n en el teclado de la terminal
ncurses_hide_panel --  Remover un panel de la pila, haci茅ndolo invisible
ncurses_hline -- Dibujar una l铆nea horizontal en la posici贸n actual usando un caracter con atributos, y de m谩ximo n caracteres de largo
ncurses_inch -- Obtener el caracter y los atributos de la posici贸n actual
ncurses_init_color -- Establecer un nuevo valor RGB para un color
ncurses_init_pair -- Reservar una pareja de color
ncurses_init -- Inicializar ncurses
ncurses_insch -- Insertar un caracter, moviendo el resto de la l铆nea, incluyendo el caracter en la posici贸n actual
ncurses_insdelln -- Insertar l铆neas antes de la l铆nea actual, desplazando hacia abajo (los n煤meros negativos eliminan l铆neas y desplazan hacia arriba)
ncurses_insertln -- Insertar una l铆nea, mover el resto de la pantalla hacia abajo
ncurses_insstr -- Insertar cadena en la posici贸n actual, moviendo el resto de la l铆nea hacia la derecha
ncurses_instr -- Lee una cadena desde la pantalla de terminal
ncurses_isendwin -- Ncurses se encuentra en modo endwin, puede efectuarse salida de pantalla normal
ncurses_keyok -- Habilitar o deshabilitar un c贸digo de tecla
ncurses_keypad --  Activa o desactiva el teclado num茅rico
ncurses_killchar -- Devuelve el caracter de eliminaci贸n de l铆nea actual
ncurses_longname -- Devuelve la descripci贸n de la terminal
ncurses_meta --  Habilita/deshabilita la meta-informaci贸n de 8-bits de tecla
ncurses_mouse_trafo --  Transforma coordenadas
ncurses_mouseinterval -- Establecer el tiempo de espera para clics de bot贸n del mouse
ncurses_mousemask -- Establece opciones del mouse
ncurses_move_panel --  Mueve un panel de modo que su esquina superior izquierda se encuentre en [comienzo_x, comienzo_y]
ncurses_move -- Mover la posici贸n de salida
ncurses_mvaddch -- Mover la posici贸n actual y agregar un caracter
ncurses_mvaddchnstr -- Mover la posici贸n y agregar una cadena con atributos con la longitud especificada
ncurses_mvaddchstr -- Mover la posici贸n y agregar una cadena con atributos
ncurses_mvaddnstr -- Mover la posici贸n y agregar una cadena con la longitud especificada
ncurses_mvaddstr -- Mover la posici贸n y agregar una cadena
ncurses_mvcur -- Mover el cursor inmediatamente
ncurses_mvdelch -- Mover la posici贸n y eliminar un caracter, desplazar el resto de la l铆nea hacia la izquierda
ncurses_mvgetch -- Mover la posici贸n y obtener el caracter en la nueva posici贸n
ncurses_mvhline -- Establecer una nueva posici贸n y dibujar una l铆nea horizontal usando un caracter con atributos y una longitud m谩xima de n caracteres
ncurses_mvinch -- Mover la posici贸n y obtener el caracter con atributos en la nueva posici贸n
ncurses_mvvline -- Establecer una nueva posici贸n y dibujar una l铆nea vertical usando un caracter con atributos y una longitud m谩xima de n caracteres
ncurses_mvwaddstr -- Agregar una cadena en una nueva posici贸n al interior de una ventana
ncurses_napms -- Dormir
ncurses_new_panel --  Crear un nuevo panel y asociarlo con una ventana
ncurses_newpad --  Crea un nuevo pad (ventana)
ncurses_newwin -- Crear una nueva ventana
ncurses_nl -- Traducir l铆nea nueva y retorno de carro / alimentaci贸n de l铆nea
ncurses_nocbreak -- Cambiar la terminal a modo normal (cooked)
ncurses_noecho -- Desactivar la repetici贸n de entrada del teclado
ncurses_nonl -- No traducir l铆nea nueva y retorno de carro / alimentaci贸n de l铆nea
ncurses_noqiflush -- No realizar volcados en caracteres de se帽ales
ncurses_noraw -- Salir del modo puro en la terminal
ncurses_pair_content --  Obtiene el valor RGB del color
ncurses_panel_above --  Devuelve el panel encima del panel indicado
ncurses_panel_below --  Devuelve el panel por debajo del panel indicado
ncurses_panel_window --  Devuelve la ventana asociada con el panel
ncurses_pnoutrefresh --  Copia una regi贸n desde un pad a la pantalla virtual
ncurses_prefresh --  Copia una regi贸n desde un pad a la pantalla virtual
ncurses_putp -- Aplicar la informaci贸n de m谩rgenes a la cadena e imprimirla
ncurses_qiflush -- Producir volcado en caracteres de se帽ales
ncurses_raw -- Colocar la terminal en modo puro
ncurses_refresh -- Refrescar la pantalla
ncurses_replace_panel --  Reemplaza la ventana asociada con el panel
ncurses_reset_prog_mode --  Restablece el modo de programa guardado por def_prog_mode
ncurses_reset_shell_mode --  Restablece el modo de int茅rprete de comandos guardado por def_shell_mode
ncurses_resetty -- Restablece el estado guardado de la terminal
ncurses_savetty -- Guarda el estado de la terminal
ncurses_scr_dump -- Vuelca el contenido de la pantalla en un archivo
ncurses_scr_init -- Inicializar la pantalla desde un volcado en un archivo
ncurses_scr_restore -- Recuperar la pantalla desde un volcado en un archivo
ncurses_scr_set -- Heredar la pantalla de un volcado en un archivo
ncurses_scrl -- Desplazar el contenido de la ventana hacia arriba o abajo sin cambiar la posici贸n actual
ncurses_show_panel --  Coloca un panel invisible al comienzo de la pila, haci茅ndola visible
ncurses_slk_attr -- Devuelve el atributo de la etiqueta suave de teclado
ncurses_slk_attroff -- Deshabilitar los atributos dados para las etiquetas suaves de teclado
ncurses_slk_attron -- Habilitar los atributos dados para las etiquetas suaves de funciones de teclado
ncurses_slk_attrset -- Definir los atributos dados para las etiquetas suaves de funciones de teclado
ncurses_slk_clear -- Limpia las etiquetas suaves de la pantalla
ncurses_slk_color -- Establece el color para las etiquetas suaves de teclado
ncurses_slk_init -- Inicializa las etiquetas suaves de funciones de teclado
ncurses_slk_noutrefresh -- Copia las etiquetas suaves de teclado a la pantalla virtual
ncurses_slk_refresh -- Copia las etiquetas suaves de teclado a la pantalla
ncurses_slk_restore -- Recupera las etiquetas suaves de teclado
ncurses_slk_set --  Establece las etiquetas de teclado
ncurses_slk_touch -- Obliga a que se produzca salida cuando se ejecute ncurses_slk_noutrefresh
ncurses_standend -- Dejar de usar el atributo 'standout'
ncurses_standout -- Comenzar a usar el atributo 'standout'
ncurses_start_color -- Comenzar a usar colores
ncurses_termattrs -- Devuelve un valor OR l贸gico de todas las banderas de atributos soportados por la terminal
ncurses_termname -- Devuelve el nombre (corto) de la terminal
ncurses_timeout -- Establecer el tiempo de espera para secuencias especiales de teclas
ncurses_top_panel --  Mueve un panel visible al tope de la pila
ncurses_typeahead -- Especificar un descriptor de archivo diferente para el chequeo de escritura siguiente
ncurses_ungetch -- Colocar un caracter de vuelta en la secuencia de entrada
ncurses_ungetmouse -- Coloca un evento de mouse en la cola
ncurses_update_panels --  Refresca la pantalla virtual, para reflejar las relaciones entre los paneles en la pila
ncurses_use_default_colors -- Asignar los colores predeterminados de la terminal al id de color -1
ncurses_use_env -- Controlar el uso de informaci贸n del entorno sobre el tama帽o de la terminal
ncurses_use_extended_names -- Controlar el uso de nombres extendidos en descripciones de informaci贸n de terminal
ncurses_vidattr -- Desplegar la cadena en la terminal con el atributo de modo de video
ncurses_vline -- Dibujar una l铆nea vertical en la posici贸n actual usando un caracter con atributos y una longitud m谩xima de n caracteres
ncurses_waddch --  Agrega un caracter en la posici贸n actual de una ventana y avanza el cursor
ncurses_waddstr --  Imprime un texto en la posici贸n actual de una ventana
ncurses_wattroff --  Deshabilita los atributos para una ventana
ncurses_wattron --  Habilita los atributos para una ventana
ncurses_wattrset --  Establecer los atributos para una ventana
ncurses_wborder -- Dibuja un borde alrededor de la ventana usando caracteres con atributos
ncurses_wclear --  Limpia la ventana
ncurses_wcolor_set --  Establece parejas de colores en la ventana
ncurses_werase --  Eliminar los contenidos de la ventana
ncurses_wgetch --  Lee un caracter desde el teclado (en la ventana)
ncurses_whline --  Dibuja una l铆nea horizontal en una ventana en la posici贸n actual usando un caracter con atributos y un largo m谩ximo de n caracteres
ncurses_wmouse_trafo --  Transforma coordenadas de ventana/stdscr
ncurses_wmove --  Mueve la posici贸n de salida de la ventana
ncurses_wnoutrefresh --  Copia la ventana a la pantalla virtual
ncurses_wrefresh -- Refrescar la ventana en la pantalla de terminal
ncurses_wstandend --  Finaliza el modo standout para una ventana
ncurses_wstandout --  Ingresar a modo standout en una ventana
ncurses_wvline --  Dibuja una l铆nea vertical en una ventana en la posici贸n actual usando un caracter con atributos y una longitud m谩xima de n caracteres