Merge lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag into lp:ubuntuone-ios-music
- fix-album-scroll-lag
- Merge into trunk
Proposed by
Zachery Bir
Status: | Merged |
---|---|
Approved by: | Zachery Bir |
Approved revision: | no longer in the source branch. |
Merged at revision: | 220 |
Proposed branch: | lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag |
Merge into: | lp:ubuntuone-ios-music |
Diff against target: |
1083 lines (+308/-292) 11 files modified
U1Music-Info.plist (+2/-2) about/about.html (+1/-1) utilities/Globals.h (+1/-0) utilities/Globals.m (+6/-0) utilities/operations/AlbumArtLoader.h (+1/-2) utilities/operations/AlbumArtLoader.m (+76/-22) view_controllers/AlbumListViewController.m (+11/-35) view_controllers/AlbumViewController.m (+11/-10) view_controllers/ArtistViewController.m (+11/-35) view_controllers/SongViewController.m (+11/-5) xibs/SongViewController.xib (+177/-180) |
To merge this branch: | bzr merge lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Paul Hummer (community) | Approve | ||
Review via email: mp+111661@code.launchpad.net |
Commit message
Description of the change
This branch attempts to fix the scroll lag seen on the Albums view by fetching, resizing, and loading the images in the background.
I think there is still some work to be done, since I can still make the view lag a bit on first load (via the network).
To post a comment you must log in.
Revision history for this message
Paul Hummer (rockstar) : | # |
review:
Approve
- 220. By Zachery Bir
-
Merged fix-album-
scroll- lag branch
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'U1Music-Info.plist' |
2 | --- U1Music-Info.plist 2012-06-15 22:22:10 +0000 |
3 | +++ U1Music-Info.plist 2012-06-22 18:48:18 +0000 |
4 | @@ -24,7 +24,7 @@ |
5 | <key>CFBundlePackageType</key> |
6 | <string>APPL</string> |
7 | <key>CFBundleShortVersionString</key> |
8 | - <string>2.3</string> |
9 | + <string>2.4</string> |
10 | <key>CFBundleSignature</key> |
11 | <string>UOMS</string> |
12 | <key>CFBundleURLTypes</key> |
13 | @@ -39,7 +39,7 @@ |
14 | </dict> |
15 | </array> |
16 | <key>CFBundleVersion</key> |
17 | - <string>54</string> |
18 | + <string>55</string> |
19 | <key>LSRequiresIPhoneOS</key> |
20 | <false/> |
21 | <key>NSMainNibFile</key> |
22 | |
23 | === modified file 'about/about.html' |
24 | --- about/about.html 2012-06-15 22:22:10 +0000 |
25 | +++ about/about.html 2012-06-22 18:48:18 +0000 |
26 | @@ -15,7 +15,7 @@ |
27 | <h1>Ubuntu One Music</h1> |
28 | |
29 | <p class="center"> |
30 | - Version 2.3 (build 54) |
31 | + Version 2.4 (build 55) |
32 | </p> |
33 | <p class="center"> |
34 | ©2010-2011 Canonical Limited. All rights reserved. |
35 | |
36 | === modified file 'utilities/Globals.h' |
37 | --- utilities/Globals.h 2012-02-29 16:07:56 +0000 |
38 | +++ utilities/Globals.h 2012-06-22 18:48:18 +0000 |
39 | @@ -31,6 +31,7 @@ |
40 | |
41 | NSURL* CachedAlbumArtDirectory( void ); |
42 | NSString* CachedAlbumArtPathForArtId(NSString *anArtId); |
43 | +NSString* CachedAlbumArtPathForArtIdAtSize(NSString *anArtId, int size); |
44 | |
45 | extern NSString * const NOTIF_downloadComplete; |
46 | extern NSString * const NOTIF_removeCachedContent; |
47 | |
48 | === modified file 'utilities/Globals.m' |
49 | --- utilities/Globals.m 2012-02-29 16:55:48 +0000 |
50 | +++ utilities/Globals.m 2012-06-22 18:48:18 +0000 |
51 | @@ -79,6 +79,12 @@ |
52 | return [[CachedAlbumArtDirectory() path] stringByAppendingPathComponent:anArtId]; |
53 | } |
54 | |
55 | +NSString* CachedAlbumArtPathForArtIdAtSize(NSString *anArtId, int size) |
56 | +{ |
57 | + NSURL *sizeDirectory = CachedAlbumArtDirectory(); |
58 | + return [[sizeDirectory path] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%d", anArtId, size]]; |
59 | +} |
60 | + |
61 | NSString * const NOTIF_downloadComplete = @"DownloadComplete"; |
62 | NSString * const NOTIF_removeCachedContent = @"RemoveCachedContent"; |
63 | NSString * const NOTIF_reloadAccountCredentials = @"ReloadAccountCredentials"; |
64 | |
65 | === modified file 'utilities/operations/AlbumArtLoader.h' |
66 | --- utilities/operations/AlbumArtLoader.h 2011-06-21 15:29:37 +0000 |
67 | +++ utilities/operations/AlbumArtLoader.h 2012-06-22 18:48:18 +0000 |
68 | @@ -39,7 +39,6 @@ |
69 | @property(nonatomic) int imageSize; |
70 | @property(nonatomic,assign) id<AlbumArtLoaderDelegate> delegate; |
71 | @property(nonatomic,retain) UIImage *defaultAlbumArt; |
72 | -- (UIImage*)imageForArtID:(NSString*)artID error:(NSError**)error; |
73 | -- (void)download:(NSString*)artID; |
74 | +- (void)computeAlbumArtForId:(NSString *)albumArtId completionBlock:(void (^)(UIImage *))completionBlock; |
75 | + (NSString*)cacheSize; |
76 | @end |
77 | |
78 | === modified file 'utilities/operations/AlbumArtLoader.m' |
79 | --- utilities/operations/AlbumArtLoader.m 2011-11-05 00:42:21 +0000 |
80 | +++ utilities/operations/AlbumArtLoader.m 2012-06-22 18:48:18 +0000 |
81 | @@ -24,9 +24,14 @@ |
82 | |
83 | @interface AlbumArtLoader () |
84 | - (void)createAlbumArtDirectory; |
85 | -- (NSString*)URLFromCoverArtID:(NSString*)artID; |
86 | +- (NSString*)URLFromCoverArtId:(NSString*)artId; |
87 | +- (UIImage *)resizeAndSaveImage:(UIImage *)image toPath:(NSString *)path; |
88 | +- (void)cacheImage:(UIImage *)image atPath:(NSString *)path; |
89 | +- (UIImage *)defaultAlbumArtSized:(NSUInteger)size; |
90 | +- (void)download:(NSString *)artId; |
91 | @end |
92 | |
93 | +const int MAX_ART_SIZE = 640; |
94 | |
95 | @implementation AlbumArtLoader |
96 | @synthesize delegate; |
97 | @@ -40,7 +45,7 @@ |
98 | [self createAlbumArtDirectory]; |
99 | |
100 | self.imageSize = 640; // Default to maximum size we need |
101 | - self.defaultAlbumArt = [UIImage imageNamed:@"default-album-art"]; |
102 | + self.defaultAlbumArt = [UIImage imageNamed:@"default-album-art"]; |
103 | |
104 | downloadCache = [[NSMutableDictionary alloc] init]; |
105 | downloadedURLs = [[NSMutableSet alloc] init]; |
106 | @@ -55,7 +60,7 @@ |
107 | [downloadCache release]; |
108 | [downloadedURLs release]; |
109 | [queue release]; |
110 | - [defaultAlbumArt release]; |
111 | + [defaultAlbumArt release]; |
112 | |
113 | [super dealloc]; |
114 | } |
115 | @@ -63,27 +68,58 @@ |
116 | #pragma mark - |
117 | #pragma mark Public Methods |
118 | |
119 | -- (UIImage*)imageForArtID:(NSString*)artID error:(NSError**)error |
120 | +- (void)computeAlbumArtForId:(NSString *)artId completionBlock:(void (^)(UIImage *))completionBlock; |
121 | { |
122 | - NSString *path = CachedAlbumArtPathForArtId(artID); |
123 | + // Try to fetch the appropriate cached version of the album art |
124 | + |
125 | + NSString *path = nil; |
126 | + if (self.imageSize != MAX_ART_SIZE) |
127 | + { |
128 | + path = CachedAlbumArtPathForArtIdAtSize(artId, self.imageSize); |
129 | + } |
130 | + else |
131 | + { |
132 | + // Max size path is unadorned |
133 | + path = CachedAlbumArtPathForArtId(artId); |
134 | + } |
135 | UIImage *image = [UIImage imageWithContentsOfFile:path]; |
136 | |
137 | - if (nil == image) { |
138 | - // Cache fault: return the default image, and set the error so the caller can dispatch for an attempt at download |
139 | - image = self.defaultAlbumArt; |
140 | - *error = [NSError errorWithDomain:@"U1Music" code:1 userInfo:nil]; |
141 | - } |
142 | - return [image resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh]; |
143 | -} |
144 | - |
145 | -- (void)download:(NSString*)artID |
146 | + if (image != nil) |
147 | + { |
148 | + return completionBlock(image); |
149 | + } |
150 | + |
151 | + // Failing that, resize the highest resolution one we have |
152 | + |
153 | + __block NSString *_resizedPath = path; |
154 | + |
155 | + NSString *fullSizePath = CachedAlbumArtPathForArtId(artId); |
156 | + UIImage *fullSizeImage = [UIImage imageWithContentsOfFile:fullSizePath]; |
157 | + if (fullSizeImage != nil) |
158 | + { |
159 | + UIImage *resizedImage = [self resizeAndSaveImage:fullSizeImage toPath:_resizedPath]; |
160 | + completionBlock(resizedImage); |
161 | + return; |
162 | + } |
163 | + |
164 | + // Failing that, return defaultAlbumArt and download and resize what we need |
165 | + [self download:artId]; |
166 | + completionBlock([self defaultAlbumArtSized:self.imageSize]); |
167 | +} |
168 | + |
169 | +- (UIImage *)defaultAlbumArtSized:(NSUInteger)size; |
170 | +{ |
171 | + return [self.defaultAlbumArt resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh]; |
172 | +} |
173 | + |
174 | +- (void)download:(NSString*)artId; |
175 | { |
176 | - if (nil == artID) |
177 | + if (nil == artId) |
178 | { |
179 | return; |
180 | } |
181 | |
182 | - NSURL *url = [NSURL URLWithString:[self URLFromCoverArtID:artID]]; |
183 | + NSURL *url = [NSURL URLWithString:[self URLFromCoverArtId:artId]]; |
184 | |
185 | @synchronized(self) |
186 | { |
187 | @@ -91,7 +127,7 @@ |
188 | { |
189 | [downloadedURLs addObject:url]; |
190 | |
191 | - AlbumArtLoadingOperation *operation = [[AlbumArtLoadingOperation alloc] initWithArtId: artID URL:url]; |
192 | + AlbumArtLoadingOperation *operation = [[AlbumArtLoadingOperation alloc] initWithArtId:artId URL:url]; |
193 | operation.delegate = self; |
194 | [queue addOperation:operation]; |
195 | [operation release]; |
196 | @@ -126,13 +162,13 @@ |
197 | #pragma mark - |
198 | #pragma mark Private Methods |
199 | |
200 | -- (NSString*)URLFromCoverArtID:(NSString*)artID |
201 | +- (NSString*)URLFromCoverArtId:(NSString*)artId |
202 | { |
203 | NSMutableArray *parameters = [NSMutableArray array]; |
204 | - [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"id", artID, nil]]; |
205 | + [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"id", artId, nil]]; |
206 | |
207 | // Always get the largest we can handle |
208 | - [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"size", [NSString stringWithFormat:@"%d", 640], nil]]; |
209 | + [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"size", [NSString stringWithFormat:@"%d", MAX_ART_SIZE], nil]]; |
210 | |
211 | NSURL *url = [[Subsonic sharedSubsonic] getMetadataURL:@"getCoverArt.view" parameters:parameters]; |
212 | return [url absoluteString]; |
213 | @@ -149,13 +185,31 @@ |
214 | } |
215 | } |
216 | |
217 | +- (void)cacheImage:(UIImage *)image atPath:(NSString *)path; |
218 | +{ |
219 | + NSData *imageData = UIImagePNGRepresentation(image); |
220 | + [imageData writeToFile:path atomically:YES]; |
221 | +} |
222 | + |
223 | +- (UIImage *)resizeAndSaveImage:(UIImage *)image toPath:(NSString *)path; |
224 | +{ |
225 | + UIImage *resizedImage = [image resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh]; |
226 | + [self cacheImage:resizedImage atPath:path]; |
227 | + return resizedImage; |
228 | +} |
229 | + |
230 | #pragma mark - |
231 | #pragma mark AlbumArtLoadingOperationDelegate |
232 | |
233 | - (void)imageLoaded:(UIImage*)image forArtId:(NSString *)artId |
234 | { |
235 | - NSData *imageData = UIImagePNGRepresentation(image); |
236 | - [imageData writeToFile:CachedAlbumArtPathForArtId(artId) atomically:YES]; |
237 | + NSString *path = CachedAlbumArtPathForArtId(artId); |
238 | + [self cacheImage:image atPath:path]; |
239 | + |
240 | + if (self.imageSize != MAX_ART_SIZE) |
241 | + { |
242 | + [self resizeAndSaveImage:image toPath:CachedAlbumArtPathForArtIdAtSize(artId, self.imageSize)]; |
243 | + } |
244 | |
245 | if (self.delegate) |
246 | { |
247 | |
248 | === modified file 'view_controllers/AlbumListViewController.m' |
249 | --- view_controllers/AlbumListViewController.m 2012-02-17 16:40:18 +0000 |
250 | +++ view_controllers/AlbumListViewController.m 2012-06-22 18:48:18 +0000 |
251 | @@ -173,17 +173,18 @@ |
252 | |
253 | cell.albumNameLabel.text = album.title; |
254 | cell.artistNameLabel.text = album.artist; |
255 | - |
256 | - NSError *error = nil; |
257 | - cell.coverArtView.image = [loader imageForArtID:album.coverArtId error:&error]; |
258 | + |
259 | + __block AlbumArtistUITableViewCell *_cell = cell; |
260 | + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), |
261 | + ^{ |
262 | + [loader computeAlbumArtForId:album.coverArtId completionBlock:^(UIImage *image) { |
263 | + dispatch_async(dispatch_get_main_queue(), |
264 | + ^{ |
265 | + _cell.coverArtView.image = image; |
266 | + }); |
267 | + }]; |
268 | + }); |
269 | |
270 | - if ([error code]) { |
271 | - // Let's see if we need to wait for non-dragging/decelerating |
272 | -// if (self.tableView.dragging == NO && self.tableView.decelerating == NO) |
273 | -// { |
274 | - [loader download:album.coverArtId]; |
275 | -// } |
276 | - } |
277 | if (canStream || [album hasCachedSongs]) |
278 | { |
279 | cell.albumNameLabel.textColor = [UIColor blackColor]; |
280 | @@ -242,29 +243,4 @@ |
281 | [self.tableView reloadData]; |
282 | } |
283 | |
284 | -- (void)loadImagesForOnscreenRows |
285 | -{ |
286 | - for (NSIndexPath *indexPath in [self.tableView indexPathsForVisibleRows]) |
287 | - { |
288 | - Album *album = [self.tableData objectAtIndex:indexPath.row]; |
289 | - // This will prompt the album art to download, but doesn't try to load the image when it's done? |
290 | - [loader download:album.coverArtId]; |
291 | - } |
292 | -} |
293 | - |
294 | -- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate |
295 | -{ |
296 | - [super scrollViewDidEndDragging:scrollView willDecelerate:decelerate]; |
297 | - |
298 | - if (!decelerate) |
299 | - { |
300 | - [self loadImagesForOnscreenRows]; |
301 | - } |
302 | -} |
303 | - |
304 | -- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView |
305 | -{ |
306 | - [self loadImagesForOnscreenRows]; |
307 | -} |
308 | - |
309 | @end |
310 | |
311 | === modified file 'view_controllers/AlbumViewController.m' |
312 | --- view_controllers/AlbumViewController.m 2012-02-21 16:53:27 +0000 |
313 | +++ view_controllers/AlbumViewController.m 2012-06-22 18:48:18 +0000 |
314 | @@ -362,17 +362,18 @@ |
315 | headerView.backgroundColor = grayColor; |
316 | |
317 | coverArt = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)]; |
318 | - NSError *error = nil; |
319 | - coverArt.image = [loader imageForArtID:self.album.coverArtId error:&error]; |
320 | + __block UIImageView *_coverArtView = coverArt; |
321 | + __block NSString *_coverArtId = self.album.coverArtId; |
322 | + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), |
323 | + ^{ |
324 | + [loader computeAlbumArtForId:_coverArtId completionBlock:^(UIImage *image) { |
325 | + dispatch_async(dispatch_get_main_queue(), |
326 | + ^{ |
327 | + _coverArtView.image = image; |
328 | + }); |
329 | + }]; |
330 | + }); |
331 | |
332 | - if ([error code]) { |
333 | - // Let's see if we need to wait for non-dragging/decelerating |
334 | -// if (self.tableView.dragging == NO && self.tableView.decelerating == NO) |
335 | -// { |
336 | - [loader download:self.album.coverArtId]; |
337 | -// } |
338 | - } |
339 | - |
340 | [headerView addSubview:coverArt]; |
341 | |
342 | artistLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 10, 200, 20)]; |
343 | |
344 | === modified file 'view_controllers/ArtistViewController.m' |
345 | --- view_controllers/ArtistViewController.m 2012-02-17 16:28:36 +0000 |
346 | +++ view_controllers/ArtistViewController.m 2012-06-22 18:48:18 +0000 |
347 | @@ -224,16 +224,17 @@ |
348 | cell.album = album; |
349 | cell.albumNameLabel.text = album.title; |
350 | |
351 | - NSError *error = nil; |
352 | - cell.coverArtView.image = [loader imageForArtID:album.coverArtId error:&error]; |
353 | - |
354 | - if ([error code]) { |
355 | - // Let's see if we need to wait for non-dragging/decelerating |
356 | - // if (self.tableView.dragging == NO && self.tableView.decelerating == NO) |
357 | - // { |
358 | - [loader download:album.coverArtId]; |
359 | - // } |
360 | - } |
361 | + __block AlbumUITableViewCell *_cell = cell; |
362 | + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), |
363 | + ^{ |
364 | + [loader computeAlbumArtForId:album.coverArtId completionBlock:^(UIImage *image) { |
365 | + dispatch_async(dispatch_get_main_queue(), |
366 | + ^{ |
367 | + _cell.coverArtView.image = image; |
368 | + }); |
369 | + }]; |
370 | + }); |
371 | + |
372 | if (canStream || [album hasCachedSongs]) |
373 | { |
374 | cell.albumNameLabel.textColor = [UIColor blackColor]; |
375 | @@ -315,29 +316,4 @@ |
376 | [self.tableView reloadData]; |
377 | } |
378 | |
379 | -- (void)loadImagesForOnscreenRows |
380 | -{ |
381 | - for (NSIndexPath *indexPath in [self.tableView indexPathsForVisibleRows]) |
382 | - { |
383 | - Album *album = [self.tableData objectAtIndex:indexPath.row]; |
384 | - // This will prompt the album art to download, but doesn't try to load the image when it's done? |
385 | - [loader download:album.coverArtId]; |
386 | - } |
387 | -} |
388 | - |
389 | -- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate |
390 | -{ |
391 | - [super scrollViewDidEndDragging:scrollView willDecelerate:decelerate]; |
392 | - |
393 | - if (!decelerate) |
394 | - { |
395 | - [self loadImagesForOnscreenRows]; |
396 | - } |
397 | -} |
398 | - |
399 | -- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView |
400 | -{ |
401 | - [self loadImagesForOnscreenRows]; |
402 | -} |
403 | - |
404 | @end |
405 | |
406 | === modified file 'view_controllers/SongViewController.m' |
407 | --- view_controllers/SongViewController.m 2012-02-08 23:57:06 +0000 |
408 | +++ view_controllers/SongViewController.m 2012-06-22 18:48:18 +0000 |
409 | @@ -390,11 +390,17 @@ |
410 | if (albumCoverArtId) |
411 | { |
412 | NSError *error = nil; |
413 | - coverArtImageView.image = [loader imageForArtID:albumCoverArtId error:&error]; |
414 | - |
415 | - if ([error code]) { |
416 | - [loader download:albumCoverArtId]; |
417 | - } |
418 | + __block UIImageView *_coverArtImageView = coverArtImageView; |
419 | + __block NSString *_albumCoverArtId = albumCoverArtId; |
420 | + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), |
421 | + ^{ |
422 | + [loader computeAlbumArtForId:albumCoverArtId completionBlock:^(UIImage *image) { |
423 | + dispatch_async(dispatch_get_main_queue(), |
424 | + ^{ |
425 | + _coverArtImageView.image = image; |
426 | + }); |
427 | + }]; |
428 | + }); |
429 | } |
430 | else |
431 | { |
432 | |
433 | === modified file 'xibs/SongViewController.xib' |
434 | --- xibs/SongViewController.xib 2011-07-15 19:39:43 +0000 |
435 | +++ xibs/SongViewController.xib 2012-06-22 18:48:18 +0000 |
436 | @@ -1,29 +1,32 @@ |
437 | <?xml version="1.0" encoding="UTF-8"?> |
438 | <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00"> |
439 | <data> |
440 | - <int key="IBDocument.SystemTarget">1056</int> |
441 | - <string key="IBDocument.SystemVersion">10K540</string> |
442 | - <string key="IBDocument.InterfaceBuilderVersion">1306</string> |
443 | - <string key="IBDocument.AppKitVersion">1038.36</string> |
444 | - <string key="IBDocument.HIToolboxVersion">461.00</string> |
445 | + <int key="IBDocument.SystemTarget">1536</int> |
446 | + <string key="IBDocument.SystemVersion">11E2620</string> |
447 | + <string key="IBDocument.InterfaceBuilderVersion">2541</string> |
448 | + <string key="IBDocument.AppKitVersion">1138.47</string> |
449 | + <string key="IBDocument.HIToolboxVersion">569.00</string> |
450 | <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> |
451 | <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
452 | - <string key="NS.object.0">301</string> |
453 | + <string key="NS.object.0">1875</string> |
454 | </object> |
455 | <array key="IBDocument.IntegratedClassDependencies"> |
456 | - <string>IBUIView</string> |
457 | + <string>IBProxyObject</string> |
458 | <string>IBUIBarButtonItem</string> |
459 | + <string>IBUIButton</string> |
460 | <string>IBUIImageView</string> |
461 | - <string>IBUIToolbar</string> |
462 | - <string>IBProxyObject</string> |
463 | <string>IBUILabel</string> |
464 | <string>IBUISlider</string> |
465 | - <string>IBUIButton</string> |
466 | + <string>IBUIToolbar</string> |
467 | + <string>IBUIView</string> |
468 | </array> |
469 | <array key="IBDocument.PluginDependencies"> |
470 | <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
471 | </array> |
472 | - <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/> |
473 | + <object class="NSMutableDictionary" key="IBDocument.Metadata"> |
474 | + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> |
475 | + <integer value="1" key="NS.object.0"/> |
476 | + </object> |
477 | <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> |
478 | <object class="IBProxyObject" id="372490531"> |
479 | <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> |
480 | @@ -42,6 +45,7 @@ |
481 | <int key="NSvFlags">264</int> |
482 | <string key="NSFrame">{{20, 405}, {280, 40}}</string> |
483 | <reference key="NSSuperview" ref="774585933"/> |
484 | + <reference key="NSNextKeyView"/> |
485 | <object class="NSColor" key="IBUIBackgroundColor"> |
486 | <int key="NSColorSpace">3</int> |
487 | <bytes key="NSWhite">MSAwAA</bytes> |
488 | @@ -76,11 +80,6 @@ |
489 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
490 | <int key="IBUIContentHorizontalAlignment">0</int> |
491 | <int key="IBUIContentVerticalAlignment">0</int> |
492 | - <object class="NSFont" key="IBUIFont"> |
493 | - <string key="NSName">Helvetica-BoldOblique</string> |
494 | - <double key="NSSize">15</double> |
495 | - <int key="NSfFlags">16</int> |
496 | - </object> |
497 | <object class="NSColor" key="IBUIHighlightedTitleColor" id="193107363"> |
498 | <int key="NSColorSpace">3</int> |
499 | <bytes key="NSWhite">MQA</bytes> |
500 | @@ -93,6 +92,17 @@ |
501 | <int key="NSColorSpace">3</int> |
502 | <bytes key="NSWhite">MC41AA</bytes> |
503 | </object> |
504 | + <object class="IBUIFontDescription" key="IBUIFontDescription"> |
505 | + <string key="name">Helvetica-BoldOblique</string> |
506 | + <string key="family">Helvetica</string> |
507 | + <int key="traits">3</int> |
508 | + <double key="pointSize">15</double> |
509 | + </object> |
510 | + <object class="NSFont" key="IBUIFont"> |
511 | + <string key="NSName">Helvetica-BoldOblique</string> |
512 | + <double key="NSSize">15</double> |
513 | + <int key="NSfFlags">16</int> |
514 | + </object> |
515 | </object> |
516 | <object class="IBUIToolbar" id="650707578"> |
517 | <reference key="NSNextResponder" ref="774585933"/> |
518 | @@ -165,7 +175,7 @@ |
519 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
520 | </object> |
521 | <object class="IBUIView" id="962247428"> |
522 | - <reference key="NSNextResponder"/> |
523 | + <nil key="NSNextResponder"/> |
524 | <int key="NSvFlags">292</int> |
525 | <array class="NSMutableArray" key="NSSubviews"> |
526 | <object class="IBUILabel" id="58064152"> |
527 | @@ -179,16 +189,6 @@ |
528 | <int key="IBUIContentMode">7</int> |
529 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
530 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
531 | - <string key="IBUIText">Interpol</string> |
532 | - <object class="NSFont" key="IBUIFont" id="956421100"> |
533 | - <string key="NSName">Helvetica-Bold</string> |
534 | - <double key="NSSize">11</double> |
535 | - <int key="NSfFlags">16</int> |
536 | - </object> |
537 | - <object class="NSColor" key="IBUITextColor"> |
538 | - <int key="NSColorSpace">1</int> |
539 | - <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes> |
540 | - </object> |
541 | <object class="NSColor" key="IBUIHighlightedColor"> |
542 | <int key="NSColorSpace">3</int> |
543 | <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> |
544 | @@ -198,9 +198,26 @@ |
545 | <bytes key="NSRGB">MCAwIDAAA</bytes> |
546 | </object> |
547 | <int key="IBUIBaselineAdjustment">1</int> |
548 | - <bool key="IBUIAdjustsFontSizeToFit">NO</bool> |
549 | <float key="IBUIMinimumFontSize">10</float> |
550 | + <string key="IBUIText">Interpol</string> |
551 | + <object class="NSColor" key="IBUITextColor"> |
552 | + <int key="NSColorSpace">1</int> |
553 | + <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes> |
554 | + </object> |
555 | <int key="IBUITextAlignment">1</int> |
556 | + <object class="IBUIFontDescription" key="IBUIFontDescription" id="295205315"> |
557 | + <string key="name">Helvetica-Bold</string> |
558 | + <string key="family">Helvetica</string> |
559 | + <int key="traits">2</int> |
560 | + <double key="pointSize">11</double> |
561 | + </object> |
562 | + <object class="NSFont" key="IBUIFont" id="956421100"> |
563 | + <string key="NSName">Helvetica-Bold</string> |
564 | + <double key="NSSize">11</double> |
565 | + <int key="NSfFlags">16</int> |
566 | + </object> |
567 | + <bool key="IBUIAdjustsFontSizeToFit">NO</bool> |
568 | + <int key="IBUIAutoshrinkMode">0</int> |
569 | </object> |
570 | <object class="IBUILabel" id="188765676"> |
571 | <reference key="NSNextResponder" ref="962247428"/> |
572 | @@ -213,15 +230,17 @@ |
573 | <int key="IBUIContentMode">7</int> |
574 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
575 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
576 | + <reference key="IBUIHighlightedColor" ref="193107363"/> |
577 | + <reference key="IBUIShadowColor" ref="207782929"/> |
578 | + <int key="IBUIBaselineAdjustment">1</int> |
579 | + <float key="IBUIMinimumFontSize">10</float> |
580 | <string key="IBUIText">Interpol</string> |
581 | - <reference key="IBUIFont" ref="956421100"/> |
582 | <reference key="IBUITextColor" ref="193107363"/> |
583 | - <reference key="IBUIHighlightedColor" ref="193107363"/> |
584 | - <reference key="IBUIShadowColor" ref="207782929"/> |
585 | - <int key="IBUIBaselineAdjustment">1</int> |
586 | + <int key="IBUITextAlignment">1</int> |
587 | + <reference key="IBUIFontDescription" ref="295205315"/> |
588 | + <reference key="IBUIFont" ref="956421100"/> |
589 | <bool key="IBUIAdjustsFontSizeToFit">NO</bool> |
590 | - <float key="IBUIMinimumFontSize">10</float> |
591 | - <int key="IBUITextAlignment">1</int> |
592 | + <int key="IBUIAutoshrinkMode">0</int> |
593 | </object> |
594 | <object class="IBUILabel" id="405973632"> |
595 | <reference key="NSNextResponder" ref="962247428"/> |
596 | @@ -233,40 +252,35 @@ |
597 | <int key="IBUIContentMode">7</int> |
598 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
599 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
600 | + <reference key="IBUIHighlightedColor" ref="193107363"/> |
601 | + <reference key="IBUIShadowColor" ref="207782929"/> |
602 | + <int key="IBUIBaselineAdjustment">1</int> |
603 | + <float key="IBUIMinimumFontSize">10</float> |
604 | <string key="IBUIText">Interpol</string> |
605 | - <reference key="IBUIFont" ref="956421100"/> |
606 | <object class="NSColor" key="IBUITextColor"> |
607 | <int key="NSColorSpace">1</int> |
608 | <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes> |
609 | </object> |
610 | - <reference key="IBUIHighlightedColor" ref="193107363"/> |
611 | - <reference key="IBUIShadowColor" ref="207782929"/> |
612 | - <int key="IBUIBaselineAdjustment">1</int> |
613 | + <int key="IBUITextAlignment">1</int> |
614 | + <reference key="IBUIFontDescription" ref="295205315"/> |
615 | + <reference key="IBUIFont" ref="956421100"/> |
616 | <bool key="IBUIAdjustsFontSizeToFit">NO</bool> |
617 | - <float key="IBUIMinimumFontSize">10</float> |
618 | - <int key="IBUITextAlignment">1</int> |
619 | + <int key="IBUIAutoshrinkMode">0</int> |
620 | </object> |
621 | </array> |
622 | <string key="NSFrameSize">{200, 45}</string> |
623 | - <reference key="NSSuperview"/> |
624 | <reference key="NSNextKeyView" ref="58064152"/> |
625 | <reference key="IBUIBackgroundColor" ref="811861181"/> |
626 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
627 | </object> |
628 | <object class="IBUIButton" id="959908150"> |
629 | - <reference key="NSNextResponder"/> |
630 | + <nil key="NSNextResponder"/> |
631 | <int key="NSvFlags">292</int> |
632 | <string key="NSFrameSize">{44, 29}</string> |
633 | - <reference key="NSSuperview"/> |
634 | <bool key="IBUIOpaque">NO</bool> |
635 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
636 | <int key="IBUIContentHorizontalAlignment">0</int> |
637 | <int key="IBUIContentVerticalAlignment">0</int> |
638 | - <object class="NSFont" key="IBUIFont" id="889214810"> |
639 | - <string key="NSName">Helvetica-Bold</string> |
640 | - <double key="NSSize">15</double> |
641 | - <int key="NSfFlags">16</int> |
642 | - </object> |
643 | <reference key="IBUIHighlightedTitleColor" ref="193107363"/> |
644 | <object class="NSColor" key="IBUINormalTitleColor"> |
645 | <int key="NSColorSpace">1</int> |
646 | @@ -277,9 +291,20 @@ |
647 | <string key="NSClassName">NSImage</string> |
648 | <string key="NSResourceName">player_back.png</string> |
649 | </object> |
650 | + <object class="IBUIFontDescription" key="IBUIFontDescription" id="411929483"> |
651 | + <string key="name">Helvetica-Bold</string> |
652 | + <string key="family">Helvetica</string> |
653 | + <int key="traits">2</int> |
654 | + <double key="pointSize">15</double> |
655 | + </object> |
656 | + <object class="NSFont" key="IBUIFont" id="889214810"> |
657 | + <string key="NSName">Helvetica-Bold</string> |
658 | + <double key="NSSize">15</double> |
659 | + <int key="NSfFlags">16</int> |
660 | + </object> |
661 | </object> |
662 | <object class="IBUIView" id="938289822"> |
663 | - <reference key="NSNextResponder"/> |
664 | + <nil key="NSNextResponder"/> |
665 | <int key="NSvFlags">292</int> |
666 | <array class="NSMutableArray" key="NSSubviews"> |
667 | <object class="IBUIImageView" id="169132852"> |
668 | @@ -287,7 +312,6 @@ |
669 | <int key="NSvFlags">292</int> |
670 | <string key="NSFrameSize">{320, 100}</string> |
671 | <reference key="NSSuperview" ref="938289822"/> |
672 | - <reference key="NSWindow"/> |
673 | <reference key="NSNextKeyView" ref="650617321"/> |
674 | <reference key="IBUIBackgroundColor" ref="811861181"/> |
675 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
676 | @@ -302,7 +326,6 @@ |
677 | <int key="NSvFlags">292</int> |
678 | <string key="NSFrame">{{58, 28}, {204, 23}}</string> |
679 | <reference key="NSSuperview" ref="938289822"/> |
680 | - <reference key="NSWindow"/> |
681 | <reference key="NSNextKeyView" ref="451378775"/> |
682 | <reference key="IBUIBackgroundColor" ref="811861181"/> |
683 | <bool key="IBUIOpaque">NO</bool> |
684 | @@ -322,13 +345,11 @@ |
685 | <int key="NSvFlags">292</int> |
686 | <string key="NSFrame">{{14, 47}, {44, 44}}</string> |
687 | <reference key="NSSuperview" ref="938289822"/> |
688 | - <reference key="NSWindow"/> |
689 | <reference key="NSNextKeyView" ref="214119939"/> |
690 | <bool key="IBUIOpaque">NO</bool> |
691 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
692 | <int key="IBUIContentHorizontalAlignment">0</int> |
693 | <int key="IBUIContentVerticalAlignment">0</int> |
694 | - <reference key="IBUIFont" ref="889214810"/> |
695 | <reference key="IBUIHighlightedTitleColor" ref="193107363"/> |
696 | <object class="NSColor" key="IBUINormalTitleColor"> |
697 | <int key="NSColorSpace">1</int> |
698 | @@ -339,19 +360,18 @@ |
699 | <string key="NSClassName">NSImage</string> |
700 | <string key="NSResourceName">03-loopback.png</string> |
701 | </object> |
702 | + <reference key="IBUIFontDescription" ref="411929483"/> |
703 | + <reference key="IBUIFont" ref="889214810"/> |
704 | </object> |
705 | <object class="IBUIButton" id="214119939"> |
706 | <reference key="NSNextResponder" ref="938289822"/> |
707 | <int key="NSvFlags">292</int> |
708 | <string key="NSFrame">{{264, 48}, {44, 44}}</string> |
709 | <reference key="NSSuperview" ref="938289822"/> |
710 | - <reference key="NSWindow"/> |
711 | - <reference key="NSNextKeyView"/> |
712 | <bool key="IBUIOpaque">NO</bool> |
713 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
714 | <int key="IBUIContentHorizontalAlignment">0</int> |
715 | <int key="IBUIContentVerticalAlignment">0</int> |
716 | - <reference key="IBUIFont" ref="889214810"/> |
717 | <reference key="IBUIHighlightedTitleColor" ref="193107363"/> |
718 | <object class="NSColor" key="IBUINormalTitleColor"> |
719 | <int key="NSColorSpace">1</int> |
720 | @@ -362,25 +382,25 @@ |
721 | <string key="NSClassName">NSImage</string> |
722 | <string key="NSResourceName">05-shuffle.png</string> |
723 | </object> |
724 | + <reference key="IBUIFontDescription" ref="411929483"/> |
725 | + <reference key="IBUIFont" ref="889214810"/> |
726 | </object> |
727 | <object class="IBUILabel" id="574685039"> |
728 | <reference key="NSNextResponder" ref="938289822"/> |
729 | <int key="NSvFlags">292</int> |
730 | <string key="NSFrame">{{12, 31}, {42, 15}}</string> |
731 | <reference key="NSSuperview" ref="938289822"/> |
732 | - <reference key="NSWindow"/> |
733 | <reference key="NSNextKeyView" ref="141728958"/> |
734 | <bool key="IBUIOpaque">NO</bool> |
735 | <bool key="IBUIClipsSubviews">YES</bool> |
736 | <int key="IBUIContentMode">7</int> |
737 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
738 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
739 | + <reference key="IBUIHighlightedColor" ref="193107363"/> |
740 | + <reference key="IBUIShadowColor" ref="207782929"/> |
741 | + <int key="IBUIBaselineAdjustment">1</int> |
742 | + <float key="IBUIMinimumFontSize">10</float> |
743 | <string key="IBUIText">0:00</string> |
744 | - <object class="NSFont" key="IBUIFont" id="733486606"> |
745 | - <string key="NSName">Helvetica-Bold</string> |
746 | - <double key="NSSize">14</double> |
747 | - <int key="NSfFlags">16</int> |
748 | - </object> |
749 | <object class="NSColor" key="IBUITextColor"> |
750 | <int key="NSColorSpace">1</int> |
751 | <bytes key="NSRGB">MSAxIDEAA</bytes> |
752 | @@ -388,65 +408,73 @@ |
753 | <int key="NSID">1</int> |
754 | </object> |
755 | </object> |
756 | - <reference key="IBUIHighlightedColor" ref="193107363"/> |
757 | - <reference key="IBUIShadowColor" ref="207782929"/> |
758 | - <int key="IBUIBaselineAdjustment">1</int> |
759 | - <float key="IBUIMinimumFontSize">10</float> |
760 | <int key="IBUITextAlignment">2</int> |
761 | + <object class="IBUIFontDescription" key="IBUIFontDescription" id="911767061"> |
762 | + <string key="name">Helvetica-Bold</string> |
763 | + <string key="family">Helvetica</string> |
764 | + <int key="traits">2</int> |
765 | + <double key="pointSize">14</double> |
766 | + </object> |
767 | + <object class="NSFont" key="IBUIFont" id="733486606"> |
768 | + <string key="NSName">Helvetica-Bold</string> |
769 | + <double key="NSSize">14</double> |
770 | + <int key="NSfFlags">16</int> |
771 | + </object> |
772 | + <int key="IBUIAutoshrinkMode">2</int> |
773 | </object> |
774 | <object class="IBUILabel" id="451378775"> |
775 | <reference key="NSNextResponder" ref="938289822"/> |
776 | <int key="NSvFlags">292</int> |
777 | <string key="NSFrame">{{266, 31}, {42, 15}}</string> |
778 | <reference key="NSSuperview" ref="938289822"/> |
779 | - <reference key="NSWindow"/> |
780 | <reference key="NSNextKeyView" ref="967289608"/> |
781 | <bool key="IBUIOpaque">NO</bool> |
782 | <bool key="IBUIClipsSubviews">YES</bool> |
783 | <int key="IBUIContentMode">7</int> |
784 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
785 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
786 | + <reference key="IBUIHighlightedColor" ref="193107363"/> |
787 | + <reference key="IBUIShadowColor" ref="207782929"/> |
788 | + <int key="IBUIBaselineAdjustment">1</int> |
789 | + <float key="IBUIMinimumFontSize">10</float> |
790 | <string key="IBUIText">-18:88</string> |
791 | - <reference key="IBUIFont" ref="733486606"/> |
792 | <object class="NSColor" key="IBUITextColor"> |
793 | <int key="NSColorSpace">1</int> |
794 | <bytes key="NSRGB">MSAxIDEAA</bytes> |
795 | <reference key="NSCustomColorSpace" ref="400680623"/> |
796 | </object> |
797 | - <reference key="IBUIHighlightedColor" ref="193107363"/> |
798 | - <reference key="IBUIShadowColor" ref="207782929"/> |
799 | - <int key="IBUIBaselineAdjustment">1</int> |
800 | - <float key="IBUIMinimumFontSize">10</float> |
801 | + <reference key="IBUIFontDescription" ref="911767061"/> |
802 | + <reference key="IBUIFont" ref="733486606"/> |
803 | + <int key="IBUIAutoshrinkMode">2</int> |
804 | </object> |
805 | <object class="IBUILabel" id="650617321"> |
806 | <reference key="NSNextResponder" ref="938289822"/> |
807 | <int key="NSvFlags">292</int> |
808 | <string key="NSFrame">{{12, 5}, {296, 19}}</string> |
809 | <reference key="NSSuperview" ref="938289822"/> |
810 | - <reference key="NSWindow"/> |
811 | <reference key="NSNextKeyView" ref="574685039"/> |
812 | <bool key="IBUIOpaque">NO</bool> |
813 | <bool key="IBUIClipsSubviews">YES</bool> |
814 | <int key="IBUIContentMode">7</int> |
815 | <bool key="IBUIUserInteractionEnabled">NO</bool> |
816 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
817 | + <reference key="IBUIHighlightedColor" ref="193107363"/> |
818 | + <reference key="IBUIShadowColor" ref="207782929"/> |
819 | + <int key="IBUIBaselineAdjustment">1</int> |
820 | + <float key="IBUIMinimumFontSize">10</float> |
821 | <string key="IBUIText">10 of 11</string> |
822 | - <reference key="IBUIFont" ref="733486606"/> |
823 | <object class="NSColor" key="IBUITextColor"> |
824 | <int key="NSColorSpace">1</int> |
825 | <bytes key="NSRGB">MSAxIDEAA</bytes> |
826 | <reference key="NSCustomColorSpace" ref="400680623"/> |
827 | </object> |
828 | - <reference key="IBUIHighlightedColor" ref="193107363"/> |
829 | - <reference key="IBUIShadowColor" ref="207782929"/> |
830 | - <int key="IBUIBaselineAdjustment">1</int> |
831 | - <float key="IBUIMinimumFontSize">10</float> |
832 | <int key="IBUITextAlignment">1</int> |
833 | + <reference key="IBUIFontDescription" ref="911767061"/> |
834 | + <reference key="IBUIFont" ref="733486606"/> |
835 | + <int key="IBUIAutoshrinkMode">2</int> |
836 | </object> |
837 | </array> |
838 | <string key="NSFrameSize">{320, 100}</string> |
839 | - <reference key="NSSuperview"/> |
840 | - <reference key="NSWindow"/> |
841 | <reference key="NSNextKeyView" ref="169132852"/> |
842 | <reference key="IBUIBackgroundColor" ref="811861181"/> |
843 | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> |
844 | @@ -487,47 +515,6 @@ |
845 | <int key="connectionID">58</int> |
846 | </object> |
847 | <object class="IBConnectionRecord"> |
848 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
849 | - <string key="label">songInfoToggle:</string> |
850 | - <reference key="source" ref="104438855"/> |
851 | - <reference key="destination" ref="372490531"/> |
852 | - <int key="IBEventType">7</int> |
853 | - </object> |
854 | - <int key="connectionID">59</int> |
855 | - </object> |
856 | - <object class="IBConnectionRecord"> |
857 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
858 | - <string key="label">prevButtonPressed:</string> |
859 | - <reference key="source" ref="213984937"/> |
860 | - <reference key="destination" ref="372490531"/> |
861 | - </object> |
862 | - <int key="connectionID">75</int> |
863 | - </object> |
864 | - <object class="IBConnectionRecord"> |
865 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
866 | - <string key="label">playButtonPressed:</string> |
867 | - <reference key="source" ref="126126605"/> |
868 | - <reference key="destination" ref="372490531"/> |
869 | - </object> |
870 | - <int key="connectionID">76</int> |
871 | - </object> |
872 | - <object class="IBConnectionRecord"> |
873 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
874 | - <string key="label">nextButtonPressed:</string> |
875 | - <reference key="source" ref="148357452"/> |
876 | - <reference key="destination" ref="372490531"/> |
877 | - </object> |
878 | - <int key="connectionID">77</int> |
879 | - </object> |
880 | - <object class="IBConnectionRecord"> |
881 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
882 | - <string key="label">playButtonPressed:</string> |
883 | - <reference key="source" ref="947562927"/> |
884 | - <reference key="destination" ref="372490531"/> |
885 | - </object> |
886 | - <int key="connectionID">84</int> |
887 | - </object> |
888 | - <object class="IBConnectionRecord"> |
889 | <object class="IBCocoaTouchOutletConnection" key="connection"> |
890 | <string key="label">musicToolbar</string> |
891 | <reference key="source" ref="372490531"/> |
892 | @@ -576,15 +563,6 @@ |
893 | <int key="connectionID">97</int> |
894 | </object> |
895 | <object class="IBConnectionRecord"> |
896 | - <object class="IBCocoaTouchEventConnection" key="connection"> |
897 | - <string key="label">popFromStack:</string> |
898 | - <reference key="source" ref="959908150"/> |
899 | - <reference key="destination" ref="372490531"/> |
900 | - <int key="IBEventType">7</int> |
901 | - </object> |
902 | - <int key="connectionID">98</int> |
903 | - </object> |
904 | - <object class="IBConnectionRecord"> |
905 | <object class="IBCocoaTouchOutletConnection" key="connection"> |
906 | <string key="label">songInfoBox</string> |
907 | <reference key="source" ref="372490531"/> |
908 | @@ -625,6 +603,72 @@ |
909 | <int key="connectionID">111</int> |
910 | </object> |
911 | <object class="IBConnectionRecord"> |
912 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
913 | + <string key="label">repeatButton</string> |
914 | + <reference key="source" ref="372490531"/> |
915 | + <reference key="destination" ref="967289608"/> |
916 | + </object> |
917 | + <int key="connectionID">117</int> |
918 | + </object> |
919 | + <object class="IBConnectionRecord"> |
920 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
921 | + <string key="label">shuffleButton</string> |
922 | + <reference key="source" ref="372490531"/> |
923 | + <reference key="destination" ref="214119939"/> |
924 | + </object> |
925 | + <int key="connectionID">118</int> |
926 | + </object> |
927 | + <object class="IBConnectionRecord"> |
928 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
929 | + <string key="label">songInfoToggle:</string> |
930 | + <reference key="source" ref="104438855"/> |
931 | + <reference key="destination" ref="372490531"/> |
932 | + <int key="IBEventType">7</int> |
933 | + </object> |
934 | + <int key="connectionID">59</int> |
935 | + </object> |
936 | + <object class="IBConnectionRecord"> |
937 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
938 | + <string key="label">prevButtonPressed:</string> |
939 | + <reference key="source" ref="213984937"/> |
940 | + <reference key="destination" ref="372490531"/> |
941 | + </object> |
942 | + <int key="connectionID">75</int> |
943 | + </object> |
944 | + <object class="IBConnectionRecord"> |
945 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
946 | + <string key="label">playButtonPressed:</string> |
947 | + <reference key="source" ref="126126605"/> |
948 | + <reference key="destination" ref="372490531"/> |
949 | + </object> |
950 | + <int key="connectionID">76</int> |
951 | + </object> |
952 | + <object class="IBConnectionRecord"> |
953 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
954 | + <string key="label">nextButtonPressed:</string> |
955 | + <reference key="source" ref="148357452"/> |
956 | + <reference key="destination" ref="372490531"/> |
957 | + </object> |
958 | + <int key="connectionID">77</int> |
959 | + </object> |
960 | + <object class="IBConnectionRecord"> |
961 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
962 | + <string key="label">playButtonPressed:</string> |
963 | + <reference key="source" ref="947562927"/> |
964 | + <reference key="destination" ref="372490531"/> |
965 | + </object> |
966 | + <int key="connectionID">84</int> |
967 | + </object> |
968 | + <object class="IBConnectionRecord"> |
969 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
970 | + <string key="label">popFromStack:</string> |
971 | + <reference key="source" ref="959908150"/> |
972 | + <reference key="destination" ref="372490531"/> |
973 | + <int key="IBEventType">7</int> |
974 | + </object> |
975 | + <int key="connectionID">98</int> |
976 | + </object> |
977 | + <object class="IBConnectionRecord"> |
978 | <object class="IBCocoaTouchEventConnection" key="connection"> |
979 | <string key="label">touchedSlider</string> |
980 | <reference key="source" ref="141728958"/> |
981 | @@ -669,22 +713,6 @@ |
982 | </object> |
983 | <int key="connectionID">116</int> |
984 | </object> |
985 | - <object class="IBConnectionRecord"> |
986 | - <object class="IBCocoaTouchOutletConnection" key="connection"> |
987 | - <string key="label">repeatButton</string> |
988 | - <reference key="source" ref="372490531"/> |
989 | - <reference key="destination" ref="967289608"/> |
990 | - </object> |
991 | - <int key="connectionID">117</int> |
992 | - </object> |
993 | - <object class="IBConnectionRecord"> |
994 | - <object class="IBCocoaTouchOutletConnection" key="connection"> |
995 | - <string key="label">shuffleButton</string> |
996 | - <reference key="source" ref="372490531"/> |
997 | - <reference key="destination" ref="214119939"/> |
998 | - </object> |
999 | - <int key="connectionID">118</int> |
1000 | - </object> |
1001 | </array> |
1002 | <object class="IBMutableOrderedSet" key="objectRecords"> |
1003 | <array key="orderedObjects"> |
1004 | @@ -873,39 +901,19 @@ |
1005 | </object> |
1006 | <dictionary class="NSMutableDictionary" key="flattenedProperties"> |
1007 | <string key="-1.CustomClassName">iPhoneStreamingPlayerViewController</string> |
1008 | + <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1009 | <string key="-2.CustomClassName">UIResponder</string> |
1010 | + <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1011 | <string key="101.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1012 | - <object class="NSAffineTransform" key="101.IBViewBoundsToFrameTransform"> |
1013 | - <bytes key="NSTransformStruct">P4AAAL+AAABC0AAAwooAAA</bytes> |
1014 | - </object> |
1015 | <string key="103.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1016 | - <object class="NSAffineTransform" key="103.IBViewBoundsToFrameTransform"> |
1017 | - <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwo4AAA</bytes> |
1018 | - </object> |
1019 | <string key="104.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1020 | - <object class="NSAffineTransform" key="104.IBViewBoundsToFrameTransform"> |
1021 | - <bytes key="NSTransformStruct">P4AAAL+AAABDHwAAwqwAAA</bytes> |
1022 | - </object> |
1023 | <string key="105.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1024 | - <object class="NSAffineTransform" key="105.IBViewBoundsToFrameTransform"> |
1025 | - <bytes key="NSTransformStruct">AUFAAABBYAAAA</bytes> |
1026 | - </object> |
1027 | <string key="106.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1028 | - <object class="NSAffineTransform" key="106.IBViewBoundsToFrameTransform"> |
1029 | - <bytes key="NSTransformStruct">AUOFAABB+AAAA</bytes> |
1030 | - </object> |
1031 | <string key="107.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1032 | - <object class="NSAffineTransform" key="107.IBViewBoundsToFrameTransform"> |
1033 | - <bytes key="NSTransformStruct">P4AAAL+AAABDh4AAwkQAAA</bytes> |
1034 | - </object> |
1035 | <string key="108.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1036 | <string key="35.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1037 | <string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1038 | <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1039 | - <object class="NSAffineTransform" key="57.IBViewBoundsToFrameTransform"> |
1040 | - <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes> |
1041 | - </object> |
1042 | - <string key="6.IBEditorWindowLastContentRect">{{820, 220}, {320, 480}}</string> |
1043 | <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1044 | <string key="60.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1045 | <string key="67.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1046 | @@ -916,18 +924,11 @@ |
1047 | <string key="73.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1048 | <string key="74.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1049 | <string key="81.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1050 | - <string key="86.IBEditorWindowLastContentRect">{{707, 975}, {200, 45}}</string> |
1051 | <string key="86.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1052 | <string key="87.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1053 | - <object class="NSAffineTransform" key="87.IBViewBoundsToFrameTransform"/> |
1054 | <string key="88.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1055 | - <object class="NSAffineTransform" key="88.IBViewBoundsToFrameTransform"> |
1056 | - <bytes key="NSTransformStruct">AQAAAABBYAAAA</bytes> |
1057 | - </object> |
1058 | <string key="89.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1059 | - <string key="94.IBEditorWindowLastContentRect">{{608, 1079}, {44, 29}}</string> |
1060 | <string key="94.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1061 | - <string key="99.IBEditorWindowLastContentRect">{{27, 1409}, {320, 100}}</string> |
1062 | <string key="99.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
1063 | <object class="NSMutableAttributedString" key="99.notes"> |
1064 | <object class="NSMutableString" key="NSString"> |
1065 | @@ -955,10 +956,6 @@ |
1066 | <object class="IBClassDescriber" key="IBDocument.Classes"/> |
1067 | <int key="IBDocument.localizationMode">0</int> |
1068 | <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> |
1069 | - <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> |
1070 | - <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> |
1071 | - <integer value="1056" key="NS.object.0"/> |
1072 | - </object> |
1073 | <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> |
1074 | <int key="IBDocument.defaultPropertyAccessControl">3</int> |
1075 | <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> |
1076 | @@ -967,6 +964,6 @@ |
1077 | <string key="player_back.png">{44, 29}</string> |
1078 | <string key="player_overlay_bg.png">{320, 100}</string> |
1079 | </dictionary> |
1080 | - <string key="IBCocoaTouchPluginVersion">301</string> |
1081 | + <string key="IBCocoaTouchPluginVersion">1875</string> |
1082 | </data> |
1083 | </archive> |