LXXXI. Fonctions de contrôle d'écran de terminal

Introduction

ncurses (new curses, les nouveaux curseurs) sont une émulation libre des curseurs du System V Rel 4.0 (et plus récente). Ils utilisent le format terminfo, supportent les pavés numériques, les couleurs, les colorations multiples, les caractères de formulaire et les touches de fonctions. De par la nature intéractive de cette bibliothèque, il est hors de question de l'utiliser pour écrire des applications pour le Web mais, par contre, elle peut être très intéressante pour écrire des scripts en ligne de commande.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Ncurses est disponible sur les plates-formes suivantes :

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Pré-requis

Vous devez disposer des bibliothèques ncurses et des fichiers d'en-têtes. Téléchargez la dernière version sur le site de ftp://ftp.gnu.org/pub/gnu/ncurses/ ou sur un miroir GNU.

Installation

Pour installer cette extension, compilez PHP en mode CGI ou CLI, avec l'option --with-ncurses[=DIR].

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

NomPar défautModifiable
ncurses.value"42"PHP_INI_ALL
ncurses.string"foobar"PHP_INI_ALL
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Codes d'erreurs

En cas d'erreur, les fonctions ncurses retournent NCURSES_ERR.

Colors

Tableau 2. Constantes de couleurs ncurses

ConstanteSignification
NCURSES_COLOR_BLACKPas de couleur
NCURSES_COLOR_WHITEblanc
NCURSES_COLOR_REDrouge - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_GREENvert - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_YELLOWjaune - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_BLUEbleu - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_CYANcyan - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_MAGENTAmagenta - supporté lorsque le terminal est en mode couleurs

Touches

Tableau 3. Constantes de touches ncurses

ConstanteSignification
NCURSES_KEY_F0 - NCURSES_KEY_F64Touches de fonctions F1 - F64
NCURSES_KEY_DOWNflèche vers le bas
NCURSES_KEY_UPflèche vers le haut
NCURSES_KEY_LEFTflèche vers la gauche
NCURSES_KEY_RIGHTflèche vers la droite
NCURSES_KEY_HOMEtouche home (vers le haut + flèche vers la gauche)
NCURSES_KEY_BACKSPACEretour en arrière
NCURSES_KEY_DLefface une ligne
NCURSES_KEY_ILinsère une ligne
NCURSES_KEY_DCefface un caractère
NCURSES_KEY_ICinsère un caractère, ou bien passe en mode insertion
NCURSES_KEY_EICtermine le mode insertion
NCURSES_KEY_CLEARefface l'écran
NCURSES_KEY_EOSefface l'écran jusqu'en bas
NCURSES_KEY_EOLefface l'écran jusqu'à la fin de la ligne
NCURSES_KEY_SFscrolle une ligne vers le bas
NCURSES_KEY_SRscrolle une ligne vers le haut
NCURSES_KEY_NPAGEpage suivante
NCURSES_KEY_PPAGEpage précédente
NCURSES_KEY_STABplace une tabulation
NCURSES_KEY_CTABsupprime une tabulation
NCURSES_KEY_CATABsupprime toutes les tabulations
NCURSES_KEY_SRESETremise à zéro partielle
NCURSES_KEY_RESETremise à zéro totale
NCURSES_KEY_PRINTimprime
NCURSES_KEY_LLinférieur gauche (sur le pavé numérique)
NCURSES_KEY_A1supérieur gauche (sur le pavé numérique)
NCURSES_KEY_A3supérieur droit (sur le pavé numérique)
NCURSES_KEY_B2centre (sur le pavé numérique)
NCURSES_KEY_C1inférieur gauche (sur le pavé numérique)
NCURSES_KEY_C3inférieur droit (sur le pavé numérique)
NCURSES_KEY_BTABtabulation arrière
NCURSES_KEY_BEGdébut
NCURSES_KEY_CANCELannule
NCURSES_KEY_CLOSEferme
NCURSES_KEY_COMMANDcommande
NCURSES_KEY_COPYcopie
NCURSES_KEY_CREATEcrée
NCURSES_KEY_ENDfin
NCURSES_KEY_EXITquitte
NCURSES_KEY_FINDtrouve
NCURSES_KEY_HELPaide
NCURSES_KEY_MARKmarque
NCURSES_KEY_MESSAGEmessage
NCURSES_KEY_MOVEdéplace
NCURSES_KEY_NEXTsuivant
NCURSES_KEY_OPENouvre
NCURSES_KEY_OPTIONSoptions
NCURSES_KEY_PREVIOUSprécédent
NCURSES_KEY_REDOrefaire
NCURSES_KEY_REFERENCEréférence
NCURSES_KEY_REFRESHrafraîchis
NCURSES_KEY_REPLACEreplace
NCURSES_KEY_RESTARTredémarre
NCURSES_KEY_RESUMErecommence
NCURSES_KEY_SAVEsauve
NCURSES_KEY_SBEGshift et début
NCURSES_KEY_SCANCELshift et annule
NCURSES_KEY_SCOMMANDshift et commande
NCURSES_KEY_SCOPYshift et copie
NCURSES_KEY_SCREATEshift et crée
NCURSES_KEY_SDCshift et efface un caractère
NCURSES_KEY_SDLshift et efface une ligne
NCURSES_KEY_SELECTsélectionne
NCURSES_KEY_SENDshift et fin
NCURSES_KEY_SEOLshift et fin de ligne
NCURSES_KEY_SEXITshift et quitte
NCURSES_KEY_SFINDshift et trouve
NCURSES_KEY_SHELPshift et aide
NCURSES_KEY_SHOMEshift et home
NCURSES_KEY_SICshift et entrée
NCURSES_KEY_SLEFTshift et flèche vers la gauche
NCURSES_KEY_SMESSAGEshift et message
NCURSES_KEY_SMOVEshift et déplace
NCURSES_KEY_SNEXTshift et suivant
NCURSES_KEY_SOPTIONSshift et options
NCURSES_KEY_SPREVIOUSshift et précédent
NCURSES_KEY_SPRINTshift et imprime
NCURSES_KEY_SREDOshift et refait
NCURSES_KEY_SREPLACEshift et remplace
NCURSES_KEY_SRIGHTshift et flèche vers la droite
NCURSES_KEY_SRSUMEshift et recommnence
NCURSES_KEY_SSAVEshift et sauve
NCURSES_KEY_SSUSPENDshift et suspend
NCURSES_KEY_UNDOdéfait
NCURSES_KEY_MOUSEun événement souris est survenu
NCURSES_KEY_MAXvaleur maximale de clé

Souris

Tableau 4. Constantes de souris

ConstanteSignification
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASEDbouton (1-4) relaché
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSEDbouton (1-4) pressé
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKEDbouton (1-4) cliqué
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKEDbouton (1-4) double cliqué
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKEDbouton (1-4) triple cliqué
NCURSES_BUTTON_CTRLctrl pressé durant le clic
NCURSES_BUTTON_SHIFTshift pressé durant le clic
NCURSES_BUTTON_ALTalt pressé durant le clic
NCURSES_ALL_MOUSE_EVENTSindique tous les événements souris
NCURSES_REPORT_MOUSE_POSITIONindique la position de la souris
Table des matières
ncurses_addch -- Ajoute un caractère à la position courante et avance le curseur
ncurses_addchnstr -- Ajoute une chaîne de taille donnée à la position courante
ncurses_addchstr -- Ajoute une chaîne à la position courante
ncurses_addnstr -- Ajoute une chaîne à la position courante
ncurses_addstr -- Affiche du texte à la position courante
ncurses_assume_default_colors -- Définit la couleur 0
ncurses_attroff -- Désactive les attributs donnés
ncurses_attron -- Active les attributs suivants
ncurses_attrset -- Modifie les attributs donnés
ncurses_baudrate -- Retourne le baudrate du terminal
ncurses_beep -- Fait beeper le terminal
ncurses_bkgd -- Définit les propriétés de fond d'écran pour le terminal
ncurses_bkgdset -- Définit le fond d'écran
ncurses_border -- Dessine un bord autour de l'écran avec les caractères données
ncurses_bottom_panel --  Place un conteneur visibile en bas de la pile
ncurses_can_change_color -- Vérifie si le terminal peut changer de couleurs
ncurses_cbreak -- Change la bufferisation d'entrée
ncurses_clear -- Efface l'écran
ncurses_clrtobot --  Efface l'écran depuis la position courante jusqu'au bas de l'écran
ncurses_clrtoeol --  Efface l'écran depuis la position courante jusqu'à la fin de la ligne
ncurses_color_content --  Lit la valeur RGB d'une couleur
ncurses_color_set -- Modifie la couleur de fond et de devant
ncurses_curs_set -- Modifie l'état du curseur
ncurses_def_prog_mode -- Sauve le mode du terminal
ncurses_def_shell_mode -- Sauve le mode de terminal (shell)
ncurses_define_key -- Défini un code de clé (keycode)
ncurses_del_panel --  Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)
ncurses_delay_output -- Retarde l'affichage sur les terminaux utilisant des caractères de remplissage
ncurses_delch -- Efface le caractère courant et décale le reste de la ligne vers la gauche
ncurses_deleteln -- Efface la ligne courante, et monte l'écran d'une ligne
ncurses_delwin -- Efface une fenête ncurses
ncurses_doupdate -- Affiche tout ce qui est prêt, et rafraîchit l'écran
ncurses_echo -- Active l'écho d'entrée clavier
ncurses_echochar -- Affiche un caractère et rafraîchit l'écran
ncurses_end -- Cesse l'utilisation de ncurses et efface l'écran
ncurses_erase -- Efface l'écran du terminal
ncurses_erasechar -- Lit le caractère qui se fait effacer
ncurses_filter -- Définit LINES pour iniscr() et newterm() à 1
ncurses_flash -- Fait flasher le terminal (visual bell)
ncurses_flushinp -- Vide le buffer d'entrée du clavier
ncurses_getch -- Lit un caractère sur le clavier
ncurses_getmaxyx --  Retourne la taille d'une fenêtre
ncurses_getmouse -- Lit les événements souris
ncurses_getyx --  Retourne la position courante du curseur pour une fenêtre
ncurses_halfdelay -- Met le terminal en mode semi-retardé
ncurses_has_colors -- Vérifie que le terminal supporte les couleurs
ncurses_has_ic -- Vérifie les capacités d'insertion et d'effacement
ncurses_has_il -- Vérifie les capacités d'insertion et d'effacement
ncurses_has_key -- Vérifie la présence des touches de fonctions sur le clavier
ncurses_hide_panel --  Retire un conteneur de la pile, pour le rendre invisible
ncurses_hline -- Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale
ncurses_inch -- Lit le caractère et ses attributs à la position courante
ncurses_init_color -- Configure une nouvelle valeur RGB pour une couleur
ncurses_init_pair -- Alloue une paire de couleur
ncurses_init -- Initialise ncurses
ncurses_insch -- Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant
ncurses_insdelln -- Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)
ncurses_insertln -- Insère une ligne et décale le reste de l'écran vers le bas
ncurses_insstr -- Insère une chaîne à la position courante, et décale le reste de la chaîne à droite
ncurses_instr -- Lit une chaîne depuis le terminal
ncurses_isendwin -- Ncurses est en mode endwin, des affichages normaux sont possibles
ncurses_keyok -- Active ou désactive un code de clé (keycode)
ncurses_keypad --  Active ou désactive le keypad
ncurses_killchar -- Retourne la ligne du caractère actuellement supprimé
ncurses_longname -- Retourne la description du terminal
ncurses_meta --  Active/désactive les informations de méta clé 8-bits
ncurses_mouse_trafo --  Transforme les coordonnées
ncurses_mouseinterval -- Configure les délais entre les clics de souris
ncurses_mousemask -- Configure les événements de souris à surveiller
ncurses_move_panel --  Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]
ncurses_move -- Déplace la position d'affichage
ncurses_mvaddch -- Déplace la position courante et ajoute un caractère
ncurses_mvaddchnstr -- Déplace la position et ajoute la chaîne attribuée avec la taille donnée
ncurses_mvaddchstr -- Déplace la position et ajoute une chaîne attribuée
ncurses_mvaddnstr -- Déplace la position et ajoute une chaîne de taille donnée
ncurses_mvaddstr -- Déplace la position et ajoute une chaîne
ncurses_mvcur -- Déplace immédiatement le curseur
ncurses_mvdelch -- Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche
ncurses_mvgetch -- Déplace la position et lit le caractère à la nouvelle position
ncurses_mvhline -- Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée
ncurses_mvinch -- Déplace la position et lit le caractère à la nouvelle position
ncurses_mvvline -- Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée
ncurses_mvwaddstr -- Ajoute une chaîne à une nouvelle position dans la fenêtre
ncurses_napms -- Fait une pause
ncurses_new_panel --  Crée un nouveau conteneur et l'associe à une fenêtre
ncurses_newpad --  Crée un nouveau pad (fenêtre)
ncurses_newwin -- Crée une nouvelle fenêtre
ncurses_nl -- Convertit les nouvelles lignes et retours chariot en sauts de ligne
ncurses_nocbreak -- Passe le terminal en mode cooked
ncurses_noecho -- Désactive l'écho clavier
ncurses_nonl -- Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne
ncurses_noqiflush -- Ne vide pas les buffers sur réception des caractères de signaux
ncurses_noraw -- Déconfigure le mode brut du terminal
ncurses_pair_content --  Retourne la valeur RGB d'une couleur
ncurses_panel_above -- Retourne le conteneur au-dessus du conteneur
ncurses_panel_below -- Retourne le conteneur sous le conteneur
ncurses_panel_window --  Retourne la fenêtre associée avec un conteneur
ncurses_pnoutrefresh --  Copie une région depuis un pad dans un écran virtuel
ncurses_prefresh --  Copie une région depuis un pad dans l'écran virtuel
ncurses_putp -- Applique l'information d'espacement à la chaîne et l'affiche
ncurses_qiflush -- Vide les buffers après détection d'un caractère de signal
ncurses_raw -- Passe le terminal en mode brut (raw)
ncurses_refresh -- Rafraîchit l'écran
ncurses_replace_panel --  Remplace la fenêtre associée à un conteneur
ncurses_reset_prog_mode --  Restaure le mode prog sauvé par def_prog_mode
ncurses_reset_shell_mode --  Restaure le mode shell, mode sauvé par def_shell_mode
ncurses_resetty -- Rétablit le terminal sauvé
ncurses_savetty -- Sauve l'état du terminal
ncurses_scr_dump -- Sauve un écran dans un fichier
ncurses_scr_init -- Initialise un écran depuis un fichier de sauvegarde
ncurses_scr_restore -- Rétablit un écran depuis une fichier de sauvegarde
ncurses_scr_set -- Configure un écran depuis un fichier de sauvegarde
ncurses_scrl -- Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante
ncurses_show_panel --  Place un conteneur invisible en haut de la pile, pour le rendre visible
ncurses_slk_attr -- Retourne l'attribut de la clé soft label courante
ncurses_slk_attroff -- Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)
ncurses_slk_attron -- Active l'attribut donné pour les étiquettes des function-key (fonctions clés)
ncurses_slk_attrset -- Définit les attributs donnés à une étiquette function-key
ncurses_slk_clear -- Efface les soft labels de l'écran
ncurses_slk_color -- Configure la couleur des clés soft label
ncurses_slk_init -- Initialise les fonctions de clés soft label
ncurses_slk_noutrefresh -- Copie toutes les clés soft label à l'écran virtuel
ncurses_slk_refresh -- Copie les clés soft label à l'écran
ncurses_slk_restore -- Rétablit les clés soft label
ncurses_slk_set --  Modifie les étiquettes de clé de fonction (function key labels)
ncurses_slk_touch -- Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé
ncurses_standend -- Cesse l'utilisation de l'attribut 'standout'
ncurses_standout -- Commence l'utilisation de l'attribut 'standout'
ncurses_start_color -- Active les couleurs
ncurses_termattrs -- Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR
ncurses_termname -- Retourne le nom court du terminal
ncurses_timeout -- Configure le temps d'expiration des séquences clavier spéciales
ncurses_top_panel --  Place un conteneur visible sur le haut de la pile
ncurses_typeahead -- Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies
ncurses_ungetch -- Replace un caractère dans la queue d'entrée
ncurses_ungetmouse -- Ajoute un événement souris dans la queue
ncurses_update_panels --  Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile
ncurses_use_default_colors -- Assigne la couleur de terminal pour l'index -1
ncurses_use_env -- Contrôle l'utilisation des informations d'environnement concernant la taille du terminal
ncurses_use_extended_names -- Contrôle l'utilisation des noms étendus dans les descriptions terminfo
ncurses_vidattr -- Affiche la chaîne sur un terminal dans le mode d'attribut vidéo
ncurses_vline -- Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée
ncurses_waddch --  Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur
ncurses_waddstr --  Affiche le texte à la position courante dans la fenêtre
ncurses_wattroff --  Désactive les attributs d'une fenêtre
ncurses_wattron --  Efface les attributs de la fenêtre
ncurses_wattrset --  Modifie les attributs d'une fenêtre
ncurses_wborder --  Dessine le bord d'une fenêtre avec un caractère qualifié
ncurses_wclear --  Efface la fenêtre
ncurses_wcolor_set --  Modifie les paires de couleurs de la fenêtre
ncurses_werase --  Efface le contenu de la fenêtre
ncurses_wgetch --  Lit un caractère depuis le clavier (fenêtre)
ncurses_whline --  Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale
ncurses_wmouse_trafo --  Transforme les coordonnées d'une fenêtre
ncurses_wmove --  Déplace la position d'affichage de la fenêtre
ncurses_wnoutrefresh --  Copie la fenêtre dans l'écran virtuel
ncurses_wrefresh -- Rafraîchit la fenêtre sur l'écran du terminal
ncurses_wstandend --  Termine le mode standout de la fenêtre
ncurses_wstandout --  Passe une fenêtre en mode standout
ncurses_wvline --  Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale