#endif
#include "wx/gdicmn.h"
+#include "wx/app.h"
#include "wx/x11/private.h"
m_colormap = (WXColormap *) NULL;
m_hasPixel = FALSE;
}
+ wxColourRefData(const wxColourRefData& data):
+ wxObjectRefData()
+ {
+ m_color = data.m_color;
+ m_colormap = data.m_colormap;
+ m_hasPixel = data.m_hasPixel;
+ }
~wxColourRefData()
{
void wxColourRefData::FreeColour()
{
+#if 0
if (m_colormap)
{
Colormap cm = (Colormap)m_colormap;
-#if 0
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) m_colormap;
if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
(private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR))
if (colMapAllocCounter[ idx ] == 0)
gdk_colormap_free_colors( m_colormap, &m_color, 1 );
}
-#endif
}
+#endif
}
void wxColourRefData::AllocColour( WXColormap cmap )
wxColour::wxColour( unsigned char red, unsigned char green, unsigned char blue )
{
m_refData = new wxColourRefData();
+#if wxUSE_NANOX
+ M_COLDATA->m_color.red = ((unsigned short)red) ;
+ M_COLDATA->m_color.green = ((unsigned short)green) ;
+ M_COLDATA->m_color.blue = ((unsigned short)blue) ;
+#else
M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT;
M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT;
M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT;
+#endif
M_COLDATA->m_color.pixel = 0;
}
else
{
m_refData = new wxColourRefData();
+
+ M_COLDATA->m_colormap = wxTheApp->GetMainColormap( wxGlobalDisplay() );
+
if (!XParseColor( wxGlobalDisplay(), (Colormap) M_COLDATA->m_colormap, colourName.mb_str(), &M_COLDATA->m_color ))
{
// VZ: asserts are good in general but this one is triggered by
AllocExclusive();
m_refData = new wxColourRefData();
+#if wxUSE_NANOX
+ M_COLDATA->m_color.red = ((unsigned short)red) ;
+ M_COLDATA->m_color.green = ((unsigned short)green) ;
+ M_COLDATA->m_color.blue = ((unsigned short)blue) ;
+#else
M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT;
M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT;
M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT;
+#endif
M_COLDATA->m_color.pixel = 0;
}
{
wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
+#if wxUSE_NANOX
+ return (unsigned char) M_COLDATA->m_color.red ;
+#else
return (unsigned char)(M_COLDATA->m_color.red >> SHIFT);
+#endif
}
unsigned char wxColour::Green() const
{
wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
+#if wxUSE_NANOX
+ return (unsigned char) M_COLDATA->m_color.green ;
+#else
return (unsigned char)(M_COLDATA->m_color.green >> SHIFT);
+#endif
}
unsigned char wxColour::Blue() const
{
wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
+#if wxUSE_NANOX
+ return (unsigned char) M_COLDATA->m_color.blue ;
+#else
return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT);
+#endif
}
void wxColour::CalcPixel( WXColormap cmap )
{
- if (!Ok()) return;
+ wxCHECK_RET( Ok(), wxT("invalid colour") );
+
+ wxCHECK_RET( cmap, wxT("invalid colormap") );
M_COLDATA->AllocColour( cmap );
}