From e2b497f7a650b4ba28431926cf45827a3f19f0c6 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Wed, 8 Aug 2007 04:34:15 +0000 Subject: [PATCH] Implement the wxST_NO_AUTORESIZE style for wxStaticText. Copyright 2007 Software 2000 Ltd. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/cocoa/stattext.mm | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/cocoa/stattext.mm b/src/cocoa/stattext.mm index 6470799b58..d9b5dc5075 100644 --- a/src/cocoa/stattext.mm +++ b/src/cocoa/stattext.mm @@ -82,22 +82,26 @@ void wxStaticText::SetLabel(const wxString& label) [GetNSTextField() setStringValue:wxNSStringWithWxString(GetLabelText(label))]; NSRect oldFrameRect = [GetNSTextField() frame]; NSView *superview = [GetNSTextField() superview]; - wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel Old Position: (%d,%d)"), GetPosition().x, GetPosition().y); - [GetNSTextField() sizeToFit]; - NSRect newFrameRect = [GetNSTextField() frame]; - // Ensure new size is an integer so GetSize returns valid data - newFrameRect.size.height = ceil(newFrameRect.size.height); - newFrameRect.size.width = ceil(newFrameRect.size.width); - if(![superview isFlipped]) + + if(!(GetWindowStyle() & wxST_NO_AUTORESIZE)) { - newFrameRect.origin.y = oldFrameRect.origin.y + oldFrameRect.size.height - newFrameRect.size.height; + wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel Old Position: (%d,%d)"), GetPosition().x, GetPosition().y); + [GetNSTextField() sizeToFit]; + NSRect newFrameRect = [GetNSTextField() frame]; + // Ensure new size is an integer so GetSize returns valid data + newFrameRect.size.height = ceil(newFrameRect.size.height); + newFrameRect.size.width = ceil(newFrameRect.size.width); + if(![superview isFlipped]) + { + newFrameRect.origin.y = oldFrameRect.origin.y + oldFrameRect.size.height - newFrameRect.size.height; + } + [GetNSTextField() setFrame:newFrameRect]; + // New origin (wx coords) should always match old origin + wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel New Position: (%d,%d)"), GetPosition().x, GetPosition().y); + [superview setNeedsDisplayInRect:newFrameRect]; } - [GetNSTextField() setFrame:newFrameRect]; - // New origin (wx coords) should always match old origin - wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel New Position: (%d,%d)"), GetPosition().x, GetPosition().y); - [[GetNSTextField() superview] setNeedsDisplayInRect:oldFrameRect]; - [[GetNSTextField() superview] setNeedsDisplayInRect:newFrameRect]; + [superview setNeedsDisplayInRect:oldFrameRect]; } wxString wxStaticText::GetLabel() const -- 2.45.2