diff options
-rw-r--r-- | AppKit/GTMUILocalizerAndLayoutTweaker.h | 8 | ||||
-rw-r--r-- | AppKit/GTMUILocalizerAndLayoutTweaker.m | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/AppKit/GTMUILocalizerAndLayoutTweaker.h b/AppKit/GTMUILocalizerAndLayoutTweaker.h index 2d6e0a4..6562243 100644 --- a/AppKit/GTMUILocalizerAndLayoutTweaker.h +++ b/AppKit/GTMUILocalizerAndLayoutTweaker.h @@ -17,6 +17,7 @@ // #import <Cocoa/Cocoa.h> +#import "GTMDefines.h" @class GTMUILocalizer; @@ -38,6 +39,13 @@ // where sizeToFit doesn't product a view that meets UI guidelines. // Returns the amount the view changed in size. + (NSSize)sizeToFitView:(NSView *)view; + +// If you call sizeToFit on a NSTextField it will try not to word wrap, so it +// can get really wide. This method will keep the width fixed, but figure out +// how tall the textfield needs to be to fit its text. +// Returns the amount the field changed height. ++ (NSUInteger)sizeToFitFixedWidthTextField:(NSTextField *)textField; + @end // This is a Tweaker that will call sizeToFit on everything within it (that diff --git a/AppKit/GTMUILocalizerAndLayoutTweaker.m b/AppKit/GTMUILocalizerAndLayoutTweaker.m index 4f94835..525b424 100644 --- a/AppKit/GTMUILocalizerAndLayoutTweaker.m +++ b/AppKit/GTMUILocalizerAndLayoutTweaker.m @@ -16,7 +16,6 @@ // the License. // -#import "GTMDefines.h" #import "GTMUILocalizerAndLayoutTweaker.h" #import "GTMUILocalizer.h" @@ -91,6 +90,15 @@ static BOOL IsRightAnchored(NSView *view); return SizeToFit(view, NSZeroPoint); } ++ (NSUInteger)sizeToFitFixedWidthTextField:(NSTextField *)textField { + NSRect initialFrame = [textField frame]; + NSSize newSize = [[textField cell] cellSizeForBounds:initialFrame]; + NSRect newFrame = initialFrame; + newFrame.size.height = newSize.height; + [textField setFrame:newFrame]; + return initialFrame.size.height - newSize.height; +} + @end @implementation GTMWidthBasedTweaker |