X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/45ef9db336f832840b500497a64615b47fdc272d..38f833b10c071603eb8d7739ab31b1c07c4576f1:/src/generic/paletteg.cpp diff --git a/src/generic/paletteg.cpp b/src/generic/paletteg.cpp index edb0336210..5d21a8b330 100644 --- a/src/generic/paletteg.cpp +++ b/src/generic/paletteg.cpp @@ -1,20 +1,23 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp +// Name: src/generic/paletteg.cpp // Purpose: // Author: Robert Roebling // Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// RCS-ID: $Id$ +// Copyright: (c) 1998 Robert Roebling and Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" -#ifdef __GNUG__ -#pragma implementation "paletteg.h" +#if defined(__BORLANDC__) + #pragma hdrstop #endif -#include "wx/palette.h" +#if wxUSE_PALETTE +#include "wx/palette.h" //----------------------------------------------------------------------------- // wxPalette @@ -30,7 +33,7 @@ class wxPaletteRefData: public wxObjectRefData public: wxPaletteRefData(void); - ~wxPaletteRefData(void); + virtual ~wxPaletteRefData(void); int m_count; wxPaletteEntry *m_entries; @@ -63,46 +66,42 @@ wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green Create(n, red, green, blue); } -wxPalette::wxPalette(const wxPalette& palette) -{ - 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) +bool wxPalette::operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; } -bool wxPalette::operator != (const wxPalette& palette) +bool wxPalette::operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; } -bool wxPalette::Ok(void) const +bool wxPalette::IsOk() const { return (m_refData != NULL); } +int wxPalette::GetColoursCount() const +{ + if (m_refData) + return M_PALETTEDATA->m_count; + + return 0; +} + bool wxPalette::Create(int n, const unsigned char *red, - const unsigned char *green, + const unsigned char *green, const unsigned char *blue) { UnRef(); m_refData = new wxPaletteRefData(); - - M_PALETTEDATA->m_count = n; + + M_PALETTEDATA->m_count = n; M_PALETTEDATA->m_entries = new wxPaletteEntry[n]; wxPaletteEntry *e = M_PALETTEDATA->m_entries; @@ -113,17 +112,17 @@ 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 + int closest = 0; + double d,distance = 1000.0; // max. dist is 256 wxPaletteEntry *e = M_PALETTEDATA->m_entries; for (int i = 0; i < M_PALETTEDATA->m_count; i++, e++) @@ -135,22 +134,22 @@ int wxPalette::GetPixel( const unsigned char red, closest = i; } } - return closest; + return closest; } -bool wxPalette::GetRGB(int pixel, +bool wxPalette::GetRGB(int pixel, unsigned char *red, - unsigned char *green, + 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