]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/palette.h
fix crash when reading malformed PCX images (#3836)
[wxWidgets.git] / include / wx / os2 / palette.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/os2/palette.h
3 // Purpose: wxPalette class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/12/99
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_PALETTE_H_
13 #define _WX_PALETTE_H_
14
15 #include "wx/gdiobj.h"
16 #include "wx/os2/private.h"
17
18 class WXDLLIMPEXP_FWD_CORE wxPalette;
19
20 class WXDLLIMPEXP_CORE wxPaletteRefData: public wxGDIRefData
21 {
22 friend class WXDLLIMPEXP_FWD_CORE wxPalette;
23 public:
24 wxPaletteRefData();
25 virtual ~wxPaletteRefData();
26 // protected:
27 WXHPALETTE m_hPalette;
28 HPS m_hPS;
29 }; // end of CLASS wxPaletteRefData
30
31 #define M_PALETTEDATA ((wxPaletteRefData *)m_refData)
32
33 class WXDLLIMPEXP_CORE wxPalette: public wxPaletteBase
34 {
35 public:
36 wxPalette();
37
38 wxPalette( int n
39 ,const unsigned char* pRed
40 ,const unsigned char* pGreen
41 ,const unsigned char* pBlue
42 );
43 virtual ~wxPalette();
44
45 bool Create( int n
46 ,const unsigned char* pRed
47 ,const unsigned char* pGreen
48 ,const unsigned char* pBlue
49 );
50 int GetPixel( unsigned char cRed
51 ,unsigned char cGreen
52 ,unsigned char cBlue
53 ) const;
54 bool GetRGB( int nPixel
55 ,unsigned char* pRed
56 ,unsigned char* pGreen
57 ,unsigned char* pBlue
58 ) const;
59
60 virtual bool FreeResource(bool bForce = false);
61
62 inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); }
63 void SetHPALETTE(WXHPALETTE hPalette);
64 void SetPS(HPS hPS);
65
66 protected:
67 virtual wxGDIRefData *CreateGDIRefData() const;
68 virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
69
70 private:
71 DECLARE_DYNAMIC_CLASS(wxPalette)
72 }; // end of CLASS wxPalette
73
74 #endif
75 // _WX_PALETTE_H_