]> git.saurik.com Git - wxWidgets.git/blob - include/wx/x11/palette.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / include / wx / x11 / palette.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/x11/palette.h
3 // Purpose: wxPalette class
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 17/09/98
7 // Copyright: (c) Julian Smart
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_PALETTE_H_
12 #define _WX_PALETTE_H_
13
14 #include "wx/list.h"
15
16 class WXDLLIMPEXP_FWD_CORE wxPalette;
17
18 // Palette for one display
19 class wxXPalette : public wxObject
20 {
21 DECLARE_DYNAMIC_CLASS(wxXPalette)
22
23 public:
24 wxXPalette();
25
26 WXDisplay* m_display;
27 int m_pix_array_n;
28 unsigned long* m_pix_array;
29 WXColormap m_cmap;
30 bool m_destroyable;
31 };
32
33 class WXDLLIMPEXP_CORE wxPaletteRefData: public wxGDIRefData
34 {
35 friend class WXDLLIMPEXP_FWD_CORE wxPalette;
36 public:
37 wxPaletteRefData();
38 virtual ~wxPaletteRefData();
39
40 protected:
41 wxList m_palettes;
42 };
43
44 #define M_PALETTEDATA ((wxPaletteRefData *)m_refData)
45
46 class WXDLLIMPEXP_CORE wxPalette : public wxPaletteBase
47 {
48 DECLARE_DYNAMIC_CLASS(wxPalette)
49
50 public:
51 wxPalette();
52
53 wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
54 virtual ~wxPalette();
55 bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
56 int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const;
57 bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;
58
59 // X-specific
60 WXColormap GetXColormap(WXDisplay* display = NULL) const;
61 bool TransferBitmap(void *data, int depth, int size);
62 bool TransferBitmap8(unsigned char *data, unsigned long size, void *dest, unsigned int bpp);
63 unsigned long *GetXPixArray(WXDisplay* display, int *pix_array_n);
64 void PutXColormap(WXDisplay* display, WXColormap cmap, bool destroyable);
65
66 protected:
67 virtual wxGDIRefData *CreateGDIRefData() const;
68 virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
69 };
70
71 #endif // _WX_PALETTE_H_