1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/bitmap.h 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  11 #ifndef __GTKBITMAPH__ 
  12 #define __GTKBITMAPH__ 
  15 #include "wx/object.h" 
  16 #include "wx/string.h" 
  17 #include "wx/palette.h" 
  18 #include "wx/gdiobj.h" 
  20 class WXDLLEXPORT wxPixelDataBase
; 
  22 //----------------------------------------------------------------------------- 
  24 //----------------------------------------------------------------------------- 
  26 class WXDLLIMPEXP_CORE wxMask
; 
  27 class WXDLLIMPEXP_CORE wxBitmap
; 
  28 class WXDLLIMPEXP_CORE wxImage
; 
  30 //----------------------------------------------------------------------------- 
  32 //----------------------------------------------------------------------------- 
  34 class WXDLLIMPEXP_CORE wxMask
: public wxObject
 
  38     wxMask( const wxBitmap
& bitmap
, const wxColour
& colour 
); 
  40     wxMask( const wxBitmap
& bitmap
, int paletteIndex 
); 
  41 #endif // wxUSE_PALETTE 
  42     wxMask( const wxBitmap
& bitmap 
); 
  45     bool Create( const wxBitmap
& bitmap
, const wxColour
& colour 
); 
  47     bool Create( const wxBitmap
& bitmap
, int paletteIndex 
); 
  48 #endif // wxUSE_PALETTE 
  49     bool Create( const wxBitmap
& bitmap 
); 
  54     GdkBitmap 
*GetBitmap() const; 
  57     DECLARE_DYNAMIC_CLASS(wxMask
) 
  60 //----------------------------------------------------------------------------- 
  62 //----------------------------------------------------------------------------- 
  64 class WXDLLIMPEXP_CORE wxBitmap
: public wxBitmapBase
 
  68     wxBitmap( int width
, int height
, int depth 
= -1 ); 
  69     wxBitmap( const char bits
[], int width
, int height
, int depth 
= 1 ); 
  70     wxBitmap( const char **bits 
) { (void)CreateFromXpm(bits
); } 
  71     wxBitmap( char **bits 
) { (void)CreateFromXpm((const char **)bits
); } 
  72     wxBitmap( const wxString 
&filename
, wxBitmapType type 
= wxBITMAP_TYPE_XPM 
); 
  73     wxBitmap( const wxImage
& image
, int depth 
= -1 ) { (void)CreateFromImage(image
, depth
); } 
  75     bool operator == ( const wxBitmap
& bmp 
) const; 
  76     bool operator != ( const wxBitmap
& bmp 
) const; 
  79     bool Create(int width
, int height
, int depth 
= -1); 
  81     int GetHeight() const; 
  85     wxImage 
ConvertToImage() const; 
  87     // copies the contents and mask of the given (colour) icon to the bitmap 
  88     virtual bool CopyFromIcon(const wxIcon
& icon
); 
  90     wxMask 
*GetMask() const; 
  91     void SetMask( wxMask 
*mask 
); 
  93     wxBitmap 
GetSubBitmap( const wxRect
& rect 
) const; 
  95     bool SaveFile(const wxString 
&name
, wxBitmapType type
, 
  96                           const wxPalette 
*palette 
= (wxPalette 
*)NULL
) const; 
  97     bool LoadFile(const wxString 
&name
, wxBitmapType type 
= wxBITMAP_TYPE_XPM 
); 
 100     wxPalette 
*GetPalette() const; 
 101     void SetPalette(const wxPalette
& palette
); 
 102     wxPalette 
*GetColourMap() const { return GetPalette(); }; 
 103 #endif // wxUSE_PALETTE 
 105     static void InitStandardHandlers(); 
 110     void SetHeight( int height 
); 
 111     void SetWidth( int width 
); 
 112     void SetDepth( int depth 
); 
 113     void SetPixmap( GdkPixmap 
*pixmap 
); 
 114     void SetBitmap( GdkBitmap 
*bitmap 
); 
 116     GdkPixmap 
*GetPixmap() const; 
 117     GdkBitmap 
*GetBitmap() const; 
 118     bool HasPixmap() const; 
 120     // Basically, this corresponds to Win32 StretchBlt() 
 121     wxBitmap 
Rescale( int clipx
, int clipy
, int clipwidth
, int clipheight
, int width
, int height 
); 
 123     // raw bitmap access support functions 
 124     void *GetRawData(wxPixelDataBase
& data
, int bpp
); 
 125     void UngetRawData(wxPixelDataBase
& data
); 
 127     bool HasAlpha() const; 
 131     bool CreateFromXpm(const char **bits
); 
 132     bool CreateFromImage(const wxImage
& image
, int depth
); 
 135     // to be called from CreateFromImage only! 
 136     bool CreateFromImageAsBitmap(const wxImage
& image
); 
 137     bool CreateFromImageAsPixmap(const wxImage
& image
); 
 139     friend class wxBitmapHandler
; 
 142     DECLARE_DYNAMIC_CLASS(wxBitmap
) 
 145 //----------------------------------------------------------------------------- 
 147 //----------------------------------------------------------------------------- 
 149 class WXDLLIMPEXP_CORE wxBitmapHandler
: public wxBitmapHandlerBase
 
 152     wxBitmapHandler() { } 
 153     virtual ~wxBitmapHandler(); 
 155     virtual bool Create(wxBitmap 
*bitmap
, void *data
, long flags
, int width
, int height
, int depth 
= 1); 
 156     virtual bool LoadFile(wxBitmap 
*bitmap
, const wxString
& name
, long flags
, 
 157         int desiredWidth
, int desiredHeight
); 
 158     virtual bool SaveFile(const wxBitmap 
*bitmap
, const wxString
& name
, int type
, const wxPalette 
*palette 
= NULL
); 
 161     DECLARE_DYNAMIC_CLASS(wxBitmapHandler
) 
 165 #endif // __GTKBITMAPH__