]>
git.saurik.com Git - wxWidgets.git/blob - src/msw/colour.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxColour class
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
13 #pragma implementation "colour.h"
16 // For compilers that support precompilation, includes "wx.h".
17 #include "wx/wxprec.h"
23 #include "wx/gdicmn.h"
24 #include "wx/msw/private.h"
28 #if wxUSE_EXTENDED_RTTI
30 template<> void wxStringReadValue(const wxString
&s
, wxColour
&data
)
33 unsigned long tmp
= 0;
35 if (s
.Length() != 7 || s
[0u] != wxT('#') ||
36 wxSscanf(s
.c_str(), wxT("#%lX"), &tmp
) != 1)
38 wxLogError(_("String To Colour : Incorrect colour specification : %s"),
44 data
= wxColour((unsigned char) ((tmp
& 0xFF0000) >> 16) ,
45 (unsigned char) ((tmp
& 0x00FF00) >> 8),
46 (unsigned char) ((tmp
& 0x0000FF)));
50 template<> void wxStringWriteValue(wxString
&s
, const wxColour
&data
)
52 s
= wxString::Format(wxT("#%02X%02X%02X"), data
.Red() , data
.Green() , data
.Blue() ) ;
55 IMPLEMENT_DYNAMIC_CLASS_WITH_COPY_AND_STREAMERS_XTI( wxColour
, wxObject
, "wx/colour.h" , &wxToStringConverter
<wxColour
> , &wxFromStringConverter
<wxColour
>)
57 wxBEGIN_PROPERTIES_TABLE(wxColour
)
58 wxREADONLY_PROPERTY( Red
, unsigned char , Red
, , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
59 wxREADONLY_PROPERTY( Green
, unsigned char , Green
, , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
60 wxREADONLY_PROPERTY( Blue
, unsigned char , Blue
, , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
61 wxEND_PROPERTIES_TABLE()
63 wxCONSTRUCTOR_3( wxColour
, unsigned char , Red
, unsigned char , Green
, unsigned char , Blue
)
65 wxBEGIN_HANDLERS_TABLE(wxColour
)
66 wxEND_HANDLERS_TABLE()
68 IMPLEMENT_DYNAMIC_CLASS(wxColour
, wxObject
)
77 m_red
= m_blue
= m_green
= 0;
80 wxColour::wxColour (unsigned char r
, unsigned char g
, unsigned char b
)
86 m_pixel
= PALETTERGB (m_red
, m_green
, m_blue
);
89 wxColour::wxColour (const wxColour
& col
)
92 m_green
= col
.m_green
;
94 m_isInit
= col
.m_isInit
;
95 m_pixel
= col
.m_pixel
;
98 wxColour
& wxColour::operator =(const wxColour
& col
)
101 m_green
= col
.m_green
;
103 m_isInit
= col
.m_isInit
;
104 m_pixel
= col
.m_pixel
;
108 void wxColour::InitFromName(const wxString
& col
)
110 wxColour
*the_colour
= wxTheColourDatabase
->FindColour (col
);
113 m_red
= the_colour
->Red ();
114 m_green
= the_colour
->Green ();
115 m_blue
= the_colour
->Blue ();
125 m_pixel
= PALETTERGB (m_red
, m_green
, m_blue
);
128 wxColour::~wxColour()
132 void wxColour::Set (unsigned char r
, unsigned char g
, unsigned char b
)
138 m_pixel
= PALETTERGB (m_red
, m_green
, m_blue
);