]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/colour.h
fix memory leak as Dimitri suggested
[wxWidgets.git] / include / wx / os2 / colour.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: colour.h
3 // Purpose: wxColour class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/13/99
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_COLOUR_H_
13 #define _WX_COLOUR_H_
14
15 #include "wx/object.h"
16
17 // Colour
18 class WXDLLEXPORT wxColour: public wxObject
19 {
20 public:
21 //
22 // Ctors
23 //
24
25 //
26 // Default
27 //
28 wxColour();
29
30 //
31 // from RGB
32 //
33 wxColour( unsigned char cRed
34 ,unsigned char cGreen
35 ,unsigned char cBlue
36 );
37
38 wxColour( unsigned long colRGB ) { Set(colRGB); }
39
40 //
41 // Implicit conversion from the colour name
42 //
43 wxColour(const wxString& rColourName) { InitFromName(rColourName); }
44 wxColour(const char* zColourName) { InitFromName(zColourName); }
45
46 //
47 // Copy ctors and assignment operators
48 //
49 wxColour(const wxColour& rCol);
50 wxColour(const wxColour* pCol);
51 wxColour&operator = (const wxColour& rCol);
52
53 //
54 // Dtor
55 //
56 ~wxColour();
57
58 //
59 // Set functions
60 //
61 void Set( unsigned char cRed
62 ,unsigned char cGreen
63 ,unsigned char cBlue
64 );
65 void Set(unsigned long lColRGB)
66 {
67 //
68 // We don't need to know sizeof(long) here because we assume that the three
69 // least significant bytes contain the R, G and B values
70 //
71 Set( (unsigned char)lColRGB
72 ,(unsigned char)(lColRGB >> 8)
73 ,(unsigned char)(lColRGB >> 16)
74 );
75 }
76 void Set(const wxString& rsColour)
77 {
78 InitFromName(rsColour);
79 }
80
81 //
82 // Accessors
83 //
84 bool Ok(void) const {return m_bIsInit; }
85
86 //
87 // Let's remove this inelegant function
88 //
89 #if WXWIN_COMPATIBILITY
90 void Get( unsigned char* pRed
91 ,unsigned char* pGreen
92 ,unsigned char* pBlue
93 ) const;
94 #endif
95
96 unsigned char Red(void) const { return m_cRed; }
97 unsigned char Green(void) const { return m_cGreen; }
98 unsigned char Blue(void) const { return m_cBlue; }
99
100 //
101 // Comparison
102 //
103 bool operator == (const wxColour& rColour) const
104 {
105 return (m_cRed == rColour.m_cRed &&
106 m_cGreen == rColour.m_cGreen &&
107 m_cBlue == rColour.m_cBlue
108 );
109 }
110 bool operator != (const wxColour& rColour) const { return !(*this == rColour); }
111
112 void InitFromName(const wxString& rCol);
113 WXCOLORREF GetPixel(void) const { return m_vPixel; };
114
115 private:
116 bool m_bIsInit;
117 unsigned char m_cRed;
118 unsigned char m_cBlue;
119 unsigned char m_cGreen;
120
121 public:
122 WXCOLORREF m_vPixel ;
123 private:
124 DECLARE_DYNAMIC_CLASS(wxColour)
125 }; // end of class wxColour
126
127 #endif
128 // _WX_COLOUR_H_