#pragma interface "bitmap.h"
#endif
+#include "wx/os2/private.h"
#include "wx/os2/gdiimage.h"
#include "wx/gdicmn.h"
#include "wx/palette.h"
class WXDLLEXPORT wxMask;
class WXDLLEXPORT wxCursor;
class WXDLLEXPORT wxControl;
+class WXDLLEXPORT wxImage;
// ----------------------------------------------------------------------------
// Bitmap data
// ------------
wxDC* m_pSelectedInto;
- HPS m_hPresentationSpace;
- // optional mask for transparent drawing
+ //
+ // Optional mask for transparent drawing
+ //
wxMask* m_pBitmapMask;
-};
+}; // end of CLASS wxBitmapRefData
// ----------------------------------------------------------------------------
// wxBitmap: a mono or colour bitmap
);
// Initialize with XPM data
- wxBitmap( char** ppData
- ,wxControl* pAnItem = NULL
- );
+ wxBitmap(const char** ppData);
+ wxBitmap(char** ppData);
// Load a file or resource
wxBitmap( const wxString& rName
,int nDepth = -1
);
+ wxBitmap( const wxImage& image, int depth = -1 )
+ { (void)CreateFromImage(image, depth); }
+
// we must have this, otherwise icons are silently copied into bitmaps using
// the copy ctor but the resulting bitmap is invalid!
inline wxBitmap(const wxIcon& rIcon)
virtual ~wxBitmap();
+ wxImage ConvertToImage() const;
+
+ // get the given part of bitmap
+ wxBitmap GetSubBitmap(const wxRect& rRect) const;
+
// copies the contents and mask of the given (colour) icon to the bitmap
bool CopyFromIcon(const wxIcon& rIcon);
{ return (wxBitmapRefData *)m_refData; }
inline int GetQuality() const
- { return (GetBitmapData() ? GetBitmapData()->m_quality : 0); }
+ { return (GetBitmapData() ? GetBitmapData()->m_nQuality : 0); }
void SetQuality(int nQ);
wxPalette* GetPalette() const
- { return (GetBitmapData() ? (& GetBitmapData()->m_bitmapPalette) : (wxPalette*) NULL); }
+ { return (GetBitmapData() ? (& GetBitmapData()->m_vBitmapPalette) : (wxPalette*) NULL); }
void SetPalette(const wxPalette& rPalette);
inline wxMask* GetMask() const
- { return (GetBitmapData() ? GetBitmapData()->m_bitmapMask : (wxMask*) NULL); }
+ { return (GetBitmapData() ? GetBitmapData()->m_pBitmapMask : (wxMask*) NULL); }
void SetMask(wxMask* pMask) ;
// Implementation
public:
- inline void SetHBITMAP(WXHBITMAP hHmp)
- { SetHandle((WXHANDLE)bmp); }
+ inline void SetHBITMAP(WXHBITMAP hBmp)
+ { SetHandle((WXHANDLE)hBmp); }
inline WXHBITMAP GetHBITMAP() const
{ return (WXHBITMAP)GetHandle(); }
inline void SetSelectedInto(wxDC* pDc)
- { if (GetBitmapData()) GetBitmapData()->m_selectedInto = pDc; }
+ { if (GetBitmapData()) GetBitmapData()->m_pSelectedInto = pDc; }
inline wxDC* GetSelectedInto() const
- { return (GetBitmapData() ? GetBitmapData()->m_selectedInto : (wxDC*) NULL); }
-
- // Creates a bitmap that matches the device context's depth, from an
- // arbitray bitmap. At present, the original bitmap must have an associated
- // palette. (TODO: use a default palette if no palette exists.) This
- // function is necessary for you to Blit an arbitrary bitmap (which may
- // have the wrong depth). wxDC::SelectObject will compare the depth of the
- // bitmap with the DC's depth, and create a new bitmap if the depths
- // differ. Eventually we should perhaps make this a public API function so
- // that an app can efficiently produce bitmaps of the correct depth. The
- // Windows solution is to use SetDibBits to blit an arbotrary DIB directly
- // to a DC, but this is too Windows-specific, hence this solution of
- // quietly converting the wxBitmap. Contributed by Frederic Villeneuve
- // <frederic.villeneuve@natinst.com>
+ { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : (wxDC*) NULL); }
+
+ // An OS/2 version that probably doesn't do anything like the msw version
wxBitmap GetBitmapForDC(wxDC& rDc) const;
+// inline LONG GetId() const
+// { return (GetBitmapData() ? GetBitmapData()->m_lId : 0L); }
+
+
protected:
// common part of all ctors
void Init();
inline virtual wxGDIImageRefData* CreateData() const
{ return new wxBitmapRefData; }
+ // creates the bitmap from XPM data, supposed to be called from ctor
+ bool CreateFromXpm(const char **bits);
+ bool CreateFromImage(const wxImage& image, int depth);
+
private:
bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
DECLARE_DYNAMIC_CLASS(wxBitmap)
-};
+}; // end of CLASS wxBitmap
// ----------------------------------------------------------------------------
// wxMask: a mono bitmap used for drawing bitmaps transparently.
protected:
WXHBITMAP m_hMaskBitmap;
DECLARE_DYNAMIC_CLASS(wxMask)
-};
+}; // end of CLASS wxMask
// ----------------------------------------------------------------------------
// wxBitmapHandler is a class which knows how to load/save bitmaps to/from file
);
virtual bool LoadFile( wxBitmap* pBitmap
,const wxString& rName
+ ,HPS hPs
,long lFlags
,int nDesiredWidth
,int nDesiredHeight
);
virtual bool Load( wxGDIImage* pImage
,const wxString& rName
+ ,HPS hPs
,long lFlags
,int nDesiredWidth
,int nDesiredHeight
);
- virtual bool Save(wxGDIImage* pImage
- const wxString& rName
- int lType
+ virtual bool Save( wxGDIImage* pImage
+ ,const wxString& rName
+ ,int lType
);
private:
DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
-};
+}; // end of CLASS wxBitmapHandler
#endif
// _WX_BITMAP_H_