ruby-****@sourc*****
ruby-****@sourc*****
2004年 11月 9日 (火) 20:46:53 JST
------------------------- REMOTE_ADDR = 15.211.169.100 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?libglade2-tut-dialogs ------------------------- = 各種ダイアログを追加する ファイルの保存・オープン用のファイル選択ダイアログと、Aboutダイアログも一緒に作ります。 == ファイル選択ダイアログ ファイル選択ダイアログはGtk::FileSelectionとGtk::FileChooserDialogの2種類があります。Gtk::FileSelectionはGTK+-2.0からのウィジェット、Gtk::FileChooserDialogはGTK+2.4以降のウィジェットです。 - 新しもの好きなのでここでは、Gtk::FileChooserDialogを使ってみましょう。 + 新しもの好きなのでここでは、Gtk::FileChooserDialogを使ってみましょう。glade-2の使い方には慣れてきたと思うので若干手順を端折りますね。 {{image_right("1.png")}} {{br}} プロパティで変更したのは以下です。 :Name デフォルトのままだと長いので、filechooserにしました。 :Position 表示されるポジションです。親ウインドウの中央に表示されるように"Center on Parent"を選択しました。 :Modal モーダルとはこのウインドウが表示されているとき別のウインドウ(親ウインドウ)を触れなくするというオプションです。ここでは、Yesにしました。 :Skip Taskbar/Pager タスクバーやページャにこのウインドウを表示させるかどうかの設定です。両方Yesにしました。 ただし、ウインドウマネージャによっては有効にならないときがあるかもしれません。 また、Commonタブの"Visible"プロパティはは"No"にします。起動時は非表示状態にしておくためです。 == Aboutダイアログ AboutダイアログはRuby/Gnome2を使うと一発なのですが、ここではRuby/GTK2だけでできるものということで自前で簡単なAboutダイアログを作ることにします。 {{image_right("2.png")}} {{br}} :Name "aboutdialog"としました。 :Title "About ... "としました。 :Position こちらも親ウインドウの中央に表示されるように"Center on Parent"を選択しました。 :Skip Taskbar/Pager タスクバーやページャにこのウインドウを表示させるかどうかの設定です。両方Yesにしました。 ただし、ウインドウマネージャによっては有効にならないときがあるかもしれません。 こちらも、Commonタブの"Visible"プロパティはは"No"にします。 次にラベルを貼り付けてそこに情報を書き込みます。 :Label ちょっと長いです。Pango Text Attribute Markupを使って色をつけてみます。Pango MarkupについてはPango APIリファレンスにある((<Pango Text Attribute Markup|URL:http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html>))を参照してください(環境によっては使用できない(変化しない)項目もあります)。 <span color="red">hwedit - Hello World Editor</span> <span color="darkgreen">This is a sample application for Ruby/Libglade2</span> Ruby/Glade2 is a part of Ruby-GNOME2. Copyright (c) 2004 Ruby-GNOME2 Project Team :Use Markup "Yes"を指定します。これをYesにすることで前述のPango Markupが有効になります。Noの場合は、Markupも通常の文字列として認識されます。 :Justify "Center"を指定し中央寄せで表示します。 次にCloseボタンを選択してボタンがクリックされたときのイベント(clicked)に対しシグナルハンドラを追加します。デフォルトのままで「on_closebutton1_clicked」という名前になります。