Blame client/iOS/Views/RDPSessionView.m

Packit 1fb8d4
/*
Packit 1fb8d4
 RDP Session View
Packit 1fb8d4
 
Packit 1fb8d4
 Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit 1fb8d4
 
Packit 1fb8d4
 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. 
Packit 1fb8d4
 If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#import "RDPSessionView.h"
Packit 1fb8d4
Packit 1fb8d4
@implementation RDPSessionView
Packit 1fb8d4
Packit 1fb8d4
- (void)setSession:(RDPSession*)session
Packit 1fb8d4
{
Packit 1fb8d4
    _session = session;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (void)awakeFromNib
Packit 1fb8d4
{
Packit 1fb8d4
    [super awakeFromNib];
Packit 1fb8d4
    _session = nil;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (void)drawRect:(CGRect)rect 
Packit 1fb8d4
{
Packit 1fb8d4
	if(_session != nil && [_session bitmapContext])
Packit 1fb8d4
	{
Packit 1fb8d4
		CGContextRef context = UIGraphicsGetCurrentContext();
Packit 1fb8d4
		CGImageRef cgImage = CGBitmapContextCreateImage([_session bitmapContext]);
Packit 1fb8d4
Packit 1fb8d4
        CGContextTranslateCTM(context, 0, [self bounds].size.height);
Packit 1fb8d4
        CGContextScaleCTM(context, 1.0, -1.0);      
Packit 1fb8d4
        CGContextClipToRect(context, CGRectMake(rect.origin.x, [self bounds].size.height - rect.origin.y - rect.size.height, rect.size.width, rect.size.height));
Packit 1fb8d4
        CGContextDrawImage(context, CGRectMake(0, 0, [self bounds].size.width, [self bounds].size.height), cgImage);        
Packit 1fb8d4
		
Packit 1fb8d4
        CGImageRelease(cgImage);
Packit 1fb8d4
	}
Packit 1fb8d4
    else
Packit 1fb8d4
    {
Packit 1fb8d4
        // just clear the screen with black
Packit 1fb8d4
        [[UIColor blackColor] set];
Packit 1fb8d4
        UIRectFill([self bounds]);        
Packit 1fb8d4
    }
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (void)dealloc {
Packit 1fb8d4
    [super dealloc];
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
@end