More border rationalisation. GetDefaultBorder is now mostly defined in base class...
[wxWidgets.git] / include / wx / statbox.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: statbox.h
3 // Purpose: wxStaticBox base header
4 // Author: Julian Smart
5 // Modified by:
6 // Created:
7 // Copyright: (c) Julian Smart
8 // RCS-ID: $Id$
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_STATBOX_H_BASE_
13 #define _WX_STATBOX_H_BASE_
14
15 #include "wx/defs.h"
16
17 #if wxUSE_STATBOX
18
19 #include "wx/control.h"
20
21 extern WXDLLEXPORT_DATA(const char) wxStaticBoxNameStr[];
22
23 // ----------------------------------------------------------------------------
24 // wxStaticBox: a grouping box with a label
25 // ----------------------------------------------------------------------------
26
27 class WXDLLEXPORT wxStaticBoxBase : public wxControl
28 {
29 public:
30 wxStaticBoxBase() { }
31
32 // overriden base class virtuals
33 virtual bool AcceptsFocus() const { return false; }
34 virtual bool HasTransparentBackground() { return true; }
35
36 // implementation only: this is used by wxStaticBoxSizer to account for the
37 // need for extra space taken by the static box
38 //
39 // the top border is the margin at the top (where the title is),
40 // borderOther is the margin on all other sides
41 virtual void GetBordersForSizer(int *borderTop, int *borderOther) const
42 {
43 const int BORDER = 5; // FIXME: hardcoded value
44
45 *borderTop = GetLabel().empty() ? BORDER : GetCharHeight();
46 *borderOther = BORDER;
47 }
48
49 private:
50 // choose the default border for this window
51 virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
52
53 DECLARE_NO_COPY_CLASS(wxStaticBoxBase)
54 };
55
56 #if defined(__WXUNIVERSAL__)
57 #include "wx/univ/statbox.h"
58 #elif defined(__WXMSW__)
59 #include "wx/msw/statbox.h"
60 #elif defined(__WXMOTIF__)
61 #include "wx/motif/statbox.h"
62 #elif defined(__WXGTK20__)
63 #include "wx/gtk/statbox.h"
64 #elif defined(__WXGTK__)
65 #include "wx/gtk1/statbox.h"
66 #elif defined(__WXMAC__)
67 #include "wx/mac/statbox.h"
68 #elif defined(__WXCOCOA__)
69 #include "wx/cocoa/statbox.h"
70 #elif defined(__WXPM__)
71 #include "wx/os2/statbox.h"
72 #endif
73
74 #endif // wxUSE_STATBOX
75
76 #endif
77 // _WX_STATBOX_H_BASE_