X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..c01359d9d5a834a93c0b68425aa8fefdd88124ee:/src/msw/display.cpp diff --git a/src/msw/display.cpp b/src/msw/display.cpp index c0e4b95986..59367a8f7e 100644 --- a/src/msw/display.cpp +++ b/src/msw/display.cpp @@ -1,9 +1,9 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: display.cpp +// Name: src/msw/display.cpp // Purpose: MSW Implementation of wxDisplay class // Author: Royce Mitchell III // Modified by: VZ (resolutions enumeration/change support, DirectDraw, ...) -// Ryan Norton (IsPrimary override) +// Ryan Norton (IsPrimary override) // Created: 06/21/02 // RCS-ID: $Id$ // Copyright: (c) wxWidgets team @@ -54,9 +54,24 @@ // with mingw32, we must include windows.h first and it doesn't hurt with other // compilers -#include - -#include +#include "wx/msw/wrapwin.h" + +#ifndef __WXWINCE__ + #include + + // HMONITOR can be declared either in new enough windef.h or in multimon.h + // itself if _WIN32_WINNT < 0x0500, but the trouble is that we set + // _WIN32_WINNT to maximal possible value ourselves in wx/msw/wrapwin.h so + // that multimon.h doesn't define it but with old headers, neither does + // windef.h, in spite of _WIN32_WINNT value. Even more unfortunately, we + // can't directly test whether HMONITOR is defined or not in windef.h as + // it's not a macro but a typedef, so we test for an unrelated symbol which + // is only defined in winuser.h if WINVER >= 0x0500 + #if !defined(HMONITOR_DECLARED) && !defined(MNS_NOCHECK) + DECLARE_HANDLE(HMONITOR); + #define HMONITOR_DECLARED + #endif +#endif // !__WXWINCE__ #ifdef _MSC_VER #pragma warning(default:4706) @@ -325,6 +340,7 @@ wxVideoMode ConvertToVideoMode(const DEVMODE& dm) dm.dmDisplayFrequency > 1 ? dm.dmDisplayFrequency : 0); } +#ifndef __WXWINCE__ // emulation of ChangeDisplaySettingsEx() for Win95 LONG WINAPI ChangeDisplaySettingsExForWin95(LPCTSTR WXUNUSED(lpszDeviceName), LPDEVMODE lpDevMode, @@ -334,6 +350,7 @@ LONG WINAPI ChangeDisplaySettingsExForWin95(LPCTSTR WXUNUSED(lpszDeviceName), { return ::ChangeDisplaySettings(lpDevMode, dwFlags); } +#endif // !__WXWINCE__ // ---------------------------------------------------------------------------- // wxDisplayModule @@ -381,7 +398,7 @@ size_t wxDisplayBase::GetCount() //RN: FIXME: This is wrong - the display info array should reload after every call //to GetCount() - otherwise it will not be accurate. //The user can change the number of displays in display properties/settings - //after GetCount or similar is called and really mess this up... + //after GetCount or similar is called and really mess this up... //wxASSERT_MSG( gs_displays->GetCount() == (size_t)::GetSystemMetrics(SM_CMONITORS), // _T("So how many displays does this system have?") ); @@ -727,7 +744,11 @@ bool wxDisplay::DoChangeModeWindows(const wxVideoMode& mode) pDevMode = &dm; +#ifdef __WXWINCE__ + flags = 0; +#else // !__WXWINCE__ flags = CDS_FULLSCREEN; +#endif // __WXWINCE__/!__WXWINCE__ } @@ -746,12 +767,14 @@ bool wxDisplay::DoChangeModeWindows(const wxVideoMode& mode) } //else: huh, no user32.dll?? +#ifndef __WXWINCE__ if ( !pfnChangeDisplaySettingsEx ) { // we must be under Win95 and so there is no multiple monitors // support anyhow pfnChangeDisplaySettingsEx = ChangeDisplaySettingsExForWin95; } +#endif // !__WXWINCE__ } // do change the mode