]> git.saurik.com Git - wxWidgets.git/blob - include/wx/dfb/evtloop.h
abstract VC6 workaround inside a WX_CPPUNIT_ALLOW_EQUALS_TO_INT() macro
[wxWidgets.git] / include / wx / dfb / evtloop.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/dfb/evtloop.h
3 // Purpose: declares wxEventLoop class
4 // Author: Vaclav Slavik
5 // Created: 2006-08-16
6 // RCS-ID: $Id$
7 // Copyright: (c) 2006 REA Elektronik GmbH
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_DFB_EVTLOOP_H_
12 #define _WX_DFB_EVTLOOP_H_
13
14 #include "wx/dfb/dfbptr.h"
15
16 wxDFB_DECLARE_INTERFACE(IDirectFBEventBuffer);
17 struct wxDFBEvent;
18
19 // ----------------------------------------------------------------------------
20 // wxEventLoop
21 // ----------------------------------------------------------------------------
22
23 class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxEventLoopManual
24 {
25 public:
26 wxGUIEventLoop();
27
28 virtual bool Pending() const;
29 virtual bool Dispatch();
30 virtual int DispatchTimeout(unsigned long timeout);
31
32 // returns DirectFB event buffer used by wx
33 static wxIDirectFBEventBufferPtr GetDirectFBEventBuffer();
34
35 // wxYield implementation: iterate the loop as long as there are any
36 // pending events
37 void Yield();
38
39 protected:
40 virtual void WakeUp();
41 virtual void OnNextIteration();
42
43 virtual void HandleDFBEvent(const wxDFBEvent& event);
44
45 private:
46 static void InitBuffer();
47 static void CleanUp();
48
49 friend class wxApp; // calls CleanUp() and WakeUp()
50
51 private:
52 static wxIDirectFBEventBufferPtr ms_buffer;
53
54 DECLARE_NO_COPY_CLASS(wxGUIEventLoop)
55 };
56
57 #endif // _WX_DFB_EVTLOOP_H_