1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/generic/colour.h
3 // Purpose:     wxColour class
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     01/02/97
7 // Copyright:   (c) Julian Smart
8 // Licence:     wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10 
11 #ifndef _WX_GENERIC_COLOUR_H_
12 #define _WX_GENERIC_COLOUR_H_
13 
14 #include "wx/object.h"
15 
16 // Colour
17 class WXDLLIMPEXP_CORE wxColour: public wxColourBase
18 {
19 public:
20     // constructors
21     // ------------
22     DEFINE_STD_WXCOLOUR_CONSTRUCTORS
23 
24     // copy ctors and assignment operators
wxColour(const wxColour & col)25     wxColour(const wxColour& col)
26     {
27         *this = col;
28     }
29 
30     wxColour& operator=(const wxColour& col);
31 
32     // accessors
IsOk()33     virtual bool IsOk() const { return m_isInit; }
34 
Red()35     unsigned char Red() const { return m_red; }
Green()36     unsigned char Green() const { return m_green; }
Blue()37     unsigned char Blue() const { return m_blue; }
Alpha()38     unsigned char Alpha() const { return m_alpha; }
39 
40     // comparison
41     bool operator==(const wxColour& colour) const
42     {
43         return (m_red == colour.m_red &&
44                 m_green == colour.m_green &&
45                 m_blue == colour.m_blue &&
46                 m_alpha == colour.m_alpha &&
47                 m_isInit == colour.m_isInit);
48     }
49 
50     bool operator!=(const wxColour& colour) const { return !(*this == colour); }
51 
52 protected:
53 
54     // Helper function
55     void Init();
56 
57     virtual void
58     InitRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a);
59 
60 private:
61     bool m_isInit;
62     unsigned char m_red;
63     unsigned char m_blue;
64     unsigned char m_green;
65     unsigned char m_alpha;
66 
67 private:
68     DECLARE_DYNAMIC_CLASS(wxColour)
69 };
70 
71 #endif // _WX_GENERIC_COLOUR_H_
72