Windows のコモンダイアログを利用するための Ruby ライブラリです。
http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/windialog
Ruby 1.8 の標準ライブラリのみを使っていますので、windialog.rb にさえ $RUBYLIB のパスが通っていれば、何も gem install しなくても使えます。
しばしば利用する、以下の4つのダイアログボックスを、メソッド呼び出し一発で利用できます:
- message box (メッセージを表示します)
- input box (文字列を入力します)
- open file dialog (「ファイルを開く」ダイアログボックスです)
- 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 形式でソースファイル中に記述されています。