]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/image.h
Fixed bug #1022383: 'several ComboBoxes appear selected'
[wxWidgets.git] / include / wx / image.h
index 7a9e084fb276ef9be0ca13752c480562748cd7f4..665d89534e0bafb55628c54885eebdb100e797cf 100644 (file)
@@ -14,7 +14,7 @@
 #pragma interface "image.h"
 #endif
 
 #pragma interface "image.h"
 #endif
 
-#include "wx/setup.h"
+#include "wx/defs.h"
 #include "wx/object.h"
 #include "wx/string.h"
 #include "wx/gdicmn.h"
 #include "wx/object.h"
 #include "wx/string.h"
 #include "wx/gdicmn.h"
@@ -30,6 +30,7 @@
 // which breaks the compilation below
 #undef index
 
 // which breaks the compilation below
 #undef index
 
+#define wxIMAGE_OPTION_QUALITY  wxString(_T("quality"))
 #define wxIMAGE_OPTION_FILENAME wxString(_T("FileName"))
 
 #define wxIMAGE_OPTION_RESOLUTION            wxString(_T("Resolution"))
 #define wxIMAGE_OPTION_FILENAME wxString(_T("FileName"))
 
 #define wxIMAGE_OPTION_RESOLUTION            wxString(_T("Resolution"))
@@ -155,6 +156,8 @@ public:
     wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false );
     wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 );
     wxImage( const wxString& name, const wxString& mimetype, int index = -1 );
     wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false );
     wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 );
     wxImage( const wxString& name, const wxString& mimetype, int index = -1 );
+    wxImage( const char** xpmData );
+    wxImage( char** xpmData );
 
 #if wxUSE_STREAMS
     wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 );
 
 #if wxUSE_STREAMS
     wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 );
@@ -167,6 +170,7 @@ public:
     bool Create( int width, int height, bool clear = true );
     bool Create( int width, int height, unsigned char* data, bool static_data = false );
     bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false );
     bool Create( int width, int height, bool clear = true );
     bool Create( int width, int height, unsigned char* data, bool static_data = false );
     bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false );
+    bool Create( const char** xpmData );
     void Destroy();
 
     // creates an identical copy of the image (the = operator
     void Destroy();
 
     // creates an identical copy of the image (the = operator
@@ -174,7 +178,14 @@ public:
     wxImage Copy() const;
 
     // return the new image with size width*height
     wxImage Copy() const;
 
     // return the new image with size width*height
-    wxImage GetSubImage( const wxRect& ) const;
+    wxImage GetSubImage( const wxRect& rect) const;
+
+    // Paste the image or part of this image into an image of the given size at the pos
+    //  any newly exposed areas will be filled with the rgb colour
+    //  by default if r = g = b = -1 then fill with this image's mask colour or find and
+    //  set a suitable mask colour
+    wxImage Size( const wxSize& size, const wxPoint& pos,
+                  int r = -1, int g = -1, int b = -1 ) const;
 
     // pastes image into this instance and takes care of
     // the mask colour and out of bounds problems
 
     // pastes image into this instance and takes care of
     // the mask colour and out of bounds problems
@@ -188,6 +199,10 @@ public:
     // rescales the image in place
     wxImage& Rescale( int width, int height ) { return *this = Scale(width, height); }
 
     // rescales the image in place
     wxImage& Rescale( int width, int height ) { return *this = Scale(width, height); }
 
+    // resizes the image in place
+    wxImage& Resize( const wxSize& size, const wxPoint& pos,
+                     int r = -1, int g = -1, int b = -1 ) { return *this = Size(size, pos, r, g, b); }
+
     // Rotates the image about the given point, 'angle' radians.
     // Returns the rotated image, leaving this image intact.
     wxImage Rotate(double angle, const wxPoint & centre_of_rotation,
     // Rotates the image about the given point, 'angle' radians.
     // Returns the rotated image, leaving this image intact.
     wxImage Rotate(double angle, const wxPoint & centre_of_rotation,
@@ -206,6 +221,7 @@ public:
 
     // these routines are slow but safe
     void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
 
     // these routines are slow but safe
     void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
+    void SetRGB( const wxRect& rect, unsigned char r, unsigned char g, unsigned char b );
     unsigned char GetRed( int x, int y ) const;
     unsigned char GetGreen( int x, int y ) const;
     unsigned char GetBlue( int x, int y ) const;
     unsigned char GetRed( int x, int y ) const;
     unsigned char GetGreen( int x, int y ) const;
     unsigned char GetBlue( int x, int y ) const;
@@ -272,9 +288,13 @@ public:
     unsigned char *GetAlpha() const;    // may return NULL!
     bool HasAlpha() const { return GetAlpha() != NULL; }
     void SetAlpha(unsigned char *alpha = NULL);
     unsigned char *GetAlpha() const;    // may return NULL!
     bool HasAlpha() const { return GetAlpha() != NULL; }
     void SetAlpha(unsigned char *alpha = NULL);
+    void InitAlpha();
 
     // Mask functions
     void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
 
     // Mask functions
     void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
+    // Get the current mask colour or find a suitable colour
+    // returns true if using current mask colour
+    bool GetOrFindMaskColour( unsigned char *r, unsigned char *g, unsigned char *b ) const;
     unsigned char GetMaskRed() const;
     unsigned char GetMaskGreen() const;
     unsigned char GetMaskBlue() const;
     unsigned char GetMaskRed() const;
     unsigned char GetMaskGreen() const;
     unsigned char GetMaskBlue() const;