]>
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"), 
  53         data
.Red(), data
.Green(), data
.Blue() ); 
  56 IMPLEMENT_DYNAMIC_CLASS_WITH_COPY_AND_STREAMERS_XTI( wxColour 
, wxObject 
, "wx/colour.h" ,  &wxToStringConverter
<wxColour
> , &wxFromStringConverter
<wxColour
>) 
  58 wxBEGIN_PROPERTIES_TABLE(wxColour
) 
  59     wxREADONLY_PROPERTY( Red
, unsigned char, Red
,  , 0 /*flags*/, wxT("Helpstring"), wxT("group")) 
  60     wxREADONLY_PROPERTY( Green
, unsigned char, Green
,  , 0 /*flags*/, wxT("Helpstring"), wxT("group")) 
  61     wxREADONLY_PROPERTY( Blue
, unsigned char, Blue
,  , 0 /*flags*/, wxT("Helpstring"), wxT("group")) 
  62 wxEND_PROPERTIES_TABLE() 
  64 wxCONSTRUCTOR_3( wxColour
, unsigned char, Red
, unsigned char, Green
, unsigned char, Blue 
) 
  66 wxBEGIN_HANDLERS_TABLE(wxColour
) 
  67 wxEND_HANDLERS_TABLE() 
  69 IMPLEMENT_DYNAMIC_CLASS(wxColour
, wxObject
) 
  83 wxColour::wxColour(const wxColour
& col
) 
  88 wxColour
& wxColour::operator=(const wxColour
& col
) 
  91     m_green 
= col
.m_green
; 
  93     m_isInit 
= col
.m_isInit
; 
  94     m_pixel 
= col
.m_pixel
; 
  98 void wxColour::InitFromName(const wxString
& name
) 
 100     if ( wxTheColourDatabase 
) 
 102         wxColour col 
= wxTheColourDatabase
->Find(name
); 
 114 wxColour::~wxColour() 
 118 void wxColour::Set(unsigned char r
, unsigned char g
, unsigned char b
) 
 124     m_pixel 
= PALETTERGB(m_red
, m_green
, m_blue
);