From e2bb8aa49243734ea094c0c81a072f7570507d95 Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Mon, 12 Jul 2010 17:07:19 +0000 Subject: [Author: rsesek] Add support for NSSegmentedControl to GTMUILocalizer. This fixes http://code.google.com/p/google-toolbox-for-mac/issues/detail?id=53. R=dmaclach APPROVED=dmaclach DELTA=142 (137 added, 1 deleted, 4 changed) --- AppKit/GTMUILocalizer.m | 10 +++ AppKit/GTMUILocalizerTestWindow.xib | 79 ++++++++++++++++++++-- .../TestData/GTMUILocalizerWindow3State.gtmUTState | 32 +++++++++ .../Resources/English.lproj/Localizable.strings | 3 + UnitTesting/GTMAppKit+UnitTesting.m | 20 ++++++ 5 files changed, 140 insertions(+), 4 deletions(-) diff --git a/AppKit/GTMUILocalizer.m b/AppKit/GTMUILocalizer.m index 16d00dd..56b0b7d 100644 --- a/AppKit/GTMUILocalizer.m +++ b/AppKit/GTMUILocalizer.m @@ -276,6 +276,16 @@ [self localizeObject:[column headerCell] recursively:recursive]; } } + + // Do NSSegmentedControl segments. + if ([view isKindOfClass:[NSSegmentedControl class]]) { + NSSegmentedControl *segmentedControl = (NSSegmentedControl *)view; + for (NSInteger i = 0; i < [segmentedControl segmentCount]; ++i) { + NSString *label = [segmentedControl labelForSegment:i]; + [segmentedControl setLabel:[self localizedStringForString:label] + forSegment:i]; + } + } } - (void)localizeMenu:(NSMenu *)menu recursively:(BOOL)recursive { diff --git a/AppKit/GTMUILocalizerTestWindow.xib b/AppKit/GTMUILocalizerTestWindow.xib index 923c61b..6161945 100644 --- a/AppKit/GTMUILocalizerTestWindow.xib +++ b/AppKit/GTMUILocalizerTestWindow.xib @@ -12,9 +12,9 @@ YES + - YES @@ -1168,6 +1168,42 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{42, 66}, {106, 45}} + + + 268 + {{198, 38}, {185, 24}} + + YES + + 67239424 + 0 + + LucidaGrande + 13 + 16 + + + + YES + + ^Seg1 + 0 + + + ^Seg2 + 1 + YES + 0 + + + ^Seg3 + 0 + + + 1 + 1 + + {480, 270} @@ -1594,6 +1630,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + @@ -1822,6 +1859,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + 169 + + + YES + + + + + + 170 + + + @@ -1847,6 +1898,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 151.IBPluginDependency 152.IBPluginDependency 16.IBPluginDependency + 169.IBPluginDependency + 170.IBPluginDependency 2.IBPluginDependency 22.IBEditorWindowLastContentRect 22.IBPluginDependency @@ -1909,9 +1962,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{126, 451}, {480, 270}} + {{329, 451}, {480, 270}} com.apple.InterfaceBuilder.CocoaPlugin - {{126, 451}, {480, 270}} + {{329, 451}, {480, 270}} {196, 240} {{357, 418}, {480, 270}} @@ -1926,6 +1979,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin {{960, 479}, {480, 270}} com.apple.InterfaceBuilder.CocoaPlugin {{960, 479}, {480, 270}} @@ -1999,7 +2054,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 168 + 170 @@ -2663,6 +2718,22 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA AppKit.framework/Headers/NSSearchFieldCell.h + + NSSegmentedCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSegmentedCell.h + + + + NSSegmentedControl + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSegmentedControl.h + + NSSplitView NSView diff --git a/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState b/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState index ed88b68..8352b5e 100644 --- a/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState +++ b/AppKit/TestData/GTMUILocalizerWindow3State.gtmUTState @@ -293,6 +293,38 @@ + ViewSubView 3 + + ControlIsEnabled + + ControlSelectedCell + + CellState + 0 + CellTag + 0 + CellTitle + + CellValue + 1 + + ControlTag + 0 + ControlType + NSSegmentedControl + ControlValue + 1 + Segment 0 + Localized Segment 1 + Segment 1 + Localized Segment 2 + Segment 2 + Localized Segment 3 + SegmentCount + 3 + ViewIsHidden + + WindowIsMain diff --git a/AppKit/TestData/Resources/English.lproj/Localizable.strings b/AppKit/TestData/Resources/English.lproj/Localizable.strings index d70d574..e6452a8 100644 --- a/AppKit/TestData/Resources/English.lproj/Localizable.strings +++ b/AppKit/TestData/Resources/English.lproj/Localizable.strings @@ -37,6 +37,9 @@ "Radio 1" = "Localized Radio 1"; "Radio 2" = "Localized Radio 2"; "Box" = "Localized Box"; +"Seg1" = "Localized Segment 1"; +"Seg2" = "Localized Segment 2"; +"Seg3" = "Localized Segment 3"; // Binding localization strings. "MultipleValuesPlaceholder" = "MultipleValuesPlaceholder"; diff --git a/UnitTesting/GTMAppKit+UnitTesting.m b/UnitTesting/GTMAppKit+UnitTesting.m index ad883e4..1fc0dc1 100644 --- a/UnitTesting/GTMAppKit+UnitTesting.m +++ b/UnitTesting/GTMAppKit+UnitTesting.m @@ -425,6 +425,26 @@ GTM_METHOD_CHECK(NSObject, gtm_unitTestEncodeState:); @end +@implementation NSSegmentedControl (GTMUnitTestingAdditions) + +// Encodes the state of an NSSegmentedControl and all its segments. +// +// Arguments: +// inCoder - the coder to encode state into +- (void)gtm_unitTestEncodeState:(NSCoder*)inCoder { + [super gtm_unitTestEncodeState:inCoder]; + + NSInteger segmentCount = [self segmentCount]; + ENCODE_NSINTEGER(inCoder, segmentCount, @"SegmentCount"); + + for (NSInteger i = 0; i < segmentCount; ++i) { + NSString *key = [NSString stringWithFormat:@"Segment %d", i]; + [inCoder encodeObject:[self labelForSegment:i] forKey:key]; + } +} + +@end + @implementation NSView (GTMUnitTestingAdditions) // Returns an image containing a representation of the object -- cgit v1.2.3