Changeset 1571

Show
Ignore:
Timestamp:
09/06/04 19:49:41 (4 years ago)
Author:
morris
Message:

move the stats timer to WCStats

schedule a timer to run at midnight and announce WCDateDidChange

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • WiredClient/trunk/WCMain.h

    r1515 r1571  
    1 /* $Id: WCMain.h,v 1.11 2004/08/21 11:45:08 morris Exp $ */ 
     1/* $Id: WCMain.h,v 1.12 2004/09/06 17:49:41 morris Exp $ */ 
    22 
    33/* 
     
    3030 
    3131@interface WCMain : NSWindowController { 
    32         WCIcons                                                 *_icons; 
    33         WCSettings                                              *_settings; 
    34         WCStats                                                 *_stats; 
     32        WCIcons                                                        *_icons; 
     33        WCSettings                                                     *_settings; 
     34        WCStats                                                        *_stats; 
    3535 
    36         WCTextFinder                                    *_textFinder; 
    37         WCTrackers                                              *_trackers; 
    38         WCPreferences                                   *_preferences; 
     36        WCTextFinder                                           *_textFinder; 
     37        WCTrackers                                                     *_trackers; 
     38        WCPreferences                                          *_preferences; 
    3939         
    40         IBOutlet NSMenu                                 *_connectionMenu; 
    41         IBOutlet NSMenuItem                             *_serverInfoMenuItem; 
    42         IBOutlet NSMenuItem                             *_chatMenuItem; 
    43         IBOutlet NSMenuItem                             *_newsMenuItem; 
    44         IBOutlet NSMenuItem                             *_messagesMenuItem; 
    45         IBOutlet NSMenuItem                             *_filesMenuItem; 
    46         IBOutlet NSMenuItem                             *_transfersMenuItem; 
    47         IBOutlet NSMenuItem                             *_searchMenuItem; 
    48         IBOutlet NSMenuItem                             *_consoleMenuItem; 
    49         IBOutlet NSMenuItem                             *_accountsMenuItem; 
    50         IBOutlet NSMenuItem                             *_saveChatMenuItem; 
    51         IBOutlet NSMenuItem                             *_getInfoMenuItem; 
    52         IBOutlet NSMenuItem                             *_postNewMenuItem; 
    53         IBOutlet NSMenuItem                             *_broadcastMenuItem; 
    54         IBOutlet NSMenuItem                             *_setTopicMenuItem; 
    55         IBOutlet NSMenuItem                             *_disconnectMenuItem; 
     40        IBOutlet NSMenu                                         *_connectionMenu; 
     41        IBOutlet NSMenuItem                                     *_serverInfoMenuItem; 
     42        IBOutlet NSMenuItem                                     *_chatMenuItem; 
     43        IBOutlet NSMenuItem                                     *_newsMenuItem; 
     44        IBOutlet NSMenuItem                                     *_messagesMenuItem; 
     45        IBOutlet NSMenuItem                                     *_filesMenuItem; 
     46        IBOutlet NSMenuItem                                     *_transfersMenuItem; 
     47        IBOutlet NSMenuItem                                     *_searchMenuItem; 
     48        IBOutlet NSMenuItem                                     *_consoleMenuItem; 
     49        IBOutlet NSMenuItem                                     *_accountsMenuItem; 
     50        IBOutlet NSMenuItem                                     *_saveChatMenuItem; 
     51        IBOutlet NSMenuItem                                     *_getInfoMenuItem; 
     52        IBOutlet NSMenuItem                                     *_postNewMenuItem; 
     53        IBOutlet NSMenuItem                                     *_broadcastMenuItem; 
     54        IBOutlet NSMenuItem                                     *_setTopicMenuItem; 
     55        IBOutlet NSMenuItem                                     *_disconnectMenuItem; 
     56         
     57        IBOutlet NSMenu                                         *_filesMenu; 
     58        IBOutlet NSMenuItem                                     *_newFolderMenuItem; 
     59        IBOutlet NSMenuItem                                     *_reloadMenuItem; 
     60        IBOutlet NSMenuItem                                     *_deleteMenuItem; 
     61        IBOutlet NSMenuItem                                     *_backMenuItem; 
     62        IBOutlet NSMenuItem                                     *_forwardMenuItem; 
     63         
     64        IBOutlet NSMenu                                         *_viewMenu; 
     65        IBOutlet NSMenuItem                                     *_viewOptionsMenuItem; 
     66         
     67        IBOutlet NSMenu                                         *_bookmarksMenu; 
     68        IBOutlet NSMenuItem                                     *_addBookmarkMenuItem; 
    5669 
    57         IBOutlet NSMenu                                 *_filesMenu; 
    58         IBOutlet NSMenuItem                             *_newFolderMenuItem; 
    59         IBOutlet NSMenuItem                             *_reloadMenuItem; 
    60         IBOutlet NSMenuItem                             *_deleteMenuItem; 
    61         IBOutlet NSMenuItem                             *_backMenuItem; 
    62         IBOutlet NSMenuItem                             *_forwardMenuItem; 
     70        IBOutlet NSTextField                            *_addressTextField; 
     71        IBOutlet NSTextField                            *_loginTextField; 
     72        IBOutlet NSSecureTextField                      *_passwordTextField; 
     73        IBOutlet NSProgressIndicator            *_progressIndicator; 
    6374         
    64         IBOutlet NSMenu                                        *_viewMenu
    65         IBOutlet NSMenuItem                            *_viewOptionsMenuItem
     75        IBOutlet NSPanel                                       *_exceptionPanel
     76        IBOutlet NSTextView                                    *_exceptionTextView
    6677         
    67         IBOutlet NSMenu                                 *_bookmarksMenu; 
    68         IBOutlet NSMenuItem                             *_addBookmarkMenuItem; 
    69  
    70         IBOutlet NSTextField                    *_addressTextField; 
    71         IBOutlet NSTextField                    *_loginTextField; 
    72         IBOutlet NSSecureTextField              *_passwordTextField; 
    73         IBOutlet NSProgressIndicator    *_progressIndicator; 
    74          
    75         IBOutlet NSPanel                                *_exceptionPanel; 
    76         IBOutlet NSTextView                             *_exceptionTextView; 
    77          
    78         unsigned int                                    _connections; 
    79         WCConnection                                    *_connection; 
    80         NSString                                                *_clientVersion; 
    81         unsigned int                                    _unread; 
     78        unsigned int                                            _connections; 
     79        WCConnection                                            *_connection; 
     80        NSString                                                        *_clientVersion; 
     81        unsigned int                                            _unread; 
    8282} 
    8383 
    8484 
    85 extern WCMain                                           *WCSharedMain; 
     85extern WCMain                                                  *WCSharedMain; 
    8686 
    8787 
    88 #define WCApplicationSupportPath        @"~/Library/Application Support/Wired Client" 
     88#define WCApplicationDidChangeStatus    @"WCApplicationDidChangeStatus" 
     89 
     90#define WCDateDidChange                                 @"WCDateDidChange" 
     91 
     92#define WCApplicationSupportPath                @"~/Library/Application Support/Wired Client" 
    8993 
    9094 
    91 - (void)                                                        updateIcon; 
    92 - (void)                                                        updateBookmarksMenu; 
    93 - (void)                                                        handleStatsKey; 
    94 - (void)                                                        saveStats:(NSTimer *)timer; 
     95- (void)                                                                updateIcon; 
     96- (void)                                                                updateBookmarksMenu; 
    9597 
    96 - (WCTrackers *)                                        trackers; 
    97 - (NSString *)                                          clientVersion; 
    98 - (unsigned int)                                       unread
    99 - (void)                                                       setUnread:(unsigned int)value
     98- (WCTrackers *)                                               trackers; 
     99- (NSString *)                                                 clientVersion; 
     100- (void)                                                               setUnread:(unsigned int)value
     101- (unsigned int)                                               unread
    100102 
    101 - (void)                                                        showConnect:(NSURL *)url; 
    102 - (IBAction)                                            connectWithWindow:(id)sender; 
    103 - (IBAction)                                            connectWithWindow:(id)sender name:(NSString *)bookmark; 
    104 - (NSWindow *)                                          shownWindow; 
     103- (void)                                                               showConnect:(NSURL *)url; 
     104- (IBAction)                                                   connectWithWindow:(id)sender; 
     105- (IBAction)                                                   connectWithWindow:(id)sender name:(NSString *)bookmark; 
     106- (NSWindow *)                                                 shownWindow; 
    105107 
    106 - (IBAction)                                            about:(id)sender; 
    107 - (IBAction)                                            preferences:(id)sender; 
     108- (IBAction)                                                   about:(id)sender; 
     109- (IBAction)                                                   preferences:(id)sender; 
    108110 
    109 - (IBAction)                                            connect:(id)sender; 
    110 - (IBAction)                                            showTrackers:(id)sender; 
    111 - (IBAction)                                            serverInfo:(id)sender; 
    112 - (IBAction)                                            chat:(id)sender; 
    113 - (IBAction)                                            news:(id)sender; 
    114 - (IBAction)                                            messages:(id)sender; 
    115 - (IBAction)                                            files:(id)sender; 
    116 - (IBAction)                                            transfers:(id)sender; 
    117 - (IBAction)                                            search:(id)sender; 
    118 - (IBAction)                                            console:(id)sender; 
    119 - (IBAction)                                            accounts:(id)sender; 
    120 - (IBAction)                                            saveChat:(id)sender; 
    121 - (IBAction)                                            getInfo:(id)sender; 
    122 - (IBAction)                                            postNews:(id)sender; 
    123 - (IBAction)                                            broadcast:(id)sender; 
    124 - (IBAction)                                            setTopic:(id)sender; 
    125 - (IBAction)                                            disconnect:(id)sender; 
     111- (IBAction)                                                   connect:(id)sender; 
     112- (IBAction)                                                   showTrackers:(id)sender; 
     113- (IBAction)                                                   serverInfo:(id)sender; 
     114- (IBAction)                                                   chat:(id)sender; 
     115- (IBAction)                                                   news:(id)sender; 
     116- (IBAction)                                                   messages:(id)sender; 
     117- (IBAction)                                                   files:(id)sender; 
     118- (IBAction)                                                   transfers:(id)sender; 
     119- (IBAction)                                                   search:(id)sender; 
     120- (IBAction)                                                   console:(id)sender; 
     121- (IBAction)                                                   accounts:(id)sender; 
     122- (IBAction)                                                   saveChat:(id)sender; 
     123- (IBAction)                                                   getInfo:(id)sender; 
     124- (IBAction)                                                   postNews:(id)sender; 
     125- (IBAction)                                                   broadcast:(id)sender; 
     126- (IBAction)                                                   setTopic:(id)sender; 
     127- (IBAction)                                                   disconnect:(id)sender; 
    126128 
    127 - (IBAction)                                            findPanel:(id)sender; 
    128 - (IBAction)                                            findNext:(id)sender; 
    129 - (IBAction)                                            findPrevious:(id)sender; 
    130 - (IBAction)                                            useSelectionForFind:(id)sender; 
    131 - (IBAction)                                            jumpToSelection:(id)sender; 
     129- (IBAction)                                                   findPanel:(id)sender; 
     130- (IBAction)                                                   findNext:(id)sender; 
     131- (IBAction)                                                   findPrevious:(id)sender; 
     132- (IBAction)                                                   useSelectionForFind:(id)sender; 
     133- (IBAction)                                                   jumpToSelection:(id)sender; 
    132134 
    133 - (IBAction)                                            largerText:(id)sender; 
    134 - (IBAction)                                            smallerText:(id)sender; 
    135 - (IBAction)                                            viewOptions:(id)sender; 
     135- (IBAction)                                                   largerText:(id)sender; 
     136- (IBAction)                                                   smallerText:(id)sender; 
     137- (IBAction)                                                   viewOptions:(id)sender; 
    136138 
    137 - (IBAction)                                            newFolder:(id)sender; 
    138 - (IBAction)                                            reload:(id)sender; 
    139 - (IBAction)                                            delete:(id)sender; 
    140 - (IBAction)                                            back:(id)sender; 
    141 - (IBAction)                                            forward:(id)sender; 
     139- (IBAction)                                                   newFolder:(id)sender; 
     140- (IBAction)                                                   reload:(id)sender; 
     141- (IBAction)                                                   delete:(id)sender; 
     142- (IBAction)                                                   back:(id)sender; 
     143- (IBAction)                                                   forward:(id)sender; 
    142144 
    143 - (IBAction)                                            addBookmark:(id)sender; 
    144 - (IBAction)                                            bookmark:(id)sender; 
     145- (IBAction)                                                   addBookmark:(id)sender; 
     146- (IBAction)                                                   bookmark:(id)sender; 
    145147 
    146148@end 
  • WiredClient/trunk/WCMain.m

    r1556 r1571  
    1 /* $Id: WCMain.m,v 1.47 2004/08/29 13:51:32 morris Exp $ */ 
     1/* $Id: WCMain.m,v 1.48 2004/09/06 17:49:41 morris Exp $ */ 
    22 
    33/* 
     
    6363 
    6464- (id)init { 
     65        NSTimer                         *timer; 
     66        NSCalendarDate          *now, *date; 
    6567        struct utsname          name; 
    6668         
     
    142144                         object:NULL]; 
    143145         
    144         // --- create stats saving timer 
    145         [NSTimer scheduledTimerWithTimeInterval:900 
    146                         target:self 
    147                         selector:@selector(saveStats:) 
    148                         userInfo:NULL 
    149                         repeats:YES]; 
    150  
    151146        // --- register a selector to use when receiving an open URL message 
    152147        [[NSAppleEventManager sharedAppleEventManager] 
     
    167162                        stringByAppendingPathComponent:@"Icons"] 
    168163                attributes:NULL]; 
     164         
     165        // --- create date representing the coming midnight 
     166        now = [NSCalendarDate date]; 
     167        date = [NSCalendarDate dateWithYear:[now yearOfCommonEra] 
     168                                                                  month:[now monthOfYear] 
     169                                                                        day:[now dayOfMonth] 
     170                                                                   hour:0 
     171                                                                 minute:0 
     172                                                                 second:0 
     173                                                           timeZone:[NSTimeZone systemTimeZone]]; 
     174        date = [date dateByAddingYears:0 months:0 days:1 hours:0 minutes:0 seconds:0]; 
     175 
     176        // --- schedule a timer to hit at midnight 
     177        timer = [[NSTimer alloc] initWithFireDate:date 
     178                                                                         interval:86400 
     179                                                                           target:self 
     180                                                                         selector:@selector(daily:) 
     181                                                                         userInfo:NULL 
     182                                                                          repeats:YES]; 
     183        [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 
     184        [timer release]; 
    169185         
    170186        return self; 
     
    288304                postNotificationName:WCApplicationDidChangeStatus 
    289305                object:NULL]; 
     306} 
     307 
     308 
     309 
     310- (void)applicationShouldDisplayStats:(id)sender { 
     311        WCConnection    *connection; 
     312        id                              controller; 
     313         
     314        // --- get active connection 
     315        controller = [[NSApp keyWindow] windowController]; 
     316        connection = [(WCWindowController *) controller connection]; 
     317         
     318        // --- send stats 
     319        if(connection && [controller isKindOfClass:[WCChat class]]) { 
     320                [connection sendCommand:WCSayCommand 
     321                                   withArgument:[NSString stringWithFormat:@"%u", [controller cid]] 
     322                                   withArgument:[WCStats stats] 
     323                                         withSender:self]; 
     324        } 
    290325} 
    291326 
     
    587622 
    588623 
    589 - (void)handleStatsKey { 
    590         WCConnection    *connection; 
    591         id                              controller; 
    592          
    593         // --- get active connection 
    594         controller = [[NSApp keyWindow] windowController]; 
    595         connection = [(WCWindowController *) controller connection]; 
    596          
    597         // --- send stats 
    598         if(connection && [controller isKindOfClass:[WCChat class]]) { 
    599                 [connection sendCommand:WCSayCommand 
    600                                    withArgument:[NSString stringWithFormat:@"%u", [controller cid]] 
    601                                    withArgument:[WCStats stats] 
    602                                          withSender:self]; 
    603         } 
    604 
    605  
    606  
    607  
    608 - (void)saveStats:(NSTimer *)timer { 
    609         [WCStats save]; 
     624- (void)daily:(NSTimer *)timer { 
     625        [[NSNotificationCenter defaultCenter] 
     626                postNotificationName:WCDateDidChange 
     627                object:NULL]; 
    610628} 
    611629 
     
    626644 
    627645 
     646- (void)setUnread:(unsigned int)value { 
     647        _unread = value; 
     648} 
     649 
     650 
     651 
    628652- (unsigned int)unread { 
    629653        return _unread; 
    630 } 
    631  
    632  
    633  
    634 - (void)setUnread:(unsigned int)value { 
    635         _unread = value; 
    636654} 
    637655 
  • WiredClient/trunk/WCStats.m

    r1478 r1571  
    1 /* $Id: WCStats.m,v 1.6 2004/08/12 17:11:57 morris Exp $ */ 
     1/* $Id: WCStats.m,v 1.7 2004/09/06 17:49:41 morris Exp $ */ 
    22 
    33/* 
     
    7171                [stats setObject:[NSNumber numberWithInt:0] forKey:WCStatsOnline]; 
    7272         
     73        // --- create stats saving timer 
     74        [NSTimer scheduledTimerWithTimeInterval:900 
     75                                                                         target:self 
     76                                                                   selector:@selector(saveTimer:) 
     77                                                                   userInfo:NULL 
     78                                                                        repeats:YES]; 
     79 
    7380        return self; 
     81} 
     82 
     83 
     84 
     85#pragma mark - 
     86 
     87- (void)saveTimer:(NSTimer *)timer { 
     88        [[self class] save]; 
    7489} 
    7590