From: Václav Slavík Date: Sun, 22 Apr 2001 22:25:09 +0000 (+0000) Subject: moved gtk/palette.cpp to generic/paletteg.cpp X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/45ef9db336f832840b500497a64615b47fdc272d moved gtk/palette.cpp to generic/paletteg.cpp git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/paletteg.cpp b/src/generic/paletteg.cpp new file mode 100644 index 0000000000..edb0336210 --- /dev/null +++ b/src/generic/paletteg.cpp @@ -0,0 +1,156 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: palette.cpp +// Purpose: +// Author: Robert Roebling +// Created: 01/02/97 +// Id: +// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + + +#ifdef __GNUG__ +#pragma implementation "paletteg.h" +#endif + +#include "wx/palette.h" + + +//----------------------------------------------------------------------------- +// wxPalette +//----------------------------------------------------------------------------- + +struct wxPaletteEntry +{ + unsigned char red, green, blue; +}; + +class wxPaletteRefData: public wxObjectRefData +{ + public: + + wxPaletteRefData(void); + ~wxPaletteRefData(void); + + int m_count; + wxPaletteEntry *m_entries; +}; + +wxPaletteRefData::wxPaletteRefData() +{ + m_count = 0; + m_entries = NULL; +} + +wxPaletteRefData::~wxPaletteRefData() +{ + delete[] m_entries; +} + +//----------------------------------------------------------------------------- + +#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) + +IMPLEMENT_DYNAMIC_CLASS(wxPalette,wxGDIObject) + +wxPalette::wxPalette() +{ + m_refData = NULL; +} + +wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) +{ + 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) +{ + return m_refData == palette.m_refData; +} + +bool wxPalette::operator != (const wxPalette& palette) +{ + return m_refData != palette.m_refData; +} + +bool wxPalette::Ok(void) const +{ + return (m_refData != NULL); +} + +bool wxPalette::Create(int n, + const unsigned char *red, + const unsigned char *green, + const unsigned char *blue) +{ + UnRef(); + m_refData = new wxPaletteRefData(); + + M_PALETTEDATA->m_count = n; + M_PALETTEDATA->m_entries = new wxPaletteEntry[n]; + + wxPaletteEntry *e = M_PALETTEDATA->m_entries; + for (int i = 0; i < n; i++, e++) + { + e->red = red[i]; + e->green = green[i]; + e->blue = blue[i]; + } + + return TRUE; +} + +int wxPalette::GetPixel( const unsigned char red, + const unsigned char green, + const unsigned char blue ) const +{ + if (!m_refData) return FALSE; + + 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++) + { + if ((d = 0.299 * abs(red - e->red) + + 0.587 * abs(green - e->green) + + 0.114 * abs(blue - e->blue)) < distance) { + distance = d; + closest = i; + } + } + return closest; +} + +bool wxPalette::GetRGB(int pixel, + unsigned char *red, + unsigned char *green, + unsigned char *blue) const +{ + 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; +} + + diff --git a/src/gtk/palette.cpp b/src/gtk/palette.cpp deleted file mode 100644 index 6269a1882a..0000000000 --- a/src/gtk/palette.cpp +++ /dev/null @@ -1,166 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#include - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -struct wxPaletteEntry -{ - unsigned char red, green, blue; -}; - -class wxPaletteRefData: public wxObjectRefData -{ - public: - - wxPaletteRefData(void); - ~wxPaletteRefData(void); - - int m_count; - wxPaletteEntry *m_entries; -#if 0 - GdkColormap *m_colormap; -#endif -}; - -wxPaletteRefData::wxPaletteRefData() -{ - m_count = 0; - m_entries = NULL; -#if 0 - m_colormap = (GdkColormap *) NULL; -#endif -} - -wxPaletteRefData::~wxPaletteRefData() -{ - delete[] m_entries; -#if 0 - if (m_colormap) gdk_colormap_unref( m_colormap ); -#endif -} - -//----------------------------------------------------------------------------- - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPalette,wxGDIObject) - -wxPalette::wxPalette() -{ - m_refData = NULL; -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - 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) -{ - return m_refData == palette.m_refData; -} - -bool wxPalette::operator != (const wxPalette& palette) -{ - return m_refData != palette.m_refData; -} - -bool wxPalette::Ok(void) const -{ - return (m_refData != NULL); -} - -bool wxPalette::Create(int n, - const unsigned char *red, - const unsigned char *green, - const unsigned char *blue) -{ - UnRef(); - m_refData = new wxPaletteRefData(); - - M_PALETTEDATA->m_count = n; - M_PALETTEDATA->m_entries = new wxPaletteEntry[n]; - - wxPaletteEntry *e = M_PALETTEDATA->m_entries; - for (int i = 0; i < n; i++, e++) - { - e->red = red[i]; - e->green = green[i]; - e->blue = blue[i]; - } - - return TRUE; -} - -int wxPalette::GetPixel( const unsigned char red, - const unsigned char green, - const unsigned char blue ) const -{ - if (!m_refData) return FALSE; - - 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++) - { - if ((d = 0.299 * abs(red - e->red) + - 0.587 * abs(green - e->green) + - 0.114 * abs(blue - e->blue)) < distance) { - distance = d; - closest = i; - } - } - return closest; -} - -bool wxPalette::GetRGB(int pixel, - unsigned char *red, - unsigned char *green, - unsigned char *blue) const -{ - 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; -} - - diff --git a/src/gtk1/palette.cpp b/src/gtk1/palette.cpp deleted file mode 100644 index 6269a1882a..0000000000 --- a/src/gtk1/palette.cpp +++ /dev/null @@ -1,166 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#include - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -struct wxPaletteEntry -{ - unsigned char red, green, blue; -}; - -class wxPaletteRefData: public wxObjectRefData -{ - public: - - wxPaletteRefData(void); - ~wxPaletteRefData(void); - - int m_count; - wxPaletteEntry *m_entries; -#if 0 - GdkColormap *m_colormap; -#endif -}; - -wxPaletteRefData::wxPaletteRefData() -{ - m_count = 0; - m_entries = NULL; -#if 0 - m_colormap = (GdkColormap *) NULL; -#endif -} - -wxPaletteRefData::~wxPaletteRefData() -{ - delete[] m_entries; -#if 0 - if (m_colormap) gdk_colormap_unref( m_colormap ); -#endif -} - -//----------------------------------------------------------------------------- - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPalette,wxGDIObject) - -wxPalette::wxPalette() -{ - m_refData = NULL; -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - 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) -{ - return m_refData == palette.m_refData; -} - -bool wxPalette::operator != (const wxPalette& palette) -{ - return m_refData != palette.m_refData; -} - -bool wxPalette::Ok(void) const -{ - return (m_refData != NULL); -} - -bool wxPalette::Create(int n, - const unsigned char *red, - const unsigned char *green, - const unsigned char *blue) -{ - UnRef(); - m_refData = new wxPaletteRefData(); - - M_PALETTEDATA->m_count = n; - M_PALETTEDATA->m_entries = new wxPaletteEntry[n]; - - wxPaletteEntry *e = M_PALETTEDATA->m_entries; - for (int i = 0; i < n; i++, e++) - { - e->red = red[i]; - e->green = green[i]; - e->blue = blue[i]; - } - - return TRUE; -} - -int wxPalette::GetPixel( const unsigned char red, - const unsigned char green, - const unsigned char blue ) const -{ - if (!m_refData) return FALSE; - - 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++) - { - if ((d = 0.299 * abs(red - e->red) + - 0.587 * abs(green - e->green) + - 0.114 * abs(blue - e->blue)) < distance) { - distance = d; - closest = i; - } - } - return closest; -} - -bool wxPalette::GetRGB(int pixel, - unsigned char *red, - unsigned char *green, - unsigned char *blue) const -{ - 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; -} - -