Added CanApplyParentThemeBackground and use it in wxMSW's
[wxWidgets.git] / include / wx / statline.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/statline.h
3 // Purpose: wxStaticLine class interface
4 // Author: Vadim Zeitlin
5 // Created: 28.06.99
6 // Version: $Id$
7 // Copyright: (c) 1999 Vadim Zeitlin
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_STATLINE_H_BASE_
12 #define _WX_STATLINE_H_BASE_
13
14 // ----------------------------------------------------------------------------
15 // headers
16 // ----------------------------------------------------------------------------
17
18 // this defines wxUSE_STATLINE
19 #include "wx/defs.h"
20
21 #if wxUSE_STATLINE
22
23 // the base class declaration
24 #include "wx/control.h"
25
26 // ----------------------------------------------------------------------------
27 // global variables
28 // ----------------------------------------------------------------------------
29
30 // the default name for objects of class wxStaticLine
31 WXDLLEXPORT_DATA(extern const wxChar*) wxStaticTextNameStr;
32
33 // ----------------------------------------------------------------------------
34 // wxStaticLine - a line in a dialog
35 // ----------------------------------------------------------------------------
36
37 class WXDLLEXPORT wxStaticLineBase : public wxControl
38 {
39 public:
40 // constructor
41 wxStaticLineBase() { }
42
43 // is the line vertical?
44 bool IsVertical() const { return (GetWindowStyle() & wxLI_VERTICAL) != 0; }
45
46 // get the default size for the "lesser" dimension of the static line
47 static int GetDefaultSize() { return 2; }
48
49 // overriden base class virtuals
50 virtual bool AcceptsFocus() const { return false; }
51 virtual bool CanApplyParentThemeBackground() const { return true; }
52
53 protected:
54 // set the right size for the right dimension
55 wxSize AdjustSize(const wxSize& size) const
56 {
57 wxSize sizeReal(size);
58 if ( IsVertical() )
59 {
60 if ( size.x == -1 )
61 sizeReal.x = GetDefaultSize();
62 }
63 else
64 {
65 if ( size.y == -1 )
66 sizeReal.y = GetDefaultSize();
67 }
68
69 return sizeReal;
70 }
71
72 virtual wxSize DoGetBestSize() const
73 {
74 return AdjustSize(wxDefaultSize);
75 }
76
77 DECLARE_NO_COPY_CLASS(wxStaticLineBase)
78 };
79
80 // ----------------------------------------------------------------------------
81 // now include the actual class declaration
82 // ----------------------------------------------------------------------------
83
84 #if defined(__WXUNIVERSAL__)
85 #include "wx/univ/statline.h"
86 #elif defined(__WXMSW__)
87 #include "wx/msw/statline.h"
88 #elif defined(__WXGTK__)
89 #include "wx/gtk/statline.h"
90 #elif defined(__WXPM__)
91 #include "wx/os2/statline.h"
92 #elif defined(__WXMAC__)
93 #include "wx/mac/statline.h"
94 #elif defined(__WXCOCOA__)
95 #include "wx/cocoa/statline.h"
96 #else // use generic implementation for all other platforms
97 #include "wx/generic/statline.h"
98 #endif
99
100 #endif // wxUSE_STATLINE
101
102 #endif
103 // _WX_STATLINE_H_BASE_