From cbea3ec6ae2cd8c8d477c6f04a09ca8a1fa1ab96 Mon Sep 17 00:00:00 2001 From: Francesco Montorsi Date: Sun, 21 Sep 2008 20:03:14 +0000 Subject: [PATCH] introduced wxICON_DEFAULT_TYPE and wxBITMAP_DEFAULT_TYPE; documented these default argument values; matched the wxBitmap and wxIcon interfaces to their real implementations; revised icon.h interface header git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/bitmap.h | 14 + include/wx/cocoa/bitmap.h | 4 +- include/wx/dfb/bitmap.h | 4 +- include/wx/generic/icon.h | 10 +- include/wx/gtk/bitmap.h | 4 +- include/wx/gtk1/bitmap.h | 4 +- include/wx/icon.h | 18 +- include/wx/mgl/bitmap.h | 4 +- include/wx/msw/bitmap.h | 6 +- include/wx/msw/icon.h | 4 +- include/wx/os2/bitmap.h | 6 +- include/wx/osx/carbon/bitmap.h | 4 +- include/wx/osx/carbon/icon.h | 10 +- include/wx/palmos/bitmap.h | 4 +- include/wx/x11/bitmap.h | 4 +- interface/wx/bitmap.h | 12 +- interface/wx/icon.h | 602 ++++++++++++++++++--------------------- utils/ifacecheck/rungccxml.sh.in | 13 + 18 files changed, 368 insertions(+), 359 deletions(-) rewrite interface/wx/icon.h (64%) diff --git a/include/wx/bitmap.h b/include/wx/bitmap.h index 37419c7..b78cc41 100644 --- a/include/wx/bitmap.h +++ b/include/wx/bitmap.h @@ -226,27 +226,41 @@ protected: #endif // wxUSE_BITMAP_BASE + +// the wxBITMAP_DEFAULT_TYPE constant defines the default argument value +// for wxBitmap's ctor and wxBitmap::LoadFile() functions. #if defined(__WXPALMOS__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE #include "wx/palmos/bitmap.h" #elif defined(__WXMSW__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE #include "wx/msw/bitmap.h" #elif defined(__WXMOTIF__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM #include "wx/x11/bitmap.h" #elif defined(__WXGTK20__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM #include "wx/gtk/bitmap.h" #elif defined(__WXGTK__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM #include "wx/gtk1/bitmap.h" #elif defined(__WXX11__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM #include "wx/x11/bitmap.h" #elif defined(__WXMGL__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_RESOURCE #include "wx/mgl/bitmap.h" #elif defined(__WXDFB__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_RESOURCE #include "wx/dfb/bitmap.h" #elif defined(__WXMAC__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_PICT_RESOURCE #include "wx/osx/bitmap.h" #elif defined(__WXCOCOA__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE #include "wx/cocoa/bitmap.h" #elif defined(__WXPM__) + #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE #include "wx/os2/bitmap.h" #endif diff --git a/include/wx/cocoa/bitmap.h b/include/wx/cocoa/bitmap.h index d3caa0d..e1f3e68 100644 --- a/include/wx/cocoa/bitmap.h +++ b/include/wx/cocoa/bitmap.h @@ -75,7 +75,7 @@ public: // Initialize with XPM data wxBitmap(const char* const* bits); // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); // Construct from Cocoa's NSImage wxBitmap(NSImage* cocoaNSImage); // Construct from Cocoa's NSBitmapImageRep @@ -104,7 +104,7 @@ public: bool Create(NSImage* cocoaNSImage); bool Create(NSBitmapImageRep* cocoaNSBitmapImageRep); virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const; // copies the contents and mask of the given (colour) icon to the bitmap diff --git a/include/wx/dfb/bitmap.h b/include/wx/dfb/bitmap.h index 38ddc08..e4c78ff 100644 --- a/include/wx/dfb/bitmap.h +++ b/include/wx/dfb/bitmap.h @@ -28,7 +28,7 @@ public: wxBitmap(const wxIDirectFBSurfacePtr& surface) { Create(surface); } wxBitmap(int width, int height, int depth = -1); wxBitmap(const char bits[], int width, int height, int depth = 1); - wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_RESOURCE); + wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); wxBitmap(const char* const* bits); #if wxUSE_IMAGE wxBitmap(const wxImage& image, int depth = -1); @@ -52,7 +52,7 @@ public: virtual bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *) NULL) const; - virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_RESOURCE); + virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); #if wxUSE_PALETTE virtual wxPalette *GetPalette() const; diff --git a/include/wx/generic/icon.h b/include/wx/generic/icon.h index b73d919..6d216d5 100644 --- a/include/wx/generic/icon.h +++ b/include/wx/generic/icon.h @@ -18,10 +18,6 @@ // wxIcon //----------------------------------------------------------------------------- -#ifndef wxICON_DEFAULT_BITMAP_TYPE -#define wxICON_DEFAULT_BITMAP_TYPE wxBITMAP_TYPE_XPM -#endif - class WXDLLIMPEXP_CORE wxIcon: public wxBitmap { public: @@ -35,7 +31,7 @@ public: // For compatibility with wxMSW where desired size is sometimes required to // distinguish between multiple icons in a resource. wxIcon( const wxString& filename, - wxBitmapType type = wxICON_DEFAULT_BITMAP_TYPE, + wxBitmapType type = wxICON_DEFAULT_TYPE, int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1 ) : wxBitmap(filename, type) { @@ -46,6 +42,10 @@ public: { } + bool LoadFile(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, + int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1) + { return LoadFile(name, flags); } + // create from bitmap (which should have a mask unless it's monochrome): // there shouldn't be any implicit bitmap -> icon conversion (i.e. no // ctors, assignment operators...), but it's ok to have such function diff --git a/include/wx/gtk/bitmap.h b/include/wx/gtk/bitmap.h index fcecd81..ac0581b 100644 --- a/include/wx/gtk/bitmap.h +++ b/include/wx/gtk/bitmap.h @@ -59,7 +59,7 @@ public: wxBitmap(char** data) { *this = wxBitmap(wx_const_cast(const char* const*, data)); } #endif - wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM ); + wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE ); #if wxUSE_IMAGE wxBitmap( const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH ) { (void)CreateFromImage(image, depth); } @@ -86,7 +86,7 @@ public: bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *)NULL) const; - bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_XPM ); + bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); #if wxUSE_PALETTE wxPalette *GetPalette() const; diff --git a/include/wx/gtk1/bitmap.h b/include/wx/gtk1/bitmap.h index 633f215..30bc29e 100644 --- a/include/wx/gtk1/bitmap.h +++ b/include/wx/gtk1/bitmap.h @@ -75,7 +75,7 @@ public: *this = wxBitmap(wx_const_cast(const char* const*, data)); } #endif - wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM ); + wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE ); wxBitmap( const wxImage& image, int depth = -1 ) { (void)CreateFromImage(image, depth); } virtual ~wxBitmap(); @@ -97,7 +97,7 @@ public: bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *)NULL) const; - bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_XPM ); + bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); #if wxUSE_PALETTE wxPalette *GetPalette() const; diff --git a/include/wx/icon.h b/include/wx/icon.h index fbd402d..bc4a80a 100644 --- a/include/wx/icon.h +++ b/include/wx/icon.h @@ -14,6 +14,23 @@ #include "wx/iconloc.h" + +// the wxICON_DEFAULT_TYPE (the wxIcon equivalent of wxBITMAP_DEFAULT_TYPE) +// constant defines the default argument value for wxIcon ctor and wxIcon::LoadFile() +// functions. +#if defined(__WXMSW__) + #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE +#elif defined(__WXMGL__) + #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE +#elif defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON + #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICON_RESOURCE +#else + #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM +#endif + +// a more readable way to tell +#define wxICON_SCREEN_DEPTH (-1) + #if defined(__WXPALMOS__) #include "wx/generic/icon.h" #elif defined(__WXMSW__) @@ -27,7 +44,6 @@ #elif defined(__WXX11__) #include "wx/generic/icon.h" #elif defined(__WXMGL__) - #define wxICON_DEFAULT_BITMAP_TYPE wxBITMAP_TYPE_ICO_RESOURCE #include "wx/generic/icon.h" #elif defined(__WXDFB__) #include "wx/generic/icon.h" diff --git a/include/wx/mgl/bitmap.h b/include/wx/mgl/bitmap.h index 9e8409a..3fbbb9b 100644 --- a/include/wx/mgl/bitmap.h +++ b/include/wx/mgl/bitmap.h @@ -30,7 +30,7 @@ public: wxBitmap(int width, int height, int depth = -1); wxBitmap(const char bits[], int width, int height, int depth = 1); wxBitmap(const char* const* bits); - wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_RESOURCE); + wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); wxBitmap(const wxImage& image, int depth = -1); virtual ~wxBitmap() {} @@ -48,7 +48,7 @@ public: virtual wxBitmap GetSubBitmap(const wxRect& rect) const; virtual bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *) NULL) const; - virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_RESOURCE); + virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); virtual wxPalette *GetPalette() const; virtual void SetPalette(const wxPalette& palette); diff --git a/include/wx/msw/bitmap.h b/include/wx/msw/bitmap.h index b049b0b..e8e27ab 100644 --- a/include/wx/msw/bitmap.h +++ b/include/wx/msw/bitmap.h @@ -63,7 +63,7 @@ public: #endif // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); // New constructor for generalised creation from data wxBitmap(const void* data, wxBitmapType type, int width, int height, int depth = 1); @@ -120,7 +120,7 @@ public: wxBitmap GetSubBitmap( const wxRect& rect ) const; // NB: This should not be called from user code. It is for wx internal - // use only. + // use only. wxBitmap GetSubBitmapOfHDC( const wxRect& rect, WXHDC hdc ) const; // copies the contents and mask of the given (colour) icon to the bitmap @@ -139,7 +139,7 @@ public: virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); virtual bool Create(int width, int height, const wxDC& dc); virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const; wxBitmapRefData *GetBitmapData() const diff --git a/include/wx/msw/icon.h b/include/wx/msw/icon.h index 46c29a6..36ec847 100644 --- a/include/wx/msw/icon.h +++ b/include/wx/msw/icon.h @@ -54,7 +54,7 @@ public: #endif // from resource/file wxIcon(const wxString& name, - wxBitmapType type = wxBITMAP_TYPE_ICO_RESOURCE, + wxBitmapType type = wxICON_DEFAULT_TYPE, int desiredWidth = -1, int desiredHeight = -1); wxIcon(const wxIconLocation& loc); @@ -62,7 +62,7 @@ public: virtual ~wxIcon(); virtual bool LoadFile(const wxString& name, - wxBitmapType type = wxBITMAP_TYPE_ICO_RESOURCE, + wxBitmapType type = wxICON_DEFAULT_TYPE, int desiredWidth = -1, int desiredHeight = -1); // implementation only from now on diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index 8263974..fcba00d 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -97,7 +97,7 @@ public: // Load a resource wxBitmap( int nId - ,wxBitmapType lType = wxBITMAP_TYPE_BMP_RESOURCE + ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE ); // For compatiability with other ports, under OS/2 does same as default ctor @@ -161,10 +161,10 @@ public: ,int nDepth = 1 ); virtual bool LoadFile( int nId - ,wxBitmapType lType = wxBITMAP_TYPE_BMP_RESOURCE + ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE ); virtual bool LoadFile( const wxString& rName - ,wxBitmapType lType = wxBITMAP_TYPE_XPM + ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE ); virtual bool SaveFile( const wxString& rName ,wxBitmapType lType diff --git a/include/wx/osx/carbon/bitmap.h b/include/wx/osx/carbon/bitmap.h index 8a4e71e..a9d2f3f 100644 --- a/include/wx/osx/carbon/bitmap.h +++ b/include/wx/osx/carbon/bitmap.h @@ -96,7 +96,7 @@ public: wxBitmap(const char* const* bits); // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_PICT_RESOURCE); + wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); // Constructor for generalised creation from data wxBitmap(const void* data, wxBitmapType type, int width, int height, int depth = 1); @@ -120,7 +120,7 @@ public: virtual bool Create(int width, int height, int depth = -1); virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1); // virtual bool Create( WXHICON icon) ; - virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const; wxBitmapRefData *GetBitmapData() const diff --git a/include/wx/osx/carbon/icon.h b/include/wx/osx/carbon/icon.h index 754a534..caa9a17 100644 --- a/include/wx/osx/carbon/icon.h +++ b/include/wx/osx/carbon/icon.h @@ -22,8 +22,8 @@ public: wxIcon(const char* const* data); wxIcon(const char bits[], int width , int height ); - wxIcon(const wxString& name, int flags = wxBITMAP_TYPE_ICON_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); + wxIcon(const wxString& name, int flags = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); wxIcon(const wxIconLocation& loc) { LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICON); @@ -33,10 +33,8 @@ public: virtual ~wxIcon(); - bool LoadFile(const wxString& name, wxBitmapType flags /* = wxBITMAP_TYPE_ICON_RESOURCE */ , - int desiredWidth /* = -1 */ , int desiredHeight = -1); - bool LoadFile(const wxString& name ,wxBitmapType flags = wxBITMAP_TYPE_ICON_RESOURCE ) - { return LoadFile( name , flags , -1 , -1 ) ; } + bool LoadFile(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); // create from bitmap (which should have a mask unless it's monochrome): diff --git a/include/wx/palmos/bitmap.h b/include/wx/palmos/bitmap.h index eff5365..04b38d7 100644 --- a/include/wx/palmos/bitmap.h +++ b/include/wx/palmos/bitmap.h @@ -48,7 +48,7 @@ public: wxBitmap(const char* const* data); // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE); + wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); // New constructor for generalised creation from data wxBitmap(const void* data, long type, int width, int height, int depth = 1); @@ -114,7 +114,7 @@ public: virtual bool Create(int width, int height, int depth = -1); virtual bool Create(int width, int height, const wxDC& dc); virtual bool Create(const void* data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); + virtual bool LoadFile(const wxString& name, long type = wxBITMAP_DEFAULT_TYPE); virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); wxBitmapRefData *GetBitmapData() const diff --git a/include/wx/x11/bitmap.h b/include/wx/x11/bitmap.h index 4ad700e..b023702 100644 --- a/include/wx/x11/bitmap.h +++ b/include/wx/x11/bitmap.h @@ -76,7 +76,7 @@ public: *this = wxBitmap(wx_const_cast(const char* const*, data)); } #endif - wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM ); + wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE ); virtual ~wxBitmap(); static void InitStandardHandlers(); @@ -106,7 +106,7 @@ public: wxBitmap GetSubBitmap( const wxRect& rect ) const; bool SaveFile( const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *) NULL ) const; - bool LoadFile( const wxString &name, wxBitmapType type = wxBITMAP_TYPE_XPM ); + bool LoadFile( const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE ); wxPalette *GetPalette() const; wxPalette *GetColourMap() const diff --git a/interface/wx/bitmap.h b/interface/wx/bitmap.h index f419d07..ef19964 100644 --- a/interface/wx/bitmap.h +++ b/interface/wx/bitmap.h @@ -156,7 +156,7 @@ public: This class encapsulates the concept of a platform-dependent bitmap, either monochrome or colour or colour with alpha channel support. - + If you need direct access the bitmap data instead going through drawing to it using wxMemoryDC you need to use the wxPixelData class (either wxNativePixelData for RGB bitmaps or wxAlphaPixelData @@ -279,10 +279,13 @@ public: @param type May be one of the ::wxBitmapType values and indicates which type of bitmap should be loaded. See the note in the class detailed description. + Note that the wxBITMAP_DEFAULT_TYPE constant has different value under + different wxWidgets ports. See the bitmap.h header for the value it takes + for a specific port. @see LoadFile() */ - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_XPM); + wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); /** Creates this bitmap object from the given image. @@ -500,6 +503,9 @@ public: @param type One of the ::wxBitmapType values; see the note in the class detailed description. + Note that the wxBITMAP_DEFAULT_TYPE constant has different value under + different wxWidgets ports. See the bitmap.h header for the value it takes + for a specific port. @return @true if the operation succeeded, @false otherwise. @@ -510,7 +516,7 @@ public: @see SaveFile() */ - virtual bool LoadFile(const wxString& name, wxBitmapType type); + virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); /** Finds the handler with the given name, and removes it. diff --git a/interface/wx/icon.h b/interface/wx/icon.h dissimilarity index 64% index e718745..5743555 100644 --- a/interface/wx/icon.h +++ b/interface/wx/icon.h @@ -1,320 +1,282 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: interface of wxIcon -// Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -/** - @class wxIcon - - An icon is a small rectangular bitmap usually used for denoting a - minimized application. It differs from a wxBitmap in always - having a mask associated with it for transparent drawing. On some platforms, - icons and bitmaps are implemented identically, since there is no real - distinction between - a wxBitmap with a mask and an icon; and there is no specific icon format on - some platforms (X-based applications usually standardize on XPMs for small - bitmaps - and icons). However, some platforms (such as Windows) make the distinction, so - a separate class is provided. - - @library{wxcore} - @category{gdi} - - @stdobjects - ::wxNullIcon - - @see @ref overview_wxbitmapoverview "Bitmap and icon overview", @ref - overview_supportedbitmapformats "supported bitmap file formats", wxDC::DrawIcon, wxCursor -*/ -class wxIcon : public wxBitmap -{ -public: - //@{ - /** - Loads an icon from the specified location(). - - @param bits - Specifies an array of pixel values. - @param width - Specifies the width of the icon. - @param height - Specifies the height of the icon. - @param desiredWidth - Specifies the desired width of the icon. This - parameter only has an effect in Windows (32-bit) where icon resources can - contain - several icons of different sizes. - @param desiredWidth - Specifies the desired height of the icon. This - parameter only has an effect in Windows (32-bit) where icon resources can - contain - several icons of different sizes. - @param depth - Specifies the depth of the icon. If this is omitted, the display depth of - the - screen is used. - @param name - This can refer to a resource name under MS Windows, or a filename under MS - Windows and X. - Its meaning is determined by the flags parameter. - @param loc - The object describing the location of the native icon, see - wxIconLocation. - @param type - May be one of the following: - - - - - - - - wxBITMAP_TYPE_ICO - - - - - Load a Windows icon file. - - - - - - wxBITMAP_TYPE_ICO_RESOURCE - - - - - Load a Windows icon from the resource database. - - - - - - wxBITMAP_TYPE_GIF - - - - - Load a GIF bitmap file. - - - - - - wxBITMAP_TYPE_XBM - - - - - Load an X bitmap file. - - - - - - wxBITMAP_TYPE_XPM - - - - - Load an XPM bitmap file. - - - - - - The validity of these flags depends on the platform and wxWidgets - configuration. - If all possible wxWidgets settings are used, the Windows platform supports - ICO file, ICO resource, - XPM data, and XPM file. Under wxGTK, the available formats are BMP file, - XPM data, XPM file, and PNG file. - Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM - file. - - @remarks The first form constructs an icon object with no data; an - assignment or another member function such as Create or - LoadFile must be called subsequently. - */ - wxIcon(); - wxIcon(const wxIcon& icon); - wxIcon(void* data, int type, int width, int height, - int depth = -1); - wxIcon(const char bits[], int width, int height, - int depth = 1); - wxIcon(int width, int height, int depth = -1); - wxIcon(const char* const* bits); - wxIcon(const wxString& name, wxBitmapType type, - int desiredWidth = -1, - int desiredHeight = -1); - wxIcon(const wxIconLocation& loc); - //@} - - /** - Destructor. - See @ref overview_refcountdestruct "reference-counted object destruction" for - more info. - If the application omits to delete the icon explicitly, the icon will be - destroyed automatically by wxWidgets when the application exits. - Do not delete an icon that is selected into a memory device context. - */ - ~wxIcon(); - - /** - Copies @a bmp bitmap to this icon. Under MS Windows the bitmap - must have mask colour set. - - LoadFile() - - Wx::Icon-new( width, height, depth = -1 ) - Wx::Icon-new( name, type, desiredWidth = -1, desiredHeight = -1 ) - Wx::Icon-newFromBits( bits, width, height, depth = 1 ) - Wx::Icon-newFromXPM( data ) - */ - void CopyFromBitmap(const wxBitmap& bmp); - - /** - Gets the colour depth of the icon. A value of 1 indicates a - monochrome icon. - */ - int GetDepth() const; - - /** - Gets the height of the icon in pixels. - */ - int GetHeight() const; - - /** - Gets the width of the icon in pixels. - - @see GetHeight() - */ - int GetWidth() const; - - /** - Returns @true if icon data is present. - */ - bool IsOk() const; - - /** - Loads an icon from a file or resource. - - @param name - Either a filename or a Windows resource name. - The meaning of name is determined by the type parameter. - @param type - One of the following values: - - - - - - - - wxBITMAP_TYPE_ICO - - - - - Load a Windows icon file. - - - - - - wxBITMAP_TYPE_ICO_RESOURCE - - - - - Load a Windows icon from the resource database. - - - - - - wxBITMAP_TYPE_GIF - - - - - Load a GIF bitmap file. - - - - - - wxBITMAP_TYPE_XBM - - - - - Load an X bitmap file. - - - - - - wxBITMAP_TYPE_XPM - - - - - Load an XPM bitmap file. - - - - - - The validity of these flags depends on the platform and wxWidgets - configuration. - - @return @true if the operation succeeded, @false otherwise. - - @see wxIcon() - */ - bool LoadFile(const wxString& name, wxBitmapType type); - - /** - Sets the depth member (does not affect the icon data). - - @param depth - Icon depth. - */ - void SetDepth(int depth); - - /** - Sets the height member (does not affect the icon data). - - @param height - Icon height in pixels. - */ - void SetHeight(int height); - - /** - Sets the width member (does not affect the icon data). - - @param width - Icon width in pixels. - */ - void SetWidth(int width); - - /** - Assignment operator, using @ref overview_trefcount "reference counting". - - @param icon - Icon to assign. - */ - wxIcon operator =(const wxIcon& icon); -}; - -/** - An empty wxIcon. -*/ -wxIcon wxNullIcon; - - +///////////////////////////////////////////////////////////////////////////// +// Name: icon.h +// Purpose: interface of wxIcon +// Author: wxWidgets team +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + + + +/** + In wxIcon context this value means: "use the screen depth". +*/ +#define wxICON_SCREEN_DEPTH (-1) + + +/** + @class wxIcon + + An icon is a small rectangular bitmap usually used for denoting a minimized + application. + + It differs from a wxBitmap in always having a mask associated with it for + transparent drawing. On some platforms, icons and bitmaps are implemented + identically, since there is no real distinction between a wxBitmap with a + mask and an icon; and there is no specific icon format on some platforms + (X-based applications usually standardize on XPMs for small bitmaps and icons). + However, some platforms (such as Windows) make the distinction, so a + separate class is provided. + + @remarks + It is usually desirable to associate a pertinent icon with a frame. + Icons can also be used for other purposes, for example with wxTreeCtrl and wxListCtrl. + Icons have different formats on different platforms therefore separate icons + will usually be created for the different environments. + Platform-specific methods for creating a wxIcon structure are catered for, + and this is an occasion where conditional compilation will probably be required. + Note that a new icon must be created for every time the icon is to be used + for a new window. In Windows, the icon will not be reloaded if it has already + been used. + An icon allocated to a frame will be deleted when the frame is deleted. + For more information please see @ref overview_bitmap. + + @library{wxcore} + @category{gdi} + + @stdobjects + ::wxNullIcon + + @see @ref overview_bitmap, @ref overview_bitmap_supportedformats, + wxDC::DrawIcon, wxCursor +*/ +class wxIcon : public wxBitmap +{ +public: + /** + Default ctor. + + Constructs an icon object with no data; an assignment or another member + function such as LoadFile() must be called subsequently. + */ + wxIcon(); + + /** + Copy ctor. + */ + wxIcon(const wxIcon& icon); + + /* + Creates an icon from the given data, which can be of arbitrary type. + + wxIcon(void* data, int type, int width, int height, int depth = -1); + + NOTE: this ctor is not implemented by all ports, is somewhat useless + without further description of the "data" supported formats and + uses 'int type' instead of wxBitmapType, so don't document it. + */ + + /** + Creates an icon from an array of bits. + You should only use this function for monochrome bitmaps (depth 1) in + portable programs: in this case the bits parameter should contain an XBM image. + + For other bit depths, the behaviour is platform dependent: under Windows, + the data is passed without any changes to the underlying CreateBitmap() API. + Under other platforms, only monochrome bitmaps may be created using this + constructor and wxImage should be used for creating colour bitmaps from + static data. + + @param bits + Specifies an array of pixel values. + @param width + Specifies the width of the bitmap. + @param height + Specifies the height of the bitmap. + @param depth + Specifies the depth of the bitmap. + If this is omitted, then a value of 1 (monochrome bitmap) is used. + */ + wxIcon(const char bits[], int width, int height, int depth = 1); + + + /** + Creates a new icon. A depth of ::wxICON_SCREEN_DEPTH indicates the + depth of the current screen or visual. + + Some platforms only support 1 for monochrome and ::wxICON_SCREEN_DEPTH for + the current colour setting. + */ + wxIcon(int width, int height, int depth = wxICON_SCREEN_DEPTH); + + /** + Creates a bitmap from XPM data. + To use this constructor, you must first include an XPM file. + For example, assuming that the file mybitmap.xpm contains an XPM array + of character pointers called @e mybitmap: + + @code + #include "mybitmap.xpm" + ... + wxIcon *icon = new wxIcon(mybitmap); + @endcode + + A macro, wxICON, is available which creates an icon using an XPM on + the appropriate platform, or an icon resource on Windows. + + @code + wxIcon icon(wxICON(mondrian)); + + // Equivalent to: + #if defined(__WXGTK__) || defined(__WXMOTIF__) + wxIcon icon(mondrian_xpm); + #endif + + #if defined(__WXMSW__) + wxIcon icon("mondrian"); + #endif + @endcode + */ + wxIcon(const char* const* bits); + + /** + Loads an icon from a file or resource. + + @param name + This can refer to a resource name or a filename under MS Windows and X. + Its meaning is determined by the @a type parameter. + @param type + May be one of the ::wxBitmapType values and indicates which type of + bitmap should be loaded. See the note in the class detailed description. + Note that the wxICON_DEFAULT_TYPE constant has different value under + different wxWidgets ports. See the icon.h header for the value it takes + for a specific port. + @param desiredWidth + Specifies the desired width of the icon. This parameter only has + an effect in Windows where icon resources can contain several icons + of different sizes. + @param desiredHeight + Specifies the desired height of the icon. This parameter only has + an effect in Windows where icon resources can contain several icons + of different sizes. + + @see LoadFile() + */ + wxIcon(const wxString& name, wxBitmapType type = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); + + /** + Loads an icon from the specified location. + */ + wxIcon(const wxIconLocation& loc); + + /** + Destructor. + See @ref overview_refcount_destruct for more info. + + If the application omits to delete the icon explicitly, the icon will be + destroyed automatically by wxWidgets when the application exits. + + @warning + Do not delete an icon that is selected into a memory device context. + */ + ~wxIcon(); + + /** + Copies @a bmp bitmap to this icon. + Under MS Windows the bitmap must have mask colour set. + + @see LoadFile() + */ + void CopyFromBitmap(const wxBitmap& bmp); + + /** + Gets the colour depth of the icon. + A value of 1 indicates a monochrome icon. + */ + int GetDepth() const; + + /** + Gets the height of the icon in pixels. + + @see GetWidth() + */ + int GetHeight() const; + + /** + Gets the width of the icon in pixels. + + @see GetHeight() + */ + int GetWidth() const; + + /** + Returns @true if icon data is present. + */ + bool IsOk() const; + + /** + Loads an icon from a file or resource. + + @param name + Either a filename or a Windows resource name. + The meaning of name is determined by the @a type parameter. + @param type + One of the ::wxBitmapType values; see the note in the class + detailed description. + Note that the wxICON_DEFAULT_TYPE constant has different value under + different wxWidgets ports. See the icon.h header for the value it takes + for a specific port. + @param desiredWidth + Specifies the desired width of the icon. This parameter only has + an effect in Windows where icon resources can contain several icons + of different sizes. + @param desiredHeight + Specifies the desired height of the icon. This parameter only has + an effect in Windows where icon resources can contain several icons + of different sizes. + + @return @true if the operation succeeded, @false otherwise. + */ + bool LoadFile(const wxString& name, wxBitmapType type = wxICON_DEFAULT_TYPE, + int desiredWidth = -1, int desiredHeight = -1); + + /** + Sets the depth member (does not affect the icon data). + + @param depth + Icon depth. + */ + void SetDepth(int depth); + + /** + Sets the height member (does not affect the icon data). + + @param height + Icon height in pixels. + */ + void SetHeight(int height); + + /** + Sets the width member (does not affect the icon data). + + @param width + Icon width in pixels. + */ + void SetWidth(int width); + + /** + Assignment operator, using @ref overview_refcount. + + @param icon + Icon to assign. + */ + wxIcon operator =(const wxIcon& icon); +}; + +/** + An empty wxIcon. +*/ +wxIcon wxNullIcon; + + diff --git a/utils/ifacecheck/rungccxml.sh.in b/utils/ifacecheck/rungccxml.sh.in index 57a463b..86f6b48 100755 --- a/utils/ifacecheck/rungccxml.sh.in +++ b/utils/ifacecheck/rungccxml.sh.in @@ -74,6 +74,19 @@ fi # can be passed to ifacecheck to aid the comparison echo "Running gccxml's preprocessor on the $allheaders file... results in $preprocoutput" gccxml -E -dM $flags >$preprocoutput +if [[ $? != 0 ]]; then + echo "Errors running gccxml preprocessor... aborting." + exit +fi + +# FIX for IFACECHECK +# ================== + +# these fixes are needed to avoid false warnings/errors by ifacecheck + +if [[ "@TOOLKIT@" == "GTK" ]]; then + sed -i -e 's/default="wxBITMAP_TYPE_XPM"/default="wxBITMAP_DEFAULT_TYPE"/g' $gccxmloutput +fi # cleanup rm $allheaders -- 2.7.4