X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=otk%2Feventdispatcher.hh;h=35c3722ebc1425c834e051f1ff0e035577ae9ced;hb=ad44e8a708b6836c9d84be7205457cfa82800a65;hp=a55b5b82824666573249b0cbd5302ea47ae10941;hpb=e9ec2ce0ebccf3b139ebf4fccf093e8ee0366c76;p=chaz%2Fopenbox diff --git a/otk/eventdispatcher.hh b/otk/eventdispatcher.hh index a55b5b82..35c3722e 100644 --- a/otk/eventdispatcher.hh +++ b/otk/eventdispatcher.hh @@ -1,3 +1,4 @@ +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- #ifndef __eventdispatcher #define __eventdispatcher @@ -7,43 +8,53 @@ namespace otk { -typedef std::map OtkEventMap; +typedef std::map EventMap; -class OtkEventDispatcher { +class EventDispatcher { public: - OtkEventDispatcher(); - virtual ~OtkEventDispatcher(); + EventDispatcher(); + virtual ~EventDispatcher(); virtual void clearAllHandlers(void); - virtual void registerHandler(Window id, otk::OtkEventHandler *handler); + virtual void registerHandler(Window id, EventHandler *handler); virtual void clearHandler(Window id); - virtual void dispatchEvents(void); - - inline void setFallbackHandler(otk::OtkEventHandler *fallback) + //! Dispatch events from the X server to the appropriate EventHandlers + /*! + @param remote Is the Xserver on a remote (low bandwidth) connection or on a + local (high bandwidth) connection. This allows you to specify + 'false' in which case slightly different semantics are used + for event retrieval.
+ The default is 'true' since this should generally be used, + only the Openbox window manager should need to specify + 'false' here. + */ + virtual void dispatchEvents(bool remote = true); + + inline void setFallbackHandler(EventHandler *fallback) { _fallback = fallback; } - otk::OtkEventHandler *getFallbackHandler(void) const { return _fallback; } + EventHandler *getFallbackHandler(void) const { return _fallback; } //! Sets an event handler that gets all events for all handlers after //! any specific handlers have received them - inline void setMasterHandler(otk::OtkEventHandler *master) + inline void setMasterHandler(EventHandler *master) { _master = master; } - otk::OtkEventHandler *getMasterHandler(void) const { return _master; } + EventHandler *getMasterHandler(void) const { return _master; } + + EventHandler *findHandler(Window win); - otk::OtkEventHandler *findHandler(Window win); + inline Time lastTime() const { return _lasttime; } private: - OtkEventMap _map; - OtkEventHandler *_fallback; - OtkEventHandler *_master; - Window _focus; - XEvent _focus_e; - XEvent _crossing_e; + EventMap _map; + EventHandler *_fallback; + EventHandler *_master; //! The time at which the last XEvent with a time was received - Time _lasttime; // XXX: store this! also provide an accessor! + Time _lasttime; - void dispatch(const XEvent &e); + void dispatch(Window win, const XEvent &e); + void dispatchFocus(const XEvent &e); }; }