⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 palette.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        src/mac/carbon/palette.cpp// Purpose:     wxPalette// Author:      Stefan Csomor// Modified by:// Created:     1998-01-01// RCS-ID:      $Id: palette.cpp,v 1.16 2006/09/24 10:27:12 RR Exp $// Copyright:   (c) Stefan Csomor// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#include "wx/wxprec.h"#if wxUSE_PALETTE#include "wx/palette.h"IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject)/* * Palette * */wxPaletteRefData::wxPaletteRefData(){    m_palette = NULL ;    m_count = 0 ;}wxPaletteRefData::~wxPaletteRefData(){    if (m_palette != NULL) {        delete[] m_palette ;        m_palette = NULL;    }}wxPalette::wxPalette(){}wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue){    Create(n, red, green, blue);}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;}int wxPalette::GetPixel(unsigned char red, unsigned char green, unsigned char blue) const{    if ( !m_refData )        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] ;        currentdiff = abs ( col.Red() - red ) + abs( col.Green() - green ) + abs ( col.Blue() - blue )  ;        if ( currentdiff < bestdiff )        {            bestdiff = currentdiff ;            bestpos = i ;            if ( bestdiff == 0 )                break ;        }    }    return bestpos;}bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const{    if ( !m_refData )        return false;    if (index < 0 || index >= M_PALETTEDATA->m_count)        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 0;    }#endif// wxUSE_PALETTE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -