oota toshiya
ribbo****@users*****
2005年 9月 23日 (金) 21:40:48 JST
Index: docs/modules/Cmenu-1.1/Cmenu.pod diff -u /dev/null docs/modules/Cmenu-1.1/Cmenu.pod:1.1 --- /dev/null Fri Sep 23 21:40:48 2005 +++ docs/modules/Cmenu-1.1/Cmenu.pod Fri Sep 23 21:40:48 2005 @@ -0,0 +1,408 @@ +=head1 NAME + +Cmenu - perlスクリプト中のデータ入力とメニューのためのPerl拡張 +Cmenu - Perl extension for menuing and data entry in perl scripts + +=head1 SYNOPSIS + + use Cmenu; + use Curses; + use Text::Wrap; + + &menu_initialise($main_title,$advice); + &menu_init($title,$sub-title,$topest,$menu_help); + &menu_item($item_text,$item_label,$item_style,$item_data,$item_pos) + &menu_item($item_text,$item_label,$item_style,$item_data,$item_pos) + ... + &menu_item($item_text,$item_label,$item_style,$item_data,$item_pos) + + $sel=&menu_display($advice,$start_item); + + &menu_button_set($button,$button_text); + + &menu_popup($title,$text); + ... + &menu_popup(); + + &menu_show($title,$text,$colour); + + &menu_terminate($message); + +=head1 DESCRIPTION + +CMENU はperlスクリプト中でメニューの生成のための機能を提供するために +設計されたPerlモジュールである。 + +CMENU is a Perl Module designed to provide functions for the +creation of menus in perl scripts. + +これは perlmenu から継続しているが、画面操作のためにCursesインタフェース +を使用する。これはまた表示のために、大きなテキストを処理する Text::Wrap +モジュールも使う。これらの2つのモジュールはユーザのスクリプトによって +ロードされねばならない。 + +It follows on from perlmenu but uses a Curses interface for +screen manipulation. It also uses the Text::Wrap module to +process large chunks of text for display. These two modules +should be loaded by user scripts. + +メニュー操作の順番は以下のとおり; + 1. モジュールの初期化 + loop + 2. メニュー構造の定義 + 3. いくつかのメニューオプションの定義 + 4. メニューの呼び出し + 5. 選択されたメニューの処理 + loop + 6. モジュールの終了 + +モジュールはいくつかの機能も提供している。 + +The sequence of menu processing is as follows; + 1. Initialise the module + loop + 2. Define a menu structure + 3. Define several menu options + 4. Call the menu + 5. Deal with the menu selections + loop + 6. Terminate the module + +The module also provide some extra functions. + + +=head2 menu_initialise + +このルーチンはCursesを初期化し、メニューモジュールのために必要な +構造を生成する。これは、空白でもよい2つのパラメータを受け付ける。 + $main_title スクリプト全体で使える、全てのページで表示される題名 + $advice 全ての画面(モジュールによって上書きされるもの以外) + の下部に表示される助言的な短いテキスト +これらの関数は何も帰さない。 + +This routine initialises Curses and creates necessary structures +for the menu module. It accepts two parameters which may be empty; + $main_title A script-wide title displayed on all pages + $advice A short text advisory displayed at the foot + of every screen (unless over-ridden by the + module). +The routine returns nothing. + +=head2 menu_init + +このルーチンは、コマンドラインユーティリティ "dialog"形式でグラフィック +背景を作成する。3つのパラメータを受け付ける。 + $title 丈夫に表示されるメニュータイトル + $sub_title より詳しい説明を提供するためのサブタイトルテキスト + $menu_help Helpキーが押されたときに表示されるヘルプファイル。 + ヘルプファイルは構成ファイル中に定義されている標準の + 位置に置かれる(オプションである) + +The routine creates a graphic backdrop in the style of the +command-line utility "dialog". It accepts 3 parameters + $title a menu title displayed at the top + $sub_title sub-title text used to give more description + $menu_help a help-file to be displayed when the Help key + is pressed. The help file is located in a + standard location as defined in the configuration + file. (optional) + +=head2 menu_item + +それぞれのメニュー業は以下を呼び出すことで生成される。 + $item_text メニューオプションとして表示されるテキスト + $item_label テキストの脇に表示することができるテキストのラベル + $item_style どのようにこのオプションが表示されるか、あるいは + 動作するかを定義。数字の0から9を指定する。 + 0 (既定値) テキストラベルとテキストを結合して表示 + メニューが選択されたときにラベルが返る。 + 1 テキストラベルの代りに番号を表示。定義順に番号が + 振られる。 + 2 項目は選択リストの一部となる。メニューにつき1つ + の項目のみ選択リストから選択可能。 + 3 項目はチェックリストの一部となる。チェックリストは + (無選択を含む)複数個の項目を選択可能。 + 4 タイプ0のようだが、テキストがフィールドの内容であり、 + ラベルがその意味であるデータフィールドを表示するため + に、異なった形で表示される所が違う。 + 5 タイプ4のようだが項目のテキストが右寄せになる + 6 4と同じだが、項目が選択された場合、フィールドの内容 + が編集可能なところが違う。 + 7 6と同じだが、フィールドは数字値として扱われる + 8 4のように表示されるが、選択されたときに(テキストラベル + でなはく)別の参照値が返る。 + 9 スペーサ;メニューを空白で区切る。 + +Each line of a menu is created using this call. + $item_text The text to be displayed as the menu option + $item_label A text label which may be displayed beside + the text + $item_style How the menu option should be drawn or behave + Should be a number from 0 to 9 + 0 (default) preceeds the text with a text label + the label is returned if the item is selected + 1 use number instead of a text label; numbered in + order of definition + 2 item is part of a radio list; radio lists allow + only ONE item to be selected per menu + 3 item is part of a check list; check lists allow + any number (inc. none) of items to be selected + 4 as for type 0 expect item label is rendered differently + usually used to list data fields where the text is + the contents of a field and the label is its meaning + 5 as for 4 except the item text is right-aligned + 6 as for 4 but if the item is selected, field contents + can be edited + 7 as for 6 except field treated as a numeric value + 8 displayed as for 4 except an alternative reference + (not the text label) is returned when selected + 9 spacer; leaves a space in the menu + + $item_data 特別な情報を必要とするいくつかの項目形式 + 2 あらかじめ選択されている選択リストの項目 + 3 あらかじめ選択されているチェックリストの項目 + 6 フィールドの戻り値を定義 + 7 6と同じ + 8 6と同じ + + $item_data Some item styles need extra information + 2 which item in a radio list is already active + 3 item in a check list already selected + 6 specifies the return value for the field + 7 as for 6 + 8 as for 6 + + $item pos フィールド編集のみ(6と7);データフィールドの + 最大値と数字の桁数を指定。たとえば "30 2 0" + のように空白で区切られたリストで指定する。 + 例の場合は30桁で2つの数字がある。 + + $item pos For edit fields only (6 + 7); specifies the + maximum length of a data field and decimal + precision for numbers. Passed as a space + seperated list eg "30 2 0", length 30 with + 2 decimal places + +=head2 menu_display + +実際にメニューの表示とナビゲーションを実行する。選択された動作 +に対応した情報が返る。2つのパラメータを指定できる。 + + + $menu_prompt 助言として画面の下部に表示される + $menu_start 開始時から有効にすべき項目 + これは、項目に対して、最初に選択するように定義 + されたようにする。以前の選択の後にメニューに戻 + るときに便利である(オプション) + +Actually performs the menu display and navigation. Returns +information relevant to the action selected. Accepts 2 parametrs; + + $menu_prompt Displayed at the foot of the screen as advice + $menu_start Which item should be active from the start + This allows items other than the first declared + to be selected; useful when returning to a menu + after an earlier selection (optional) + +これは、メニューナビゲーションの結果が返ってくる重要な呼び出し +である。メニュー項目が定義されたスタイルに依存して色々な結果が +戻る。一般的に、全ての選択が標準文字($Cmenu::menu_sep で変更可 +能)によって分離されたトークン化されたリストである。単純なメニュー +のために、選択されたテキストラベル(0,1,4,5)またはオフセット(8) +を戻すこともできる。 + +This is the important call which returns the result of menu +navigation. Depending on the style of menu items defined, various results +will be returned. Generally all selections are a tokenised list seperated +by a standard character ($Cmenu::menu_sep - can be changed by user). For +simple menus, only the selected text label (0,1,4,5) or offset (8) will be +returned. + +選択チェックリスト(2と3)のために、全ての選択された項目が、 +それぞれの項目のテキストラベルを使って返る。 +For radio and check lists (2 and 3) all the selected items will be returned +using each items text label + +編集されたフィールドのために、より複雑な値が戻る。すべての +メニュー上の編集可能なフィールドはトークン(編集されるか否か +にかかわらず)が戻る。それぞれのトークンは2つのフィールドを +持つ。それは、フィールドラベルと新しいフィールド内容である。 +それらは$Cmenu::menu_scan によって分離される。 + +For edited data fields, more complex values are returned. All editable fields +on a menu will have a token (whether edited or not) returned. Each token has two +fields - the field label and the new field contents; these are seperated by +$Cmenu::menu_sepn. + +任意のタイプの項目はメニュー中に含むことができるので、戻り値 +は複雑であってもよい。複雑な戻り値のために、たとえば、以下の +ように、トークンはコマンドフラグメントを使って分割することが +できる。 + + chop($return_value=&menu_display("Menu Prompt",$start_on_menu_item)); + @selection=split(/$Cmenu::menu_sep/,$return_value); + for($loop=1;$loop<=$#selection;$i++) { + # deal with each token + ($field_label,$field_content) = split(/$Cmenu::menu_sepn,$selection[$i]); + # processing each field accordingly + ... + } + +Since any type of item can be included in a menu, return values may be +equally complex. For complex return values, tokens can be split out using +a command fragment such as + + chop($return_value=&menu_display("Menu Prompt",$start_on_menu_item)); + @selection=split(/$Cmenu::menu_sep/,$return_value); + for($loop=1;$loop<=$#selection;$i++) { + # deal with each token + ($field_label,$field_content) = split(/$Cmenu::menu_sepn,$selection[$i]); + # processing each field accordingly + ... + } + +最初のトークンは($selection[0])として戻り、これは通常メニューが +閉じられた時に押されたキーである。これはめったに有効なメニュー +項目ではない - "異常終了"が要求されていないことを確かめる必要が +ある。 + +The first token returned ($selection[0]) is usually the key pressed to close the +menu was closed; this will rarely be a valid menu item - check it to make sure +an "abort" was not requested. + +=head2 menu_button_set + +それぞれのメニューは、有効にできる最大3つのボタンを持つ。通常、 +それらはオプションに、メニュー項目を受け取りか急いでメニューを +中止のどちらかを与える。ヘルプ機能はいつでも呼び出せる。 + +Each menu has up to 3 buttons which can be activated. Usually these give +options to either Accept a menu item or Abort the menu prematurely. A Help +facility may also be called. + +このルーチンは、ボタンをon/offし、ボタンのテキストラベルを指定 +する(ボタン動作は、期待するにもかかわらず、作成したスクリプトは、 +それらのレスポンスに割り込むのが可能であるとしても、"ACCEPT"、 +"HELP"、または"EXIT"が必要だが変更できない)。<TAB>キーはボタン +バーを移動する。 + +This routine switches buttons on and off and, specifies the text label of the button +(button actions cannot be altered yielding "ACCEPT", "HELP" or "EXIT" although your +scripts can interret these responses however you wish). The <TAB> key +traverses the buttons bar. + +ルーチンのパラメータは以下のとおり。 + $button どのボタンが選択されたかを示す1,2または3という数字 + $label ボタンのためのテキストラベル。空白文字列の場合はボタン + をoffにする。 + +Parameters for this routine are; + $button a number 1, 2 or 3 specifying which button is to be set + $label the text label for the button; an empty string switches the button off + +=head2 menu_popup + +もしも、長いプロセスが起動された場合、簡単な画面をポップアップ +することができる。ポップアップはシステムが何をするかを示す1行の +文字列のみを持つ。 + ポップアップの開始は $message 付きで呼び出す。 + ポップアップの終了は メッセージなしで呼び出す。 +ポップアップを閉じることはメニュー表示を混乱させることに注意。 + +Allows a simple screen to pop-up if a lengthy process has been launched. The popup +has only one line of text to give an indication of what the system is doing; + To start a popup - call with $message + To close a popup - call with NO message +Remember to close the popup or the menu display will get confused. + +=head2 menu_show + +画面上に色々な情報を表示する。画面は通常適当なキーを押すまで +通常のメニューに置き代わる。 +ルーチンは3つのパラメータを取る。 + $title ディスプレイのタイトル + $message 表示されるメッセージ。もしも、これが1行であれば、 + 中心に置かれる。もしもそれより長ければ、Text::wrap + ルーチンが呼ばれ、画面上にうまく配置するようにテキ + ストが操作される。テキストの整形は全く原始的である。 + ディスプレイは有効なウィンドウの領域を超過したとして + も、スクロールすることはできない。 + $colour HELP|WARN|ERRORから選ばれた画面を描画するための色 + スタイル。 + HELP画面は、継続のための自動的なボタンを持つ。WARNと + ERRORは、複数のボタンを持つことができる(これを制御す + るには menu_button_setを使う)。 + +Allows a variety of information to be shown on the screen; the display +generally replaces normal menu rendering until the user presses an approriate key. +The routines takes 3 parameters + $title the title of the display + $message the message to be displayed. If this is only one line it will be + centred; if longer the external routine Text::wrap is used to + manipulated the text to fit on the screen. Text formatting + is quite primitive. + The display cannot be scrolled if it exceeds the dimensions of + the active window + $colour colour style to render the display chosen from HELP|WARN|ERROR + HELP screens have an automatic button to continue; WARN and ERROR + can have multiple buttons (use menu_button_set to control these) + +=head2 menu_terminate + +メニュー機能とCursesを終了し、クローズするために、スクリプトと +して呼ばれる。端末は妥当な状態にしなければならない。$message +パラメータはSTDOUTにscript/routineが終了として表示する。 + +もしも、スクリプトがこれを呼び出す前に異常終了すると、ttyの妥当 +性は失われる。妥当性を復元するために"reset"コマンドを使う。 + +Called as the script terminates to close down menu facilities and Curses. +The terminal should be left in a sane state. The $message parameter prints +to STDOUT as the script/routine finishes. + +If a scripts aborts before calling this, the sanity of the tty will likely +get lost; use the command "reset" to restore sanity. + +=head1 AUTHOR + +Andy Ferguson andy****@moil***** + +=head1 FILES + +cmenurc ターミナルと画面の既定値を設定する構成ファイル + このファイルは以下のとおり + システム共通 - /etc/Cmenu/.cmenurc + ユーザ固有 - ~/.cmenurc + 実行時固有 - ./cmenurc + 内容は提供されたファイルを参照のこと。 + +cmenurc configuration file to set terminal and screen defaults + this file may be + System Wide - in /etc/Cmenu/.cmenurc + User specific - ~/.cmenurc + Run Specific - ./cmenurc + See the distributed file for contents. + +vt100-wy60 Wyse 60 端末上での VT100 エミュレーションのための + tic (terminfo)ファイル。これは、ファンクションキー + を設定する。 + +vt100-wy60 A tic (terminfo) file for VT100 emulation on a Wyse 60 + terminal; this sets the functions keys appropriately + +demo モジュールを使ってどのように描画できるかを表示する + サンプルスクリプト。 + +demo A sample script showing how menus can be rendered with the module. + +=head1 BUGS + +* No continuation pages or checks for text displays overflowing the windows. +* Resize and Refresh functions can misbehave in spawned shells +* BACKTAB definition from Curses is lost so can only TAB forwards thru buttons + +perl(1). + +=head1 日本語訳 + +2005/09/23 太田俊哉 <ribbo****@sourc*****>