X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31582e4e11d504a28461d62b05411202d3a906d0..cec46079aebd60314cdc9d1b633a7735770d4d68:/src/msw/stattext.cpp diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp index cc4b995d2d..36ee627375 100644 --- a/src/msw/stattext.cpp +++ b/src/msw/stattext.cpp @@ -123,6 +123,9 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const else msStyle |= SS_LEFT; + // this style is necessary to receive mouse events + msStyle |= SS_NOTIFY; + return msStyle; } @@ -132,7 +135,7 @@ wxSize wxStaticText::DoGetBestSize() const wxFont font(GetFont()); if (!font.Ok()) font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - + dc.SetFont(font); wxCoord widthTextMax, heightTextTotal; @@ -143,6 +146,37 @@ wxSize wxStaticText::DoGetBestSize() const widthTextMax += 2; #endif // __WXWINCE__ + // border takes extra space + // + // TODO: this is probably not wxStaticText-specific and should be moved + wxCoord border; + switch ( GetBorder() ) + { + case wxBORDER_STATIC: + case wxBORDER_SIMPLE: + border = 1; + break; + + case wxBORDER_SUNKEN: + border = 2; + break; + + case wxBORDER_RAISED: + case wxBORDER_DOUBLE: + border = 3; + break; + + default: + wxFAIL_MSG( _T("unknown border style") ); + // fall through + + case wxBORDER_NONE: + border = 0; + } + + widthTextMax += 2*border; + heightTextTotal += 2*border; + wxSize best(widthTextMax, heightTextTotal); CacheBestSize(best); return best;