Ignore:
Timestamp:
02/23/03 04:55:07 (21 years ago)
Author:
Nicholas Riley
Message:

Pester 1.1b3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cocoa/Pester/Source/PSAlarmsController.m

    r53 r102  
    1010#import "PSAlarm.h"
    1111#import "PSAlerts.h"
     12#import "NSString-NJRExtensions.h"
    1213#import "NSTableView-NJRExtensions.h"
    1314#import "NJRTableView.h"
     
    1819- (void)alarmsChanged;
    1920{
    20     reorderedAlarms = [[tableView delegate] reorderedDataForData: [alarms alarms]];
     21    reorderedAlarms = [[alarmList delegate] reorderedDataForData: [alarms alarms]];
    2122}
    2223
     
    3435           }
    3536        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(alarmsChanged) name: PSAlarmsDidChangeNotification object: alarms];
    36         [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(tableViewSelectionDidChange:) name: NSTableViewSelectionDidChangeNotification object: tableView];
    37         [tableView setAutosaveName: @"Alarm list"];
    38         [tableView setAutosaveTableColumns: YES];
     37        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(tableViewSelectionDidChange:) name: NSTableViewSelectionDidChangeNotification object: alarmList];
     38        messageAttributes = [[NSDictionary alloc] initWithObjectsAndKeys: [[[alarmList tableColumnWithIdentifier: @"message"] dataCell] font], NSFontAttributeName, nil];
     39        [alarmList setAutosaveName: @"Alarm list"];
     40        [alarmList setAutosaveTableColumns: YES];
    3941        [self alarmsChanged];
    40         [[self window] makeFirstResponder: tableView];
    41         [[self window] setResizeIncrements: NSMakeSize(1, [tableView cellHeight])];
     42        [[self window] makeFirstResponder: alarmList];
     43        [[self window] setResizeIncrements: NSMakeSize(1, [alarmList cellHeight])];
    4244    }
    4345    return self;
    4446}
    4547
     48- (void)dealloc;
     49{
     50    [reorderedAlarms release];
     51    [messageAttributes release];
     52    [super dealloc];
     53}
    4654
    4755- (IBAction)remove:(id)sender;
    4856{
    49     [alarms removeAlarms: [[tableView delegate] selectedItems]];
     57    [alarms removeAlarms: [[alarmList delegate] selectedItems]];
    5058}
    5159
     
    6371    PSAlarm *alarm = [reorderedAlarms objectAtIndex: row];
    6472
    65     if ([[tableColumn identifier] isEqualToString: @"message"]) return [alarm message];
    66     else {
     73    if ([[tableColumn identifier] isEqualToString: @"message"]) {
     74        NSMutableString *message = [[alarm message] mutableCopy];
     75        [message truncateToWidth: [tableView frameOfCellAtColumn: 0 row: row].size.width by: NSLineBreakByTruncatingTail withAttributes: messageAttributes];
     76        return [message autorelease];
     77    } else {
    6778        NSCalendarDate *date = [alarm date];
    6879        if ([[tableColumn identifier] isEqualToString: @"date"]) return [alarm shortDateString];
     
    96107- (void)tableViewSelectionDidChange:(NSNotification *)aNotification;
    97108{
    98     [removeButton setEnabled: ([tableView numberOfSelectedRows] != 0)];
     109    [removeButton setEnabled: ([alarmList numberOfSelectedRows] != 0)];
    99110}
    100111
     
    115126- (NSRect)windowWillUseStandardFrame:(NSWindow *)sender defaultFrame:(NSRect)defaultFrame;
    116127{
    117     NSWindow *window = [tableView window];
     128    NSWindow *window = [alarmList window];
    118129    NSRect frame = [window frame];
    119     NSScrollView *scrollView = [tableView enclosingScrollView];
     130    NSScrollView *scrollView = [alarmList enclosingScrollView];
    120131    float displayedHeight = [[scrollView contentView] bounds].size.height;
    121132    float heightChange = [[scrollView documentView] bounds].size.height - displayedHeight;
     
    124135    if (heightChange >= 0 && heightChange <= 1) {
    125136        // either the window is already optimal size, or it's too big
    126         float rowHeight = [tableView cellHeight];
    127         heightChange = (rowHeight * [tableView numberOfRows]) - displayedHeight;
     137        float rowHeight = [alarmList cellHeight];
     138        heightChange = (rowHeight * [alarmList numberOfRows]) - displayedHeight;
    128139    }
    129140
Note: See TracChangeset for help on using the changeset viewer.