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

@@ -155,35 +155,44 @@ wxSize wxStaticBox::DoGetBestSize() const
WXLRESULT wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
{
#ifndef __WXWINCE__
switch ( nMsg )
if ( nMsg == WM_NCHITTEST )
{
case WM_NCHITTEST:
{
// This code breaks some other processing such as enter/leave tracking
// so it's off by default.
static int s_useHTClient = -1;
if (s_useHTClient == -1)
s_useHTClient = wxSystemOptions::GetOptionInt(wxT("msw.staticbox.htclient"));
if (s_useHTClient == 1)
{
int xPos = LOWORD(lParam); // horizontal position of cursor
int yPos = HIWORD(lParam); // vertical position of cursor
// This code breaks some other processing such as enter/leave tracking
// so it's off by default.
ScreenToClient(&xPos, &yPos);
static int s_useHTClient = -1;
if (s_useHTClient == -1)
s_useHTClient = wxSystemOptions::GetOptionInt(wxT("msw.staticbox.htclient"));
if (s_useHTClient == 1)
{
int xPos = LOWORD(lParam); // horizontal position of cursor
int yPos = HIWORD(lParam); // vertical position of cursor
// Make sure you can drag by the top of the groupbox, but let
// other (enclosed) controls get mouse events also
if ( yPos < 10 )
return (long)HTCLIENT;
}
}
break;
ScreenToClient(&xPos, &yPos);
// Make sure you can drag by the top of the groupbox, but let
// other (enclosed) controls get mouse events also
if ( yPos < 10 )
return (long)HTCLIENT;
}
}
#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