aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweaker.h8
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweaker.m10
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