Steven Brown wrote: > Hmm, this bothered me before... from the top of my head: > > An event is higher level. GTK? > A signal is lower level. GDK? > > An event is often a collection of signals and certain conditions. A > button emits a "clicked" event when the mouse button is clicked (down, > not moved off the button, and then up). The mouse-down would be a signal. > > OR... the Mouse-down event fires the Mouse-down signal. The difference > here would be the user causes events, which emit signals, which are > handled by the application. But the application can fire signals > itself, without user input. > > I think the terms are often used interchangably. > > Anyone, please correct any false information. :)
I've got to jump in here, this is wildly inaccurate misinformation. I don't have the time to write a full explanation, but here is the one minute version. Signals and events have no particular relationship. A signal is nothing other than a fancy callback mechanism. It's a way for one object to register it's interest in being notified of another objects action or state change. You register your interest by providing a callback, when the object "emits a signal" it simply iterates over the list of callbacks which have been registered with it and calls the callback passing some predefined data with it. An event is an almost one-to-one mapping of window system events. Window system events are things like "key press" or "window move". Window system events are reported to the applications main loop. GDK/GTK interprets the window system events passes them along to you. What better way to do that other than via signals! Signals are very general. You can create your own, it's very useful. Any object can create and emit signals, it's very powerful. In and of itself signals have no relationship to events other than one of the many many uses of signals is to communicate window system events. FWIW, I never liked the term "signal" it's way too overloaded with other meanings, callback would have been a better name. I suspect it was named signal in the first place because it's a mechanism for one object to "signal" an other object something has happened. -- John Dennis <[EMAIL PROTECTED]> _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
