X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9f081f02ead106131223cb8078713dbc7844e885..07fb285c521527e383f2d1090f7f41f561bcd8fd:/src/generic/paletteg.cpp diff --git a/src/generic/paletteg.cpp b/src/generic/paletteg.cpp index 336afdc2ba..746f3cedc3 100644 --- a/src/generic/paletteg.cpp +++ b/src/generic/paletteg.cpp @@ -3,16 +3,10 @@ // Purpose: // Author: Robert Roebling // Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Copyright: (c) 1998 Robert Roebling and Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "paletteg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -33,12 +27,12 @@ struct wxPaletteEntry unsigned char red, green, blue; }; -class wxPaletteRefData: public wxObjectRefData +class wxPaletteRefData : public wxGDIRefData { - public: - - wxPaletteRefData(void); - ~wxPaletteRefData(void); +public: + wxPaletteRefData(); + wxPaletteRefData(const wxPaletteRefData& palette); + virtual ~wxPaletteRefData(); int m_count; wxPaletteEntry *m_entries; @@ -50,6 +44,14 @@ wxPaletteRefData::wxPaletteRefData() m_entries = NULL; } +wxPaletteRefData::wxPaletteRefData(const wxPaletteRefData& palette) +{ + m_count = palette.m_count; + m_entries = new wxPaletteEntry[m_count]; + for ( int i = 0; i < m_count; i++ ) + m_entries[i] = palette.m_entries[i]; +} + wxPaletteRefData::~wxPaletteRefData() { delete[] m_entries; @@ -71,36 +73,16 @@ wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green Create(n, red, green, blue); } -wxPalette::wxPalette(const wxPalette& palette) - : wxGDIObject() -{ - Ref(palette); -} - wxPalette::~wxPalette() { } -wxPalette& wxPalette::operator = (const wxPalette& palette) -{ - if (*this == palette) return (*this); - Ref(palette); - return *this; -} - -bool wxPalette::operator == (const wxPalette& palette) -{ - return m_refData == palette.m_refData; -} - -bool wxPalette::operator != (const wxPalette& palette) +int wxPalette::GetColoursCount() const { - return m_refData != palette.m_refData; -} + if (m_refData) + return M_PALETTEDATA->m_count; -bool wxPalette::Ok(void) const -{ - return (m_refData != NULL); + return 0; } bool wxPalette::Create(int n, @@ -122,14 +104,14 @@ bool wxPalette::Create(int n, e->blue = blue[i]; } - return TRUE; + return true; } -int wxPalette::GetPixel( const unsigned char red, - const unsigned char green, - const unsigned char blue ) const +int wxPalette::GetPixel( unsigned char red, + unsigned char green, + unsigned char blue ) const { - if (!m_refData) return FALSE; + if (!m_refData) return wxNOT_FOUND; int closest = 0; double d,distance = 1000.0; // max. dist is 256 @@ -152,16 +134,24 @@ bool wxPalette::GetRGB(int pixel, unsigned char *green, unsigned char *blue) const { - if (!m_refData) return FALSE; - if (pixel >= M_PALETTEDATA->m_count) return FALSE; + if (!m_refData) return false; + if (pixel >= M_PALETTEDATA->m_count) return false; wxPaletteEntry& p = M_PALETTEDATA->m_entries[pixel]; if (red) *red = p.red; if (green) *green = p.green; if (blue) *blue = p.blue; - return TRUE; + return true; } -#endif // wxUSE_PALETTE +wxGDIRefData *wxPalette::CreateGDIRefData() const +{ + return new wxPaletteRefData; +} +wxGDIRefData *wxPalette::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxPaletteRefData(*static_cast(data)); +} +#endif // wxUSE_PALETTE