Re: Adding custom GDK events
- From: Chris Vine <chris cvine freeserve co uk>
- To: gtkmm-list gnome org
- Cc: Doron Singer <antrax gmail com>
- Subject: Re: Adding custom GDK events
- Date: Fri, 12 Jan 2007 00:23:44 +0000
On Sunday 07 January 2007 13:06, Doron Singer wrote:
> Hello,
>
> I need to be able to send special events to the GTK event-processing
> loop. Looking at the GDKEvent union, it seems the way to add my own
> events is to subclass GdkEventAny. The question is, what would go in
> the type field? I see no support for user types, and it's not
> documented what the main loop does with events of an unknown type.
>
> Is it safe to just randomly use types as long as they're not already in
> use? Is there an easier way to submit events to the main loop, a-la Qt's
> QApplication::postEvent?
Use Glib::signal_idle(), or Glib::Dispatcher. Either will cause the main loop
to execute the connect slot.
With Glib::signal_idle() you have to reconnect the slot every time you want it
to fire (and make sure you return false). With Glib::Dispatcher you just
call emit on it (it is in effect a thread safe version of
sigc::signal0<void>). Glib::signal_idle() is more convenient if you want to
pass different data on each invocation, because you can do that by binding to
the slot. You should only emit Glib::Dispatcher from a different thread from
the main GUI thread. Glib::signal_idle() is thread safe and can be called
from the main GUI thread or any other thread.
Chris
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]