+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: palette.tex
+%% Purpose: wxPalette docs
+%% Author:
+%% Modified by:
+%% Created:
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxPalette}}\label{wxpalette}
A palette is a table that maps pixel values to RGB colours. It allows the colours
\membersection{wxPalette::GetPixel}\label{wxpalettegetpixel}
-\constfunc{int}{GetPixel}{\param{const unsigned char }{red}, \param{const unsigned char }{green},\rtfsp
- \param{const unsigned char }{blue}}
+\constfunc{int}{GetPixel}{\param{unsigned char }{red}, \param{unsigned char }{green},\rtfsp
+ \param{unsigned char }{blue}}
Returns a pixel value (index into the palette) for the given RGB values.
\wxheading{Return value}
-The nearest palette index.
+The nearest palette index or {\tt wxNOT\_FOUND} for unexpected errors.
\wxheading{See also}
Inequality operator. Two palettes are not equal if they contain pointers
to different underlying palette data. It does not compare each attribute.
-
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/generic/paletteg.h
// Purpose:
// Author: Robert Roebling
// Created: 01/02/97
-// Id:
+// RCS-ID: $Id$
// Copyright: (c) 1998 Robert Roebling and Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
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;
+ int GetPixel( unsigned char red, unsigned char green, unsigned char blue ) const;
bool GetRGB( int pixel, unsigned char *red, unsigned char *green, unsigned char *blue ) const;
// no data
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/mac/carbon/palette.h
// Purpose: wxPalette class
// Author: Stefan Csomor
// Modified by:
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;
+ int GetPixel(unsigned char red, unsigned char green, 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) ; }
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/mac/classic/palette.h
// Purpose: wxPalette class
// Author: Stefan Csomor
// Modified by:
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;
+ int GetPixel(unsigned char red, unsigned char green, 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) ; }
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/mgl/palette.h
// Purpose:
// Author: Vaclav Slavik
// Created: 2001/03/11
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;
+ int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const;
bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;
// implementation
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/motif/palette.h
// Purpose: wxPalette class
// Author: Julian Smart
// Modified by:
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;
+ int GetPixel(unsigned char red, unsigned char green, 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) ; }
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/msw/palette.h
// Purpose: wxPalette class
// Author: Julian Smart
// Modified by:
wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
~wxPalette(void);
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;
+ int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const;
bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;
virtual bool Ok(void) const { return (m_refData != NULL) ; }
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/os2/palette.h
// Purpose: wxPalette class
// Author: David Webster
// Modified by:
,const unsigned char* pGreen
,const unsigned char* pBlue
);
- int GetPixel( const unsigned char cRed
- ,const unsigned char cGreen
- ,const unsigned char cBlue
+ int GetPixel( unsigned char cRed
+ ,unsigned char cGreen
+ ,unsigned char cBlue
) const;
bool GetRGB( int nPixel
,unsigned char* pRed
#endif
// _WX_PALETTE_H_
-
#include "wx/object.h"
#include "wx/gdiobj.h"
-// wxBrushBase
+// wxPaletteBase
class WXDLLEXPORT wxPaletteBase: public wxGDIObject
{
public:
wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
~wxPalette(void);
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;
+ int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const;
bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;
virtual bool Ok(void) const { return (m_refData != NULL) ; }
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.h
+// Name: wx/x11/palette.h
// Purpose: wxPalette class
// Author: Julian Smart
// Modified by:
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;
+ int GetPixel(unsigned char red, unsigned char green, 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) ; }
// Purpose:
// Author: Robert Roebling
// Created: 01/02/97
-// Id:
+// RCS-ID: $Id$
// Copyright: (c) 1998 Robert Roebling and Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
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
}
#endif // wxUSE_PALETTE
-
-
/////////////////////////////////////////////////////////////////////////////
-// 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
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
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] ;
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;
+
+ return true;
}
#endif
// wxUSE_PALETTE
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.cpp
+// Name: src/mac/classic/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
/////////////////////////////////////////////////////////////////////////////
#include "wx/defs.h"
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] ;
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;
+
+ return true;
}
#endif
// wxUSE_PALETTE
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.cpp
+// Name: src/mgl/palette.cpp
// Author: Vaclav Slavik
// Created: 2001/03/11
// Id: $Id$
public:
wxPaletteRefData(void);
~wxPaletteRefData(void);
-
+
int m_count;
palette_t *m_entries;
};
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 palette_t[n];
palette_t *e = M_PALETTEDATA->m_entries;
e->alpha = 0;
}
- 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
palette_t *e = M_PALETTEDATA->m_entries;
for (int i = 0; i < M_PALETTEDATA->m_count; i++, e++)
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;
+
palette_t& 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;
}
int wxPalette::GetColoursCount() const
{
- wxCHECK_MSG( Ok(), 0, wxT("invalid palette") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid palette") );
return M_PALETTEDATA->m_count;
}
palette_t *wxPalette::GetMGLpalette_t() const
{
- wxCHECK_MSG( Ok(), NULL, wxT("invalid palette") );
+ wxCHECK_MSG( Ok(), NULL, wxT("invalid palette") );
return M_PALETTEDATA->m_entries;
}
-
return true;
}
-int wxPalette::GetPixel(const unsigned char WXUNUSED(red),
- const unsigned char WXUNUSED(green),
- const unsigned char WXUNUSED(blue)) const
+int wxPalette::GetPixel(unsigned char WXUNUSED(red),
+ unsigned char WXUNUSED(green),
+ unsigned char WXUNUSED(blue)) const
{
if ( !m_refData )
- return false;
+ return wxNOT_FOUND;
// TODO
- return false;
+ return wxNOT_FOUND;
}
bool wxPalette::GetRGB(int index, unsigned char *WXUNUSED(red), unsigned char *WXUNUSED(green), unsigned char *WXUNUSED(blue)) const
M_PALETTEDATA->m_palettes.Append(c);
}
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.cpp
+// Name: src/msw/palette.cpp
// Purpose: wxPalette
// Author: Julian Smart
// Modified by:
wxPaletteRefData::wxPaletteRefData(void)
{
- m_hPalette = 0;
+ m_hPalette = 0;
}
wxPaletteRefData::~wxPaletteRefData(void)
bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue)
{
- UnRef();
+ UnRef();
#if defined(__WXMICROWIN__)
- return false;
+ return false;
#else
- m_refData = new wxPaletteRefData;
+ m_refData = new wxPaletteRefData;
- NPLOGPALETTE npPal = (NPLOGPALETTE)LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) +
- (WORD)n * sizeof(PALETTEENTRY));
- if (!npPal)
- return false;
+ NPLOGPALETTE npPal = (NPLOGPALETTE)LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) +
+ (WORD)n * sizeof(PALETTEENTRY));
+ if (!npPal)
+ return false;
- npPal->palVersion = 0x300;
- npPal->palNumEntries = (WORD)n;
-
- int i;
- for (i = 0; i < n; i ++)
- {
- npPal->palPalEntry[i].peRed = red[i];
- npPal->palPalEntry[i].peGreen = green[i];
- npPal->palPalEntry[i].peBlue = blue[i];
- npPal->palPalEntry[i].peFlags = 0;
- }
- M_PALETTEDATA->m_hPalette = (WXHPALETTE) CreatePalette((LPLOGPALETTE)npPal);
- LocalFree((HANDLE)npPal);
- return true;
+ npPal->palVersion = 0x300;
+ npPal->palNumEntries = (WORD)n;
+
+ int i;
+ for (i = 0; i < n; i ++)
+ {
+ npPal->palPalEntry[i].peRed = red[i];
+ npPal->palPalEntry[i].peGreen = green[i];
+ npPal->palPalEntry[i].peBlue = blue[i];
+ npPal->palPalEntry[i].peFlags = 0;
+ }
+ M_PALETTEDATA->m_hPalette = (WXHPALETTE) CreatePalette((LPLOGPALETTE)npPal);
+ LocalFree((HANDLE)npPal);
+ return true;
#endif
}
-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
{
#ifdef __WXMICROWIN__
- return 0;
+ return wxNOT_FOUND;
#else
- if ( !m_refData )
- return 0;
+ if ( !m_refData )
+ return wxNOT_FOUND;
- return ::GetNearestPaletteIndex((HPALETTE) M_PALETTEDATA->m_hPalette, PALETTERGB(red, green, blue));
+ return ::GetNearestPaletteIndex((HPALETTE) M_PALETTEDATA->m_hPalette, PALETTERGB(red, green, blue));
#endif
}
bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const
{
#ifdef __WXMICROWIN__
- return false;
-#else
- if ( !m_refData )
return false;
+#else
+ if ( !m_refData )
+ return false;
+
+ if (index < 0 || index > 255)
+ return false;
- if (index < 0 || index > 255)
- return false;
-
- PALETTEENTRY entry;
- if (::GetPaletteEntries((HPALETTE) M_PALETTEDATA->m_hPalette, index, 1, &entry))
- {
- *red = entry.peRed;
- *green = entry.peGreen;
- *blue = entry.peBlue;
- return true;
- } else
- return false;
+ PALETTEENTRY entry;
+ if (::GetPaletteEntries((HPALETTE) M_PALETTEDATA->m_hPalette, index, 1, &entry))
+ {
+ *red = entry.peRed;
+ *green = entry.peGreen;
+ *blue = entry.peBlue;
+ return true;
+ }
+ else
+ return false;
#endif
}
}
#endif // wxUSE_PALETTE
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.cpp
+// Name: src/os2/palette.cpp
// Purpose: wxPalette
// Author: AUTHOR
// Modified by:
return true;
} // end of wxPalette::Create
-int wxPalette::GetPixel(
- const unsigned char cRed
-, const unsigned char cGreen
-, const unsigned char cBlue
-) const
+int wxPalette::GetPixel( unsigned char cRed,
+ unsigned char cGreen,
+ unsigned char cBlue) const
{
- bool bFound = FALSE;
- PULONG pualTable = NULL;
- ULONG ulNumEntries;
- ULONG ulRGB = (PC_RESERVED * 16777216) +
- ((int)cRed * 65536) +
- ((int)cGreen * 256) +
- (int)cBlue;
+ bool bFound = false;
+ PULONG pualTable = NULL;
+ ULONG ulNumEntries;
+ ULONG ulRGB = (PC_RESERVED * 16777216) +
+ ((int)cRed * 65536) +
+ ((int)cGreen * 256) +
+ (int)cBlue;
if (!m_refData)
- return FALSE;
+ return wxNOT_FOUND;
//
// Get number of entries first
}
}
if (!bFound)
- return 0;
+ return wxNOT_FOUND;
return (i + 1);
} // end of wxPalette::GetPixel
-bool wxPalette::GetRGB(
- int nIndex
-, unsigned char* pRed
-, unsigned char* pGreen
-, unsigned char* pBlue
-) const
+bool wxPalette::GetRGB( int nIndex,
+ unsigned char* pRed,
+ unsigned char* pGreen,
+ unsigned char* pBlue) const
{
PULONG pualTable = NULL;
RGB2 vRGB;
ULONG ulNumEntries;
if (!m_refData)
- return FALSE;
+ return false;
if (nIndex < 0 || nIndex > 255)
- return FALSE;
+ return false;
//
// Get number of entries first
//
*pBlue = vRGB.bBlue;
*pGreen = vRGB.bGreen;
*pRed = vRGB.bRed;
- return TRUE;
+ return true;
} // end of wxPalette::GetRGB
void wxPalette::SetHPALETTE(
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
{
- return 0;
+ return wxNOT_FOUND;
}
bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const
}
#endif // wxUSE_PALETTE
-
/////////////////////////////////////////////////////////////////////////////
-// Name: palette.cpp
+// Name: src/x11/palette.cpp
// Purpose: wxPalette
// Author: Julian Smart
// Modified by:
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;
+ return wxNOT_FOUND;
// TODO
- return FALSE;
+ return wxNOT_FOUND;
}
bool wxPalette::GetRGB(int index, unsigned char *WXUNUSED(red), unsigned char *WXUNUSED(green), unsigned char *WXUNUSED(blue)) const
M_PALETTEDATA->m_palettes.Append(c);
}
-