Allow using wxGraphicsContext with MinGW if gdiplus.h is available.

MinGW doesn't include gdiplus.h but it can be installed independently by the
user. Allow to use it if it's available:

- Include windows.h when checking for it in configure as this is apparently
  needed for its compilation.
- Don't reset wxUSE_GRAPHICS_CONTEXT to 0 for non-Microsoft compilers, instead
  just define it as 0 by default for them, allowing the user to simply change
  the definition in wx/msw/setup.h.

Closes #11892.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-04-02 19:30:41 +00:00
parent f836fe354b
commit cde23b64b5
12 changed files with 80 additions and 35 deletions

1
configure vendored
View File

@ -47506,6 +47506,7 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */ /* end confdefs.h. */
#include <window.h>
#include <gdiplus.h> #include <gdiplus.h>
int int
main () main ()

View File

@ -7444,7 +7444,8 @@ if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then
dnl GDI+ DLL dynamically anyhow during run-time dnl GDI+ DLL dynamically anyhow during run-time
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
AC_TRY_COMPILE( AC_TRY_COMPILE(
[#include <gdiplus.h>], [#include <windows.h>
#include <gdiplus.h>],
[ [
using namespace Gdiplus; using namespace Gdiplus;
], ],

View File

@ -661,11 +661,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -239,15 +239,6 @@
Compiler-specific checks. Compiler-specific checks.
*/ */
// Only MSVC 7+ has gdiplus.h, add exceptions for other compilers here if they
// can support it too (but notice that Borland currently dies in
// src/msw/gdiplus.cpp with "macro expansion too long" error even if the header
// is available)
#if !wxCHECK_VISUALC_VERSION(7)
#undef wxUSE_GRAPHICS_CONTEXT
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// Borland // Borland
#ifdef __BORLANDC__ #ifdef __BORLANDC__

View File

@ -661,11 +661,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -661,11 +661,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -661,11 +661,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -662,11 +662,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -661,11 +661,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -657,11 +657,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -660,11 +660,17 @@
// still do need to distribute it yourself for an application using // still do need to distribute it yourself for an application using
// wxGraphicsContext to be runnable on pre-XP systems. // wxGraphicsContext to be runnable on pre-XP systems.
// //
// Default is 1 if the compiler has gdiplus.h (currently only MSVC 7+ under // Default is 1 except if you're using a non-Microsoft compiler under Windows
// Windows is known to). // as only MSVC7+ is known to ship with gdiplus.h. For other compilers (e.g.
// mingw32) you may need to install the headers (and just the headers)
// yourself. If you do, change the setting below manually.
// //
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_GRAPHICS_CONTEXT 1 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 1
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Individual GUI controls // Individual GUI controls

View File

@ -323,7 +323,11 @@
#define wxUSE_STC 0 #define wxUSE_STC 0
#define wxUSE_GRAPHICS_CONTEXT 0 #if !defined(__WXMSW__) || wxCHECK_VISUALC_VERSION(7)
#define wxUSE_GRAPHICS_CONTEXT 0
#else
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
#define wxUSE_CONTROLS 0 #define wxUSE_CONTROLS 0