/////////////////////////////////////////////////////////////////////////////// // Name: wx/dfb/evtloop.h // Purpose: declares wxEventLoop class // Author: Vaclav Slavik // Created: 2006-08-16 // RCS-ID: $Id$ // Copyright: (c) 2006 REA Elektronik GmbH // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_DFB_EVTLOOP_H_ #define _WX_DFB_EVTLOOP_H_ #include "wx/dfb/dfbptr.h" wxDFB_DECLARE_INTERFACE(IDirectFBEventBuffer); struct wxDFBEvent; // ---------------------------------------------------------------------------- // wxEventLoop // ---------------------------------------------------------------------------- class WXDLLIMPEXP_CORE wxEventLoop : public wxEventLoopManual { public: wxEventLoop(); virtual bool Pending() const; virtual bool Dispatch(); // returns DirectFB event buffer used by wx static wxIDirectFBEventBufferPtr GetDirectFBEventBuffer(); // wxYield implementation: iterate the loop as long as there are any // pending events void Yield(); protected: virtual void WakeUp(); virtual void OnNextIteration(); virtual void HandleDFBEvent(const wxDFBEvent& event); private: static void InitBuffer(); static void CleanUp(); friend class wxApp; // calls CleanUp() and WakeUp() private: static wxIDirectFBEventBufferPtr ms_buffer; DECLARE_NO_COPY_CLASS(wxEventLoop) }; #endif // _WX_DFB_EVTLOOP_H_