using System;
using Gtk;
public class HelloWorldWindow : Window {
// Creamos un nuevo boton con la etiqueta "Hola Mundo".
private Button button = new Button("Hola Mundo");
// Esta es un metodo de retrollamada. Se usara posteriormente para
// manejar el evento Clicked del boton. En este ejemplo los
// argumentos son ignorados. Mas adelante se hablara sobre retrollamadas.
private static void OnButtonClicked(object obj, EventArgs args)
{
Console.WriteLine("Hola Mundo");
}
// Otro manejador del evento Clicked
private static void OnButtonClicked2(object obj, EventArgs args)
{
Application.Quit();
}
// Manejador de evento para el evento DeleteEvent
private static void OnDelete(object obj, DeleteEventArgs args)
{
Console.WriteLine("Ha ocurrido un \"delete event\"");
// Si se le asigna false a la propiedad RetVal del segundo argumento
// del manejador de evento de DeleteEvent, GTK destruira la ventana.
// Asignarle true significa que no se desea que la ventana sea destruida.
// Esto es util para mensajes del tipo "Esta seguro que desea salir?"
args.RetVal = true;
}
public HelloWorldWindow() : base("Hola Mundo")
{
// Anadimos el mtodo WindowDelete al evento DeleteEvent de la ventana.
// Cuando la ventana emita un evento DeleteEvent (el cual es dado por
// el administrador de ventanas, generalemente por la opcin "cerrar"
// o por presionar el boton "X" en la barra de ttulo), llamar al
// mtodo WindowDelete definido arriba
this.DeleteEvent += new DeleteEventHandler(OnDelete);
this.BorderWidth = 10;
// Cuando se d clic en el boton, se llamar al mtodo OnButtonClicked definido
// ms arriba
button.Clicked += new EventHandler(OnButtonClicked);
// Tambin al hacer clic sobre el boton, se llamar al mtodo OnButtonClicked2
// el cual finalizar la aplicacin
button.Clicked += new EventHandler(OnButtonClicked2);
// Esto agrega el botn a la ventana (un contenedor GTK+)
this.Add(button);
// Muestra la ventana y su contenido
this.ShowAll();
}
}
class MainClass {
public static void Main(){
// Se inicializa GTK+
Application.Init();
// Creamos la ventana HelloWorldWindow
new HelloWorldWindow();
// Entra en un ciclo en el cual la aplicacin duerme, esperando por eventos.
Application.Run();
}