X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e838cc14684f8dfd4ede39e4649e04a5bd79d149..ba670bae4ec5b272fdf0f45bf00e194741742a7e:/include/wx/gtk1/bitmap.h diff --git a/include/wx/gtk1/bitmap.h b/include/wx/gtk1/bitmap.h index 2917413d43..23f5b94e76 100644 --- a/include/wx/gtk1/bitmap.h +++ b/include/wx/gtk1/bitmap.h @@ -11,7 +11,7 @@ #ifndef __GTKBITMAPH__ #define __GTKBITMAPH__ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface #endif @@ -21,12 +21,17 @@ #include "wx/palette.h" #include "wx/gdiobj.h" +#ifdef __WXGTK20__ +typedef struct _GdkPixbuf GdkPixbuf; +#endif + //----------------------------------------------------------------------------- // classes //----------------------------------------------------------------------------- class wxMask; class wxBitmap; +class wxImage; //----------------------------------------------------------------------------- // wxMask @@ -68,25 +73,37 @@ public: wxBitmap( char **bits ) { (void)CreateFromXpm((const char **)bits); } wxBitmap( const wxBitmap& bmp ); wxBitmap( const wxString &filename, int type = wxBITMAP_TYPE_XPM ); + wxBitmap( const wxImage& image, int depth = -1 ) { (void)CreateFromImage(image, depth); } ~wxBitmap(); wxBitmap& operator = ( const wxBitmap& bmp ); - bool operator == ( const wxBitmap& bmp ); - bool operator != ( const wxBitmap& bmp ); + bool operator == ( const wxBitmap& bmp ) const; + bool operator != ( const wxBitmap& bmp ) const; bool Ok() const; + bool Create(int width, int height, int depth = -1); + int GetHeight() const; int GetWidth() const; int GetDepth() const; + + wxImage ConvertToImage() const; + + // copies the contents and mask of the given (colour) icon to the bitmap + virtual bool CopyFromIcon(const wxIcon& icon); wxMask *GetMask() const; void SetMask( wxMask *mask ); + + wxBitmap GetSubBitmap( const wxRect& rect ) const; bool SaveFile( const wxString &name, int type, wxPalette *palette = (wxPalette *) NULL ); bool LoadFile( const wxString &name, int type = wxBITMAP_TYPE_XPM ); wxPalette *GetPalette() const; - wxPalette *GetColourMap() const - { return GetPalette(); }; + wxPalette *GetColourMap() const { return GetPalette(); }; + + static void InitStandardHandlers() { } + static void CleanUpHandlers() { } // implementation // -------------- @@ -95,14 +112,45 @@ public: void SetWidth( int width ); void SetDepth( int depth ); void SetPixmap( GdkPixmap *pixmap ); + void SetBitmap( GdkBitmap *bitmap ); +#ifdef __WXGTK20__ + void SetPixbuf(GdkPixbuf *pixbuf); +#endif GdkPixmap *GetPixmap() const; GdkBitmap *GetBitmap() const; + bool HasPixmap() const; +#ifdef __WXGTK20__ + bool HasPixbuf() const; + GdkPixbuf *GetPixbuf() const; +#endif + // Basically, this corresponds to Win32 StretchBlt() + wxBitmap Rescale( int clipx, int clipy, int clipwidth, int clipheight, int width, int height ); protected: bool CreateFromXpm(const char **bits); + bool CreateFromImage(const wxImage& image, int depth); private: + // to be called from CreateFromImage only! + bool CreateFromImageAsBitmap(const wxImage& image); + bool CreateFromImageAsPixmap(const wxImage& image); + +#ifdef __WXGTK20__ + bool CreateFromImageAsPixbuf(const wxImage& image); + + enum Representation + { + Pixmap, + Pixbuf + }; + // removes other representations from memory, keeping only 'keep' + // (wxBitmap may keep same bitmap e.g. as both pixmap and pixbuf): + void PurgeOtherRepresentations(Representation keep); + + friend class wxMemoryDC; +#endif + DECLARE_DYNAMIC_CLASS(wxBitmap) };