UI: call view border
Hide split view divider and remove blur border on call view.
Change-Id: I3422b98cd7d02508d2e314d07884ebf17a28fc4d
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
diff --git a/src/CurrentCallVC.mm b/src/CurrentCallVC.mm
index d2dd465..9493487 100644
--- a/src/CurrentCallVC.mm
+++ b/src/CurrentCallVC.mm
@@ -69,7 +69,7 @@
// Main container
@property (unsafe_unretained) IBOutlet NSSplitView* splitView;
-@property (unsafe_unretained) IBOutlet NSImageView* backgroundImage;
+@property (unsafe_unretained) IBOutlet NSView* backgroundImage;
@property (unsafe_unretained) IBOutlet NSBox* bluerBackgroundEffect;
// Header info
@@ -201,6 +201,8 @@
bluerBackgroundEffect.alphaValue = 0.6;
[audioCallView setWantsLayer:YES];
[audioCallView.layer setBackgroundColor: [[NSColor clearColor] CGColor]];
+ [backgroundImage setWantsLayer: YES];
+ backgroundImage.layer.contentsGravity = kCAGravityResizeAspectFill;
}
-(void) updateDurationLabel
@@ -332,7 +334,6 @@
[headerContainer setHidden:NO];
[previewView setHidden: NO];
[bluerBackgroundEffect setHidden:YES];
- [bluerBackgroundEffect.layer setBackgroundFilters: nil];
[backgroundImage setHidden:YES];
}
@@ -347,17 +348,24 @@
auto it = getConversationFromUid(convUid_, *convModel);
NSImage *image= [self getContactImageOfSize:120.0 withDefaultAvatar:NO];
if(image) {
+ CIImage * ciImage = [[CIImage alloc] initWithData:[image TIFFRepresentation]];
+ CIContext *context = [[CIContext alloc] init];
+ CIFilter *clamp = [CIFilter filterWithName:@"CIAffineClamp"];
+ [clamp setValue:[NSAffineTransform transform] forKey:@"inputTransform"];
+ [clamp setValue:ciImage forKey: kCIInputImageKey];
CIFilter* bluerFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[bluerFilter setDefaults];
- [bluerFilter setValue:[NSNumber numberWithFloat: 30] forKey:@"inputRadius"];
- [bluerBackgroundEffect.layer setBackgroundFilters:@[bluerFilter]];
- [backgroundImage setImage: image];
+ [bluerFilter setValue:[NSNumber numberWithFloat: 9] forKey:@"inputRadius"];
+ [bluerFilter setValue:[clamp valueForKey:kCIOutputImageKey] forKey: kCIInputImageKey];
+ CIImage *result = [bluerFilter valueForKey:kCIOutputImageKey];
+ CGRect extent = [result extent];
+ CGImageRef cgImage = [context createCGImage:result fromRect: [ciImage extent]];
+ NSImage *bluredImage = [[NSImage alloc] initWithCGImage:cgImage size:NSSizeFromCGSize(CGSizeMake(image.size.width, image.size.height))];
+ backgroundImage.layer.contents = bluredImage;
[backgroundImage setHidden:NO];
} else {
- [bluerBackgroundEffect.layer setBackgroundFilters:nil];
[bluerBackgroundEffect setFillColor:[NSColor ringDarkGrey]];
[backgroundImage setHidden:YES];
- [backgroundImage setImage:nil];
}
}
@@ -653,8 +661,6 @@
//background view
[bluerBackgroundEffect setHidden:NO];
[backgroundImage setHidden:NO];
- [backgroundImage setImage:nil];
- [bluerBackgroundEffect setBackgroundFilters:nil];
//outgoing view
[outgoingPersonLabel setStringValue:@""];
[outgoingStateLabel setStringValue:@""];
@@ -1004,4 +1010,9 @@
[[headerContainer animator] setAlphaValue:move];
}
+- (BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex
+{
+ return YES;
+}
+
@end