[indent=4] uses Gtk class MyWin : Gtk.Window mdlg : Gtk.MessageDialog const exit_str : string = "Exit ?" // from a menu item def exit_clicked () var e = new Gdk.Event(Gdk.EventType.DELETE) this.exit_event(e) // from Alt-F4 or window toolbar or ... def exit_event (E : Gdk.Event) : bool var mdlg = new Gtk.MessageDialog (this, Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, this.exit_str) if mdlg.run() == Gtk.ResponseType.YES Gtk.main_quit() return false mdlg.destroy() return true init title = "Exit Query Test" window_position = WindowPosition.CENTER default_height = 100 default_width = 100 // this.delete_event.connect(this.exit_event) /* Menus */ var bar = new MenuBar() var menu1 = new Menu() var image_menu_item = new ImageMenuItem.from_stock(STOCK_QUIT, null) // query before exit from Menu selection image_menu_item.activate.connect(this.exit_clicked) menu1.append(image_menu_item) var launcher = new MenuItem.with_mnemonic("_File") launcher.set_submenu(menu1) bar.append(launcher) /* VBox */ var vbox = new VBox(false, 0) vbox.pack_start (bar, false, true, 0) add (vbox) init Gtk.init (ref args) var w = new MyWin () w.show_all () Gtk.main ()