1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/effects.h
3// Purpose:     wxEffects class
4//              Draws 3D effects.
5// Author:      Julian Smart et al
6// Modified by:
7// Created:     25/4/2000
8// RCS-ID:      $Id: effects.h 39109 2006-05-08 11:31:03Z ABX $
9// Copyright:   (c) Julian Smart
10// Licence:     wxWindows licence
11/////////////////////////////////////////////////////////////////////////////
12
13#ifndef _WX_EFFECTS_H_
14#define _WX_EFFECTS_H_
15
16/*
17 * wxEffects: various 3D effects
18 */
19
20#include "wx/object.h"
21#include "wx/colour.h"
22#include "wx/gdicmn.h"
23#include "wx/dc.h"
24
25class WXDLLEXPORT wxEffects: public wxObject
26{
27DECLARE_CLASS(wxEffects)
28
29public:
30    // Assume system colours
31    wxEffects() ;
32    // Going from lightest to darkest
33    wxEffects(const wxColour& highlightColour, const wxColour& lightShadow,
34              const wxColour& faceColour, const wxColour& mediumShadow,
35              const wxColour& darkShadow) ;
36
37    // Accessors
38    wxColour GetHighlightColour() const { return m_highlightColour; }
39    wxColour GetLightShadow() const { return m_lightShadow; }
40    wxColour GetFaceColour() const { return m_faceColour; }
41    wxColour GetMediumShadow() const { return m_mediumShadow; }
42    wxColour GetDarkShadow() const { return m_darkShadow; }
43
44    void SetHighlightColour(const wxColour& c) { m_highlightColour = c; }
45    void SetLightShadow(const wxColour& c) { m_lightShadow = c; }
46    void SetFaceColour(const wxColour& c) { m_faceColour = c; }
47    void SetMediumShadow(const wxColour& c) { m_mediumShadow = c; }
48    void SetDarkShadow(const wxColour& c) { m_darkShadow = c; }
49
50    void Set(const wxColour& highlightColour, const wxColour& lightShadow,
51             const wxColour& faceColour, const wxColour& mediumShadow,
52             const wxColour& darkShadow)
53    {
54        SetHighlightColour(highlightColour);
55        SetLightShadow(lightShadow);
56        SetFaceColour(faceColour);
57        SetMediumShadow(mediumShadow);
58        SetDarkShadow(darkShadow);
59    }
60
61    // Draw a sunken edge
62    void DrawSunkenEdge(wxDC& dc, const wxRect& rect, int borderSize = 1);
63
64    // Tile a bitmap
65    bool TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap);
66
67protected:
68    wxColour    m_highlightColour;  // Usually white
69    wxColour    m_lightShadow;      // Usually light grey
70    wxColour    m_faceColour;       // Usually grey
71    wxColour    m_mediumShadow;     // Usually dark grey
72    wxColour    m_darkShadow;       // Usually black
73};
74
75#endif
76