PHP マニュアル
前のページ |  | 次のページ

# CI. Newt 関数

# 導入

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

# 要件

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

# インストール手順

この PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 http://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 フォームの終了原因

表 1. 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 色セット

表 2. 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 引数のフラグ

表 3. Newt 引数のフラグ

定数 | 意味
--- | ---
`NEWT_ARG_LAST` |
`NEWT_ARG_APPEND` |

## Newt フラグの状態

表 4. Newt フラグの状態

定数 | 意味
--- | ---
`NEWT_FLAGS_SET` |
`NEWT_FLAGS_RESET` |
`NEWT_FLAGS_TOGGLE` |

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

表 5. 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` | カーソルを表示します

## ファイル識別子のフラグ

表 6. ファイル識別子のフラグ

定数 | 意味
--- | ---
`NEWT_FD_READ` |
`NEWT_FD_WRITE` |
`NEWT_FD_EXCEPT` |

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

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

定数 | 意味
--- | ---
`NEWT_CHECKBOXTREE_UNSELECTABLE` |
`NEWT_CHECKBOXTREE_HIDE_BOX` |
`NEWT_CHECKBOXTREE_COLLAPSED` |
`NEWT_CHECKBOXTREE_EXPANDED` |
`NEWT_CHECKBOXTREE_UNSELECTED` |
`NEWT_CHECKBOXTREE_SELECTED` |

## 入力フラグ

表 8. 入力フラグ

定数 | 意味
--- | ---
`NEWT_ENTRY_SCROLL` |
`NEWT_ENTRY_HIDDEN` |
`NEWT_ENTRY_RETURNEXIT` |
`NEWT_ENTRY_DISABLED` |

## リストボックスのフラグ

表 9. リストボックスのフラグ

定数 | 意味
--- | ---
`NEWT_LISTBOX_RETURNEXIT` |

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

表 10. テキストボックスのフラグ

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

## フォームのフラグ

表 11. フォームのフラグ

定数 | 意味
--- | ---
`NEWT_FORM_NOF12` | F12 を押しても終了しません

## Newt キー

表 12. 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 アンカー

表 13. Newt アンカー

定数 | 意味
--- | ---
`NEWT_ANCHOR_LEFT` |
`NEWT_ANCHOR_RIGHT` |
`NEWT_ANCHOR_TOP` |
`NEWT_ANCHOR_BOTTOM` |

## グリッドのフラグ

表 14. グリッドのフラグ

定数 | 意味
--- | ---
`NEWT_GRID_FLAG_GROWX` |
`NEWT_GRID_FLAG_GROWY` |
`NEWT_GRID_EMPTY` |
`NEWT_GRID_COMPONENT` |
`NEWT_GRID_SUBGRID` |

# 例

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

例 1. 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);
?>`

前のページ | ホーム | 次のページ
syslog | 上に戻る | newt_bell