]> granicus.if.org Git - transmission/commitdiff
#5026 StatusBarView doesn't fully match toolbar on 10.7+
authorMitchell Livingston <livings124@transmissionbt.com>
Thu, 30 Aug 2012 02:37:00 +0000 (02:37 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Thu, 30 Aug 2012 02:37:00 +0000 (02:37 +0000)
macosx/StatusBarView.h
macosx/StatusBarView.m

index aa476c77db484d9a2ab50b2b49688d33106667de..ad6772651555ddb8d8c3752ee838b894fb3d85b5 100644 (file)
  *****************************************************************************/
 
 #import <Cocoa/Cocoa.h>
+#import <QuartzCore/QuartzCore.h>
 
 @interface StatusBarView : NSView
 {
     NSGradient * fGradient;
+    CIImage * fNoiseImage;
 }
 
 @end
index 46c331fd9c0da914c07c9c4b3ceb5e498685e844..112c86bd252ec8901b173068b5cfe7de5df3adc0 100644 (file)
@@ -23,6 +23,8 @@
  *****************************************************************************/
 
 #import "StatusBarView.h"
+#import "NSApplicationAdditions.h"
+#import <QuartzCore/QuartzCore.h>
 
 @interface StatusBarView (Private)
 
         NSColor * darkColor = [NSColor colorWithCalibratedRed: 155.0/255.0 green: 155.0/255.0 blue: 155.0/255.0 alpha: 1.0];
         fGradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
         
-        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reload)
-            name: NSWindowDidBecomeMainNotification object: [self window]];
-        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reload)
-            name: NSWindowDidResignMainNotification object: [self window]];
+        //noise only for 10.7 + 
+        if([NSApp isOnLionOrBetter])
+        {
+            CIFilter * randomFilter = [CIFilter filterWithName: @"CIRandomGenerator"];
+            [randomFilter setDefaults];
+            
+            fNoiseImage = [randomFilter valueForKey: @"outputImage"];
+            
+            CIFilter * monochromeFilter = [CIFilter filterWithName: @"CIColorMonochrome"];
+            [monochromeFilter setDefaults];
+            [monochromeFilter setValue: fNoiseImage forKey: @"inputImage"];
+            CIColor * monoFilterColor = [CIColor colorWithRed:1.0 green:1.0 blue:1.0];
+            [monochromeFilter setValue: monoFilterColor forKey: @"inputColor"];
+            fNoiseImage = [[monochromeFilter valueForKey:@"outputImage"] retain];
+        }
+        else
+            fNoiseImage = nil;
+        
+        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reload) name: NSWindowDidBecomeMainNotification object: [self window]];
+        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reload) name: NSWindowDidResignMainNotification object: [self window]];
     }
     return self;
 }
@@ -51,7 +69,7 @@
 - (void) dealloc
 {
     [[NSNotificationCenter defaultCenter] removeObserver: self];
-    
+    [fNoiseImage release];
     [fGradient release];
     [super dealloc];
 }
     }
     
     NSRectFillListWithColors(gridRects, colorRects, count);
+    
+    [fNoiseImage drawInRect: rect
+                   fromRect: [self convertRectToBacking: rect]
+                  operation: NSCompositeSourceOver
+                   fraction: 0.15];
 }
 
 @end