Ignore:
Timestamp:
01/02/03 05:30:03 (21 years ago)
Author:
Nicholas Riley
Message:

Updated for Pester 1.1a5 (very limited release).

Pester 1.1a4 was never released.

Location:
trunk/Cocoa/Pester/Source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cocoa/Pester/Source

    • Property svn:ignore
      •  

        old new  
        11build
         2.gdb_history
  • trunk/Cocoa/Pester/Source/PSMovieAlert.m

    r45 r53  
    1010#import "PSMovieAlert.h"
    1111#import "PSMovieAlertController.h"
     12#import "NSDictionary-NJRExtensions.h"
    1213#import "NSMovie-NJRExtensions.h"
     14#import "BDAlias.h"
     15
     16// property list keys
     17static NSString * const PLAlertRepetitions = @"times"; // NSString
     18static NSString * const PLAlertAlias = @"alias"; // NSData
    1319
    1420@implementation PSMovieAlert
     
    1622+ (PSMovieAlert *)alertWithMovieFileAlias:(BDAlias *)anAlias repetitions:(unsigned short)numReps;
    1723{
    18     return [[[self alloc] initWithAlias: anAlias repetitions: numReps] autorelease];
     24    return [[[self alloc] initWithMovieFileAlias: anAlias repetitions: numReps] autorelease];
    1925}
    2026
    21 - (id)initWithAlias:(BDAlias *)anAlias repetitions:(unsigned int) numReps;
     27- (id)initWithMovieFileAlias:(BDAlias *)anAlias repetitions:(unsigned int) numReps;
    2228{
    2329    if ( (self = [super init]) != nil) {
     30        NSString *path = [anAlias fullPath];
     31        if (path == nil) {
     32            [self release];
     33            [NSException raise: PSAlertCreationException format: @"CanÕt locate media to play as alert."];
     34        }
    2435        alias = [anAlias retain];
    2536        repetitions = numReps;
    26         movie = [[NSMovie alloc] initWithURL: [NSURL fileURLWithPath: [anAlias fullPath]] byReference: YES];
     37        movie = [[NSMovie alloc] initWithURL: [NSURL fileURLWithPath: path] byReference: YES];
    2738        if (movie == nil) {
    2839            [self release];
     
    4657}
    4758
     59- (BOOL)requiresPesterFrontmost;
     60{
     61    return hasVideo;
     62}
     63
    4864- (NSMovie *)movie;
    4965{
    5066    return movie;
     67}
     68
     69- (BDAlias *)movieFileAlias;
     70{
     71    return alias;
    5172}
    5273
     
    7394}
    7495
     96- (NSAttributedString *)actionDescription;
     97{
     98    BOOL isStatic = [movie isStatic];
     99    NSMutableAttributedString *string = [[(isStatic ? @"Show " : @"Play ") small] mutableCopy];
     100    NSString *kindString = nil, *name = [alias displayNameWithKindString: &kindString];
     101    if (name == nil) name = @"ÇcanÕt locate media fileÈ";
     102    else [string appendAttributedString: [[NSString stringWithFormat: @"%@ ", kindString] small]];
     103    [string appendAttributedString: [name underlined]];
     104    if (repetitions > 1 && !isStatic) {
     105        [string appendAttributedString: [[NSString stringWithFormat: @" %hu times", repetitions] small]];
     106    }
     107    return [string autorelease];
     108}
     109
     110#pragma mark property list serialization (Pester 1.1)
     111
     112- (NSDictionary *)propertyListRepresentation;
     113{
     114    NSMutableDictionary *plAlert = [[super propertyListRepresentation] mutableCopy];
     115    [plAlert setObject: [NSNumber numberWithUnsignedShort: repetitions] forKey: PLAlertRepetitions];
     116    [plAlert setObject: [alias aliasData] forKey: PLAlertAlias];
     117    return [plAlert autorelease];
     118}
     119
     120- (id)initWithPropertyList:(NSDictionary *)dict;
     121{
     122    return [self initWithMovieFileAlias: [BDAlias aliasWithData: [dict objectForRequiredKey: PLAlertAlias]]
     123                            repetitions: [[dict objectForRequiredKey: PLAlertRepetitions] unsignedShortValue]];
     124}
     125
    75126@end
Note: See TracChangeset for help on using the changeset viewer.