[Gtk-sharp-list] FW: Form.DestroyEvent

Jason King jason.king@profox.co.uk
Fri, 24 Oct 2003 15:47:41 +0100


This is a multi-part message in MIME format.

------=_NextPart_000_0076_01C39A46.288E79C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

> Hello.
> 
> When I try to close my form by pushing a close button, I have to subscribe
> to Destroyed instead of DestroyEvent in order catch the form being
> destroyed.  
> 
> here is some sample code to illustrate::
> 
> using System;
> using Gtk;
> using GtkSharp;
> 
> namespace blah
> {
> 	class MainApp
> 	{
> 		public static void Main()
> 		{
> 			Gtk.Application.Init();
> 			SimpleForm simple = new SimpleForm("Hey, I am
> simple");
> 			simple.DeleteEvent += new
> GtkSharp.DeleteEventHandler(OnSimpleFormDelete); // this works
> 			simple.DestroyEvent += new
> GtkSharp.DestroyEventHandler(OnSimpleFormDestroyEvent); // this doesn't
> catch the event - is it even raised?
> 			simple.Destroyed += new
> EventHandler(OnSimpleFormDestroyed); // this catches and works
> 			simpleForm.ShowAll();
> 			Gtk.Application.Run();
> 		}
> 
> 		public static void OnSimpleFormDelete(object sender,
> GtkSharp.DeleteEventArgs e)
> 		{
> 			Console.WriteLine("Closed via the X widget on the
> titlebar");
> 			Gtk.Application.Quit();
> 		}
> 
> 		public static void OnSimpleFormDestroyEvent(object sender,
> GtkSharp.DestroyEventArgs e)
> 		{
> 			Console.WriteLine("Closed via the DestroyEvent,
> should be raised by pushing the close button on the form");
> 			Gtk.Application.Quit();
> 		}
> 
> 		public static void OnSimpleFormDestroyed(object sender,
> EventArgs e)
> 		{
> 			Console.WriteLine("Closed via the close button,
> Destroyed event raised.");
> 			Gtk.Application.Quit();
> 		}
> 	}
> 
> 	class SimpleForm: Gtk.Window
> 	{
> 		private Gtk.Button btnClose;
> 		
> 		public SimpleForm(string captio):base(caption)
> 		{
> 			this.initialise();
> 		}
> 		
> 		private initialise()
> 		{
> 			this.btnClose = new Gtk.Button("Close");
> 			this.btnClose.Clicked += new
> EventHandler(btnClose_Click);
> 			this.Add(this.btnClose);
> 		}
> 
> 		private void btnClose_Click(object sender, EventArgs e)
> 		{
> 			// when this is called, I would expect DestroyEvent
> to be raised, but if it is raised, its not being caught.
> 			this.Destroy();
> 		}
> 	}
> }
> 
> If anyone can shed any light on this, it would be much appreciated.
> 
> J
> 		
> 
> 
> 
> 
> Regards,
> Jason King
> Profox Systems Ltd 
> 

------=_NextPart_000_0076_01C39A46.288E79C0
Content-Type: application/ms-tnef;
	name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="winmail.dat"

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
AAABAAAAAQAAAAAAAAALAA2ACCAGAAAAAADAAAAAAAAARgAAAACChQAAAQAAAAsAOoAIIAYAAAAA
AMAAAAAAAABGAAAAAA6FAAAAAAAAAwA8gAggBgAAAAAAwAAAAAAAAEYAAAAAEYUAAAAAAAADAD2A
CCAGAAAAAADAAAAAAAAARgAAAAAYhQAAAAAAAAsAUoAIIAYAAAAAAMAAAAAAAABGAAAAAAaFAAAA
AAAAAwBTgAggBgAAAAAAwAAAAAAAAEYAAAAAAYUAAAAAAAACAfgPAQAAABAAAACIF3GtKoqTRKB/
yUBTcU/QAgH6DwEAAAAQAAAAiBdxrSqKk0Sgf8lAU3FP0AIB+w8BAAAAnAAAAAAAAAA4obsQBeUQ
GqG7CAArKlbCAABQU1RQUlguRExMAAAAAAAAAABOSVRB+b+4AQCqADfZbgAAAEM6XERvY3VtZW50
cyBhbmQgU2V0dGluZ3NcSmFzb24gS2luZ1xMb2NhbCBTZXR0aW5nc1xBcHBsaWNhdGlvbiBEYXRh
XE1pY3Jvc29mdFxPdXRsb29rXG91dGxvb2sucHN0AAMA/g8FAAAAAwANNP03AAACAX8AAQAAADcA
AAA8SkRFRUtBSFBFQkZIQ0NOTUdGRktPRU1JQ0VBQS5qYXNvbi5raW5nQHByb2ZveC5jby51az4A
AAMABhCHU4WtAwAHEDoGAAADABAQAQAAAAMAERABAAAAHgAIEAEAAABlAAAASEVMTE9XSEVOSVRS
WVRPQ0xPU0VNWUZPUk1CWVBVU0hJTkdBQ0xPU0VCVVRUT04sSUhBVkVUT1NVQlNDUklCRVRPREVT
VFJPWUVESU5TVEVBRE9GREVTVFJPWUVWRU5USU5PUgAAAACxZQ==

------=_NextPart_000_0076_01C39A46.288E79C0--