CI. Fonctions Newt

Introduction

Il s'agit d'une extension du langage PHP pour la bibliothèque RedHat Newt, une fenêtre basé sur un terminal et sur une bibliothèque de widget pour écrire des applications avec des interfaces conviviaux. Une fois que cette extension est activé dans PHP, vous aurez la possibilité d'utiliser des widgets, comme des fenêtres, des boutons, des boîtes à cocher, des boîtes radio, des labels, des boîtes texte, des barres de défilement, de grandes boîtes texte, des règles, etc. L'utilisation de cette extension est vraiment similaire à l'API original Newt du langage de programmation C.

Pré-requis

Ce module utilise les fonctions de la bibliothèque RedHat Newt. Vous aurez besoin de la version libnewt >= 0.51.0.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/newt.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Afin d'utiliser ces fonctions, vous devez compiler le support newt en CGI ou en CLI PHP en utilisant l'option de configure --with-newt[=DIR].

Note : Cette extension n'est pas disponible pour la plate-forme Windows.

Vous aurez aussi besoin des bibliothèques curses et slang afin de compiler cette extension. Pour spécifier des emplacements de ces bibliothèques, utilisez les options de configuration suivante : --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

Types de ressources

Cette extension utilise deux types de ressources : "composant newt" et "grille newt". Le type de ressource "composant newt" est retourné par les fonctions, qui créent les widgets communs newt (par exemple : newt_button()) Le type de ressource "grille newt" est un lien spécial pour les identifiants des composants, retourné par la classe d'objet de grille de newt (par exemple : newt_create_grid())

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.

Raisons de sortie de Newt

Tableau 1. Raisons de sortie de Newt

ConstanteSignification
NEWT_EXIT_HOTKEYtouche rapide définie par newt_form_add_hot_key() a été appuyée
NEWT_EXIT_COMPONENTcertains composants ont demandé la sortie de la forme
NEWT_EXIT_FDREADYle descripteur de fichier spécifié dans newt_form_watch_fd() est prêt à être lu ou écrit
NEWT_EXIT_TIMERle temps spécifié dans newt_form_set_timer() s'est écoulé

Newt colorsets

Tableau 2. Newt colorsets

ConstanteSignification
NEWT_COLORSET_ROOT 
NEWT_COLORSET_BORDER 
NEWT_COLORSET_WINDOW 
NEWT_COLORSET_SHADOW 
NEWT_COLORSET_TITLE 
NEWT_COLORSET_BUTTON 
NEWT_COLORSET_ACTBUTTON 
NEWT_COLORSET_CHECKBOX 
NEWT_COLORSET_ACTCHECKBOX 
NEWT_COLORSET_ENTRY 
NEWT_COLORSET_LABEL 
NEWT_COLORSET_LISTBOX 
NEWT_COLORSET_ACTLISTBOX 
NEWT_COLORSET_TEXTBOX 
NEWT_COLORSET_ACTTEXTBOX 
NEWT_COLORSET_HELPLINE 
NEWT_COLORSET_ROOTTEXT 
NEWT_COLORSET_ROOTTEXT 
NEWT_COLORSET_EMPTYSCALE 
NEWT_COLORSET_FULLSCALE 
NEWT_COLORSET_DISENTRY 
NEWT_COLORSET_COMPACTBUTTON 
NEWT_COLORSET_ACTSELLISTBOX 
NEWT_COLORSET_SELLISTBOX 

Drapeaux d'argument Newt

Tableau 3. Drapeaux d'arguement Newt

ConstanteSignification
NEWT_ARG_LAST 
NEWT_ARG_APPEND 

Sens des Drapeaux Newt

Tableau 4. Sens des Drapeaux Newt

ConstanteSignification
NEWT_FLAGS_SET 
NEWT_FLAGS_RESET 
NEWT_FLAGS_TOGGLE 

Drapeaux des Composants Newt

Tableau 5. Drapeaux des Composants Newt

ConstanteSignification
NEWT_FLAG_RETURNEXITSort de la forme, lorsque le composant est activé
NEWT_FLAG_HIDDENLe composant est caché
NEWT_FLAG_SCROLLLe composant est flottant
NEWT_FLAG_DISABLEDLe composant est désactivé
NEWT_FLAG_BORDER 
NEWT_FLAG_WRAPEnveloppe le texte
NEWT_FLAG_NOF12Ne sort pas de la forme en appuyant sur F12
NEWT_FLAG_MULTIPLE 
NEWT_FLAG_SELECTEDLe composant est sélectionné
NEWT_FLAG_CHECKBOXLe composant est une case à cocher
NEWT_FLAG_PASSWORDLe composant est une boîte de mot de passe
NEWT_FLAG_SHOWCURSORMontre le curseur

Drapeaux de Descripteur de Fichier

Tableau 6. Drapeaux de Descripteur de Fichier

ConstanteSignification
NEWT_FD_READ 
NEWT_FD_WRITE 
NEWT_FD_EXCEPT 

Drapeaux d'Arbre de Cases à Cocher

Tableau 7. Dreapeaux d'Arbre de Cases à Cocher

ConstanteSignification
NEWT_CHECKBOXTREE_UNSELECTABLE 
NEWT_CHECKBOXTREE_HIDE_BOX 
NEWT_CHECKBOXTREE_COLLAPSED 
NEWT_CHECKBOXTREE_EXPANDED 
NEWT_CHECKBOXTREE_UNSELECTED 
NEWT_CHECKBOXTREE_SELECTED 

Dreapeux d'Entrée

Tableau 8. Dreapeaux d'Entrée

ConstanteSignification
NEWT_ENTRY_SCROLL 
NEWT_ENTRY_HIDDEN 
NEWT_ENTRY_RETURNEXIT 
NEWT_ENTRY_DISABLED 

Drapeaux de Liste

Tableau 9. Drapeaux de Liste

ConstanteSignification
NEWT_LISTBOX_RETURNEXIT 

Drapeaux de Boîte Texte

Tableau 10. Drapeaux de Boîte Texte

ConstanteSignification
NEWT_TEXTBOX_WRAPEnveloppe le texte dans la boîte texte
NEWT_TEXTBOX_SCROLLDéfile le texte dans la boîte texte

Drapeaux de Formulaire

Tableau 11. Drapeaux de Formulaire

ConstanteSignification
NEWT_FORM_NOF12Ne sort pas de la forme en appuyant sur F12

Clés Newt

Tableau 12. Clés Newt

ConstanteSignification
NEWT_KEY_TAB 
NEWT_KEY_ENTER 
NEWT_KEY_SUSPEND 
NEWT_KEY_ESCAPE 
NEWT_KEY_RETURN 
NEWT_KEY_EXTRA_BASE 
NEWT_KEY_UP 
NEWT_KEY_DOWN 
NEWT_KEY_LEFT 
NEWT_KEY_RIGHT 
NEWT_KEY_BKSPC 
NEWT_KEY_DELETE 
NEWT_KEY_HOME 
NEWT_KEY_END 
NEWT_KEY_UNTAB 
NEWT_KEY_PGUP 
NEWT_KEY_PGDN 
NEWT_KEY_INSERT 
NEWT_KEY_F1 
NEWT_KEY_F2 
NEWT_KEY_F3 
NEWT_KEY_F4 
NEWT_KEY_F5 
NEWT_KEY_F6 
NEWT_KEY_F7 
NEWT_KEY_F8 
NEWT_KEY_F9 
NEWT_KEY_F10 
NEWT_KEY_F11 
NEWT_KEY_F12 
NEWT_KEY_RESIZE 

Ancres Newt

Tableau 13. Ancres Newt

ConstanteSignification
NEWT_ANCHOR_LEFT 
NEWT_ANCHOR_RIGHT 
NEWT_ANCHOR_TOP 
NEWT_ANCHOR_BOTTOM 

Drapeaux de Grille

Tableau 14. Drapeaux de Grille

ConstanteSignification
NEWT_GRID_FLAG_GROWX 
NEWT_GRID_FLAG_GROWY 
NEWT_GRID_EMPTY 
NEWT_GRID_COMPONENT 
NEWT_GRID_SUBGRID 

Exemples

Cet exemple est une utilisation du dialogue 'setup' de RedHat écrit en PHP, exécuté en mode texte.

Exemple 1. Exemple d'Utilisation Newt

<?php
    newt_init
();
    
newt_cls ();
    
    
newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
    
newt_push_help_line (null);
    
newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

    
newt_get_screen_size (&$rows, &$cols);
    
    
newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

    
$form = newt_form ();

    
$list = newt_listbox (3, 2, 10);
    
    foreach (array (
        
"Authentication configuration",
        
"Firewall configuration",
        
"Mouse configuration",
        
"Network configuration",
        
"Printer configuration",
        
"System services") as $l_item)
    {
        
newt_listbox_add_entry ($list, $l_item, $l_item);
    }

    
$b1 = newt_button (5, 12, "Run Tool");
    
$b2 = newt_button (21, 12, "Quit");
    
    
newt_form_add_component ($form, $list);
    
newt_form_add_components ($form, array($b1, $b2));

    
newt_refresh ();
    
newt_run_form ($form);

    
newt_pop_window ();
    
newt_pop_help_line ();
    
newt_finished ();
    
newt_form_destroy ($form);
?>
Table des matières
newt_bell -- Envoie un beep au terminal
newt_button_bar -- 
newt_button -- 
newt_centered_window -- Ouvre une fenêtre centrée de la taille spécifiée
newt_checkbox_get_value -- 
newt_checkbox_set_flags -- 
newt_checkbox_set_value -- 
newt_checkbox_tree_add_item -- *
newt_checkbox_tree_find_item -- 
newt_checkbox_tree_get_current -- 
newt_checkbox_tree_get_entry_value -- 
newt_checkbox_tree_get_multi_selection -- 
newt_checkbox_tree_get_selection -- 
newt_checkbox_tree_multi -- 
newt_checkbox_tree_set_current -- 
newt_checkbox_tree_set_entry_value -- 
newt_checkbox_tree_set_entry -- 
newt_checkbox_tree_set_width -- 
newt_checkbox_tree -- 
newt_checkbox -- 
newt_clear_key_buffer -- Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle
newt_cls -- 
newt_compact_button -- 
newt_component_add_callback -- 
newt_component_takes_focus -- 
newt_create_grid -- 
newt_cursor_off -- 
newt_cursor_on -- 
newt_delay -- 
newt_draw_form -- 
newt_draw_root_text -- Affiche la chaîne de caractères à la position indiquée
newt_entry_get_value -- 
newt_entry_set_filter -- 
newt_entry_set_flags -- 
newt_entry_set -- 
newt_entry -- 
newt_finished -- Arrête l'interface newt
newt_form_add_component -- Ajoute un seul composant à la forme
newt_form_add_components -- Ajoute plusieurs composants à la forme
newt_form_add_host_key -- 
newt_form_destroy -- Détruit une forme
newt_form_get_current -- 
newt_form_run -- Exécute une forme
newt_form_set_background -- 
newt_form_set_height -- 
newt_form_set_size -- 
newt_form_set_timer -- 
newt_form_set_width -- 
newt_form_watch_fd -- 
newt_form -- Crée une forme
newt_get_screen_size -- Remplit les références passées avec la taille courante du terminal
newt_grid_add_components_to_form -- 
newt_grid_basic_window -- 
newt_grid_free -- 
newt_grid_get_size -- 
newt_grid_h_close_stacked -- 
newt_grid_h_stacked -- 
newt_grid_place -- 
newt_grid_set_field -- 
newt_grid_simple_window -- 
newt_grid_v_close_stacked -- 
newt_grid_v_stacked -- 
newt_grid_wrapped_window_at -- 
newt_grid_wrapped_window -- 
newt_init -- Initialise newt
newt_label_set_text -- 
newt_label -- 
newt_listbox_append_entry -- 
newt_listbox_clear_selection -- 
newt_listbox_clear -- 
newt_listbox_delete_entry -- 
newt_listbox_get_current -- 
newt_listbox_get_selection -- 
newt_listbox_insert_entry -- 
newt_listbox_item_count -- 
newt_listbox_select_item -- 
newt_listbox_set_current_by_key -- 
newt_listbox_set_current -- 
newt_listbox_set_data -- 
newt_listbox_set_entry -- 
newt_listbox_set_width -- 
newt_listbox -- 
newt_listitem_get_data -- 
newt_listitem_set -- 
newt_listitem -- 
newt_open_window -- Ouvre une fenêtre de la taille et la position spécifiée
newt_pop_help_line -- Replace la ligne d'aide courante avec une provenant de la pile
newt_pop_window -- Supprime la fenêtre de premier plan de l'affichage
newt_push_help_line -- Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
newt_radio_get_current -- 
newt_radiobutton -- 
newt_redraw_help_line -- 
newt_reflow_text -- 
newt_refresh -- Met à jour les portions modifiées de l'écran
newt_resize_screen -- 
newt_resume -- Récupère l'interface de newt après l'appel de newt_suspend()
newt_run_form -- Exécute une forme
newt_scale_set -- 
newt_scale -- 
newt_scrollbar_set -- 
newt_set_help_callback -- 
newt_set_suspend_callback -- Fixe une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension
newt_suspend -- Indique à newt de retourner à l'état initial du terminal
newt_textbox_get_num_lines -- 
newt_textbox_reflowed -- 
newt_textbox_set_height -- 
newt_textbox_set_text -- 
newt_textbox -- 
newt_vertical_scrollbar -- 
newt_wait_for_key -- Ne continue pas tant qu'une touche n'est pas appuyée
newt_win_choice -- 
newt_win_entries -- 
newt_win_menu -- 
newt_win_message -- 
newt_win_messagev -- 
newt_win_ternary --