Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!ruby
- require 'gtk2'
- def message_box(mainwnd, text, title="", buttons="ok")
- dialog = Gtk::Dialog.new(title, mainwnd, Gtk::Dialog::MODAL)
- case buttons
- when "close" then
- dialog.add_button(Gtk::Stock::CLOSE, Gtk::Dialog::RESPONSE_CLOSE)
- when "yesno" then
- dialog.add_button(Gtk::Stock::YES, Gtk::Dialog::RESPONSE_YES)
- dialog.add_button(Gtk::Stock::NO, Gtk::Dialog::RESPONSE_NO)
- when "okcancel" then
- dialog.add_button(Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK)
- dialog.add_button(Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL)
- when "okcancelhelp" then
- dialog.add_button(Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK)
- dialog.add_button(Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL)
- dialog.add_button(Gtk::Stock::HELP, Gtk::Dialog::RESPONSE_HELP)
- else
- dialog.add_button(Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK)
- end
- dialog.set_default_size(500, 100)
- dialog.set_window_position(Gtk::Dialog::Position::CENTER)
- #dialog.signal_connect("response"){dialog.destroy}
- dialog.vbox.add(Gtk::Label.new(text))
- dialog.show_all()
- dialog.run do |r|
- case r
- when Gtk::Dialog::RESPONSE_OK
- retval = "ok"
- when Gtk::Dialog::RESPONSE_CANCEL
- retval = "cancel"
- when Gtk::Dialog::RESPONSE_YES
- retval = "yes"
- when Gtk::Dialog::RESPONSE_NO
- retval = "no"
- when Gtk::Dialog::RESPONSE_ACCEPT
- retval = "accept"
- when Gtk::Dialog::RESPONSE_REJECT
- retval = "reject"
- when Gtk::Dialog::RESPONSE_DELETE_EVENT
- retval = "deleted"
- when Gtk::Dialog::RESPONSE_APPLY
- retval = "apply"
- when Gtk::Dialog::RESPONSE_HELP
- retval = "help"
- when Gtk::Dialog::RESPONSE_NONE
- retval = "none"
- else
- retval = "none"
- end
- dialog.destroy
- return retval
- end
- end
- class Form1 < Gtk::Window
- def initialize
- super
- self.set_title("WindowTitle")
- self.set_default_size(300, 200)
- self.set_window_position(Gtk::Window::Position::CENTER)
- self.signal_connect("destroy"){Gtk.main_quit}
- @fixed = Gtk::Fixed.new
- self.add @fixed
- @button1 = Gtk::Button.new
- @button1.set_label("click!")
- @button1.set_size_request(100, 35)
- @button1.set_tooltip_text("click me!")
- @button1.signal_connect("clicked"){|sender, e| button1_click(sender, e)}
- @fixed.put(@button1, 10, 10)
- @textbox1 = Gtk::Entry.new
- @textbox1.set_size_request(250, 25)
- @fixed.put(@textbox1, 10, 50)
- self.show_all
- end
- def button1_click(sender, e)
- if message_box(self, "Are you sure you want to continue?", "question", "yesno") == "yes"
- @button1.set_label(@textbox1.text)
- message_box(self, "done!", "notice")
- end
- end
- end
- Gtk.init
- form1 = Form1.new
- Gtk.main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement