X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f23c28713735c2f2f5fc70cc3961a25bc5d9c62..4b601a59b5f303a8866a18c90fff90aff393c6b7:/src/msw/stattext.cpp diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp index 7a20a94ae0..a2862c2179 100644 --- a/src/msw/stattext.cpp +++ b/src/msw/stattext.cpp @@ -101,6 +101,11 @@ bool wxStaticText::Create(wxWindow *parent, // need to do many operation on it for ellipsization&markup support SetLabel(label); + // as we didn't pass the correct label to MSWCreateControl(), it didn't set + // the initial size correctly -- do it now + InvalidateBestSize(); + SetInitialSize(size); + // NOTE: if the label contains ampersand characters which are interpreted as // accelerators, they will be rendered (at least on WinXP) only if the // static text is placed inside a window class which correctly handles @@ -142,7 +147,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const return msStyle; } -wxSize wxStaticText::DoGetBestSize() const +wxSize wxStaticText::DoGetBestClientSize() const { wxClientDC dc(const_cast(this)); wxFont font(GetFont()); @@ -159,40 +164,7 @@ 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; + return wxSize(widthTextMax, heightTextTotal); } void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)