Adjust the client area origin and the client size of the MSW wxStaticBox according to the guidelines on http://msdn.microsoft.com/en-us/library/aa511279.aspx. This is so widgets that are children of the static box will not overlap the label or box borders.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -43,6 +43,10 @@ public:
|
|||||||
// returns true if the platform should explicitly apply a theme border
|
// returns true if the platform should explicitly apply a theme border
|
||||||
virtual bool CanApplyThemeBorder() const { return false; }
|
virtual bool CanApplyThemeBorder() const { return false; }
|
||||||
|
|
||||||
|
virtual wxPoint GetClientAreaOrigin() const;
|
||||||
|
virtual void DoGetClientSize(int *width, int *height) const;
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
|
@@ -528,4 +528,26 @@ void wxStaticBox::OnPaint(wxPaintEvent& WXUNUSED(event))
|
|||||||
|
|
||||||
#endif // !__WXWINCE__
|
#endif // !__WXWINCE__
|
||||||
|
|
||||||
|
|
||||||
|
wxPoint wxStaticBox::GetClientAreaOrigin() const
|
||||||
|
{
|
||||||
|
// See: http://msdn.microsoft.com/en-us/library/aa511279.aspx
|
||||||
|
wxPoint pt = ConvertDialogToPixels(wxPoint(6,11));
|
||||||
|
return pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxStaticBox::DoGetClientSize(int *width, int *height) const
|
||||||
|
{
|
||||||
|
// See: http://msdn.microsoft.com/en-us/library/aa511279.aspx
|
||||||
|
wxPoint lr = ConvertDialogToPixels(wxPoint(6,7));
|
||||||
|
wxPoint ul = GetClientAreaOrigin();
|
||||||
|
wxSize sz = GetSize();
|
||||||
|
|
||||||
|
if (width)
|
||||||
|
*width = sz.x - ul.x - lr.x;
|
||||||
|
if (height)
|
||||||
|
*height = sz.y - ul.y - lr.x;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_STATBOX
|
#endif // wxUSE_STATBOX
|
||||||
|
Reference in New Issue
Block a user