1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/msw/statbox.h
3// Purpose:     wxStaticBox class
4// Author:      Julian Smart
5// Modified by:
6// Created:     01/02/97
7// RCS-ID:      $Id: statbox.h 37393 2006-02-08 21:47:09Z VZ $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_MSW_STATBOX_H_
13#define _WX_MSW_STATBOX_H_
14
15// Group box
16class WXDLLEXPORT wxStaticBox : public wxStaticBoxBase
17{
18public:
19    wxStaticBox() { }
20
21    wxStaticBox(wxWindow *parent, wxWindowID id,
22                const wxString& label,
23                const wxPoint& pos = wxDefaultPosition,
24                const wxSize& size = wxDefaultSize,
25                long style = 0,
26                const wxString& name = wxStaticBoxNameStr)
27    {
28        Create(parent, id, label, pos, size, style, name);
29    }
30
31    bool Create(wxWindow *parent, wxWindowID id,
32                const wxString& label,
33                const wxPoint& pos = wxDefaultPosition,
34                const wxSize& size = wxDefaultSize,
35                long style = 0,
36                const wxString& name = wxStaticBoxNameStr);
37
38    /// Implementation only
39    virtual void GetBordersForSizer(int *borderTop, int *borderOther) const;
40
41    virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
42
43protected:
44    virtual wxSize DoGetBestSize() const;
45
46    // choose the default border for this window
47    virtual wxBorder GetDefaultBorder() const;
48
49#ifndef __WXWINCE__
50public:
51    virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
52
53protected:
54    // return the region with all the windows inside this static box excluded
55    virtual WXHRGN MSWGetRegionWithoutChildren();
56
57    // remove the parts which are painted by static box itself from the given
58    // region which is embedded in a rectangle (0, 0)-(w, h)
59    virtual void MSWGetRegionWithoutSelf(WXHRGN hrgn, int w, int h);
60
61    // paint the given rectangle with our background brush/colour
62    virtual void PaintBackground(wxDC& dc, const struct tagRECT& rc);
63    // paint the foreground of the static box
64    virtual void PaintForeground(wxDC& dc, const struct tagRECT& rc);
65
66    void OnPaint(wxPaintEvent& event);
67#endif // !__WXWINCE__
68
69    DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox)
70};
71
72#endif // _WX_MSW_STATBOX_H_
73
74