source: trunk/Cocoa/Pester/Source/PSAlarm.h @ 366

Last change on this file since 366 was 366, checked in by Nicholas Riley, 13 years ago

Info-Pester.plist: Updated for build 23.

NJRHotKey.m: Cosmetic cleanup.

PSAlarm.[hm]: Fix -[PSAlarm time] to work properly, though it no
longer has any clients.

PSSnoozeUntilController.m: Fix snooze until time being off by an hour
as displayed, or if edited, in some time zones.

PSSpeechAlert.m: Display the voice name instead of its identifier in
the description.

Pester.xcodeproj: Misc.

release-notes.html: Updated for build 23.

File size: 2.6 KB
Line 
1//
2//  PSAlarm.h
3//  Pester
4//
5//  Created by Nicholas Riley on Wed Oct 09 2002.
6//  Copyright (c) 2002 Nicholas Riley. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10#import "PSPropertyListSerialization.h"
11
12typedef enum {
13    PSAlarmInvalid, // incorrectly specified
14    PSAlarmInterval, // interval specified (possibly repeating)
15    PSAlarmDate, // date specified
16    PSAlarmSet, // pending, timer set
17    PSAlarmSnooze, // expired alarm with snooze interval set (possibly repeating)
18    PSAlarmExpired // expired alarm (possibly repeating)
19} PSAlarmType;
20
21extern NSString * const PSAlarmTimerSetNotification;
22extern NSString * const PSAlarmTimerExpiredNotification;
23extern NSString * const PSAlarmDiedNotification;
24
25@class PSAlert, PSAlerts, PSTimer;
26
27@interface PSAlarm : NSObject <NSCoding, PSPropertyListSerialization> {
28    PSAlarmType alarmType; // changes during lifetime of alarm; more like a state
29    NSCalendarDate *alarmDate;
30    NSTimeInterval alarmInterval;
31    NSTimeInterval snoozeInterval;
32    NSTimeInterval timeRemaining;
33    NSString *alarmMessage;
34    NSString *invalidMessage;
35    PSTimer *timer;
36    PSAlerts *alerts;
37    BOOL repeating;
38}
39
40- (void)setInterval:(NSTimeInterval)anInterval;
41- (void)setForDateAtTime:(NSCalendarDate *)dateTime;
42- (void)setForDate:(NSDate *)date atTime:(NSDate *)time;
43- (void)setMessage:(NSString *)aMessage;
44- (void)setAlerts:(PSAlerts *)theAlerts;
45- (void)setRepeating:(BOOL)isRepeating;
46- (void)setSnoozeInterval:(NSTimeInterval)anInterval;
47- (void)setWakeUp:(BOOL)doWake;
48
49- (NSCalendarDate *)date;
50- (NSDate *)time;
51- (NSTimeInterval)interval;
52- (NSTimeInterval)timeRemaining;
53- (NSString *)message;
54- (PSAlerts *)alerts;
55- (BOOL)isRepeating;
56- (NSTimeInterval)snoozeInterval; // most recent interval (nonzero return does not indicate alarm is snoozing or set to snooze)
57
58- (NSString *)dateString;
59- (NSString *)shortDateString;
60- (NSString *)timeString;
61- (NSString *)dateTimeString; // current or next alarm time
62- (NSString *)nextDateTimeString; // next alarm time
63- (NSString *)intervalString;
64- (NSString *)timeRemainingString;
65
66- (BOOL)isValid;
67- (NSString *)invalidMessage;
68
69- (NSAttributedString *)prettyDescription;
70
71- (NSComparisonResult)compareDate:(PSAlarm *)otherAlarm;
72- (NSComparisonResult)compareMessage:(PSAlarm *)otherAlarm;
73
74- (BOOL)setTimer; // or die, if expired and no snooze/repeat
75- (void)cancelTimer;
76- (void)resetTimer; // use after cancel, only effective on set alarms
77
78// 1.1 only, going away when we move to keyed archiving (or Core Data)
79- (NSDictionary *)propertyListRepresentation;
80- (id)initWithPropertyList:(NSDictionary *)dict;
81
82@end
Note: See TracBrowser for help on using the repository browser.