From: Włodzimierz Skiba Date: Wed, 8 Dec 2004 17:43:18 +0000 (+0000) Subject: wxPaletteBase introduction. wxPalette::GetColoursCount() in interface of all platform... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/917be7ed065337e8a7a67615969ecaade9eea809 wxPaletteBase introduction. wxPalette::GetColoursCount() in interface of all platforms. wxColourMap definition centralized and 2.4 only. Source cleaning. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/palette.tex b/docs/latex/wx/palette.tex index 25c98ec8f2..ab37cf3317 100644 --- a/docs/latex/wx/palette.tex +++ b/docs/latex/wx/palette.tex @@ -92,6 +92,12 @@ true if the creation was successful, false otherwise. \helpref{wxPalette::wxPalette}{wxpalettector} +\membersection{wxPalette::GetColoursCount}\label{wxpalettegetcolourscount} + +\constfunc{int}{GetColoursCount}{\void} + +Returns number of entries in palette. + \membersection{wxPalette::GetPixel}\label{wxpalettegetpixel} \constfunc{int}{GetPixel}{\param{const unsigned char }{red}, \param{const unsigned char }{green},\rtfsp diff --git a/include/wx/generic/paletteg.h b/include/wx/generic/paletteg.h index 3ff00fbf20..54a6b51f73 100644 --- a/include/wx/generic/paletteg.h +++ b/include/wx/generic/paletteg.h @@ -31,7 +31,7 @@ class wxPalette; // wxPalette //----------------------------------------------------------------------------- -class wxPalette: public wxGDIObject +class wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) @@ -44,7 +44,7 @@ class wxPalette: public wxGDIObject wxPalette& operator = ( const wxPalette& palette ); bool operator == ( const wxPalette& palette ); bool operator != ( const wxPalette& palette ); - bool Ok() const; + virtual bool Ok() const; bool Create( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); int GetPixel( const unsigned char red, const unsigned char green, const unsigned char blue ) const; @@ -53,7 +53,4 @@ class wxPalette: public wxGDIObject // no data }; -#define wxColorMap wxPalette -#define wxColourMap wxPalette - #endif // __WX_PALETTEG_H__ diff --git a/include/wx/mac/carbon/palette.h b/include/wx/mac/carbon/palette.h index 74f9a4dd30..ed9acb81bc 100644 --- a/include/wx/mac/carbon/palette.h +++ b/include/wx/mac/carbon/palette.h @@ -24,7 +24,7 @@ class WXDLLEXPORT wxPalette; class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData { DECLARE_NO_COPY_CLASS(wxPaletteRefData) - + friend class WXDLLEXPORT wxPalette; public: wxPaletteRefData(); @@ -36,14 +36,14 @@ protected: #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) public: wxPalette(); wxPalette(const wxPalette& palette) - : wxGDIObject() + : wxPaletteBase() { Ref(palette); } wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); diff --git a/include/wx/mac/classic/palette.h b/include/wx/mac/classic/palette.h index 74f9a4dd30..ed9acb81bc 100644 --- a/include/wx/mac/classic/palette.h +++ b/include/wx/mac/classic/palette.h @@ -24,7 +24,7 @@ class WXDLLEXPORT wxPalette; class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData { DECLARE_NO_COPY_CLASS(wxPaletteRefData) - + friend class WXDLLEXPORT wxPalette; public: wxPaletteRefData(); @@ -36,14 +36,14 @@ protected: #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) public: wxPalette(); wxPalette(const wxPalette& palette) - : wxGDIObject() + : wxPaletteBase() { Ref(palette); } wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); diff --git a/include/wx/mgl/palette.h b/include/wx/mgl/palette.h index a11f8bf9a5..f134955bc4 100644 --- a/include/wx/mgl/palette.h +++ b/include/wx/mgl/palette.h @@ -32,7 +32,7 @@ struct palette_t; // wxPalette //----------------------------------------------------------------------------- -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) @@ -44,21 +44,16 @@ public: wxPalette& operator = (const wxPalette& palette); bool operator == (const wxPalette& palette) const; bool operator != (const wxPalette& palette) const; - bool Ok() const; + virtual bool Ok() const; bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; // implementation - int GetColoursCount() const; - // FIXME_MGL -- make this method standard part of wx API - // FIXME_MGL -- create wxXXXBase classes for all GDI stuff (Vadim wants that) - + virtual int GetColoursCount() const; + palette_t *GetMGLpalette_t() const; }; -#define wxColorMap wxPalette -#define wxColourMap wxPalette - #endif // __WX_PALETTE_H__ diff --git a/include/wx/motif/palette.h b/include/wx/motif/palette.h index bff484a85e..64403fb7ad 100644 --- a/include/wx/motif/palette.h +++ b/include/wx/motif/palette.h @@ -25,10 +25,10 @@ class WXDLLEXPORT wxPalette; class wxXPalette : public wxObject { DECLARE_DYNAMIC_CLASS(wxXPalette) - + public: wxXPalette(); - + WXDisplay* m_display; int m_pix_array_n; unsigned long* m_pix_array; @@ -42,33 +42,33 @@ class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData public: wxPaletteRefData(); ~wxPaletteRefData(); - + protected: wxList m_palettes; }; #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) - + public: wxPalette(); wxPalette(const wxPalette& palette) { Ref(palette); } - + wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); ~wxPalette(); bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - + virtual bool Ok() const { return (m_refData != NULL) ; } - + wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; } bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; } - + // Motif-specific WXColormap GetXColormap(WXDisplay* display = NULL) const; bool TransferBitmap(void *data, int depth, int size); diff --git a/include/wx/msw/palette.h b/include/wx/msw/palette.h index 6179d35006..73d5df709e 100644 --- a/include/wx/msw/palette.h +++ b/include/wx/msw/palette.h @@ -32,13 +32,13 @@ protected: #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) public: wxPalette(void); - inline wxPalette(const wxPalette& palette) : wxGDIObject(palette) { Ref(palette); } + inline wxPalette(const wxPalette& palette) : wxPaletteBase(palette) { Ref(palette); } wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); ~wxPalette(void); @@ -58,8 +58,5 @@ public: void SetHPALETTE(WXHPALETTE pal); }; -#define wxColorMap wxPalette -#define wxColourMap wxPalette - #endif // _WX_PALETTE_H_ diff --git a/include/wx/os2/palette.h b/include/wx/os2/palette.h index 9d445157d1..1926409552 100644 --- a/include/wx/os2/palette.h +++ b/include/wx/os2/palette.h @@ -30,7 +30,7 @@ public: #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) @@ -68,16 +68,13 @@ public: inline bool operator != (const wxPalette& rPalette) const { return m_refData != rPalette.m_refData; } - virtual bool FreeResource(bool bForce = FALSE); + virtual bool FreeResource(bool bForce = false); inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } void SetHPALETTE(WXHPALETTE hPalette); void SetPS(HPS hPS); }; // end of CLASS wxPalette -#define wxColorMap wxPalette -#define wxColourMap wxPalette - #endif // _WX_PALETTE_H_ diff --git a/include/wx/palette.h b/include/wx/palette.h index 52d2da66a1..91c1f52945 100644 --- a/include/wx/palette.h +++ b/include/wx/palette.h @@ -1,12 +1,26 @@ #ifndef _WX_PALETTE_H_BASE_ #define _WX_PALETTE_H_BASE_ -// include it to get wxUSE_PALETTE value -#include "wx/setup.h" +#include "wx/defs.h" #if wxUSE_PALETTE -#if defined(__WXMSW__) +#include "wx/object.h" +#include "wx/gdiobj.h" + +// wxBrushBase +class WXDLLEXPORT wxPaletteBase: public wxGDIObject +{ +public: + virtual ~wxPaletteBase() { } + + virtual bool Ok() const = 0; + virtual int GetColoursCount() const { wxFAIL_MSG( _T("not implemented") ); return 0; }; +}; + +#if defined(__PALMOS__) + #include "wx/palmos/palette.h" +#elif defined(__WXMSW__) #include "wx/msw/palette.h" #elif defined(__WXMOTIF__) #include "wx/motif/palette.h" @@ -22,6 +36,11 @@ #include "wx/os2/palette.h" #endif +#if WXWIN_COMPATIBILITY_2_4 + #define wxColorMap wxPalette + #define wxColourMap wxPalette +#endif + #endif // wxUSE_PALETTE #endif diff --git a/include/wx/palmos/palette.h b/include/wx/palmos/palette.h index b0753763e2..cebc6a2bc5 100644 --- a/include/wx/palmos/palette.h +++ b/include/wx/palmos/palette.h @@ -4,7 +4,7 @@ // Author: William Osborne // Modified by: // Created: 10/13/04 -// RCS-ID: $Id: +// RCS-ID: $Id: // Copyright: (c) William Osborne // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -32,7 +32,7 @@ protected: #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) @@ -52,14 +52,11 @@ public: inline bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; } inline bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; } - virtual bool FreeResource(bool force = FALSE); + virtual bool FreeResource(bool force = false); inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } void SetHPALETTE(WXHPALETTE pal); }; -#define wxColorMap wxPalette -#define wxColourMap wxPalette - #endif // _WX_PALETTE_H_ diff --git a/include/wx/x11/palette.h b/include/wx/x11/palette.h index 975ec7584c..aaef465ffd 100644 --- a/include/wx/x11/palette.h +++ b/include/wx/x11/palette.h @@ -25,10 +25,10 @@ class WXDLLEXPORT wxPalette; class wxXPalette : public wxObject { DECLARE_DYNAMIC_CLASS(wxXPalette) - + public: wxXPalette(); - + WXDisplay* m_display; int m_pix_array_n; unsigned long* m_pix_array; @@ -42,33 +42,33 @@ class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData public: wxPaletteRefData(); ~wxPaletteRefData(); - + protected: wxList m_palettes; }; #define M_PALETTEDATA ((wxPaletteRefData *)m_refData) -class WXDLLEXPORT wxPalette: public wxGDIObject +class WXDLLEXPORT wxPalette: public wxPaletteBase { DECLARE_DYNAMIC_CLASS(wxPalette) - + public: wxPalette(); wxPalette(const wxPalette& palette) { Ref(palette); } - + wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); ~wxPalette(); bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - + virtual bool Ok() const { return (m_refData != NULL) ; } - + wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; } bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; } - + // X-specific WXColormap GetXColormap(WXDisplay* display = NULL) const; bool TransferBitmap(void *data, int depth, int size); diff --git a/src/motif/palette.cpp b/src/motif/palette.cpp index 2540f1ecdd..988cc153c0 100644 --- a/src/motif/palette.cpp +++ b/src/motif/palette.cpp @@ -23,7 +23,7 @@ I have implemented basic colormap support for the X11 versions of wxWidgets, notably wxPalette::Create(). The way I did it is to allocate additional read-only color cells in the default colormap. In general you will get arbitrary pixel values assigned to these new -cells and therefore I added a method wxColourMap::TransferBitmap() +cells and therefore I added a method wxPalette::TransferBitmap() which maps the pixel values 0..n to the real ones obtained with Create(). This is only implemented for the popular case of 8-bit depth. @@ -69,7 +69,7 @@ wxXPalette::wxXPalette() m_pix_array_n = 0; m_pix_array = (unsigned long*) 0; m_display = (WXDisplay*) 0; - m_destroyable = FALSE; + m_destroyable = false; } wxPaletteRefData::wxPaletteRefData() @@ -130,7 +130,7 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre UnRef(); if (!n) { - return FALSE; + return false; } m_refData = new wxPaletteRefData; @@ -146,7 +146,7 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre pix_array = new unsigned long[n]; if (!pix_array) - return FALSE; + return false; pix_array_n = n; xcol.flags = DoRed | DoGreen | DoBlue; @@ -163,10 +163,10 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre c->m_pix_array = pix_array; c->m_cmap = (WXColormap) cmap; c->m_display = (WXDisplay*) display; - c->m_destroyable = FALSE; + c->m_destroyable = false; M_PALETTEDATA->m_palettes.Append(c); - return TRUE; + return true; } int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const @@ -181,13 +181,13 @@ int wxPalette::GetPixel(const unsigned char red, const unsigned char green, cons bool wxPalette::GetRGB(int index, unsigned char *WXUNUSED(red), unsigned char *WXUNUSED(green), unsigned char *WXUNUSED(blue)) const { if ( !m_refData ) - return FALSE; + return false; if (index < 0 || index > 255) - return FALSE; + return false; // TODO - return FALSE; + return false; } WXColormap wxPalette::GetXColormap(WXDisplay* display) const @@ -221,7 +221,7 @@ WXColormap wxPalette::GetXColormap(WXDisplay* display) const c->m_pix_array = new unsigned long[pix_array_n]; c->m_display = display; c->m_cmap = wxTheApp->GetMainColormap(display); - c->m_destroyable = FALSE; + c->m_destroyable = false; xcol.flags = DoRed | DoGreen | DoBlue; int i; @@ -257,10 +257,10 @@ bool wxPalette::TransferBitmap(void *data, int depth, int size) uptr++; } - return TRUE; + return true; } default: - return FALSE; + return false; } } @@ -314,9 +314,9 @@ bool wxPalette::TransferBitmap8(unsigned char *data, unsigned long sz, break; } default: - return FALSE; + return false; } - return TRUE; + return true; } unsigned long *wxPalette::GetXPixArray(WXDisplay *display, int *n) diff --git a/src/x11/palette.cpp b/src/x11/palette.cpp index c81b1fa113..9da4df9aa4 100644 --- a/src/x11/palette.cpp +++ b/src/x11/palette.cpp @@ -23,7 +23,7 @@ I have implemented basic colormap support for the X11 versions of wxWidgets, notably wxPalette::Create(). The way I did it is to allocate additional read-only color cells in the default colormap. In general you will get arbitrary pixel values assigned to these new -cells and therefore I added a method wxColourMap::TransferBitmap() +cells and therefore I added a method wxPalette::TransferBitmap() which maps the pixel values 0..n to the real ones obtained with Create(). This is only implemented for the popular case of 8-bit depth. @@ -66,7 +66,7 @@ wxXPalette::wxXPalette() m_pix_array_n = 0; m_pix_array = (unsigned long*) 0; m_display = (WXDisplay*) 0; - m_destroyable = FALSE; + m_destroyable = false; } wxPaletteRefData::wxPaletteRefData() @@ -101,7 +101,7 @@ wxPaletteRefData::~wxPaletteRefData() #endif delete [] pix_array; } - + if (destroyable) XFreeColormap(display, cmap); @@ -129,7 +129,7 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre UnRef(); if (!n) { - return FALSE; + return false; } m_refData = new wxPaletteRefData; @@ -145,7 +145,7 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre pix_array = new unsigned long[n]; if (!pix_array) - return FALSE; + return false; pix_array_n = n; xcol.flags = DoRed | DoGreen | DoBlue; @@ -162,10 +162,10 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre c->m_pix_array = pix_array; c->m_cmap = (WXColormap) cmap; c->m_display = (WXDisplay*) display; - c->m_destroyable = FALSE; + c->m_destroyable = false; M_PALETTEDATA->m_palettes.Append(c); - return TRUE; + return true; } int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const @@ -180,13 +180,13 @@ int wxPalette::GetPixel(const unsigned char red, const unsigned char green, cons bool wxPalette::GetRGB(int index, unsigned char *WXUNUSED(red), unsigned char *WXUNUSED(green), unsigned char *WXUNUSED(blue)) const { if ( !m_refData ) - return FALSE; + return false; if (index < 0 || index > 255) - return FALSE; + return false; // TODO - return FALSE; + return false; } WXColormap wxPalette::GetXColormap(WXDisplay* display) const @@ -219,7 +219,7 @@ WXColormap wxPalette::GetXColormap(WXDisplay* display) const c->m_pix_array = new unsigned long[pix_array_n]; c->m_display = display; c->m_cmap = wxTheApp->GetMainColormap(display); - c->m_destroyable = FALSE; + c->m_destroyable = false; xcol.flags = DoRed | DoGreen | DoBlue; int i; @@ -253,10 +253,10 @@ bool wxPalette::TransferBitmap(void *data, int depth, int size) uptr++; } - return TRUE; + return true; } default: - return FALSE; + return false; } } @@ -310,9 +310,9 @@ bool wxPalette::TransferBitmap8(unsigned char *data, unsigned long sz, break; } default: - return FALSE; + return false; } - return TRUE; + return true; } unsigned long *wxPalette::GetXPixArray(WXDisplay *display, int *n)