]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/qt/brush.h
converted to 16 colors
[wxWidgets.git] / include / wx / qt / brush.h
index 32048f67b74d50d67ec6b181f9fa74490c4ff6b6..2475bd0b24f61e0e32bc9b50c90f00222f5b246c 100644 (file)
@@ -1,60 +1,86 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        brush.h
-// Purpose:
-// Author:      Robert Roebling
-// Created:     01/02/97
-// Id:
-// Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
+// Purpose:     wxBrush class
+// Author:      AUTHOR
+// Modified by:
+// Created:     ??/??/98
+// RCS-ID:      $Id$
+// Copyright:   (c) AUTHOR
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
-#ifndef __GTKBRUSHH__
-#define __GTKBRUSHH__
+#ifndef _WX_BRUSH_H_
+#define _WX_BRUSH_H_
 
 #ifdef __GNUG__
-#pragma interface
+#pragma interface "brush.h"
 #endif
 
-#include "wx/defs.h"
-#include "wx/object.h"
-#include "wx/string.h"
+#include "wx/gdicmn.h"
 #include "wx/gdiobj.h"
 #include "wx/bitmap.h"
 
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
+class WXDLLEXPORT wxBrush;
+
+class WXDLLEXPORT wxBrushRefData: public wxGDIRefData
+{
+    friend class WXDLLEXPORT wxBrush;
+public:
+    wxBrushRefData();
+    wxBrushRefData(const wxBrushRefData& data);
+    ~wxBrushRefData();
 
-class wxBrush;
+protected:
+    int           m_style;
+    wxBitmap      m_stipple ;
+    wxColour      m_colour;
 
-//-----------------------------------------------------------------------------
-// wxBrush
-//-----------------------------------------------------------------------------
+/* TODO: implementation
+    WXHBRUSH      m_hBrush;
+*/
+};
 
-class wxBrush: public wxGDIObject
+#define M_BRUSHDATA ((wxBrushRefData *)m_refData)
+
+// Brush
+class WXDLLEXPORT wxBrush: public wxGDIObject
 {
   DECLARE_DYNAMIC_CLASS(wxBrush)
 
-  public:
-
-    wxBrush(void);
-    wxBrush( const wxColour &colour, int style );
-    wxBrush( const wxString &colourName, int style );
-    wxBrush( const wxBitmap &stippleBitmap );
-    wxBrush( const wxBrush &brush );
-    wxBrush( const wxBrush *brush );
-    ~wxBrush(void);
-    wxBrush& operator = ( const wxBrush& brush );
-    bool operator == ( const wxBrush& brush );
-    bool operator != ( const wxBrush& brush );
-    bool Ok(void) const;
-
-    int GetStyle(void) const;
-    wxColour &GetColour(void) const;
-    wxBitmap *GetStipple(void) const;
-    
-    // no data :-)
+public:
+  wxBrush();
+  wxBrush(const wxColour& col, int style);
+  wxBrush(const wxString& col, int style);
+  wxBrush(const wxBitmap& stipple);
+  inline wxBrush(const wxBrush& brush) { Ref(brush); }
+  inline wxBrush(const wxBrush* brush) { if (brush) Ref(*brush); }
+  ~wxBrush();
+
+  virtual void SetColour(const wxColour& col)  ;
+  virtual void SetColour(const wxString& col)  ;
+  virtual void SetColour(unsigned char r, unsigned char g, unsigned char b)  ;
+  virtual void SetStyle(int style)  ;
+  virtual void SetStipple(const wxBitmap& stipple)  ;
+
+  inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; }
+  inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; }
+  inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; }
+
+  inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); };
+  inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); };
+  inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); };
+
+  virtual bool Ok() const { return (m_refData != NULL) ; }
+
+// Implementation
+
+  // Useful helper: create the brush resource
+  void RealizeResource();
+
+  // When setting properties, we must make sure we're not changing
+  // another object
+  void Unshare();
 };
 
-#endif // __GTKBRUSHH__
+#endif
+    // _WX_BRUSH_H_