X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..cd5e9298159e58f57e05f3b76c9d4a45e1eefe12:/src/mac/colour.cpp diff --git a/src/mac/colour.cpp b/src/mac/colour.cpp index 8d0827ef1d..82fb8a7928 100644 --- a/src/mac/colour.cpp +++ b/src/mac/colour.cpp @@ -22,13 +22,23 @@ IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) // Colour +#include "wx/mac/private.h" + +static void wxComposeRGBColor( WXCOLORREF* color , int red, int blue, int green ) ; +static void wxComposeRGBColor( WXCOLORREF* color , int red, int blue, int green ) +{ + RGBColor* col = (RGBColor*) color ; + col->red = (red << 8) + red; + col->blue = (blue << 8) + blue; + col->green = (green << 8) + green; +} + wxColour::wxColour () { - m_isInit = FALSE; - m_red = m_blue = m_green = 0; -/* TODO - m_pixel = 0; -*/ + m_isInit = FALSE; + m_red = m_blue = m_green = 0; + + wxComposeRGBColor( &m_pixel , m_red , m_blue , m_green ) ; } wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) @@ -37,9 +47,8 @@ wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) m_green = g; m_blue = b; m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ + + wxComposeRGBColor( &m_pixel , m_red , m_blue , m_green ) ; } wxColour::wxColour (const wxColour& col) @@ -48,9 +57,18 @@ wxColour::wxColour (const wxColour& col) m_green = col.m_green; m_blue = col.m_blue; m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ + + memcpy( &m_pixel , &col.m_pixel , 6 ) ; +} + +wxColour::wxColour (const wxColour* col) +{ + m_red = col->m_red; + m_green = col->m_green; + m_blue = col->m_blue; + m_isInit = col->m_isInit; + + memcpy( &m_pixel , &col->m_pixel , 6 ) ; } wxColour& wxColour::operator =(const wxColour& col) @@ -59,9 +77,9 @@ wxColour& wxColour::operator =(const wxColour& col) m_green = col.m_green; m_blue = col.m_blue; m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ + + memcpy( &m_pixel , &col.m_pixel , 6 ) ; + return *this; } @@ -82,9 +100,8 @@ void wxColour::InitFromName(const wxString& col) m_blue = 0; m_isInit = FALSE; } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ + + wxComposeRGBColor( &m_pixel , m_red , m_blue , m_green ) ; } wxColour::~wxColour () @@ -97,7 +114,15 @@ void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) m_green = g; m_blue = b; m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ + + wxComposeRGBColor( &m_pixel , m_red , m_blue , m_green ) ; } + +void wxColour::Set( const WXCOLORREF* color ) +{ + RGBColor* col = (RGBColor*) color ; + memcpy( &m_pixel , color , 6 ) ; + m_red = col->red>>8 ; + m_blue = col->blue>>8 ; + m_green = col->green>>8 ; +} \ No newline at end of file