]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/display.cpp
Add the unified style on OS X 10.4, and default to using it.
[wxWidgets.git] / src / mac / carbon / display.cpp
index aa3e320d348fe549402fb3b1f6cfb7011f2aec9c..3e9d8d50a15acfa6536b1373d780f2a9a5909a91 100644 (file)
@@ -31,6 +31,7 @@
     #include "wx/dynarray.h"
     #include "wx/log.h"
     #include "wx/string.h"
+    #include "wx/gdicmn.h"
 #endif
 
 #ifdef __DARWIN__
@@ -45,7 +46,6 @@
 #endif
 
 #include "wx/display_impl.h"
-#include "wx/gdicmn.h"
 
 // ----------------------------------------------------------------------------
 // display classes implementation
 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)