X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2bda0e173844e8e0f8acf4e8ad8b5c26e5c6fe5d..2121eb69fa8d49f4484f7170159e61f2e8885de4:/src/msw/palette.cpp diff --git a/src/msw/palette.cpp b/src/msw/palette.cpp index 1eaaa5e074..aeb874150e 100644 --- a/src/msw/palette.cpp +++ b/src/msw/palette.cpp @@ -1,38 +1,31 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp +// Name: src/msw/palette.cpp // Purpose: wxPalette // Author: Julian Smart // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" +#if wxUSE_PALETTE + #include "wx/palette.h" -#endif -#include +#ifndef WX_PRECOMP +#endif -#include "assert.h" +#include "wx/msw/private.h" -#if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif /* * Palette @@ -41,97 +34,115 @@ IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) wxPaletteRefData::wxPaletteRefData(void) { - m_hPalette = 0; + m_hPalette = 0; } wxPaletteRefData::~wxPaletteRefData(void) { - if ( m_hPalette ) - ::DeleteObject((HPALETTE) m_hPalette); + if ( m_hPalette ) + ::DeleteObject((HPALETTE) m_hPalette); } wxPalette::wxPalette(void) { } -wxPalette::wxPalette(const int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) +wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) { Create(n, red, green, blue); } wxPalette::~wxPalette(void) { -// FreeResource(TRUE); +// FreeResource(true); } -bool wxPalette::FreeResource(bool force) +bool wxPalette::FreeResource(bool WXUNUSED(force)) { - if ( M_PALETTEDATA && M_PALETTEDATA->m_hPalette) - { + if ( M_PALETTEDATA && M_PALETTEDATA->m_hPalette) + { DeleteObject((HPALETTE)M_PALETTEDATA->m_hPalette); - } - return TRUE; + } + return true; } -bool wxPalette::Create(const int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) +bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) { - UnRef(); - - m_refData = new wxPaletteRefData; - - NPLOGPALETTE npPal = (NPLOGPALETTE)LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) + - (WORD)n * sizeof(PALETTEENTRY)); - if (!npPal) - return(FALSE); - - npPal->palVersion = 0x300; - npPal->palNumEntries = 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; + UnRef(); + +#if defined(__WXMICROWIN__) + + return false; + +#else + + m_refData = new wxPaletteRefData; + + 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; + +#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 { - if ( !m_refData ) - return FALSE; +#ifdef __WXMICROWIN__ + return wxNOT_FOUND; +#else + 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(const int index, unsigned char *red, unsigned char *green, unsigned char *blue) const +bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const { - if ( !m_refData ) - 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; +#ifdef __WXMICROWIN__ + return false; +#else + if ( !m_refData ) + 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; +#endif } void wxPalette::SetHPALETTE(WXHPALETTE pal) { - if ( !m_refData ) - m_refData = new wxPaletteRefData; + if ( !m_refData ) + m_refData = new wxPaletteRefData; M_PALETTEDATA->m_hPalette = pal; } +#endif // wxUSE_PALETTE