]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxUSE_ARTPROVIDER_STD build option.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 31 Dec 2010 17:39:37 +0000 (17:39 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 31 Dec 2010 17:39:37 +0000 (17:39 +0000)
Make it possible to exclude wxDefaultArtProvider from build. Now that a
Tango-based provider exists, it may make sense to disable the standard bitmaps
if the program doesn't need the few of them not provided by Tango anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

16 files changed:
configure
configure.in
docs/doxygen/mainpages/const_wxusedef.h
include/wx/artprov.h
include/wx/chkconf.h
include/wx/motif/setup0.h
include/wx/msw/setup0.h
include/wx/msw/wince/setup.h
include/wx/os2/setup0.h
include/wx/osx/setup0.h
include/wx/palmos/setup0.h
include/wx/setup_inc.h
include/wx/univ/setup0.h
setup.h.in
src/common/artprov.cpp
src/common/artstd.cpp

index 9be6e6156fe7a41eb66e7cc46ef594fe873036f0..643ad0d725db8a4f8184b04e7a8553140ca413c7 100755 (executable)
--- a/configure
+++ b/configure
@@ -1806,6 +1806,7 @@ Optional Features:
   --disable-controls      disable compilation of all standard controls
   --enable-accel          use accelerators
   --enable-animatectrl    use wxAnimationCtrl class
+  --enable-artstd         use standard XPM icons in wxArtProvider
   --enable-arttango       use Tango icons in wxArtProvider
   --enable-bmpbutton      use wxBitmapButton class
   --enable-bmpcombobox    use wxBitmapComboBox class
@@ -9899,6 +9900,50 @@ fi
 echo "${ECHO_T}$result" >&6; }
 
 
+          enablestring=
+          defaultval=$wxUSE_ALL_FEATURES
+          if test -z "$defaultval"; then
+              if test x"$enablestring" = xdisable; then
+                  defaultval=yes
+              else
+                  defaultval=no
+              fi
+          fi
+
+          { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-artstd" >&5
+echo $ECHO_N "checking for --${enablestring:-enable}-artstd... $ECHO_C" >&6; }
+          # Check whether --enable-artstd was given.
+if test "${enable_artstd+set}" = set; then
+  enableval=$enable_artstd;
+                          if test "$enableval" = yes; then
+                            wx_cv_use_artstd='wxUSE_ARTPROVIDER_STD=yes'
+                          else
+                            wx_cv_use_artstd='wxUSE_ARTPROVIDER_STD=no'
+                          fi
+
+else
+
+                          wx_cv_use_artstd='wxUSE_ARTPROVIDER_STD=${'DEFAULT_wxUSE_ARTPROVIDER_STD":-$defaultval}"
+
+fi
+
+
+          eval "$wx_cv_use_artstd"
+
+          if test x"$enablestring" = xdisable; then
+            if test $wxUSE_ARTPROVIDER_STD = no; then
+              result=yes
+            else
+              result=no
+            fi
+          else
+            result=$wxUSE_ARTPROVIDER_STD
+          fi
+
+          { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+
+
           enablestring=
           defaultval=$wxUSE_ALL_FEATURES
           if test -z "$defaultval"; then
@@ -47575,6 +47620,13 @@ _ACEOF
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
 fi
 
+if test "$wxUSE_ARTPROVIDER_STD" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define wxUSE_ARTPROVIDER_STD 1
+_ACEOF
+
+fi
+
 if test "$wxUSE_ARTPROVIDER_TANGO" = "auto"; then
             if test "$wxUSE_GTK" != 1; then
                 if test "$wxUSE_LIBPNG" != no -a \
index 214c7034baaf3125da668504bb989410f6abc9aa..a9f6d3b791eab53edd6b07f17339cf81aa04c1f9 100644 (file)
@@ -928,6 +928,7 @@ fi
 dnl please keep the settings below in alphabetical order
 WX_ARG_FEATURE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
 WX_ARG_FEATURE(animatectrl, [  --enable-animatectrl    use wxAnimationCtrl class], wxUSE_ANIMATIONCTRL)
+WX_ARG_FEATURE(artstd,      [  --enable-artstd         use standard XPM icons in wxArtProvider], wxUSE_ARTPROVIDER_STD)
 WX_ARG_FEATURE(arttango,    [  --enable-arttango       use Tango icons in wxArtProvider], wxUSE_ARTPROVIDER_TANGO)
 WX_ARG_FEATURE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
 WX_ARG_FEATURE(bmpcombobox, [  --enable-bmpcombobox    use wxBitmapComboBox class], wxUSE_BITMAPCOMBOBOX)
@@ -7147,6 +7148,10 @@ if test "$wxUSE_ACCESSIBILITY" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
 fi
 
+if test "$wxUSE_ARTPROVIDER_STD" = "yes"; then
+    AC_DEFINE(wxUSE_ARTPROVIDER_STD)
+fi
+
 if test "$wxUSE_ARTPROVIDER_TANGO" = "auto"; then
     dnl Tango-based art provider is not needed in GTK-based ports as the
     dnl native art provider completely replaces it.
index e20ac867b53b2a98a856fd7eb95b8a53b98dd099..693bce4a139b34ed9b167ba7706231d31218ca8b 100644 (file)
@@ -67,6 +67,7 @@ library:
 @itemdef{wxUSE_ACCEL, Use wxAcceleratorTable/Entry classes and support for them in wxMenu, wxMenuBar.}
 @itemdef{wxUSE_AFM_FOR_POSTSCRIPT, In wxPostScriptDC class use AFM (adobe font metrics) file for character widths.}
 @itemdef{wxUSE_ANIMATIONCTRL, Use wxAnimationCtrl class.}
+@itemdef{wxUSE_ARTPROVIDER_STD, Use standard low quality icons in wxArtProvider.}
 @itemdef{wxUSE_ARTPROVIDER_TANGO, Use Tango icons in wxArtProvider.}
 @itemdef{wxUSE_ANY, Use wxAny class.}
 @itemdef{wxUSE_APPLE_IEEE, IEEE Extended to/from double routines; see src/common/extended.c file.}
index f62ef93e9325c0a85dd3657877791377b367f60a..fcc93518f692d882dc12784cf1cd05fdc74a9a71 100644 (file)
@@ -201,8 +201,10 @@ public:
 
 protected:
     friend class wxArtProviderModule;
+#if wxUSE_ARTPROVIDER_STD
     // Initializes default provider
     static void InitStdProvider();
+#endif // wxUSE_ARTPROVIDER_STD
     // Initializes Tango-based icon provider
 #if wxUSE_ARTPROVIDER_TANGO
     static void InitTangoProvider();
index 78e125919b3261f53a7e9c852e6e974fd6a3b46f..10c79baad6e2a006323c4beee3e36140bf8f904c 100644 (file)
 #   endif
 #endif /* !defined(wxUSE_ANIMATIONCTRL) */
 
+#ifndef wxUSE_ARTPROVIDER_STD
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_ARTPROVIDER_STD must be defined, please read comment near the top of this file."
+#   else
+#       define wxUSE_ARTPROVIDER_STD 0
+#   endif
+#endif /* !defined(wxUSE_ARTPROVIDER_STD) */
+
 #ifndef wxUSE_ARTPROVIDER_TANGO
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_ARTPROVIDER_TANGO must be defined, please read comment near the top of this file."
index ab0c0732282fd1b928764ead5e401313bbacf67f..4fc403229b1207b5cf6826a7a30acd4c8031c4ba 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index 5b9ee87ddbe89f2c0c0abe1321e85a329bf28b15..703e872ad9dbf0095697cee40272275d65fc79ff 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index 1e23c01235ea4fed5a296b0181c938a96b4112aa..d01ee026350fec62775bed3185b4127d28ffa235 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index baf55dae1c38104ecb7dd93795e4d17df4440565..cf5b66fbaabe582dd0b6ce367c253a2daab1b37a 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index 9cda8cd6660216e4ecd9d8acfb4efa6244a7d891..812597c67e138dd870b7e6abd76ffa48e2502ccb 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
 //
 // Recommended setting: default or 0 for everything for portable programs.
 #define wxUSE_METAFILE              1
-#define wxUSE_ENH_METAFILE          0
+#define wxUSE_ENH_METAFILE          1
 #define wxUSE_WIN_METAFILES_ALWAYS  0
 
 // ----------------------------------------------------------------------------
index 46bad4cd06bc838e17a158bcbadf10d243736276..9b7f64783dcf7d2abe2262d3f72172d2a88d39dc 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index 3d99d6c155aa831294fd9c9ac5b4173d693a9ad3..8b917569bc98f941a4baffbe3f25f67b3a875038 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
index badd59bd6533d06239e5be1ca88d6a957ff006fe..d07c8612091e783a46e6e2582c12509f92026682 100644 (file)
 // wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
 
+// Use the standard art provider. The icons returned by this provider are
+// embedded into the library as XPMs so disabling it reduces the library size
+// somewhat but this should only be done if you use your own custom art
+// provider returning the icons or never use any icons not provided by the
+// native art provider (which might not be implemented at all for some
+// platforms) or by the Tango icons provider (if it's not itself disabled
+// below).
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you use your own custom art provider.
+#define wxUSE_ARTPROVIDER_STD 1
+
 // Use art provider providing Tango icons: this art provider has higher quality
 // icons than the default ones using smaller size XPM icons without
 // transparency but the embedded PNG icons add to the library size.
 //
-// Default is 1.
+// Default is 1 under non-GTK ports. Under wxGTK the native art provider using
+// the GTK+ stock icons replaces it so it is normally not necessary.
 //
 // Recommended setting: 1 but can be turned off to reduce the library size.
 #define wxUSE_ARTPROVIDER_TANGO 1
index e8d30e413466cadd7836717a8bd35c13b7b1d5f4..b1f8916a9f43c33f6c570a597ab87f4e467e066c 100644 (file)
 
 #define wxUSE_ACCEL 0
 
+#define wxUSE_ARTPROVIDER_STD 0
+
 #define wxUSE_ARTPROVIDER_TANGO 0
 
 #define wxUSE_HOTKEY 0
index acf173b8b30d3d91cf98bc596753b7300555aaa3..dac5bd30b72f093f7aa7ac78cd8f6472d18930e6 100644 (file)
@@ -440,7 +440,9 @@ class wxArtProviderModule: public wxModule
 public:
     bool OnInit()
     {
+#if wxUSE_ARTPROVIDER_STD
         wxArtProvider::InitStdProvider();
+#endif // wxUSE_ARTPROVIDER_STD
 #if wxUSE_ARTPROVIDER_TANGO
         wxArtProvider::InitTangoProvider();
 #endif // wxUSE_ARTPROVIDER_TANGO
index c12a849c9df9bddf423ab7b5548ccafb298dd905..49fbe51d339698a775ddedc0fece7b35035cda9f 100644 (file)
@@ -20,6 +20,8 @@
     #pragma hdrstop
 #endif
 
+#if wxUSE_ARTPROVIDER_STD
+
 #ifndef WX_PRECOMP
     #include "wx/image.h"
 #endif
@@ -246,3 +248,5 @@ wxBitmap wxDefaultArtProvider::CreateBitmap(const wxArtID& id,
 
     return bmp;
 }
+
+#endif // wxUSE_ARTPROVIDER_STD