[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23854] trunk/blender/intern/ghost/intern: Cocoa :

Damien Plisson damien.plisson at yahoo.fr
Thu Oct 15 10:27:32 CEST 2009


Revision: 23854
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23854
Author:   damien78
Date:     2009-10-15 10:27:31 +0200 (Thu, 15 Oct 2009)

Log Message:
-----------
Cocoa : 
- Small changes to make ghost_cocoa compatible with 10.4 + gcc4.0 (the initial goal was to be 10.5+ compatible, but 10.4 is finally also possible)

- Main window title is now in Apple document window title style (proxy icon + filename)

- fix for top menu "Blender" sub-menu not anchored correctly in 10.5

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
    trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2009-10-15 07:07:01 UTC (rev 23853)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2009-10-15 08:27:31 UTC (rev 23854)
@@ -635,6 +635,7 @@
 				
 				[mainMenubar addItem:menuItem];
 				[menuItem release];
+				[NSApp performSelector:@selector(setAppleMenu:) withObject:appMenu]; //Needed for 10.5
 				[appMenu release];
 				
 				//Create the window menu
@@ -815,7 +816,7 @@
 
 GHOST_TSuccess GHOST_SystemCocoa::getModifierKeys(GHOST_ModifierKeys& keys) const
 {
-	NSUInteger modifiers = [[NSApp currentEvent] modifierFlags];
+	unsigned int modifiers = [[NSApp currentEvent] modifierFlags];
 	//Direct query to modifierFlags can be used in 10.6
 
     keys.set(GHOST_kModifierKeyCommand, (modifiers & NSCommandKeyMask) ? true : false);
@@ -1175,7 +1176,7 @@
 {
 	NSEvent *event = (NSEvent *)eventPtr;
 	GHOST_IWindow* window = m_windowManager->getActiveWindow();
-	NSUInteger modifiers;
+	unsigned int modifiers;
 	NSString *characters;
 	GHOST_TKey keyCode;
 	unsigned char ascii;

Modified: trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	2009-10-15 07:07:01 UTC (rev 23853)
+++ trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	2009-10-15 08:27:31 UTC (rev 23854)
@@ -40,13 +40,13 @@
 
 
 // Pixel Format Attributes for the windowed NSOpenGLContext
-static const NSOpenGLPixelFormatAttribute pixelFormatAttrsWindow[] =
+static NSOpenGLPixelFormatAttribute pixelFormatAttrsWindow[] =
 {
 	NSOpenGLPFADoubleBuffer,
 	NSOpenGLPFAAccelerated,
-	NSOpenGLPFAAllowOfflineRenderers,   // NOTE: Needed to connect to secondary GPUs
-	NSOpenGLPFADepthSize, 32,
-	0
+	//NSOpenGLPFAAllowOfflineRenderers,   // Removed to allow 10.4 builds, and 2 GPUs rendering is not used anyway
+	NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute) 32,
+	(NSOpenGLPixelFormatAttribute) 0
 };
 
 #pragma mark Cocoa window delegate object
@@ -187,7 +187,7 @@
 		return;
 	}
 	
-	[m_window setTitle:[NSString stringWithUTF8String:title]];
+	setTitle(title);
 	
 			
 	//Creates the OpenGL View inside the window
@@ -271,8 +271,39 @@
 
 	NSString *windowTitle = [[NSString alloc] initWithUTF8String:title];
 	
-	[m_window setTitle:windowTitle];
+	//Set associated file if applicable
+	if ([windowTitle hasPrefix:@"Blender"])
+	{
+		NSRange fileStrRange;
+		NSString *associatedFileName;
+		int len;
+		
+		fileStrRange.location = [windowTitle rangeOfString:@"["].location+1;
+		len = [windowTitle rangeOfString:@"]"].location - fileStrRange.location;
 	
+		if (len >0)
+		{
+			fileStrRange.length = len;
+			associatedFileName = [windowTitle substringWithRange:fileStrRange];
+			@try {
+				[m_window setRepresentedFilename:associatedFileName];
+			}
+			@catch (NSException * e) {
+				printf("\nInvalid file path given in window title");
+			}
+			[m_window setTitle:[associatedFileName lastPathComponent]];
+		}
+		else {
+			[m_window setTitle:windowTitle];
+			[m_window setRepresentedFilename:@""];
+		}
+
+	} else {
+		[m_window setTitle:windowTitle];
+		[m_window setRepresentedFilename:@""];
+	}
+
+	
 	[windowTitle release];
 	[pool drain];
 }
@@ -501,7 +532,7 @@
 										  defer:YES];
 				//Copy current window parameters
 				[tmpWindow setTitle:[m_window title]];
-				[tmpWindow setRepresentedURL:[m_window representedURL]];
+				[tmpWindow setRepresentedFilename:[m_window representedFilename]];
 				[tmpWindow setReleasedWhenClosed:NO];
 				[tmpWindow setAcceptsMouseMovedEvents:YES];
 				[tmpWindow setDelegate:[m_window delegate]];
@@ -557,7 +588,7 @@
 														defer:YES];
 				//Copy current window parameters
 				[tmpWindow setTitle:[m_window title]];
-				[tmpWindow setRepresentedURL:[m_window representedURL]];
+				[tmpWindow setRepresentedFilename:[m_window representedFilename]];
 				[tmpWindow setReleasedWhenClosed:NO];
 				[tmpWindow setAcceptsMouseMovedEvents:YES];
 				[tmpWindow setDelegate:[m_window delegate]];





More information about the Bf-blender-cvs mailing list