X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd05139a8023fd3e30476409fafbe04221c6d627..8cb1060f1e2f2cbbcaebcc668dccefdd79804662:/src/mac/carbon/display.cpp diff --git a/src/mac/carbon/display.cpp b/src/mac/carbon/display.cpp index feb556a200..3e9d8d50a1 100644 --- a/src/mac/carbon/display.cpp +++ b/src/mac/carbon/display.cpp @@ -56,13 +56,14 @@ class wxDisplayImplMacOSX : public wxDisplayImpl { public: - wxDisplayImplMacOSX(size_t n, CGDirectDisplayID id) + wxDisplayImplMacOSX(unsigned n, CGDirectDisplayID id) : wxDisplayImpl(n), m_id(id) { } virtual wxRect GetGeometry() const; + virtual wxRect GetClientArea() const; virtual wxString GetName() const { return wxString(); } virtual wxArrayVideoModes GetModes(const wxVideoMode& mode) const; @@ -80,8 +81,8 @@ class wxDisplayFactoryMacOSX : public wxDisplayFactory public: wxDisplayFactoryMacOSX() {} - virtual wxDisplayImpl *CreateDisplay(size_t n); - virtual size_t GetCount(); + virtual wxDisplayImpl *CreateDisplay(unsigned n); + virtual unsigned GetCount(); virtual int GetFromPoint(const wxPoint& pt); protected: @@ -92,7 +93,7 @@ protected: // wxDisplayFactoryMacOSX implementation // ============================================================================ -size_t wxDisplayFactoryMacOSX::GetCount() +unsigned wxDisplayFactoryMacOSX::GetCount() { CGDisplayCount count; #ifdef __WXDEBUG__ @@ -140,7 +141,7 @@ int wxDisplayFactoryMacOSX::GetFromPoint(const wxPoint& p) return nWhich; } -wxDisplayImpl *wxDisplayFactoryMacOSX::CreateDisplay(size_t n) +wxDisplayImpl *wxDisplayFactoryMacOSX::CreateDisplay(unsigned n) { CGDisplayCount theCount = GetCount(); CGDirectDisplayID* theIDs = new CGDirectDisplayID[theCount]; @@ -173,6 +174,17 @@ wxRect wxDisplayImplMacOSX::GetGeometry() const (int)theRect.size.height ); //floats } +wxRect wxDisplayImplMacOSX::GetClientArea() const +{ + // VZ: I don't know how to get client area for arbitrary display but + // wxGetClientDisplayRect() does work correctly for at least the main + // one (TODO: do it correctly for the other displays too) + if ( IsPrimary() ) + return wxGetClientDisplayRect(); + + return wxDisplayImpl::GetClientArea(); +} + static int wxCFDictKeyToInt( CFDictionaryRef desc, CFStringRef key ) { CFNumberRef value = (CFNumberRef) CFDictionaryGetValue( desc, key ); @@ -256,7 +268,7 @@ bool wxDisplayImplMacOSX::ChangeMode( const wxVideoMode& mode ) class wxDisplayImplMac : public wxDisplayImpl { public: - wxDisplayImplMac(size_t n, GDHandle hndl) + wxDisplayImplMac(unsigned n, GDHandle hndl) : wxDisplayImpl(n), m_hndl(hndl) { @@ -280,8 +292,8 @@ class wxDisplayFactoryMac : public wxDisplayFactory public: wxDisplayFactoryMac(); - virtual wxDisplayImpl *CreateDisplay(size_t n); - virtual size_t GetCount(); + virtual wxDisplayImpl *CreateDisplay(unsigned n); + virtual unsigned GetCount(); virtual int GetFromPoint(const wxPoint& pt); protected: @@ -292,9 +304,9 @@ protected: // wxDisplayFactoryMac implementation // ============================================================================ -size_t wxDisplayFactoryMac::GetCount() +unsigned wxDisplayFactoryMac::GetCount() { - size_t num = 0; + unsigned num = 0; GDHandle hndl = DMGetFirstScreenDevice(true); while(hndl) { @@ -306,7 +318,7 @@ size_t wxDisplayFactoryMac::GetCount() int wxDisplayFactoryMac::GetFromPoint(const wxPoint &p) { - size_t num = 0; + unsigned num = 0; GDHandle hndl = DMGetFirstScreenDevice(true); while(hndl) { @@ -325,9 +337,9 @@ int wxDisplayFactoryMac::GetFromPoint(const wxPoint &p) return wxNOT_FOUND; } -wxDisplayImpl *wxDisplayFactoryMac::CreateDisplay(size_t n) +wxDisplayImpl *wxDisplayFactoryMac::CreateDisplay(unsigned n) { - size_t nOrig = n; + unsigned nOrig = n; GDHandle hndl = DMGetFirstScreenDevice(true); while(hndl)