]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/motif/colour.h
1. wxMSW::wxNotebook::SetPageSize() and SetPadding() added
[wxWidgets.git] / include / wx / motif / colour.h
index 28cd53508019241dfa9f9a7b53569183ca4a84d8..238d46cfe13287ee364f705dbd92b0e2eeecb0f2 100644 (file)
 #include "wx/string.h"
 
 // Colour
-class WXDLLEXPORT wxColour: public wxObject
+class WXDLLEXPORT wxColour : public wxObject
 {
-  DECLARE_DYNAMIC_CLASS(wxColour)
+DECLARE_DYNAMIC_CLASS(wxColour)
 public:
+  // ctors
+    // default
   wxColour();
-  wxColour(unsigned char r, unsigned char g, unsigned char b);
-  wxColour(unsigned long colRGB) { Set(colRGB); }
-  wxColour(const wxColour& col);
-  wxColour(const wxString& col);
-  ~wxColour() ;
-  wxColour& operator =(const wxColour& src) ;
-  wxColour& operator =(const wxString& src) ;
-  inline int Ok() const { return (m_isInit) ; }
-
-  void Set(unsigned char r, unsigned char g, unsigned char b);
-  void Set(unsigned long colRGB) 
-  { 
+    // from RGB
+  wxColour( unsigned char red, unsigned char green, unsigned char blue );
+  wxColour( unsigned long colRGB ) { Set(colRGB); }
+
+    // implicit conversion from the colour name
+  wxColour( const wxString &colourName ) { InitFromName(colourName); }
+  wxColour( const char *colourName ) { InitFromName(colourName); }
+
+    // copy ctors and assignment operators
+  wxColour( const wxColour& col );
+  wxColour& operator = ( const wxColour& col );
+
+    // dtor
+  ~wxColour();
+
+  // Set() functions
+  void Set( unsigned char red, unsigned char green, unsigned char blue );
+  void Set( unsigned long colRGB )
+  {
     // we don't need to know sizeof(long) here because we assume that the three
     // least significant bytes contain the R, G and B values
-    Set((unsigned char)colRGB, 
+    Set((unsigned char)colRGB,
         (unsigned char)(colRGB >> 8),
-        (unsigned char)(colRGB >> 16)); 
+        (unsigned char)(colRGB >> 16));
   }
 
-  inline unsigned char Red() const { return m_red; }
-  inline unsigned char Green() const { return m_green; }
-  inline unsigned char Blue() const { return m_blue; }
+  // accessors
+  bool Ok() const {return m_isInit; }
+  unsigned char Red() const { return m_red; }
+  unsigned char Green() const { return m_green; }
+  unsigned char Blue() const { return m_blue; }
+
+  int GetPixel() const { return m_pixel; };
+  void SetPixel(int pixel) { m_pixel = pixel; m_isInit = TRUE; };
+
+  inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
 
-  inline bool operator == (const wxColour& colour) { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
+  inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
 
-  inline bool operator != (const wxColour& colour) { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
+  // Allocate a colour, or nearest colour, using the given display.
+  // If realloc is TRUE, ignore the existing pixel, otherwise just return
+  // the existing one.
+  // Returns the allocated pixel.
 
-/* TODO
-  WXCOLORREF GetPixel() const { return m_pixel; };
-*/
+  // TODO: can this handle mono displays? If not, we should have an extra
+  // flag to specify whether this should be black or white by default.
 
- private:
-  bool                         m_isInit;
+  int AllocColour(WXDisplay* display, bool realloc = FALSE);
+
+  void InitFromName(const wxString& col);
+
+private:
+  bool          m_isInit;
   unsigned char m_red;
   unsigned char m_blue;
   unsigned char m_green;
- public:
-/* TODO: implementation
-  WXCOLORREF m_pixel ;
-*/
-};
 
-#define wxColor wxColour
+public:
+  int           m_pixel;
+};
 
 #endif
        // _WX_COLOUR_H_