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]];


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to