X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b524c27cceda99907dec63f9224270ed5dd617d..ff42758536f8d573409bf6c35528497ba36b4d0e:/src/mac/carbon/palette.cpp?ds=sidebyside diff --git a/src/mac/carbon/palette.cpp b/src/mac/carbon/palette.cpp index adcbb30eba..cb5ca9487b 100644 --- a/src/mac/carbon/palette.cpp +++ b/src/mac/carbon/palette.cpp @@ -1,27 +1,21 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp +// Name: src/mac/carbon/palette.cpp // Purpose: wxPalette // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "palette.h" -#endif - #include "wx/wxprec.h" #if wxUSE_PALETTE #include "wx/palette.h" -#if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif /* * Palette @@ -58,29 +52,29 @@ wxPalette::~wxPalette() 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_palette = new wxColour[n] ; - + for ( int i = 0 ; i < n ; ++i) { M_PALETTEDATA->m_palette[i].Set( red[i] , green[i] , blue[i] ) ; } - - return FALSE; + + return false; } -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 -1; - + return wxNOT_FOUND; + long bestdiff = 3 * 256 ; long bestpos = 0 ; long currentdiff ; - + for ( int i = 0 ; i < M_PALETTEDATA->m_count ; ++i ) { const wxColour& col = M_PALETTEDATA->m_palette[i] ; @@ -90,29 +84,37 @@ int wxPalette::GetPixel(const unsigned char red, const unsigned char green, cons bestdiff = currentdiff ; bestpos = i ; if ( bestdiff == 0 ) - break ; + break ; } } - + return bestpos; } bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const { if ( !m_refData ) - return FALSE; - + return false; + if (index < 0 || index >= M_PALETTEDATA->m_count) - return FALSE; - + return false; + const wxColour& col = M_PALETTEDATA->m_palette[index] ; *red = col.Red() ; *green = col.Green() ; *blue = col.Blue() ; + + return true; +} + +int wxPalette::GetColoursCount() const +{ + if (m_refData) + return M_PALETTEDATA->m_count; - return TRUE; + return 0; } + #endif // wxUSE_PALETTE -