=encoding euc-jp =head1 名前 Wx::WidgetMaker - wxPerlのためのCGI.pmのようなライブラリ =head1 概要 use Wx::WidgetMaker; $q = Wx::WidgetMaker->new(-parent => $frame); # ページャーにコントロールを'print'する $ctrl = $q->h1('H1 text'); $pagesizer = Wx::BoxSizer->new(wxVERTICAL); $q->print($control, $pagesizer); # あるいはStaticTextを'print'する $ctrl1 = $q->print('Password: '); # あるいはコントロールの配列リファレンスを'print'する $ctrl2 = $q->password_field( -name => 'password', -default => 'blue', -size => 50, # 文字数ではなくウィンドウの幅 -maxlength => 30, ); $rowsizer = Wx::BoxSizer->new(wxHORIZONTAL); $q->print([$ctrl1, $ctrl2], $rowsizer); $pagesizer->Add($rowsizer); =head1 説明 wxPerlを学習し始めるとき、どのウイジットがどんな機能を扱っているのかを 明確にわかるようにしようとしてイライラするかもしれません。 CGIを開発したことがあれば、Webブラウザをグラフィカルなユーザー・インターフェース として利用することが悪くないことだということは、すぐにわかるでしょう: あなたがHTML/CGI開発者として当然だと思う機能を実装することは複雑かもしれません。 このモジュールはwxPerlダイアログを、CGI.pmに似ているAPIを使うことによって Perl CGIプログラマにとって、もっとフレンドリにしようとしています。 (特に、私が便利/適切だと考えたCGI.pmの:standardでエキスポートされるタグの サブセットをサポートしています) 適用可能ところでは、妥当なCGI APIに忠実にあわせ、そうでなければ なんらか直感的にわかるようなことをするようにしています。 フォーム関連のメソッド(popup_menu, textfield, 等)は、-nameパラメータを 必要とします。それはCGI.pmと同じ目的を果たします。 ユーザーがフォームから入力/選択した値は、$q->param('somename')を通して アクセスすることができます。'somename'のところは-name引数で与えられたものです。 =head1 メソッド 以下にAPIのリファレンスを示します。一般的にメソッドは、 名前付きのパラメータ(-name => 'first')と並べられた順番で渡される 名前無しのパラメータの両方を取ります。オプションのパラメータは それぞれのデフォルト値を持ちます。それは括弧の中の右側に並べます; そうでなければ、そのパラメータは必須です。 =head2 new コンストラクタ I<パラメータ> =over 4 =item * -parent 親ウィンドウ(Wx::Windowでなければなりません)。 =back I<戻り値> 新しいWx::WidgetMaker オブジェクト =head2 h1, h2, h3, h4, h5, h6 同じ名前のHTMLタグと同等。 これらのメソッドは、文字列パラメータをそれぞれ大きさの 太字フォントで表示します。C

が最も大きく、C

が最も 小さくなります。HTMLタグとは違い、テキストの前後に改行は 入らないことに注意してください。このため明示的にあなたの 行に改行を入れなければなりません。 I<パラメータ> =over 4 =item * テキスト文字列 =back I<戻り値> Wx::StaticTextオブジェクト =head2 textfield I<パラメータ> =over 4 =item * -name textfield(テキストフィールド)の名前 =item * -default, -value ('') textfield(テキストフィールド)のためのデフォルト・テキスト =item * -size (-1) textfield(テキストフィールド)のサイズ(幅) =item * -maxlength (unimplemented) ユーザーがそのtextfield(テキストフィールド)に入力できる最大文字数。 現在、これは実装されていません。 =back I<戻り値> Wx::TextCtrlオブジェクト =head2 password_field I<パラメータ> =over 4 =item * -name textfield(テキストフィールド)の名前 =item * -default, -value ('') textfield(テキストフィールド)のためのデフォルト・テキスト =item * -size (-1) textfield(テキストフィールド)のサイズ(幅) =item * -maxlength (unimplemented) ユーザーがそのtextfield(テキストフィールド)に入力できる最大文字数。 =back I<戻り値> Wx::TextCtrl =head2 textarea I<パラメータ> =over 4 =item * -name textarea(テキストエリア)の名前 =item * -default, -value ('') textarea(テキストエリア)のためのデフォルト・テキスト =item * -rows (50) 高さ(ピクセル単位) (XXX: テキストの行数であるほうが望ましいかもしれません). =item * -columns, -cols (100) Width in pixels (XXX: テキストの文字数であるほうが望ましいかもしれません). =back I<戻り値> Wx::TextCtrl =head2 popup_menu I<パラメータ> =over 4 =item * -name popup_menu(ポップアップメニュー)の名前 =item * -value, -values そのメニューのための値の配列へのリファレンス。 =item * -default, -defaults (-valueの配列での先頭要素) 最初に選択されるメニューの値。 =item * -labels (-value の値) -valuesでの各値をテキスト・ラベルに関連付ける ハッシュ・リファレンス =back I<戻り値> Wx::Choiceオブジェクト。 =head2 scrolling_list I<パラメータ> =over 4 =item * -name scrolling_listのための名前。 =item * -value, -values メニューのための値の配列へのリファレンス =item * -default, -defaults 最初に選択されるメニューの値 (-valueの配列の先頭要素) =item * -size (50) ウィンドウの高さ (XXX: 一度に表示される要素の数のほうが望ましいかもしれません) =item * -multiple (false => デフォルト・スタイル) もしユーザーが複数のメニュー要素を選択することができれば、True =item * -labels (-valueの値) -valuesでの各値をテキスト・ラベルに関連付ける ハッシュ・リファレンス =back I<戻り値> Wx::ListBoxオブジェクト =head2 checkbox_group B<このメソッドは、まだ実装されていません。> I<パラメータ> =over 4 =item * -name checkbox_groupの名前 =item * -value, -values ベースとなるチェックボックスの値のための値の配列へのリファレンス。 =item * -default, -defaults (どのボックスもチェックされません) 最初にチェックされている値。 =item * -linebreak (false => 水平) 垂直に並べてチェックボックスを表示するためにはtrue値を設定 してください。詳細は-rows と -cols のエントリをご覧ください。 =item * -labels (-valueの値) -valuesの中のそれぞれ値と、テキストラベルを関連付ける ハッシュ・リファレンス =item * -rows (1) -linebreakがfalseであれば、-rowsの値は表示する 最大行数になります。 =item * -cols (あるいは -columns) (1) -linebreakがtrueであれば、-rowsの値は表示する 最大列数になります。 =item * -rowheaders このパラメータは、まだ実装されていません。 =item * -colheaders このパラメータは、まだ実装されていません。 =item * -nolabels (false => ラベルを表示) 何もラベルを表示したいためには(実際には、すべてのラベルで''を 表示するために)trueに設定してください。 =back =head2 checkbox I<パラメータ> =over 4 =item * -name チェックボックスのための必要とされる名前。 =item * -checked, -selected, -on (false => チェックされません) 最初にそのチェックボックスをチェックしておくためには、 これらのオプションのいずれかをtrue値にしてください。 =item * -value このパラメータは何もしません。CGI.pmでは、'on'になっている チェックボックスに関連付けられた値を設定するために使うことが 出来ます。しかしwxPerlでは、チェックボックスがチェックされて いれば値はTRUE、チェックされていなければFALSEになります。 =item * -label (-name 引数) ユーザに表示されるオプションのラベル。 =back I<戻り値> Wx::CheckBox オブジェクト。 =head2 radio_group I<パラメータ> =over 4 =item * -name radio_groupに必須の名前。 =item * -value, -values 値の配列へのリファレンス。これらの値はラジオボタンの ラベルとして表示されます。-labelsをご覧ください。 =item * -default (選択なし) 最初にチェックされている値。 =item * -linebreak (false => 水平) チェックボックス(訳者注:ラジオボタンの間違いでしょう)を 垂直に並べるためには、これにtrue値を設定してください。 詳細は-rows と -cols エントリをご覧ください。 =item * -labels (-valuesを利用します) -valuesと同義語です。CGI.pmでは、-valuesは各ラジオボタンを値を、 -labelsはラベルを与えます。wxPerlでは、ラジオボタンは関連付けられた 値を持ちません。そのため-valuesと-labels のどちらを使っても同じことです。 もし両方とも与えられると、-labelsが優先されます。 =item * -rows (1) -linebreakがfalseであれば(あるいは与えられなければ)、-rowsの値は 表示する(最大)行数になります。 =item * -cols (or -columns) (1) -linebreakがtrueであれば、-colsの値は 表示する(最大)列数になります。 =item * -rowheaders このパラメータはまだ実装されていません。 =item * -colheaders このパラメータはまだ実装されていません。 =item * -nolabels (false) 何もラベルを表示しないためには、これをtrueに設定してください。 =item * -caption ('') このパラメータはCGI.pmへの追加です。しかしラジオボタンの グループの周りに配置されるStaticBoxがあるので、ここでは便利です。 (好きか嫌いかに関わらず、Wx::RadioBoxはこうします)。 StaticBoxのためのラベルを指定するために-captionオプションを使って ください。 どこかの時点で、私は個々のRadioBoxを使ったradio_groupを実装し、 StaticBoxでradio_groupを囲わないようなオプションを提供するかもしれません: これにより-rowheaders と-colheadersも実装することができます。 =back I<戻り値> Wx::RadioBoxオブジェクト =head2 submit テキストがついたボタンを作成します。そのボタンには何も イベント・ハンドラがつけられていないので、CGIフォームでの submitボタンとは似ていないことに注意してください。 そのためデフォルトでは、ボタンをクリックしても何も起きません。 I<パラメータ> =over 4 =item * -name submitボタンに必須の名前。CGI.pmとは違い、この名前はボタンラベルとして 表示されません。これはwindow名です。こうしなければ-nameパラメータは、 他のメソッドと矛盾してしまいます。 =item * -value, -label ('Submit') CGI.pmでは、-value (あるいは -label)が、ボタンが押されたとき アプリケーションに"下で"渡される関連付けられた文字列を与えます。 ここでは、その代わりに-valueがボタンのラベルになります。 ラベル文字列を$button->GetLabel()で取り出すことが出来ることに注意 してください。 =back I<戻り値> Wx::Buttonオブジェクト =head2 image_button I<パラメータ> =over 4 =item * -name ボタンに必要な名前。 =item * -src ボタン上のビットマップの位置を与えるファイル名。 絶対パスのファイル名か現在の作業ディレクトリからの 相対パスでのファイル名を与える必要があります。 現在では、以下の拡張子がついたファイル名をサポートしています (wxWindowsがそれをコンパイルで入っているものとします): .bmp, .gif, .xbm, .xpm, .jpg, .jpeg, .png, .pcx, .pnm, .tif, .tiff. そうでなければ、おそらくセクメンテーション・フォルトになるでしょう。 =item * -align このパラメータは実装されていません。 =back I<戻り値> Wx::BitmapButton。 =head2 print これはCGI.pmのメソッドではありませんが(しかしApache.pmのメソッド(!) ではあります :)、StaticTextオブジェクトを作成したり、Sizerに制御 オブジェクトを追加するためには役に立ちます。 I<パラメータ> =over 4 =item * -add このパラメータは文脈に合わせてオーバーロードされます。もし引数が 普通の文字列であれば、StaticTextオブジェクトが返されます。 もし引数がWx::Controlオブジェクト(TextCtrl、Choiceなど 他のWx::WidgetMakerの1つによって返された何か)やオブジェクトの 配列リファレンスであれば、そして-sizer引数がWx::Sizerであれば、 そのコントロールは直接sizerに追加されます。詳細については以下の -sizerパラメータをご覧ください。 =item * -sizer (undef) -add引数がWx::Controlであれば、オブジェクトは-sizer引数で指定された Wx::Sizerに$sizer->Add($control)で追加されます。 もし-add引数がWx::Controlオブジェクトの配列リファレンスであれば、 すべてのオブジェクトは順番に$sizerに追加されます。 =item * -option (0) Wx::Sizer::Addへの'option'パラメータ。 =item * -flag (0) Wx::Sizer::Addへの'flag'パラメータ。 =item * -border (0) Wx::Sizer::Addへの'border'パラメータ。 =back I<戻り値> -textが文字列であればWx::StaticTextオブジェクト、 あるいは-sizerが与えられていれば何らかのWx::Controlサブクラス =head2 param I<パラメータ> =over 4 =item * ゼロまたは1つの文字列 paramの"setterバージョンがないことに注意してください。" =back I<戻り値> 何も引数が渡されなければ、全ての子供コントロールの名前のリストを 返します(それらが名前を持っていものとして。もしこのモジュールで 作られたのであれば持っています)。もし名前が渡されると、 リスト・コンテキストでは選択された値を返します。一方、 スカラー・コンテキストでは見つかった最初の値を返します。 =head1 作者 Copyright 2002, Scott Lanning . All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 参考資料 L と L のPOD。 wxPerl メーリング・リスト