⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitmap.h

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        wx/os2/bitmap.h// Purpose:     wxBitmap class// Author:      David Webster// Modified by:// Created:     11/28/99// RCS-ID:      $Id: bitmap.h,v 1.33 2006/11/01 01:15:55 SN Exp $// 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 WXDLLEXPORT wxDC;class WXDLLEXPORT wxControl;class WXDLLEXPORT wxBitmap;class WXDLLEXPORT wxBitmapHandler;class WXDLLEXPORT wxIcon;class WXDLLEXPORT wxMask;class WXDLLEXPORT wxCursor;class WXDLLEXPORT wxControl;class WXDLLEXPORT wxImage;// ----------------------------------------------------------------------------// Bitmap data//// NB: this class is private, but declared here to make it possible inline//     wxBitmap functions accessing it// ----------------------------------------------------------------------------class WXDLLEXPORT 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 WXDLLEXPORT wxBitmap : public wxGDIImage{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(wx_const_cast(const char* const*, data));    }#endif    // Load a resource    wxBitmap( int             nId             ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE            );    // For compatiability with other ports, under OS/2 does same as default ctor    inline wxBitmap( const wxString& WXUNUSED(rFilename)                    ,long            WXUNUSED(lType)                   )    { Init(); }    // New constructor for generalised creation from data    wxBitmap( const void* pData             ,long  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 );    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;    // 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 = -1                       );    virtual bool Create( const void* pData                        ,long  lType                        ,int   nWidth                        ,int   nHeight                        ,int   nDepth = 1                       );    virtual bool LoadFile( int             nId                          ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE                         );    virtual bool LoadFile( const wxString& rName                          ,long            lType = wxBITMAP_TYPE_XPM                         );    virtual bool SaveFile( const wxString&  rName                          ,int              lType                          ,const wxPalette* pCmap = NULL                         );    inline wxBitmapRefData* GetBitmapData() const      { return (wxBitmapRefData *)m_refData; }    inline int GetQuality() const      { return (GetBitmapData() ? GetBitmapData()->m_nQuality : 0); }    void SetQuality(int nQ);    wxPalette* GetPalette() const      { return (GetBitmapData() ? (& GetBitmapData()->m_vBitmapPalette) : (wxPalette*) NULL); }    void       SetPalette(const wxPalette& rPalette);    inline wxMask* GetMask() const      { return (GetBitmapData() ? GetBitmapData()->m_pBitmapMask : (wxMask*) NULL); }    void SetMask(wxMask* pMask) ;    // Implementationpublic:    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 : (wxDC*) 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);   // ref counting code    virtual wxObjectRefData *CreateRefData() const;    virtual wxObjectRefData *CloneRefData(const wxObjectRefData *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 WXDLLEXPORT 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 WXDLLEXPORT wxBitmapHandler : public wxGDIImageHandler{public:    inline wxBitmapHandler()      { m_lType = wxBITMAP_TYPE_INVALID; }    inline wxBitmapHandler( const wxString& rName                    ,const wxString& rExt                    ,long            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                        ,long      lFlags                        ,int       nWidth                        ,int       nHeight                        ,int       nDepth = 1                       );    virtual bool LoadFile( wxBitmap*       pBitmap                          ,int             nId                          ,long            lFlags                          ,int             nDesiredWidth                          ,int             nDesiredHeight                         );    virtual bool LoadFile( wxBitmap*       pBitmap                          ,const wxString& rName                          ,long            lFlags                          ,int             nDesiredWidth                          ,int             nDesiredHeight                         );    virtual bool SaveFile( wxBitmap*        pBitmap                          ,const wxString&  rName                          ,int              lType                          ,const wxPalette* pPalette = NULL                         );    virtual bool Create( wxGDIImage* pImage                        ,const void* pData                        ,long        lFlags                        ,int         nWidth                        ,int         nHeight                        ,int         nDepth = 1                       );    virtual bool Load( wxGDIImage*     pImage                      ,int             nId                      ,long            lFlags                      ,int             nDesiredWidth                      ,int             nDesiredHeight                     );    virtual bool Save( wxGDIImage*     pImage                      ,const wxString& rName                      ,int             lType                     );private:    inline virtual bool Load( wxGDIImage*     WXUNUSED(pImage)                             ,const wxString& WXUNUSED(rName)                             ,HPS             WXUNUSED(hPs)                             ,long            WXUNUSED(lFlags)                             ,int             WXUNUSED(nDesiredWidth)                             ,int             WXUNUSED(nDesiredHeight)                            )    { return false; }    DECLARE_DYNAMIC_CLASS(wxBitmapHandler)}; // end of CLASS wxBitmapHandler#endif  // _WX_BITMAP_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -