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(); }