1 ///////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/univ/colschem.h
3 // Purpose:     wxColourScheme class provides the colours to use for drawing
4 // Author:      Vadim Zeitlin
5 // Modified by:
6 // Created:     19.08.00
7 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
8 // Licence:     wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10 
11 #ifndef _WX_UNIV_COLSCHEM_H_
12 #define _WX_UNIV_COLSCHEM_H_
13 
14 class WXDLLIMPEXP_FWD_CORE wxWindow;
15 
16 #include "wx/colour.h"
17 #include "wx/checkbox.h"
18 
19 // ----------------------------------------------------------------------------
20 // wxColourScheme
21 // ----------------------------------------------------------------------------
22 
23 class WXDLLIMPEXP_CORE wxColourScheme
24 {
25 public:
26     // the standard colours
27     enum StdColour
28     {
29         // the background colour for a window
30         WINDOW,
31 
32         // the different background and text colours for the control
33         CONTROL,
34         CONTROL_PRESSED,
35         CONTROL_CURRENT,
36 
37         // the label text for the normal and the disabled state
38         CONTROL_TEXT,
39         CONTROL_TEXT_DISABLED,
40         CONTROL_TEXT_DISABLED_SHADOW,
41 
42         // the scrollbar background colour for the normal and pressed states
43         SCROLLBAR,
44         SCROLLBAR_PRESSED,
45 
46         // the background and text colour for the highlighted item
47         HIGHLIGHT,
48         HIGHLIGHT_TEXT,
49 
50         // these colours are used for drawing the shadows of 3D objects
51         SHADOW_DARK,
52         SHADOW_HIGHLIGHT,
53         SHADOW_IN,
54         SHADOW_OUT,
55 
56         // the titlebar background colours for the normal and focused states
57         TITLEBAR,
58         TITLEBAR_ACTIVE,
59 
60         // the titlebar text colours
61         TITLEBAR_TEXT,
62         TITLEBAR_ACTIVE_TEXT,
63 
64         // the default gauge fill colour
65         GAUGE,
66 
67         // desktop background colour (only used by framebuffer ports)
68         DESKTOP,
69 
70         // wxFrame's background colour
71         FRAME,
72 
73         MAX
74     };
75 
76     // get a standard colour
77     virtual wxColour Get(StdColour col) const = 0;
78 
79     // get the background colour for the given window
80     virtual wxColour GetBackground(wxWindow *win) const = 0;
81 
82     // virtual dtor for any base class
~wxColourScheme()83     virtual ~wxColourScheme() {}
84 };
85 
86 // some people just can't spell it correctly :-)
87 typedef wxColourScheme wxColorScheme;
88 
89 // ----------------------------------------------------------------------------
90 // macros
91 // ----------------------------------------------------------------------------
92 
93 // retrieve the default colour from the theme or the given scheme
94 #define wxSCHEME_COLOUR(scheme, what) scheme->Get(wxColorScheme::what)
95 #define wxTHEME_COLOUR(what) \
96     wxSCHEME_COLOUR(wxTheme::Get()->GetColourScheme(), what)
97 
98 // get the background colour for the window in the current theme
99 #define wxTHEME_BG_COLOUR(win) \
100     wxTheme::Get()->GetColourScheme()->GetBackground(win)
101 
102 #endif // _WX_UNIV_COLSCHEM_H_
103