]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_image.i
Call evt.Skip by default
[wxWidgets.git] / wxPython / src / _image.i
index ea4cca9f1000ff7473102c9519f58840b511b1d4..658da260035a92cb50ca983f601c29cddbfd83da 100644 (file)
@@ -76,15 +76,32 @@ success flag and rgb values.", "");
 
 class wxImage : public wxObject {
 public:
-    wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 );
+    DocCtorStr(
+        wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 ),
+        "", "");
+    
     ~wxImage();
 
     // Alternate constructors
-    %name(ImageFromMime) wxImage(const wxString& name, const wxString& mimetype, int index = -1);
-    %name(ImageFromStream) wxImage(wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1);
-    %name(ImageFromStreamMime) wxImage(wxInputStream& stream, const wxString& mimetype, int index = -1 );
+    DocCtorStrName(
+        wxImage(const wxString& name, const wxString& mimetype, int index = -1),
+        "", "",
+        ImageFromMime);
+    
+    DocCtorStrName(
+        wxImage(wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1),
+        "", "",
+        ImageFromStream);
+    
+    DocCtorStrName(
+        wxImage(wxInputStream& stream, const wxString& mimetype, int index = -1 ),
+        "", "",
+        ImageFromStreamMime);
+    
     %extend {
-        %name(EmptyImage) wxImage(int width=0, int height=0, bool clear = true) {
+        %rename(EmptyImage) wxImage(int width=0, int height=0, bool clear = true);
+        wxImage(int width=0, int height=0, bool clear = true)
+        {
             if (width > 0 && height > 0)
                 return new wxImage(width, height, clear);
             else
@@ -92,11 +109,15 @@ public:
         }
 
         MustHaveApp(wxImage(const wxBitmap &bitmap));
-        %name(ImageFromBitmap) wxImage(const wxBitmap &bitmap) {
+        %rename(ImageFromBitmap) wxImage(const wxBitmap &bitmap);
+        wxImage(const wxBitmap &bitmap)
+        {
             return new wxImage(bitmap.ConvertToImage());
         }
 
-        %name(ImageFromData) wxImage(int width, int height, unsigned char* data) {
+        %rename(ImageFromData) wxImage(int width, int height, unsigned char* data);
+        wxImage(int width, int height, unsigned char* data)
+        {
             // Copy the source data so the wxImage can clean it up later
             unsigned char* copy = (unsigned char*)malloc(width*height*3);
             if (copy == NULL) {
@@ -106,8 +127,11 @@ public:
             memcpy(copy, data, width*height*3);
             return new wxImage(width, height, copy, false);
         }
-        %name(ImageFromDataWithAlpha) wxImage(int width, int height,
-                                              unsigned char* data, unsigned char* alpha) {
+
+        
+        %rename(ImageFromDataWithAlpha) wxImage(int width, int height, unsigned char* data, unsigned char* alpha);
+        wxImage(int width, int height, unsigned char* data, unsigned char* alpha)
+        {
             // Copy the source data so the wxImage can clean it up later
             unsigned char* dcopy = (unsigned char*)malloc(width*height*3);
             if (dcopy == NULL) {
@@ -126,6 +150,9 @@ public:
         }
     }
 
+    // TODO: wxImage( char** xpmData );
+
+
     void Create( int width, int height );
     void Destroy();
 
@@ -133,7 +160,16 @@ public:
     wxImage ShrinkBy( int xFactor , int yFactor ) const ;
     wxImage& Rescale(int width, int height);
 
+    // resizes the image in place
+    wxImage& Resize( const wxSize& size, const wxPoint& pos, 
+                     int r = -1, int g = -1, int b = -1 );
+    
     void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
+
+    %Rename(SetRGBRect,
+            void, SetRGB( const wxRect& rect,
+                          unsigned char r, unsigned char g, unsigned char b ));
+
     unsigned char GetRed( int x, int y );
     unsigned char GetGreen( int x, int y );
     unsigned char GetBlue( int x, int y );
@@ -142,6 +178,14 @@ public:
     unsigned char GetAlpha(int x, int y);
     bool HasAlpha();
 
+    DocDeclStr(
+        void , InitAlpha(),
+        "Initializes the image alpha channel data. It is an error to call it if
+the image already has alpha data. If it doesn't, alpha data will be by
+default initialized to all pixels being fully opaque. But if the image
+has a a mask colour, all mask pixels will be completely transparent.", "");
+    
+    
     // find first colour that is not used in the image and has higher
     // RGB values than <startR,startG,startB>
     DocDeclAStr(
@@ -190,14 +234,14 @@ The method will then fill up the whole image with the colour given.", "");
     static int GetImageCount( const wxString& name, long type = wxBITMAP_TYPE_ANY );
 
     bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 );
-    %name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype, int index = -1 );
+    %Rename(LoadMimeFile, bool,  LoadFile( const wxString& name, const wxString& mimetype, int index = -1 ));
 
     bool SaveFile( const wxString& name, int type );
-    %name(SaveMimeFile)bool SaveFile( const wxString& name, const wxString& mimetype );
+    %Rename(SaveMimeFile, bool,  SaveFile( const wxString& name, const wxString& mimetype ));
 
-    %name(CanReadStream) static bool CanRead( wxInputStream& stream );
-    %name(LoadStream) bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 );
-    %name(LoadMimeStream) bool LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 );
+    %Rename(CanReadStream, static bool,  CanRead( wxInputStream& stream ));
+    %Rename(LoadStream, bool,  LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 ));
+    %Rename(LoadMimeStream, bool,  LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 ));
 
     bool Ok();
     int GetWidth();
@@ -211,6 +255,14 @@ The method will then fill up the whole image with the colour given.", "");
     }
 
     wxImage GetSubImage(const wxRect& rect);
+
+    // 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;
+    
     wxImage Copy();
     void Paste( const wxImage &image, int x, int y );
 
@@ -254,7 +306,7 @@ The method will then fill up the whole image with the colour given.", "");
             unsigned char* buffer;
             int size;
 
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (!PyArg_Parse(data, "t#", &buffer, &size))
                 goto done;
 
@@ -308,7 +360,7 @@ The method will then fill up the whole image with the colour given.", "");
             unsigned char* buffer;
             int size;
 
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (!PyArg_Parse(data, "t#", &buffer, &size))
                 goto done;
 
@@ -323,6 +375,15 @@ The method will then fill up the whole image with the colour given.", "");
     }
 
     void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
+
+    DocDeclAStr(
+        /*bool*/ void , GetOrFindMaskColour( unsigned char *OUTPUT,
+                                             unsigned char *OUTPUT,
+                                             unsigned char *OUTPUT ) const,
+        "GetOrFindMaskColour() -> (r,g,b)",
+        "Get the current mask colour or find a suitable colour.", "");
+    
+
     unsigned char GetMaskRed();
     unsigned char GetMaskGreen();
     unsigned char GetMaskBlue();
@@ -341,7 +402,7 @@ The method will then fill up the whole image with the colour given.", "");
     wxImage ConvertToMono( unsigned char r, unsigned char g, unsigned char b ) const;
 
     void SetOption(const wxString& name, const wxString& value);
-    %name(SetOptionInt)void SetOption(const wxString& name, int value);
+    %Rename(SetOptionInt, void,  SetOption(const wxString& name, int value));
     wxString GetOption(const wxString& name) const;
     int GetOptionInt(const wxString& name) const;
     bool HasOption(const wxString& name) const;
@@ -398,12 +459,15 @@ const wxImage    wxNullImage;
 
 //---------------------------------------------------------------------------
 
-
+MAKE_CONST_WXSTRING(IMAGE_OPTION_FILENAME);
 MAKE_CONST_WXSTRING(IMAGE_OPTION_BMP_FORMAT);
 MAKE_CONST_WXSTRING(IMAGE_OPTION_CUR_HOTSPOT_X);
 MAKE_CONST_WXSTRING(IMAGE_OPTION_CUR_HOTSPOT_Y);
 MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTION);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONX);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONY);
 MAKE_CONST_WXSTRING(IMAGE_OPTION_RESOLUTIONUNIT);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_QUALITY);
 
 enum
 {
@@ -412,6 +476,21 @@ enum
 };
 
 
+MAKE_CONST_WXSTRING(IMAGE_OPTION_BITSPERSAMPLE);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_SAMPLESPERPIXEL); 
+MAKE_CONST_WXSTRING(IMAGE_OPTION_COMPRESSION);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_IMAGEDESCRIPTOR);
+
+MAKE_CONST_WXSTRING(IMAGE_OPTION_PNG_FORMAT);
+MAKE_CONST_WXSTRING(IMAGE_OPTION_PNG_BITDEPTH);
+
+enum
+{
+    wxPNG_TYPE_COLOUR = 0,
+    wxPNG_TYPE_GREY = 2,
+    wxPNG_TYPE_GREY_RED = 3
+};
+
 enum
 {
     wxBMP_24BPP        = 24, // default, do not need to set