Fix a number of problems with tracking rectangles by avoiding rebuilding them when...
[wxWidgets.git] / include / wx / cocoa / trackingrectmanager.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/cocoa/trackingrectmanager.h
3 // Purpose: wxCocoaTrackingRectManager
4 // Notes: Source in window.mm
5 // Author: David Elliott <dfe@cox.net>
6 // Modified by:
7 // Created: 2007/05/02
8 // RCS-ID: $Id$
9 // Copyright: (c) 2007 Software 2000 Ltd.
10 // Licence: wxWindows licence
11 /////////////////////////////////////////////////////////////////////////////
12 #ifndef __WX_COCOA_TRACKINGRECTMANAGER_H__
13 #define __WX_COCOA_TRACKINGRECTMANAGER_H__
14
15 #include <CoreFoundation/CFRunLoop.h>
16
17 #define wxTRACE_COCOA_TrackingRect wxT("COCOA_TrackingRect")
18
19 class wxCocoaTrackingRectManager
20 {
21 DECLARE_NO_COPY_CLASS(wxCocoaTrackingRectManager)
22 public:
23 wxCocoaTrackingRectManager(wxWindow *window);
24 void ClearTrackingRect();
25 void BuildTrackingRect();
26 void RebuildTrackingRectIfNeeded();
27 void RebuildTrackingRect();
28 bool IsOwnerOfEvent(NSEvent *anEvent);
29 ~wxCocoaTrackingRectManager();
30 void BeginSynthesizingEvents();
31 void StopSynthesizingEvents();
32 protected:
33 wxWindow *m_window;
34 bool m_isTrackingRectActive;
35 int m_trackingRectTag;
36 NSRect m_trackingRectInWindowCoordinates;
37 private:
38 wxCocoaTrackingRectManager();
39 };
40
41 #endif // ndef __WX_COCOA_TRACKINGRECTMANAGER_H__