]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/effects.h
added template wxScopedArray<> too
[wxWidgets.git] / include / wx / effects.h
index 09db9151a13596c7c831ccc9fdafd1b685da57e0..cf197f2e5a71495e78fc2fadd336cf4d9520c070 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        effects.h
+// Name:        wx/effects.h
 // Purpose:     wxEffects class
 //              Draws 3D effects.
 // Author:      Julian Smart et al
@@ -7,43 +7,85 @@
 // Created:     25/4/2000
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "effects.h"
-#endif
-
 #ifndef _WX_EFFECTS_H_
 #define _WX_EFFECTS_H_
 
+// this class is deprecated and will be removed in the next wx version
+//
+// please use wxRenderer::DrawBorder() instead of DrawSunkenEdge(); there is no
+// replacement for TileBitmap() but it doesn't seem to be very useful anyhow
+#if WXWIN_COMPATIBILITY_2_8
+
 /*
  * wxEffects: various 3D effects
  */
 
-class WXDLLEXPORT wxEffects: public wxObject
-{
-DECLARE_CLASS(wxEffects)
+#include "wx/object.h"
+#include "wx/colour.h"
+#include "wx/gdicmn.h"
+#include "wx/dc.h"
 
+class WXDLLIMPEXP_CORE wxEffectsImpl: public wxObject
+{
 public:
     // Assume system colours
-    wxEffects() ;
+    wxEffectsImpl() ;
     // Going from lightest to darkest
-    wxEffects(const wxColour& highlightColour, const wxColour& lightShadow,
-                const wxColour& faceColour, const wxColour& mediumShadow, const wxColour& darkShadow) ;
+    wxEffectsImpl(const wxColour& highlightColour, const wxColour& lightShadow,
+                  const wxColour& faceColour, const wxColour& mediumShadow,
+                  const wxColour& darkShadow) ;
+
+    // Accessors
+    wxColour GetHighlightColour() const { return m_highlightColour; }
+    wxColour GetLightShadow() const { return m_lightShadow; }
+    wxColour GetFaceColour() const { return m_faceColour; }
+    wxColour GetMediumShadow() const { return m_mediumShadow; }
+    wxColour GetDarkShadow() const { return m_darkShadow; }
+
+    void SetHighlightColour(const wxColour& c) { m_highlightColour = c; }
+    void SetLightShadow(const wxColour& c) { m_lightShadow = c; }
+    void SetFaceColour(const wxColour& c) { m_faceColour = c; }
+    void SetMediumShadow(const wxColour& c) { m_mediumShadow = c; }
+    void SetDarkShadow(const wxColour& c) { m_darkShadow = c; }
+
+    void Set(const wxColour& highlightColour, const wxColour& lightShadow,
+             const wxColour& faceColour, const wxColour& mediumShadow,
+             const wxColour& darkShadow)
+    {
+        SetHighlightColour(highlightColour);
+        SetLightShadow(lightShadow);
+        SetFaceColour(faceColour);
+        SetMediumShadow(mediumShadow);
+        SetDarkShadow(darkShadow);
+    }
 
     // Draw a sunken edge
     void DrawSunkenEdge(wxDC& dc, const wxRect& rect, int borderSize = 1);
 
     // Tile a bitmap
-    bool TileBitmap(const wxRect& rect, wxDC& dc, wxBitmap& bitmap);
+    bool TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap);
+
 protected:
     wxColour    m_highlightColour;  // Usually white
     wxColour    m_lightShadow;      // Usually light grey
     wxColour    m_faceColour;       // Usually grey
     wxColour    m_mediumShadow;     // Usually dark grey
     wxColour    m_darkShadow;       // Usually black
+
+    DECLARE_CLASS(wxEffectsImpl)
 };
 
-#endif
+// current versions of g++ don't generate deprecation warnings for classes
+// declared deprecated, so define wxEffects as a typedef instead: this does
+// generate warnings with both g++ and VC (which also has no troubles with
+// directly deprecating the classes...)
+//
+// note that this g++ bug (16370) is supposed to be fixed in g++ 4.3.0
+typedef wxEffectsImpl wxDEPRECATED(wxEffects);
+
+#endif // WXWIN_COMPATIBILITY_2_8
 
+#endif // _WX_EFFECTS_H_