RubyLit - Ruby.del.litoral!
Dialogo Basico (changes)

Showing changes from revision #0 to #1: Added | Removed

#
#http://ruby-gnome2.sourceforge.net/tut/12.2.htm
#
require 'gtk2'

# inicio gtk, es comun olvidarse de esta linea.
Gtk.init

# Creo la ventana
window = Gtk::Window.new( Gtk::Window::TOPLEVEL )
# Seteo ancho y alto
window.set_size_request( 300, 50 )
# Le pongo Titulo
window.set_title( "Pantalla Básica" )
# creo el evento que cierra la ventana al hacer clic en la X
window.signal_connect( "delete_event" ) { Gtk.main_quit }

# Creo una Caja Vertical
vbox = Gtk::VBox.new( false, 0 )
# Agrego la caja a la ventana
window.add( vbox )

# Creo un boton
button = Gtk::Button.new( "Click" )
# Agrego el boton a la caja
vbox.pack_start( button, false, false, 0)

# Creo el evento que responde al click
button.signal_connect( "button_press_event", Gdk::Event::BUTTON_PRESS  ) do
   |widget, event, y|

    #creo el dialogo.
    dialog = Gtk::Dialog.new("Mi dialogo", $main_application_window,
                             Gtk::Dialog::MODAL | Gtk::Dialog::DESTROY_WITH_PARENT,
                             [Gtk::Stock::OK, Gtk::Dialog::RESPONSE_ACCEPT],
                             [Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_REJECT])

    # Agrego dos label con textos.
    dialog.vbox.add(Gtk::Label.new('Texto del mensaje'))
    dialog.vbox.add(Gtk::Label.new('Línea 2'))

    # Muestro todo lo que puse en el dialogo
    dialog.show_all

    # Ejecuto el dialogo
    dialog.run do |response|
        # Capturo la respuesta
        case response
        when Gtk::Dialog::RESPONSE_ACCEPT
          # Desde aca llamo a la rutina de aceptar
          puts "click en el boton aceptar" 
        else
          # Desde aca llamo a la rutina de cancelar
          puts "click en el boton cancelar" 
        end
        # Destruyo el dialogo
        dialog.destroy
    end

end

#muestro todo lo que puse en la ventana
window.show_all

#run!
Gtk.main