| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/os2/bitmap.h
 
- // Purpose:     wxBitmap class
 
- // Author:      David Webster
 
- // Modified by:
 
- // Created:     11/28/99
 
- // Copyright:   (c) David Webster
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_BITMAP_H_
 
- #define _WX_BITMAP_H_
 
- #include "wx/os2/private.h"
 
- #include "wx/os2/gdiimage.h"
 
- #include "wx/gdicmn.h"
 
- #include "wx/palette.h"
 
- class WXDLLIMPEXP_FWD_CORE wxDC;
 
- class WXDLLIMPEXP_FWD_CORE wxControl;
 
- class WXDLLIMPEXP_FWD_CORE wxBitmap;
 
- class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
 
- class WXDLLIMPEXP_FWD_CORE wxIcon;
 
- class WXDLLIMPEXP_FWD_CORE wxMask;
 
- class WXDLLIMPEXP_FWD_CORE wxCursor;
 
- class WXDLLIMPEXP_FWD_CORE wxControl;
 
- class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
 
- // ----------------------------------------------------------------------------
 
- // Bitmap data
 
- //
 
- // NB: this class is private, but declared here to make it possible inline
 
- //     wxBitmap functions accessing it
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxBitmapRefData : public wxGDIImageRefData
 
- {
 
- public:
 
-     wxBitmapRefData();
 
-     wxBitmapRefData(const wxBitmapRefData &tocopy);
 
-     virtual ~wxBitmapRefData() { Free(); }
 
-     virtual void Free();
 
- public:
 
-     int                             m_nNumColors;
 
-     wxPalette                       m_vBitmapPalette;
 
-     int                             m_nQuality;
 
-     // OS2-specific
 
-     // ------------
 
-     wxDC*                           m_pSelectedInto;
 
-     //
 
-     // Optional mask for transparent drawing
 
-     //
 
-     wxMask*                         m_pBitmapMask;
 
- }; // end of CLASS wxBitmapRefData
 
- // ----------------------------------------------------------------------------
 
- // wxBitmap: a mono or colour bitmap
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxBitmap : public wxGDIImage,
 
-                                   public wxBitmapHelpers
 
- {
 
- public:
 
-     // default ctor creates an invalid bitmap, you must Create() it later
 
-     wxBitmap() { Init(); }
 
-     // Copy constructors
 
-     inline wxBitmap(const wxBitmap& rBitmap)
 
-         : wxGDIImage(rBitmap)
 
-     {
 
-         Init();
 
-         SetHandle(rBitmap.GetHandle());
 
-     }
 
-     // Initialize with raw data
 
-     wxBitmap( const char bits[]
 
-              ,int        nWidth
 
-              ,int        nHeight
 
-              ,int        nDepth = 1
 
-             );
 
-     // Initialize with XPM data
 
-     wxBitmap(const char* const* bits);
 
- #ifdef wxNEEDS_CHARPP
 
-     // needed for old GCC
 
-     wxBitmap(char** data)
 
-     {
 
-         *this = wxBitmap(const_cast<const char* const*>(data));
 
-     }
 
- #endif
 
-     // Load a resource
 
-     wxBitmap( int             nId
 
-              ,wxBitmapType    lType = wxBITMAP_DEFAULT_TYPE
 
-             );
 
-     // For compatiability with other ports, under OS/2 does same as default ctor
 
-     inline wxBitmap( const wxString& WXUNUSED(rFilename)
 
-                     ,wxBitmapType    WXUNUSED(lType)
 
-                    )
 
-     { Init(); }
 
-     // New constructor for generalised creation from data
 
-     wxBitmap( const void* pData
 
-              ,wxBitmapType lType
 
-              ,int   nWidth
 
-              ,int   nHeight
 
-              ,int   nDepth = 1
 
-             );
 
-     // If depth is omitted, will create a bitmap compatible with the display
 
-     wxBitmap( int nWidth, int nHeight, int nDepth = -1 )
 
-     {
 
-         Init();
 
-         (void)Create(nWidth, nHeight, nDepth);
 
-     }
 
-     wxBitmap( const wxSize& sz, int nDepth = -1 )
 
-     {
 
-         Init();
 
-         (void)Create(sz, nDepth);
 
-     }
 
-     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)
 
-       { Init(); CopyFromIcon(rIcon); }
 
-     wxBitmap& operator=(const wxIcon& rIcon)
 
-     {
 
-         (void)CopyFromIcon(rIcon);
 
-         return(*this);
 
-     }
 
-     wxBitmap& operator=(const wxCursor& rCursor)
 
-     {
 
-         (void)CopyFromCursor(rCursor);
 
-         return (*this);
 
-     }
 
-     virtual ~wxBitmap();
 
-     wxImage ConvertToImage() const;
 
-     wxBitmap ConvertToDisabled(unsigned char brightness = 255) 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);
 
-     // copies the contents and mask of the given cursor to the bitmap
 
-     bool CopyFromCursor(const wxCursor& rCursor);
 
-     virtual bool Create( int nWidth
 
-                         ,int nHeight
 
-                         ,int nDepth = wxBITMAP_SCREEN_DEPTH
 
-                        );
 
-     virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH)
 
-         { return Create(sz.GetWidth(), sz.GetHeight(), depth); }
 
-     virtual bool Create(int width, int height, const wxDC& WXUNUSED(dc))
 
-         { return Create(width,height); }
 
-     virtual bool Create( const void* pData
 
-                         ,wxBitmapType lType
 
-                         ,int   nWidth
 
-                         ,int   nHeight
 
-                         ,int   nDepth = 1
 
-                        );
 
-     virtual bool LoadFile( int             nId
 
-                           ,wxBitmapType    lType = wxBITMAP_DEFAULT_TYPE
 
-                          );
 
-     virtual bool LoadFile( const wxString& rName
 
-                           ,wxBitmapType    lType = wxBITMAP_DEFAULT_TYPE
 
-                          );
 
-     virtual bool SaveFile( const wxString&  rName
 
-                           ,wxBitmapType     lType
 
-                           ,const wxPalette* pCmap = NULL
 
-                          );
 
-     inline wxBitmapRefData* GetBitmapData() const
 
-       { return (wxBitmapRefData *)m_refData; }
 
-     // raw bitmap access support functions
 
-     void *GetRawData(wxPixelDataBase& data, int bpp);
 
-     void UngetRawData(wxPixelDataBase& data);
 
-     inline int GetQuality() const
 
-       { return (GetBitmapData() ? GetBitmapData()->m_nQuality : 0); }
 
-     void SetQuality(int nQ);
 
-     wxPalette* GetPalette() const
 
-       { return (GetBitmapData() ? (& GetBitmapData()->m_vBitmapPalette) : NULL); }
 
-     void       SetPalette(const wxPalette& rPalette);
 
-     inline wxMask* GetMask() const
 
-       { return (GetBitmapData() ? GetBitmapData()->m_pBitmapMask : NULL); }
 
-     void SetMask(wxMask* pMask) ;
 
-     // Implementation
 
- public:
 
-     inline void SetHBITMAP(WXHBITMAP hBmp)
 
-       { SetHandle((WXHANDLE)hBmp); }
 
-     inline WXHBITMAP GetHBITMAP() const
 
-       { return (WXHBITMAP)GetHandle(); }
 
-     inline void  SetSelectedInto(wxDC* pDc)
 
-       { if (GetBitmapData()) GetBitmapData()->m_pSelectedInto = pDc; }
 
-     inline wxDC* GetSelectedInto() const
 
-       { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : NULL); }
 
-     inline bool IsMono(void) const { return m_bIsMono; }
 
-     // An OS/2 version that probably doesn't do anything like the msw version
 
-     wxBitmap GetBitmapForDC(wxDC& rDc) const;
 
- protected:
 
-     // common part of all ctors
 
-     void Init();
 
-     inline virtual wxGDIImageRefData* CreateData() const
 
-         { return new wxBitmapRefData; }
 
-     bool CreateFromImage(const wxImage& image, int depth);
 
-     virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
 
- private:
 
-     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
-     bool                            m_bIsMono;
 
-     DECLARE_DYNAMIC_CLASS(wxBitmap)
 
- }; // end of CLASS wxBitmap
 
- // ----------------------------------------------------------------------------
 
- // wxMask: a mono bitmap used for drawing bitmaps transparently.
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxMask : public wxObject
 
- {
 
- public:
 
-     wxMask();
 
-     wxMask( const wxMask& tocopy);
 
-     // Construct a mask from a bitmap and a colour indicating the transparent
 
-     // area
 
-     wxMask( const wxBitmap& rBitmap
 
-            ,const wxColour& rColour
 
-           );
 
-     // Construct a mask from a bitmap and a palette index indicating the
 
-     // transparent area
 
-     wxMask( const wxBitmap& rBitmap
 
-            ,int             nPaletteIndex
 
-           );
 
-     // Construct a mask from a mono bitmap (copies the bitmap).
 
-     wxMask(const wxBitmap& rBitmap);
 
-     // construct a mask from the givne bitmap handle
 
-     wxMask(WXHBITMAP hBmp)
 
-       { m_hMaskBitmap = hBmp; }
 
-     virtual ~wxMask();
 
-     bool Create( const wxBitmap& bitmap
 
-                 ,const wxColour& rColour
 
-                );
 
-     bool Create( const wxBitmap& rBitmap
 
-                 ,int             nPaletteIndex
 
-                );
 
-     bool Create(const wxBitmap& rBitmap);
 
-     // Implementation
 
-     WXHBITMAP GetMaskBitmap() const
 
-       { return m_hMaskBitmap; }
 
-     void SetMaskBitmap(WXHBITMAP hBmp)
 
-       { m_hMaskBitmap = hBmp; }
 
- 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
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxBitmapHandler : public wxGDIImageHandler
 
- {
 
- public:
 
-     inline wxBitmapHandler()
 
-       { m_lType = wxBITMAP_TYPE_INVALID; }
 
-     inline wxBitmapHandler( const wxString& rName
 
-                     ,const wxString& rExt
 
-                     ,wxBitmapType lType
 
-                    )
 
-                    : wxGDIImageHandler( rName
 
-                                        ,rExt
 
-                                        ,lType)
 
-     {
 
-     }
 
-     // keep wxBitmapHandler derived from wxGDIImageHandler compatible with the
 
-     // old class which worked only with bitmaps
 
-     virtual bool Create( wxBitmap* pBitmap
 
-                         ,const void* pData
 
-                         ,wxBitmapType lType
 
-                         ,int       nWidth
 
-                         ,int       nHeight
 
-                         ,int       nDepth = 1
 
-                        );
 
-     virtual bool LoadFile( wxBitmap*       pBitmap
 
-                           ,int             nId
 
-                           ,wxBitmapType    lType
 
-                           ,int             nDesiredWidth
 
-                           ,int             nDesiredHeight
 
-                          );
 
-     virtual bool LoadFile( wxBitmap*       pBitmap
 
-                           ,const wxString& rName
 
-                           ,wxBitmapType    lType
 
-                           ,int             nDesiredWidth
 
-                           ,int             nDesiredHeight
 
-                          );
 
-     virtual bool SaveFile( wxBitmap*        pBitmap
 
-                           ,const wxString&  rName
 
-                           ,wxBitmapType     lType
 
-                           ,const wxPalette* pPalette = NULL
 
-                          ) const;
 
-     virtual bool Create( wxGDIImage* pImage
 
-                         ,const void* pData
 
-                         ,wxBitmapType lFlags
 
-                         ,int         nWidth
 
-                         ,int         nHeight
 
-                         ,int         nDepth = 1
 
-                        );
 
-     virtual bool Load( wxGDIImage*     pImage
 
-                       ,int             nId
 
-                       ,wxBitmapType    lFlags
 
-                       ,int             nDesiredWidth
 
-                       ,int             nDesiredHeight
 
-                      );
 
-     virtual bool Save( const wxGDIImage* pImage
 
-                       ,const wxString&   rName
 
-                       ,wxBitmapType      lType
 
-                      ) const;
 
- private:
 
-     inline virtual bool Load( wxGDIImage*     WXUNUSED(pImage)
 
-                              ,const wxString& WXUNUSED(rName)
 
-                              ,WXHANDLE        WXUNUSED(hPs)
 
-                              ,wxBitmapType    WXUNUSED(lFlags)
 
-                              ,int             WXUNUSED(nDesiredWidth)
 
-                              ,int             WXUNUSED(nDesiredHeight)
 
-                             )
 
-     { return false; }
 
-     DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
 
- }; // end of CLASS wxBitmapHandler
 
- #endif
 
-   // _WX_BITMAP_H_
 
 
  |