/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "colour.h"
#endif
void wxColourRefData::FreeColour()
{
-#if 0
- if (m_colormap)
+ if (!m_colormap)
+ return;
+#if !wxUSE_NANOX
+ if ((wxTheApp->m_visualInfo->m_visualType == GrayScale) ||
+ (wxTheApp->m_visualInfo->m_visualType == PseudoColor))
{
- Colormap cm = (Colormap)m_colormap;
-
- GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) m_colormap;
- if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
- (private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR))
- {
- int idx = m_color.pixel;
- colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] - 1;
+ int idx = m_color.pixel;
+ colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] - 1;
- if (colMapAllocCounter[ idx ] == 0)
- gdk_colormap_free_colors( m_colormap, &m_color, 1 );
+ if (colMapAllocCounter[ idx ] == 0)
+ {
+ unsigned long pixel = m_color.pixel;
+ XFreeColors( wxGlobalDisplay(), (Colormap) m_colormap, &pixel, 1, 0 );
}
}
#endif
FreeColour();
-#if 0
- GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
- if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
- (private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR))
+#if !wxUSE_NANOX
+ if ((wxTheApp->m_visualInfo->m_visualType == GrayScale) ||
+ (wxTheApp->m_visualInfo->m_visualType == PseudoColor))
{
- m_hasPixel = gdk_colormap_alloc_color( cmap, &m_color, FALSE, TRUE );
+ m_hasPixel = XAllocColor( wxGlobalDisplay(), (Colormap) cmap, &m_color );
int idx = m_color.pixel;
colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] + 1;
}
{
m_hasPixel = XAllocColor( wxGlobalDisplay(), (Colormap) cmap, &m_color );
}
+
m_colormap = cmap;
}
void wxColour::InitFromName( const wxString &colourName )
{
- wxNode *node = (wxNode *) NULL;
- if ( (wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) )
+ wxColour* col;
+ if ( (wxTheColourDatabase) && (col = wxTheColourDatabase->FindColourNoAdd(colourName)) )
{
- wxColour *col = (wxColour*)node->Data();
UnRef();
if (col) Ref( *col );
}