home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / os2 / colour.h < prev    next >
C/C++ Source or Header  |  2001-10-18  |  3KB  |  129 lines

  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: COLOUR.H,v 1.7 2001/10/17 22:25:46 KLB Exp $
  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_
  129.