1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/msw/colour.h
3// Purpose:     wxColour class
4// Author:      Julian Smart
5// Modified by:
6// Created:     01/02/97
7// RCS-ID:      $Id: colour.h 51769 2008-02-13 22:36:43Z VZ $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_COLOUR_H_
13#define _WX_COLOUR_H_
14
15#include "wx/object.h"
16
17// ----------------------------------------------------------------------------
18// Colour
19// ----------------------------------------------------------------------------
20
21class WXDLLEXPORT wxColour : public wxColourBase
22{
23public:
24    // constructors
25    // ------------
26
27    wxColour() { Init(); }
28    wxColour( ChannelType red, ChannelType green, ChannelType blue,
29              ChannelType alpha = wxALPHA_OPAQUE )
30        { Set(red, green, blue, alpha); }
31    wxColour( unsigned long colRGB ) { Set(colRGB); }
32    wxColour(const wxString& colourName) { Init(); Set(colourName); }
33    wxColour(const wxChar *colourName) { Init(); Set(colourName); }
34
35
36    // dtor
37    virtual ~wxColour();
38
39
40    // accessors
41    // ---------
42
43    bool Ok() const { return IsOk(); }
44    bool IsOk() const { return m_isInit; }
45
46    unsigned char Red() const { return m_red; }
47    unsigned char Green() const { return m_green; }
48    unsigned char Blue() const { return m_blue; }
49    unsigned char Alpha() const { return m_alpha ; }
50
51    // comparison
52    bool operator==(const wxColour& colour) const
53    {
54        return m_isInit == colour.m_isInit
55            && m_red == colour.m_red
56            && m_green == colour.m_green
57            && m_blue == colour.m_blue
58            && m_alpha == colour.m_alpha;
59    }
60
61    bool operator != (const wxColour& colour) const { return !(*this == colour); }
62
63    WXCOLORREF GetPixel() const { return m_pixel; }
64
65
66public:
67    WXCOLORREF m_pixel;
68
69protected:
70    // Helper function
71    void Init();
72
73    virtual void
74    InitRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a);
75
76private:
77    bool          m_isInit;
78    unsigned char m_red;
79    unsigned char m_blue;
80    unsigned char m_green;
81    unsigned char m_alpha;
82
83private:
84    DECLARE_DYNAMIC_CLASS(wxColour)
85};
86
87#endif
88        // _WX_COLOUR_H_
89