source: trunk/Cocoa/DockCam/DockCamStatus.m @ 5

Last change on this file since 5 was 5, checked in by Nicholas Riley, 18 years ago

Initial import.

File size: 2.4 KB
Line 
1//
2//  DockCamStatus.m
3//  DockCam
4//
5//  Created by Nicholas Riley on Thu Jun 27 2002.
6//  Copyright (c) 2002 Nicholas Riley. All rights reserved.
7//
8
9#import "DockCamStatus.h"
10#import "DockCamPrefs.h"
11
12@implementation DockCamStatus
13
14- (void)awakeFromNib;
15{
16    NSEnumerator *e = [[statusForm cells] objectEnumerator];
17    NSCell *cell;
18    while ( (cell = [e nextObject]) != nil) {
19        [cell setFont: [NSFont systemFontOfSize: [NSFont smallSystemFontSize]]];
20    }
21
22    // XXX workaround for bug in 10.1.5 (and earlier?): autosave name set in IB doesn't show up
23    [self setWindowFrameAutosaveName: @"DockCam Status"];
24    [[self window] setHidesOnDeactivate: YES];
25       
26    if ([DockCamPrefs boolForPref: DCShowStatus])
27        [self showWindow: self];
28}
29
30- (IBAction)showWindow:(id)sender;
31{
32    [DockCamPrefs setBool: YES forPref: DCShowStatus];
33    [showHideStatusItem setAction: @selector(hideWindow:)];
34    [showHideStatusItem setTitle: @"Hide Status"];
35    // No need to subscribe to notifications, as the delegate we're already subscribed
36    [[self window] orderFront: self];
37}
38
39- (IBAction)hideWindow:(id)sender;
40{
41    [[self window] orderOut: sender];
42    [DockCamPrefs setBool: NO forPref: DCShowStatus];
43    [showHideStatusItem setAction: @selector(showWindow:)];
44    [showHideStatusItem setTitle: @"Show Status"];
45}
46
47w
48- (void)windowWillClose:(NSNotification *)aNotification;
49{
50    [self hideWindow: self];
51}
52
53#pragma mark status changes
54
55- (void)setLocation:(NSURL *)location;
56{
57    [locationCell setStringValue: [location absoluteString]];
58    [actualSize setStringValue: @""];
59    [retrievedDate setStringValue: @"never"];
60    [failedDate setStringValue: @"never"];
61    [failedReason setStringValue: @""];
62}
63
64- (void)setStatus:(NSString *)status;
65{
66    [statusCell setStringValue: status];
67}
68
69- (void)setRetrievedWithSize:(NSSize)size;
70{
71    static const unichar timesUnichar = 0x00d7;
72    [retrievedDate setObjectValue: [NSDate date]];
73    [self setStatus: @"Image retrieved successfully"];
74    [actualSize setStringValue: [NSString stringWithFormat: @"%.0f %@ %.0f pixels",
75        size.width, [NSString stringWithCharacters: &timesUnichar length: 1], size.height]];
76}
77
78- (void)setFailedWithReason:(NSString *)reason;
79{
80    [failedDate setObjectValue: [NSDate date]];
81    [failedReason setStringValue: reason];
82    [self setStatus: @"Image retrieval failed"];
83    if (![[self window] isVisible])
84        [self showWindow: self];
85}
86
87@end
Note: See TracBrowser for help on using the repository browser.