Re: gtk_main_quit() and destruction
- From: Owen Taylor <otaylor redhat com>
- To: Hrvoje Niksic <hniksic srce hr>
- Cc: gtk-list redhat com
- Subject: Re: gtk_main_quit() and destruction
- Date: 18 Feb 1999 11:22:24 -0500
Hrvoje Niksic <hniksic@srce.hr> writes:
> Owen Taylor <otaylor@redhat.com> writes:
>
> > Well, the easiest way is just to insert your cleanup calls
> > immediately after your call to gtk_main(). When you call
> > gtk_main_quit(), the gtk_main() will exit and return to your code.
>
> I know I can clean things up after gtk_main() returns, but then I have
> to explicitly keep track of what to remove. For example, I currently
> use (if you'll excuse my Python):
>
> window.connect ("destroy", self.goodbye_cruel_world)
>
> To simulate gtk_main_quit()-friendly equivalent functionality, I'd
> have to add something like:
>
> # Global variable
> windows_to_be_cleaned_up = []
>
> ...
>
> windows_to_be_cleaned_up.append (window)
>
> And then make sure I destroy all the windows after gtk_main_loop()
> quits, as well as making sure entries get deleted from
> `windows_to_be_cleaned_up' within their respective "destroy"
> callbacks. This might be quite a bit of work in C.
>
> Don't get me wrong: this is not /hard/ to do, but it's very
> inelegant. I hoped someone would point me to a signal that gets
> invoked upon gtk_main_quit(). It looked obvious to me that there has
> to be one because I use gtk_main_quit() to exit the whole thing. Now
> it is no longer as obvious.
> Still, it would be nice if I were able to say:
>
> window.connect ("destroy", self.goodbye_cruel_world)
> window.connect ("main_loop_quit", self.goodbye_cruel_world)
>
> ...or, if I were able to explain to gtk_main_quit() that I really want
> everything to be destroyed.
Well, you can use:
guint gtk_quit_add (guint main_level,
GtkFunction function,
gpointer data);
main_level here would be 0, since you are exiting the outermost
main loop.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]