]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/display.cpp
dwCallback if DWORD.
[wxWidgets.git] / src / msw / display.cpp
index 86f353b6d853ecfc40b8741806a2b61bfab8e975..5dd3994788807bd78d127c5d21c12a781f10d5e2 100644 (file)
@@ -3,6 +3,7 @@
 // Purpose:     MSW Implementation of wxDisplay class
 // Author:      Royce Mitchell III
 // Modified by: VZ (resolutions enumeration/change support, DirectDraw, ...)
+//                 Ryan Norton (IsPrimary override)
 // Created:     06/21/02
 // RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets team
@@ -216,7 +217,7 @@ wxDDEnumExCallback(GUID *pGuid,
     return true;
 }
 
-HRESULT WINAPI wxDDEnumModesCallback(LPDDSURFACEDESC lpDDSurfaceDesc,  
+HRESULT WINAPI wxDDEnumModesCallback(LPDDSURFACEDESC lpDDSurfaceDesc,
                                      LPVOID lpContext)
 {
     // we need at least the mode size
@@ -544,6 +545,30 @@ wxString wxDisplay::GetNameForEnumSettings() const
     return name;
 }
 
+// ----------------------------------------------------------------------------
+// determine if this is the primary display
+// ----------------------------------------------------------------------------
+
+bool wxDisplay::IsPrimary() const
+{
+    wxDisplayInfo& dpyInfo = (*gs_displays)[m_index];
+
+    MONITORINFOEX monInfo;
+    wxZeroMemory(monInfo);
+    monInfo.cbSize = sizeof(monInfo);
+
+    // NB: Cast from MONITORINFOEX* to MONITORINFO* is done because
+    //     Mingw headers - unlike the ones from Microsoft's Platform SDK -
+    //     don't derive the former from the latter in C++ mode and so
+    //     the pointer's type is not converted implicitly.
+    if ( !::GetMonitorInfo(dpyInfo.m_hmon, (LPMONITORINFO)&monInfo) )
+    {
+        wxLogLastError(_T("GetMonitorInfo"));
+    }
+
+    return (monInfo.dwFlags & MONITORINFOF_PRIMARY) == MONITORINFOF_PRIMARY;
+}
+
 // ----------------------------------------------------------------------------
 // video modes enumeration
 // ----------------------------------------------------------------------------
@@ -658,7 +683,7 @@ bool wxDisplay::DoChangeModeDirectX(const wxVideoMode& mode)
         return false;
     }
 
-         
+
     return true;
 }