[ 1473731 ] 'wxColourBase and wxString <-> wxColour implementation' with minor modifi...
[wxWidgets.git] / include / wx / cocoa / colour.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/cocoa/colour.h
3 // Purpose: wxColour class
4 // Author: David Elliott
5 // Modified by:
6 // Created: 2003/06/17
7 // RCS-ID: $Id$
8 // Copyright: (c) 2003 David Elliott
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __WX_COCOA_COLOUR_H__
13 #define __WX_COCOA_COLOUR_H__
14
15 #include "wx/object.h"
16 #include "wx/string.h"
17
18 // ========================================================================
19 // wxColour
20 // ========================================================================
21
22 class WXDLLEXPORT wxColour : public wxColourBase
23 {
24 public:
25 // constructors
26 // ------------
27
28 // default
29 wxColour() { Init(); }
30 DEFINE_STD_WXCOLOUR_CONSTRUCTORS
31
32 // initialization using existing NSColor
33 wxColour( WX_NSColor aColor );
34
35
36 // copy ctors and assignment operators
37 wxColour( const wxColour& col );
38 wxColour& operator = ( const wxColour& col );
39
40 virtual ~wxColour();
41
42 // accessors
43 bool Ok() const { return m_cocoaNSColor; }
44 WX_NSColor GetNSColor() { return m_cocoaNSColor; }
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
50 // comparison
51 bool operator == (const wxColour& colour) const
52 {
53 // TODO: Really compare the NSColor
54 return (m_cocoaNSColor == colour.m_cocoaNSColor
55 || (m_red == colour.m_red
56 && m_green == colour.m_green
57 && m_blue == colour.m_blue));
58 }
59 bool operator != (const wxColour& colour) const
60 { return !(*this == colour); }
61
62 // Set() functions
63 void Set( WX_NSColor aColor );
64
65 protected:
66 // puts the object in an invalid, uninitialized state
67 void Init();
68
69 virtual void InitWith( unsigned char red, unsigned char green, unsigned char blue );
70
71 private:
72 WX_NSColor m_cocoaNSColor;
73 unsigned char m_red;
74 unsigned char m_green;
75 unsigned char m_blue;
76
77 DECLARE_DYNAMIC_CLASS(wxColour)
78 };
79
80 #endif // __WX_COCOA_COLOUR_H__