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