Changeset 1055
- Timestamp:
- Nov 5, 2006, 8:35:00 PM (16 years ago)
- Location:
- trunk/macosx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/Badger.h
r794 r1055 30 30 @interface Badger : NSObject { 31 31 32 NSImage * fDockIcon, * fBadgedDockIcon, 33 * fBadge, * fUploadBadge, * fDownloadBadge; 32 NSImage * fDockIcon, * fBadge, * fUploadBadge, * fDownloadBadge; 34 33 35 34 NSDictionary * fAttributes; 36 37 NSLock * fLock; 38 39 int fCompleted; 40 BOOL fSpeedShown; 35 BOOL fNonDefault; 41 36 } 42 37 -
trunk/macosx/Badger.m
r794 r1055 40 40 fBadge = [NSImage imageNamed: @"Badge"]; 41 41 fDockIcon = [[NSApp applicationIconImage] copy]; 42 fBadgedDockIcon = [fDockIcon copy];43 42 fUploadBadge = [NSImage imageNamed: @"UploadBadge"]; 44 43 fDownloadBadge = [NSImage imageNamed: @"DownloadBadge"]; … … 57 56 [stringShadow release]; 58 57 59 fLock = [[NSLock alloc] init]; 60 61 fCompleted = 0; 62 fSpeedShown = NO; 58 fNonDefault = NO; 63 59 } 64 60 … … 69 65 { 70 66 [fDockIcon release]; 71 [fBadgedDockIcon release];72 67 [fAttributes release]; 73 [fLock release];74 68 75 69 [super dealloc]; … … 78 72 - (void) updateBadgeWithCompleted: (int) completed uploadRate: (float) uploadRate downloadRate: (float) downloadRate 79 73 { 80 NSImage * dockIcon = nil;81 74 NSSize iconSize = [fDockIcon size]; 82 75 83 [fLock lock]; //acquire lock to ensure completed badge is accurate84 85 //set completed badge 86 if ( fCompleted != completed)76 NSImage * dockIcon = nil; 77 78 //set completed badge to top right 79 if (completed > 0) 87 80 { 88 81 dockIcon = [fDockIcon copy]; 82 83 NSRect badgeRect; 84 badgeRect.size = [fBadge size]; 85 badgeRect.origin.x = iconSize.width - badgeRect.size.width; 86 badgeRect.origin.y = iconSize.height - badgeRect.size.height; 87 88 [dockIcon lockFocus]; 89 89 90 //set completed badge to top right 91 if (completed > 0) 92 { 93 NSRect badgeRect; 94 badgeRect.size = [fBadge size]; 95 badgeRect.origin.x = iconSize.width - badgeRect.size.width; 96 badgeRect.origin.y = iconSize.height - badgeRect.size.height; 97 98 [dockIcon lockFocus]; 99 100 //place badge 101 [fBadge compositeToPoint: badgeRect.origin operation: NSCompositeSourceOver]; 102 103 //ignore shadow of badge when placing string 104 float badgeBottomExtra = 5.0; 105 badgeRect.size.height -= badgeBottomExtra; 106 badgeRect.origin.y += badgeBottomExtra; 107 108 //place badge text 109 [self badgeString: [NSString stringWithInt: completed] forRect: badgeRect]; 110 111 [dockIcon unlockFocus]; 112 } 90 //place badge 91 [fBadge compositeToPoint: badgeRect.origin operation: NSCompositeSourceOver]; 113 92 114 [fBadgedDockIcon release]; 115 fBadgedDockIcon = [dockIcon copy]; 93 //ignore shadow of badge when placing string 94 float badgeBottomExtra = 5.0; 95 badgeRect.size.height -= badgeBottomExtra; 96 badgeRect.origin.y += badgeBottomExtra; 116 97 117 fCompleted = completed; 98 //place badge text 99 [self badgeString: [NSString stringWithInt: completed] forRect: badgeRect]; 100 101 [dockIcon unlockFocus]; 118 102 } 119 120 [fLock unlock];121 103 122 104 //set upload and download rate badges … … 130 112 if (speedShown) 131 113 { 114 if (!dockIcon) 115 dockIcon = [fDockIcon copy]; 116 132 117 NSRect badgeRect; 133 118 badgeRect.size = [fUploadBadge size]; … … 139 124 stringRect.size.height -= badgeBottomExtra; 140 125 stringRect.origin.y += badgeBottomExtra; 141 142 if (!dockIcon)143 dockIcon = [fBadgedDockIcon copy];144 126 145 127 [dockIcon lockFocus]; … … 173 155 [dockIcon unlockFocus]; 174 156 } 175 176 if ( dockIcon || fSpeedShown)157 158 if (fNonDefault || dockIcon) 177 159 { 178 160 if (!dockIcon) 179 dockIcon = [fBadgedDockIcon copy]; 180 161 { 162 fNonDefault = NO; 163 dockIcon = [fDockIcon retain]; 164 } 165 else 166 fNonDefault = YES; 167 181 168 [NSApp setApplicationIconImage: dockIcon]; 182 169 [dockIcon release]; 183 170 } 184 185 fSpeedShown = speedShown;186 171 } 187 172 188 173 - (void) clearBadge 189 174 { 190 [fBadgedDockIcon release];191 fBadgedDockIcon = [fDockIcon copy];192 193 175 [NSApp setApplicationIconImage: fDockIcon]; 194 195 fCompleted = 0; 196 fSpeedShown = NO; 176 fNonDefault = NO; 197 177 } 198 178
Note: See TracChangeset
for help on using the changeset viewer.