X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3b9e3455225b670d30ee0fb67f8821ada9640f6d..cbee8f8dc777aa7131df267f78be377d85a10cda:/include/wx/os2/bitmap.h diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index 5ad96f1a55..0908e667d5 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -16,6 +16,7 @@ #pragma interface "bitmap.h" #endif +#include "wx/os2/private.h" #include "wx/os2/gdiimage.h" #include "wx/gdicmn.h" #include "wx/palette.h" @@ -54,6 +55,7 @@ public: wxDC* m_pSelectedInto; HPS m_hPresentationSpace; + LONG m_lId; // optional mask for transparent drawing wxMask* m_pBitmapMask; @@ -131,6 +133,9 @@ public: virtual ~wxBitmap(); + // 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); @@ -159,17 +164,17 @@ public: { 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) ; @@ -194,32 +199,25 @@ public: // 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 - // + { 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(); @@ -227,11 +225,14 @@ protected: 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); + private: bool CopyFromIconOrCursor(const wxGDIImage& rIcon); DECLARE_DYNAMIC_CLASS(wxBitmap) -}; +}; // end of CLASS wxBitmap // ---------------------------------------------------------------------------- // wxMask: a mono bitmap used for drawing bitmaps transparently. @@ -280,7 +281,10 @@ public: protected: WXHBITMAP m_hMaskBitmap; DECLARE_DYNAMIC_CLASS(wxMask) -}; +private: + HDC m_hDc; + HPS m_hPs; +}; // end of wxMask // ---------------------------------------------------------------------------- // wxBitmapHandler is a class which knows how to load/save bitmaps to/from file @@ -313,6 +317,7 @@ public: ); virtual bool LoadFile( wxBitmap* pBitmap ,const wxString& rName + ,HPS hPs ,long lFlags ,int nDesiredWidth ,int nDesiredHeight @@ -332,17 +337,18 @@ public: ); 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 wxBitmapHandler #endif // _WX_BITMAP_H_