XCVI. Newt Functions

Introduction

This is a PHP language extension for RedHat Newt library, a terminal-based window and widget library for writing applications with user friendly interface. Once this extension is enabled in PHP it will provide the use of Newt widgets, such as windows, buttons, checkboxes, radiobuttons, labels, editboxes, scrolls, textareas, scales, etc. Use of this extension if very similar to the original Newt API of C programming language.

Requirements

This module uses the functions of the RedHat Newt library. You need libnewt version >= 0.51.0.

Installation

This PECL extension is not bundled with PHP. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/newt.

In PHP 4 this PECL extensions source can be found in the ext/ directory within the PHP source or at the PECL link above. In order to use these functions you must compile CGI or CLI PHP with newt support by using the --with-newt[=DIR] configure option.

Note: This extension is not available for Windows platform.

You may need also curses and slang libraries, in order to compile this extension. To specify locations of these libraries, use the following configuration options: --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

Resource Types

This extension uses two resource types: "newt component" and "newt grid". Resource type "newt component" is returned by functions, which create common newt widgets (for example: newt_button()) Resource type "newt grid" is a special link identifier for components, returned by newt grid factory functions (for example: newt_create_grid())

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Newt form exit reasons

Table 1. Newt form exit reasons

constantmeaning
NEWT_EXIT_HOTKEYhotkey defined by newt_form_add_hot_key() was pressed
NEWT_EXIT_COMPONENTsome component has caused form to exit
NEWT_EXIT_FDREADYfile descriptor specified in newt_form_watch_fd() is ready to be read or written to
NEWT_EXIT_TIMERtime specified in newt_form_set_timer() has elapsed

Newt colorsets

Table 2. Newt colorsets

constantmeaning
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 

Newt argument flags

Table 3. Newt argument flags

constantmeaning
NEWT_ARG_LAST 
NEWT_ARG_APPEND 

Newt Flags Sense

Table 4. Newt Flags Sense

constantmeaning
NEWT_FLAGS_SET 
NEWT_FLAGS_RESET 
NEWT_FLAGS_TOGGLE 

Newt Components Flags

Table 5. Newt Components Flags

constantmeaning
NEWT_FLAG_RETURNEXITExit form, when component is activated
NEWT_FLAG_HIDDENComponent is hidden
NEWT_FLAG_SCROLLComponent is scrollable
NEWT_FLAG_DISABLEDComponent is disabled
NEWT_FLAG_BORDER 
NEWT_FLAG_WRAPWrap text
NEWT_FLAG_NOF12Don't exit form on pressing F12
NEWT_FLAG_MULTIPLE 
NEWT_FLAG_SELECTEDComponent is selected
NEWT_FLAG_CHECKBOXComponent is checkbox
NEWT_FLAG_PASSWORDEntry component is password entry
NEWT_FLAG_SHOWCURSORShow cursor

File Descriptor Flags

Table 6. File Descriptor Flags

constantmeaning
NEWT_FD_READ 
NEWT_FD_WRITE 
NEWT_FD_EXCEPT 

Checkbox Tree Flags

Table 7. Checkbox Tree Flags

constantmeaning
NEWT_CHECKBOXTREE_UNSELECTABLE 
NEWT_CHECKBOXTREE_HIDE_BOX 
NEWT_CHECKBOXTREE_COLLAPSED 
NEWT_CHECKBOXTREE_EXPANDED 
NEWT_CHECKBOXTREE_UNSELECTED 
NEWT_CHECKBOXTREE_SELECTED 

Entry Flags

Table 8. Entry Flags

constantmeaning
NEWT_ENTRY_SCROLL 
NEWT_ENTRY_HIDDEN 
NEWT_ENTRY_RETURNEXIT 
NEWT_ENTRY_DISABLED 

Listbox Flags

Table 9. Listbox Flags

constantmeaning
NEWT_LISTBOX_RETURNEXIT 

Textbox Flags

Table 10. Textbox Flags

constantmeaning
NEWT_TEXTBOX_WRAPWrap text in the textbox
NEWT_TEXTBOX_SCROLLScroll text in the textbox

Form Flags

Table 11. Form Flags

constantmeaning
NEWT_FORM_NOF12Don't exit form on F12 press

Newt Keys

Table 12. Newt Keys

constantmeaning
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 

Newt Anchors

Table 13. Newt Anchors

constantmeaning
NEWT_ANCHOR_LEFT 
NEWT_ANCHOR_RIGHT 
NEWT_ANCHOR_TOP 
NEWT_ANCHOR_BOTTOM 

Grid Flags

Table 14. Grid Flags

constantmeaning
NEWT_GRID_FLAG_GROWX 
NEWT_GRID_FLAG_GROWY 
NEWT_GRID_EMPTY 
NEWT_GRID_COMPONENT 
NEWT_GRID_SUBGRID 

Examples

This example is a PHP port of RedHat 'setup' utility dialog, executed in text mode.

Example 1. Newt Usage Example

<?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 of Contents
newt_bell -- Send a beep to the terminal
newt_button_bar -- 
newt_button -- 
newt_centered_window -- Open a centered window of the specified size
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 -- Discards the contents of the terminal's input buffer without waiting for additional input
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 -- Displays the string text at the position indicated
newt_entry_get_value -- 
newt_entry_set_filter -- 
newt_entry_set_flags -- 
newt_entry_set -- 
newt_entry -- 
newt_finished -- Uninitializes newt interface
newt_form_add_component -- Adds a single component to the form
newt_form_add_components -- Add several components to the form
newt_form_add_host_key -- 
newt_form_destroy -- Destroys a form
newt_form_get_current -- 
newt_form_run -- Runs a form
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 -- Create a form
newt_get_screen_size -- Fills in the passed references with the current size of the 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 -- Initialize 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 -- Open a window of the specified size and position
newt_pop_help_line -- Replaces the current help line with the one from the stack
newt_pop_window -- Removes the top window from the display
newt_push_help_line -- Saves the current help line on a stack, and displays the new line
newt_radio_get_current -- 
newt_radiobutton -- 
newt_redraw_help_line -- 
newt_reflow_text -- 
newt_refresh -- Updates modified portions of the screen
newt_resize_screen -- 
newt_resume -- Resume using the newt interface after calling newt_suspend()
newt_run_form -- Runs a form
newt_scale_set -- 
newt_scale -- 
newt_scrollbar_set -- 
newt_set_help_callback -- 
newt_set_suspend_callback -- Set a callback function which gets invoked when user presses the suspend key
newt_suspend -- Tells newt to return the terminal to its initial state
newt_texbox_set_text -- 
newt_textbox_get_num_lines -- 
newt_textbox_reflowed -- 
newt_textbox_set_height -- 
newt_textbox -- 
newt_vertical_scrollbar -- 
newt_wait_for_key -- Doesn't return until a key has been pressed
newt_win_choice -- 
newt_win_entries -- 
newt_win_menu -- 
newt_win_message -- 
newt_win_messagev -- 
newt_win_ternary --