]> git.saurik.com Git - wxWidgets.git/blame - src/univ/statbox.cpp
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / src / univ / statbox.cpp
CommitLineData
1e6feb95 1/////////////////////////////////////////////////////////////////////////////
80fdcdb9 2// Name: src/univ/statbox.cpp
1e6feb95
VZ
3// Purpose: wxStaticBox implementation
4// Author: Vadim Zeitlin
5// Modified by:
6// Created: 25.08.00
442b35b5 7// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
65571936 8// Licence: wxWindows licence
1e6feb95
VZ
9/////////////////////////////////////////////////////////////////////////////
10
11// ============================================================================
12// declarations
13// ============================================================================
14
15// ----------------------------------------------------------------------------
16// headers
17// ----------------------------------------------------------------------------
18
1e6feb95
VZ
19#include "wx/wxprec.h"
20
21#ifdef __BORLANDC__
22 #pragma hdrstop
23#endif
24
25#if wxUSE_STATBOX
26
27#ifndef WX_PRECOMP
28 #include "wx/dc.h"
29 #include "wx/statbox.h"
30 #include "wx/validate.h"
31#endif
32
33#include "wx/univ/renderer.h"
34
35// ============================================================================
36// implementation
37// ============================================================================
38
1e6feb95
VZ
39// ----------------------------------------------------------------------------
40// wxStaticBox
41// ----------------------------------------------------------------------------
42
43bool wxStaticBox::Create(wxWindow *parent,
44 wxWindowID id,
45 const wxString &label,
46 const wxPoint &pos,
47 const wxSize &size,
48 long style,
49 const wxString &name)
50{
3dddebb1
MW
51 // FIXME refresh just the right/bottom parts affected in OnSize
52 style |= wxFULL_REPAINT_ON_RESIZE;
53
1e6feb95 54 if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
a290fa5a 55 return false;
1e6feb95
VZ
56
57 SetLabel(label);
58
a290fa5a 59 return true;
1e6feb95
VZ
60}
61
62void wxStaticBox::DoDraw(wxControlRenderer *renderer)
63{
64 // we never have a border, so don't call the base class version which draws
65 // it
66 renderer->DrawFrame();
67}
68
69// ----------------------------------------------------------------------------
70// geometry
71// ----------------------------------------------------------------------------
72
73wxRect wxStaticBox::GetBorderGeometry() const
74{
75 // FIXME should use the renderer here
76 wxRect rect;
77 rect.width =
78 rect.x = GetCharWidth() / 2 + 1;
79 rect.y = GetCharHeight() + 1;
80 rect.height = rect.y / 2;
81
82 return rect;
83}
84
85wxPoint wxStaticBox::GetBoxAreaOrigin() const
86{
87 wxPoint pt = wxControl::GetClientAreaOrigin();
88 wxRect rect = GetBorderGeometry();
89 pt.x += rect.x;
90 pt.y += rect.y;
91
92 return pt;
93}
94
95#if 0
96void wxStaticBox::DoSetClientSize(int width, int height)
97{
98 wxRect rect = GetBorderGeometry();
99
100 wxControl::DoSetClientSize(width + rect.x + rect.width,
101 height + rect.y + rect.height);
102}
103
104void wxStaticBox::DoGetClientSize(int *width, int *height) const
105{
106 wxControl::DoGetClientSize(width, height);
107
108 wxRect rect = GetBorderGeometry();
109 if ( width )
110 *width -= rect.x + rect.width;
111 if ( height )
112 *height -= rect.y + rect.height;
113}
114
115#endif // 0
116
117#endif // wxUSE_STATBOX
118