fix top margin for static box sizer when wxDIALOG_UNIT_COMPATIBILITY == 0

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-03-07 23:41:07 +00:00
parent 5dd070c25b
commit 58385af016
2 changed files with 33 additions and 23 deletions

View File

@@ -39,13 +39,14 @@ public:
long style = 0,
const wxString& name = wxStaticBoxNameStr);
/// Implementation
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
/// Implementation only
virtual void GetBordersForSizer(int *borderTop, int *borderOther) const;
protected:
virtual wxSize DoGetBestSize() const;
virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox)

View File

@@ -155,9 +155,7 @@ wxSize wxStaticBox::DoGetBestSize() const
WXLRESULT wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
{
#ifndef __WXWINCE__
switch ( nMsg )
{
case WM_NCHITTEST:
if ( nMsg == WM_NCHITTEST )
{
// This code breaks some other processing such as enter/leave tracking
// so it's off by default.
@@ -178,12 +176,23 @@ WXLRESULT wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPar
return (long)HTCLIENT;
}
}
break;
}
#endif // !__WXWINCE__
return wxControl::MSWWindowProc(nMsg, wParam, lParam);
}
void wxStaticBox::GetBordersForSizer(int *borderTop, int *borderOther) const
{
wxStaticBoxBase::GetBordersForSizer(borderTop, borderOther);
// if not using correct (but backwards cojmpatible) text metrics
// calculations, we need to add some extra margin or otherwise static box
// title is clipped
#if !wxDIALOG_UNIT_COMPATIBILITY
if ( !GetLabel().empty() )
*borderTop += GetCharHeight()/3;
#endif // !wxDIALOG_UNIT_COMPATIBILITY
}
#endif // wxUSE_STATBOX