]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/bitmap.h
A couple of fixes for wxChm
[wxWidgets.git] / interface / wx / bitmap.h
index 1bcf959e19af98c378fab2c040e562b82ee5b045..2a2d6b5cb80008d549588d10b42c734ba68f5969 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxBitmap* classes
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -14,7 +14,6 @@
 
 /**
     @class wxBitmapHandler
-    @wxheader{bitmap.h}
 
     This is the base class for implementing bitmap file loading/saving, and
     bitmap creation from data.
 
     If you wish to extend the capabilities of wxBitmap, derive a class from
     wxBitmapHandler and add the handler using wxBitmap::AddHandler() in your
-    application initialisation.
+    application initialization.
+
+    Note that all wxBitmapHandlers provided by wxWidgets are part of the
+    @ref page_libs_wxcore library.
+    For details about the default handlers, please see the note in the
+    wxBitmap class documentation.
 
     @library{wxcore}
-    @category{misc}
+    @category{gdi}
 
     @see @ref overview_bitmap, wxBitmap, wxIcon, wxCursor
 */
@@ -154,27 +158,30 @@ public:
 
 /**
     @class wxBitmap
-    @wxheader{bitmap.h}
 
     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
     for bitmaps with an additionaly alpha channel).
 
-    @note
-    Many wxBitmap functions take a @e type parameter, which is a value of the
-    ::wxBitmapType enumeration.
+    Note that many wxBitmap functions take a @e type parameter, which is a 
+    value of the ::wxBitmapType enumeration.
     The validity of those values depends however on the platform where your program
     is running and from the wxWidgets configuration.
-    If all possible wxWidgets settings are used, the Windows platform supports BMP file,
-    BMP resource, XPM data, and XPM.
-    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.
-    In addition, wxBitmap can load and save all formats that wxImage; see wxImage for
-    more info. Of course, you must have wxImage handlers loaded.
+    If all possible wxWidgets settings are used:
+    - wxMSW supports BMP and ICO files, BMP and ICO resources;
+    - wxGTK supports XPM files;
+    - wxMac supports PICT resources;
+    - wxX11 supports XPM files, XPM data, XBM data;
+
+    In addition, wxBitmap can load and save all formats that wxImage can; see wxImage
+    for more info. Of course, you must have loaded the wxImage handlers 
+    (see ::wxInitAllImageHandlers() and wxImage::AddHandler).
+    Note that all available wxBitmapHandlers for a given wxWidgets port are 
+    automatically loaded at startup so you won't need to use wxBitmap::AddHandler.
 
     @library{wxcore}
     @category{gdi}
@@ -253,6 +260,10 @@ public:
         @param depth
             Specifies the depth of the bitmap.
             If this is omitted, then a value of 1 (monochrome bitmap) is used.
+
+        @beginWxPerlOnly
+        In wxPerl use Wx::Bitmap->newFromBits(bits, width, height, depth).
+        @endWxPerlOnly
     */
     wxBitmap(const char bits[], int width, int height, int depth = 1);
 
@@ -266,9 +277,18 @@ public:
         A depth of 32 including an alpha channel is supported under MSW, Mac and GTK+.
     */
     wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
+    
+    /**
+        @overload
+    */
+    wxBitmap(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH);
 
     /**
         Creates a bitmap from XPM data.
+
+        @beginWxPerlOnly
+        In wxPerl use Wx::Bitmap->newFromXPM(data).
+        @endWxPerlOnly
     */
     wxBitmap(const char* const* bits);
 
@@ -281,10 +301,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.
@@ -330,6 +353,14 @@ public:
         @param handler
             A new bitmap format handler object. There is usually only one instance
             of a given handler class in an application session.
+            
+        Note that unlike wxImage::AddHandler, there's no documented list of
+        the wxBitmapHandlers available in wxWidgets.
+        This is because they are platform-specific and most important, they are 
+        all automatically loaded at startup.
+        
+        If you want to be sure that wxBitmap can load a certain type of image,
+        you'd better use wxImage::AddHandler.
 
         @see wxBitmapHandler
     */
@@ -356,10 +387,15 @@ public:
     /**
         Creates a fresh bitmap.
         If the final argument is omitted, the display depth of the screen is used.
-
-        This overload works on all platforms.
+        
+        @return @true if the creation was successful.
     */
     virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
+    
+    /**
+        @overload
+    */
+    virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH);
 
     /*
         Creates a bitmap from the given data, which can be of arbitrary type.
@@ -430,10 +466,12 @@ public:
 
         @see wxBitmapHandler
     */
-    static wxList GetHandlers();
+    static wxList& GetHandlers();
 
     /**
         Gets the height of the bitmap in pixels.
+
+        @see GetWidth(), GetSize()
     */
     virtual int GetHeight() const;
 
@@ -459,10 +497,25 @@ public:
     */
     virtual wxBitmap GetSubBitmap(const wxRect& rect) const;
 
+    /**
+        Returns the size of the bitmap in pixels.
+
+        @since 2.9.0
+
+        @see GetHeight(), GetWidth()
+    */
+    wxSize GetSize() const;
+
+    /**
+        Returns disabled (dimmed) version of the bitmap.
+        @since 2.9.0
+    */
+    wxBitmap ConvertToDisabled(unsigned char brightness = 255) const;
+
     /**
         Gets the width of the bitmap in pixels.
 
-        @see GetHeight()
+        @see GetHeight(), GetSize()
     */
     virtual int GetWidth() const;
 
@@ -491,7 +544,7 @@ public:
     /**
         Returns @true if bitmap data is present.
     */
-    bool IsOk() const;
+    virtual bool IsOk() const;
 
     /**
         Loads a bitmap from a file or resource.
@@ -502,6 +555,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.
 
@@ -512,7 +568,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.
@@ -605,7 +661,6 @@ wxBitmap wxNullBitmap;
 
 /**
     @class wxMask
-    @wxheader{bitmap.h}
 
     This class encapsulates a monochrome mask bitmap, where the masked area is
     black and the unmasked area is white.