ruby-****@sourc*****
ruby-****@sourc*****
2008年 10月 13日 (月) 08:53:46 JST
------------------------- REMOTE_ADDR = 222.225.51.171 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?libglade2-tut-mainwindow ------------------------- @@ -29,9 +29,11 @@ ウインドウの右上にある×ボタン(「閉じる」ボタン)がクリックされたらアプリケーションを終了させることにします。 ×ボタンがクリックされると、main_windowはdelete_event Signalを発生させるのでそれを捕捉してHandlerを呼び出します。Signal:にdelete_eventを選択すると、Handlerは自動的に"on_main_window_delete_event"という名前になります。名前を変更しても良いですが、ここではそのまま使います。Addボタンを押してリストにSignalとHandlerを追加します。 -この"delete_event"はウィンドウマネージャからウィンドウを閉じようとした時に発生するSignalで、X Window Systemのイベントメカニズム由来のため、Handlerの最後で、Signalに対する処理を行ったかどうかを真偽値で返す必要があります。falseを返すとSignalを処理していないとみなされ、つづいて自動的に"destroy" Signalが発生します。trueを返すと処理終わったとみなされ、それ以上何も起こりません。 +(この"delete_event"はウィンドウマネージャからウィンドウを閉じようとした時に発生するSignalで、X Window Systemのイベントメカニズム由来のため、Handlerの最後で、Signalに対する処理を行ったかどうかを真偽値で返す必要があります。falseを返すとSignalを処理していないとみなされ、つづいて自動的に"destroy" Signalが発生します。trueを返すと処理終わったとみなされ、それ以上何も起こりません(ウィンドウは閉じられません)。 -Signal:でdestroyを選択し直してこれもリストに追加します。 +ちょうどこの仕組みを利用して、文書が未保存のままウィンドウが閉じられようとした時に、保存するか否かまたはウィンドウを閉じること事態をキャンセルするか、の意思確認をする機能を作ることができます。具体的には、"delete_event"のHandler内で意思確認のためのダイアログを表示して、その入力結果によってHandlerから返す値を変更するなどの方法があります) + +さらに"destroy" SignalのHandlerを作成するためにSignal:でdestroyを選択し直してこれもリストに追加します。 {{br}}