Anonymous avatar Anonymous committed 91bf0c3

Fixed custom view color reversal issue during design time on 10.6

Comments (0)

Files changed (4)

 #import "BWCustomView.h"
 #import "NSColor+BWAdditions.h"
 #import "NSWindow+BWAdditions.h"
+#import "NSApplication+BWAdditions.h"
 #import "IBColor.h"
 
 @interface BWCustomView (BWCVPrivate)
 	else
 		borderColor = [self customViewDarkBorderColor];	
 		
-	// Note: these two colors are reversed in IBColor
+	// Note: These two colors are reversed in IBColor in 10.5
 	if (self.subviews.count == 0)
 	{
-		[[self containerCustomViewBackgroundColor] set];
+		if ([NSApplication isOnLeopard])
+			[[self containerCustomViewBackgroundColor] set];
+		else
+			[[self childlessCustomViewBackgroundColor] set];
 		NSRectFillUsingOperation(rect,NSCompositeSourceOver);
 	}
 	else
 	{
-		[[self childlessCustomViewBackgroundColor] set];
+		if ([NSApplication isOnLeopard])
+			[[self childlessCustomViewBackgroundColor] set];
+		else
+			[[self containerCustomViewBackgroundColor] set];
 		NSRectFillUsingOperation(rect,NSCompositeSourceOver);
 	}
 		

BWSplitViewInspectorAutosizingButtonCell.m

 #import "BWSplitViewInspectorAutosizingView.h"
 #import "NSColor+BWAdditions.h"
 #import "NSImage+BWAdditions.h"
+#import "NSApplication+BWAdditions.h"
 #import "IBColor.h"
 
 static NSColor *insetColor, *borderColor, *viewColor, *lineColor, *insetLineColor;
 {
 	insetColor = [IBColor customViewLightBorderColor];
 	borderColor = [IBColor customViewDarkBorderColor];
-	viewColor = [IBColor containerCustomViewBackgroundColor];
+	
+	// Note: These two colors are reversed in IBColor in 10.5
+	if ([NSApplication isOnLeopard])
+		viewColor = [IBColor containerCustomViewBackgroundColor];
+	else
+		viewColor = [IBColor childlessCustomViewBackgroundColor];
 	
 	lineColor = [[NSColor colorWithCalibratedRed:124.0/255.0 green:139.0/255.0 blue:159.0/255.0 alpha:1.0] retain];
 	insetLineColor = [[[NSColor whiteColor] colorWithAlphaComponent:0.19] retain];

NSApplication+BWAdditions.h

+//
+//  NSApplication+BWAdditions.h
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface NSApplication (BWAdditions) 
+
++ (BOOL)isOnLeopard;
+
+@end

NSApplication+BWAdditions.m

+//
+//  NSApplication+BWAdditions.m
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import "NSApplication+BWAdditions.h"
+
+@implementation NSApplication (BWAdditions)
+
++ (BOOL)isOnLeopard 
+{
+	SInt32 minorVersion, majorVersion;
+	Gestalt(gestaltSystemVersionMajor, &majorVersion);
+	Gestalt(gestaltSystemVersionMinor, &minorVersion);
+	return majorVersion == 10 && minorVersion == 5;
+}
+
+@end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.