2009年9月14日月曜日

WinDialog

Windows のコモンダイアログを利用するための Ruby ライブラリです。

http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/windialog

Ruby 1.8 の標準ライブラリのみを使っていますので、windialog.rb にさえ $RUBYLIB のパスが通っていれば、何も gem install しなくても使えます。

しばしば利用する、以下の4つのダイアログボックスを、メソッド呼び出し一発で利用できます:
  1. message box (メッセージを表示します)
  2. input box (文字列を入力します)
  3. open file dialog (「ファイルを開く」ダイアログボックスです)
  4. save file dialog (「ファイルを保存する」ダイアログボックスです)
また、メソッドの引数はハッシュとして指定しますので、(少なくとも個人的には)使いやすいです。

まずは、メッセージボックスです:


上図のメッセージボックスを表示するコードは、以下のようになります:

require 'windialog'

pressed_button = WinDialog::message(
:title => 'Need to confirm with you...',
:message => 'Failed. Retry?',
:button => :retry_cancel,
:icon => :question,
:default_button => 2,
:modal => :application
)

次に、インプットボックスです:


require 'windialog'

puts WinDialog::input(
:title => 'Title',
:message => 'Prompt',
:default => 'Default'
)

最後に、open file dialog と save file dialog です。


require 'windialog'

filetypes = [
[ 'Ruby Scripts', ['.rb', '.erb'], 'TEXT' ],
[ 'Text Files', '.txt' ],
[ 'All Files', '*' ]
]

filename = WinDialog::open_file(
:title => 'Open a new file',
:filetypes => filetypes,
:initialdir => 'C:/cygwin/home/username/work',
:initialfile => 'foo.rb'
)

上記のサンプルコードにおいて、呼び出されるメソッド名を、open_file から save_file に変えると、open file dialog の代わりに、save file dialog が表示されます。Save file dialog の場合は、既存のファイルが選択されると、「既存のファイルが選択されたが、上書きするか?」と確認するダイアログボックスが表示されます。

ドキュメントは、いつも通り、rdoc 形式でソースファイル中に記述されています。


0 件のコメント:

コメントを投稿