Forum und email

Newt 関数

導入

これは RedHat Newt ライブラリのための PHP 拡張モジュールで、 ユーザに優しいアプリケーションを作成するための、ターミナルベースの ウィンドウやウィジェットのライブラリです。 PHP でこの拡張モジュールを有効にすることで Newt ウィジェットが使用可能に なります。この中にはウィンドウやボタン・チェックボックス・ラジオボタン・ ラベル・エディットボックス・スクロールバー・テキストエリア・スケールなどが 含まれます。この拡張モジュールの使用方法は、もとの C 言語用の API と非常によく似ています。

要件

このモジュールは RedHat Newt ライブラリの関数を使用します。 libnewt バージョン >= 0.51.0 が必要です。

インストール手順

この » PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » https://pecl.php.net/package/newt.

PHP 4 の場合、この PECL 拡張モジュール のソースは、PHP のソースの ext/ ディレクトリ、または 上の PECL リンクで入手可能です。 これらの関数を使用するには、--with-newt[=DIR] オプションを使用し、newt サポートを有効にした上で CGI あるいは CLI 版の PHP を コンパイルする必要があります。

注意: この拡張モジュールは、Windows プラットフォームでは使用できません。
この拡張モジュールをコンパイルするには、curses ライブラリおよび slang ライブラリも必要です。 これらのライブラリの場所を指定するには、以下の設定オプションを 使用します。 --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

リソース型

この拡張モジュールは 2 つのリソース型 "newt component" および "newt grid" を使用します。 リソース型 "newt component" は関数から返されるもので、一般的な newt ウィジェット(例: newt_button())を作成します。 リソース型 "newt grid" はコンポーネントの特別なリンク ID で、これは newt グリッドファクトリ関数(例: newt_create_grid()) によって返されます。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

Newt フォームの終了原因

Newt フォームの終了原因
定数 意味
NEWT_EXIT_HOTKEY newt_form_add_hot_key() で定義したホットキーが押されました
NEWT_EXIT_COMPONENT 何らかのコンポーネントがフォームを終了させました
NEWT_EXIT_FDREADY newt_form_watch_fd() で指定したファイル記述子の 読み込みあるいは書き込みの準備が完了しました
NEWT_EXIT_TIMER newt_form_set_timer() で指定した時間が 経過しました

Newt 色セット

Newt 色セット
定数 意味
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 引数のフラグ

Newt 引数のフラグ
定数 意味
NEWT_ARG_LAST  
NEWT_ARG_APPEND  

Newt フラグの状態

Newt フラグの状態
定数 意味
NEWT_FLAGS_SET  
NEWT_FLAGS_RESET  
NEWT_FLAGS_TOGGLE  

Newt コンポーネントのフラグ

Newt コンポーネントのフラグ
定数 意味
NEWT_FLAG_RETURNEXIT コンポーネントがアクティブになった際にフォームを終了します
NEWT_FLAG_HIDDEN コンポーネントは非表示です
NEWT_FLAG_SCROLL コンポーネントはスクロール可能です
NEWT_FLAG_DISABLED コンポーネントは使用不能です
NEWT_FLAG_BORDER  
NEWT_FLAG_WRAP テキストを折り返します
NEWT_FLAG_NOF12 F12 を押してもフォームを終了しません
NEWT_FLAG_MULTIPLE  
NEWT_FLAG_SELECTED コンポーネントは選択されています
NEWT_FLAG_CHECKBOX コンポーネントはチェックボックスです
NEWT_FLAG_PASSWORD 入力コンポーネントはパスワード入力欄です
NEWT_FLAG_SHOWCURSOR カーソルを表示します

ファイル識別子のフラグ

ファイル識別子のフラグ
定数 意味
NEWT_FD_READ  
NEWT_FD_WRITE  
NEWT_FD_EXCEPT  

チェックボックスツリーのフラグ

チェックボックスツリーのフラグ
定数 意味
NEWT_CHECKBOXTREE_UNSELECTABLE  
NEWT_CHECKBOXTREE_HIDE_BOX  
NEWT_CHECKBOXTREE_COLLAPSED  
NEWT_CHECKBOXTREE_EXPANDED  
NEWT_CHECKBOXTREE_UNSELECTED  
NEWT_CHECKBOXTREE_SELECTED  

入力フラグ

入力フラグ
定数 意味
NEWT_ENTRY_SCROLL  
NEWT_ENTRY_HIDDEN  
NEWT_ENTRY_RETURNEXIT  
NEWT_ENTRY_DISABLED  

リストボックスのフラグ

リストボックスのフラグ
定数 意味
NEWT_LISTBOX_RETURNEXIT  

テキストボックスのフラグ

テキストボックスのフラグ
定数 意味
NEWT_TEXTBOX_WRAP テキストボックスのテキストを折り返します
NEWT_TEXTBOX_SCROLL テキストボックスのテキストをスクロールします

フォームのフラグ

フォームのフラグ
定数 意味
NEWT_FORM_NOF12 F12 を押しても終了しません

Newt キー

Newt キー
定数 意味
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 アンカー

Newt アンカー
定数 意味
NEWT_ANCHOR_LEFT  
NEWT_ANCHOR_RIGHT  
NEWT_ANCHOR_TOP  
NEWT_ANCHOR_BOTTOM  

グリッドのフラグ

グリッドのフラグ
定数 意味
NEWT_GRID_FLAG_GROWX  
NEWT_GRID_FLAG_GROWY  
NEWT_GRID_EMPTY  
NEWT_GRID_COMPONENT  
NEWT_GRID_SUBGRID  

この例は、RedHat の 'setup' ユーティリティダイアログを PHP に移植した もので、テキストモードで動作します。

Example#1 Newt の使用例

<?php
    newt_init 
();
    
newt_cls ();

    
newt_draw_root_text (00"Test Mode Setup Utility 1.12");
    
newt_push_help_line (null);
    
newt_draw_root_text (-300"(c) 1999-2002 RedHat, Inc");

    
newt_get_screen_size (&$rows, &$cols);

    
newt_open_window ($rows/2-17$cols/2-103417"Choose a Tool");

    
$form newt_form ();

    
$list newt_listbox (3210);

    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 (512"Run Tool");
    
$b2 newt_button (2112"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);
?>

目次