3cd0b8c5b5
Updated wxColour for handling Colormaps and ref couting. Updated wxClientDC et al. for conforming to wxGTK. Many tricky parts, particularly the bitmap drawing and blitting is still missing. Any sample crashes now for some reason with an X error. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
97 lines
2.7 KiB
C++
97 lines
2.7 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: colour.h
|
|
// Purpose: wxColour class
|
|
// Author: Julian Smart, Robert Roebling
|
|
// Modified by:
|
|
// Created: 17/09/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart, Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_COLOUR_H_
|
|
#define _WX_COLOUR_H_
|
|
|
|
#ifdef __GNUG__
|
|
#pragma interface "colour.h"
|
|
#endif
|
|
|
|
#include "wx/defs.h"
|
|
#include "wx/object.h"
|
|
#include "wx/string.h"
|
|
#include "wx/gdiobj.h"
|
|
#include "wx/palette.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// classes
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxDC;
|
|
class wxPaintDC;
|
|
class wxBitmap;
|
|
class wxWindow;
|
|
|
|
class wxColour;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxColour
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxColour: public wxGDIObject
|
|
{
|
|
public:
|
|
wxColour() { }
|
|
|
|
// Construct from RGB
|
|
wxColour( unsigned char red, unsigned char green, unsigned char blue );
|
|
wxColour( unsigned long colRGB ) { Set(colRGB); }
|
|
|
|
// Implicit conversion from the colour name
|
|
wxColour( const wxString &colourName ) { InitFromName(colourName); }
|
|
wxColour( const char *colourName ) { InitFromName(colourName); }
|
|
|
|
wxColour( const wxColour& col ) { Ref(col); }
|
|
wxColour& operator = ( const wxColour& col ) { Ref(col); return *this; }
|
|
|
|
~wxColour();
|
|
|
|
bool Ok() const { return m_refData != NULL; }
|
|
|
|
bool operator == ( const wxColour& col ) const;
|
|
bool operator != ( const wxColour& col ) const { return !(*this == col); }
|
|
|
|
void Set( unsigned char red, unsigned char green, unsigned char blue );
|
|
void Set( unsigned long colRGB )
|
|
{
|
|
// We don't need to know sizeof(long) here because we assume that the three
|
|
// least significant bytes contain the R, G and B values
|
|
Set((unsigned char)colRGB,
|
|
(unsigned char)(colRGB >> 8),
|
|
(unsigned char)(colRGB >> 16));
|
|
}
|
|
|
|
unsigned char Red() const;
|
|
unsigned char Green() const;
|
|
unsigned char Blue() const;
|
|
|
|
// Implementation part
|
|
|
|
void CalcPixel( WXColormap cmap );
|
|
unsigned long GetPixel() const;
|
|
WXColor *GetColor() const;
|
|
|
|
protected:
|
|
// ref counting code
|
|
virtual wxObjectRefData *CreateRefData() const;
|
|
virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
|
|
|
|
// Helper functions
|
|
void InitFromName(const wxString& colourName);
|
|
|
|
private:
|
|
DECLARE_DYNAMIC_CLASS(wxColour)
|
|
};
|
|
|
|
#endif
|
|
|
|
// _WX_COLOUR_H_
|