]> git.saurik.com Git - wxWidgets.git/blame - src/osx/cocoa/utils.mm
Avoid default child window focus behavior in generic wxListCtrl. Fixes #9563
[wxWidgets.git] / src / osx / cocoa / utils.mm
CommitLineData
33e90275
SC
1/////////////////////////////////////////////////////////////////////////////
2// Name: src/mac/cocoa/utils.mm
3// Purpose: various cocoa utility functions
4// Author: Stefan Csomor
5// Modified by:
6// Created: 1998-01-01
7// RCS-ID: $Id: utils.mm 48805 2007-09-19 14:52:25Z SC $
8// Copyright: (c) Stefan Csomor
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#include "wx/wxprec.h"
13
14#include "wx/wxprec.h"
15
16#include "wx/utils.h"
17
18#ifndef WX_PRECOMP
19 #include "wx/intl.h"
20 #include "wx/app.h"
21 #if wxUSE_GUI
22 #include "wx/toplevel.h"
23 #include "wx/font.h"
24 #endif
25#endif
26
27#include "wx/apptrait.h"
28
29#include "wx/osx/private.h"
30
31#if wxUSE_GUI
32#if wxOSX_USE_COCOA_OR_CARBON
33 #include "wx/osx/uma.h"
34 #include <CoreServices/CoreServices.h>
35 #include <Carbon/Carbon.h>
36 #include "wx/osx/private/timer.h"
37#endif
38#endif // wxUSE_GUI
39
40#if wxOSX_USE_COCOA
41
42#if wxUSE_BASE
43
44// Emit a beeeeeep
45void wxBell()
46{
47 NSBeep();
48}
49
50// ----------------------------------------------------------------------------
51// Common Event Support
52// ----------------------------------------------------------------------------
53
54void wxMacWakeUp()
55{
56 // TODO
57}
58
59#endif // wxUSE_BASE
60
61#if wxUSE_GUI
62
63void wxClientDisplayRect(int *x, int *y, int *width, int *height)
64{
65 NSRect displayRect = [[NSScreen mainScreen] visibleFrame];
66 wxRect r = wxFromNSRect( NULL, displayRect );
67 if ( x )
68 *x = r.x;
69 if ( y )
70 *y = r.y;
71 if ( width )
72 *width = r.GetWidth();
73 if ( height )
74 *height = r.GetHeight();
75
76}
77
78void wxGetMousePosition( int* x, int* y )
79{
80 wxPoint pt = wxFromNSPoint(NULL, [NSEvent mouseLocation]);
81};
82
83wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
84{
85 return new wxCarbonTimerImpl(timer);
86}
87
88int gs_wxBusyCursorCount = 0;
89extern wxCursor gMacCurrentCursor;
90wxCursor gMacStoredActiveCursor;
91
92// Set the cursor to the busy cursor for all windows
93void wxBeginBusyCursor(const wxCursor *cursor)
94{
95 if (gs_wxBusyCursorCount++ == 0)
96 {
97 gMacStoredActiveCursor = gMacCurrentCursor;
98 cursor->MacInstall();
99
100 wxSetCursor(*cursor);
101 }
102 //else: nothing to do, already set
103}
104
105// Restore cursor to normal
106void wxEndBusyCursor()
107{
108 wxCHECK_RET( gs_wxBusyCursorCount > 0,
109 wxT("no matching wxBeginBusyCursor() for wxEndBusyCursor()") );
110
111 if (--gs_wxBusyCursorCount == 0)
112 {
113 gMacStoredActiveCursor.MacInstall();
114 gMacStoredActiveCursor = wxNullCursor;
115
116 wxSetCursor(wxNullCursor);
117 }
118}
119
120// true if we're between the above two calls
121bool wxIsBusy()
122{
123 return (gs_wxBusyCursorCount > 0);
124}
125
126void wxMacGlobalToLocal( WindowRef window , Point*pt )
127{
128}
129
130void wxMacLocalToGlobal( WindowRef window , Point*pt )
131{
132}
133
134#endif // wxUSE_GUI
135
136
137
138#endif // wxOSX_USE_COCOA