]> git.saurik.com Git - wxWidgets.git/blob - src/os2/statbox.cpp
honour min/max size in wxMGL's wxWindow::DoSetSize
[wxWidgets.git] / src / os2 / statbox.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: statbox.cpp
3 // Purpose: wxStaticBox
4 // Author: David Webster
5 // Modified by:
6 // Created: ??/??/98
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // For compilers that support precompilation, includes "wx.h".
13 #include "wx/wxprec.h"
14
15 #include "wx/window.h"
16 #include "wx/os2/private.h"
17
18 #ifndef WX_PRECOMP
19 #include "wx/app.h"
20 #include "wx/dcclient.h"
21 #endif
22
23 #include "wx/statbox.h"
24
25 IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
26
27 bool wxStaticBox::Create(
28 wxWindow* pParent
29 , wxWindowID vId
30 , const wxString& rsLabel
31 , const wxPoint& rPos
32 , const wxSize& rSize
33 , long lStyle
34 , const wxString& rsName
35 )
36 {
37 if(!OS2CreateControl( pParent
38 ,vId
39 ,rPos
40 ,rSize
41 ,lStyle
42 #if wxUSE_VALIDATORS
43 ,wxDefaultValidator
44 #endif
45 ,rsName
46 ))
47 {
48 return FALSE;
49 }
50
51 wxPoint vPos(0,0);
52 wxSize vSize(0,0);
53
54 if (!OS2CreateControl( "STATIC"
55 ,SS_GROUPBOX
56 ,vPos
57 ,vSize
58 ,rsLabel
59 ))
60 {
61 return FALSE;
62 }
63
64 wxColour vColour;
65
66 vColour.Set(wxString("BLACK"));
67
68 LONG lColor = (LONG)vColour.GetPixel();
69
70 ::WinSetPresParam( m_hWnd
71 ,PP_FOREGROUNDCOLOR
72 ,sizeof(LONG)
73 ,(PVOID)&lColor
74 );
75 lColor = (LONG)m_backgroundColour.GetPixel();
76
77 ::WinSetPresParam( m_hWnd
78 ,PP_BACKGROUNDCOLOR
79 ,sizeof(LONG)
80 ,(PVOID)&lColor
81 );
82 wxFont* pTextFont = new wxFont( 10
83 ,wxMODERN
84 ,wxNORMAL
85 ,wxNORMAL
86 );
87 SetFont(*pTextFont);
88 SetSize( rPos.x
89 ,rPos.y
90 ,rSize.x
91 ,rSize.y
92 );
93 delete pTextFont;
94 return TRUE;
95 } // end of wxStaticBox::Create
96
97 wxSize wxStaticBox::DoGetBestSize() const
98 {
99 int nCx;
100 int nCy;
101 int wBox;
102
103 wxGetCharSize( GetHWND()
104 ,&nCx
105 ,&nCy
106 ,(wxFont*)&GetFont()
107 );
108 GetTextExtent( wxGetWindowText(m_hWnd)
109 ,&wBox
110 ,&nCy
111 );
112 wBox += 3 * nCx;
113
114 int hBox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nCy);
115
116 return wxSize( wBox
117 ,hBox
118 );
119 } // end of wxStaticBox::DoGetBestSize
120
121 MRESULT wxStaticBox::OS2WindowProc(
122 WXUINT nMsg
123 , WXWPARAM wParam
124 , WXLPARAM lParam
125 )
126 {
127 return wxControl::OS2WindowProc(nMsg, wParam, lParam);
128 } // end of wxStaticBox::OS2WindowProc
129
130