source: trunk/macosx/PeerProgressIndicatorCell.m @ 11617

Last change on this file since 11617 was 11617, checked in by livings124, 11 years ago

update the copyright years in the Mac code to 2011

  • Property Id set to /Users/mitchell/Desktop/Transmission/macosx/ActionMenuRatioToDisplayRatioTransformer.h
  • Property svn:keywords set to Date Rev Author Id
File size: 3.7 KB
Line 
1/******************************************************************************
2 * $Id: PeerProgressIndicatorCell.m 11617 2011-01-01 20:42:14Z livings124 $
3 *
4 * Copyright (c) 2007-2011 Transmission authors and contributors
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 *****************************************************************************/
24
25#import "PeerProgressIndicatorCell.h"
26#import "NSApplicationAdditions.h"
27#import "NSStringAdditions.h"
28
29#import "transmission.h" // required by utils.h
30#import "utils.h"
31
32@implementation PeerProgressIndicatorCell
33
34- (id) copyWithZone: (NSZone *) zone
35{
36    PeerProgressIndicatorCell * copy = [super copyWithZone: zone];
37    copy->fAttributes = [fAttributes retain];
38   
39    return copy;
40}
41
42- (void) dealloc
43{
44    [fAttributes release];
45    [super dealloc];
46}
47
48- (void) setSeed: (BOOL) seed
49{
50    fSeed = seed;
51}
52
53- (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) controlView
54{
55    if ([[NSUserDefaults standardUserDefaults] boolForKey: @"DisplayPeerProgressBarNumber"])
56    {
57        if (!fAttributes)
58        {
59            NSMutableParagraphStyle * paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
60            [paragraphStyle setAlignment: NSRightTextAlignment];
61           
62            fAttributes = [[NSDictionary alloc] initWithObjectsAndKeys: [NSFont systemFontOfSize: 11.0], NSFontAttributeName,
63                                                                            paragraphStyle, NSParagraphStyleAttributeName, nil];
64            [paragraphStyle release];
65        }
66       
67        [[NSString percentString: [self floatValue] longDecimals: NO] drawInRect: cellFrame withAttributes: fAttributes];
68    }
69    else
70    {
71        //attributes not needed anymore
72        if (fAttributes)
73        {
74            [fAttributes release];
75            fAttributes = nil;
76        }
77       
78        [super drawWithFrame: cellFrame inView: controlView];
79        if (fSeed)
80        {
81            NSImage * checkImage = [NSImage imageNamed: @"CompleteCheck.png"];
82           
83            const NSSize imageSize = [checkImage size];
84            const NSRect rect = NSMakeRect(NSMidX(cellFrame) - imageSize.width * 0.5, NSMidY(cellFrame) - imageSize.height * 0.5,
85                                            imageSize.width, imageSize.height);
86           
87            if ([NSApp isOnSnowLeopardOrBetter])
88                [checkImage drawInRect: rect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0 respectFlipped: YES
89                        hints: nil];
90            else
91            {
92                [checkImage setFlipped: YES];
93                [checkImage drawInRect: rect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0];
94            }
95        }
96    }
97}
98
99@end
Note: See TracBrowser for help on using the repository browser.