// // DDWRT_MonitorAppDelegate.h // DDWRT-Monitor // // Created by Matthieu Lalonde & Spike Grobstein on 11-05-27. // Copyleft 2011 Spurf CC BY-SH-NC. Some rights reserved. // #import #import #import "WRTStatusClient.h" @interface DDWRT_MonitorAppDelegate : NSObject { IBOutlet NSMenu *AppMenu; IBOutlet NSPanel *ConfigPanel; IBOutlet NSPanel *BandwidthViewer; IBOutlet WebView* BandwidthViewerWebView; IBOutlet id configFieldHostname; IBOutlet NSMatrix *configFieldProtocol; IBOutlet NSButtonCell *configFieldProtocolHTTP; IBOutlet NSButtonCell *configFieldProtocolHTTPS; IBOutlet id configFieldPort; IBOutlet id configFieldRefresh; IBOutlet id configLabelRefresh; IBOutlet id configFieldUseBytes; IBOutlet id configFieldShowIcon; IBOutlet id configLabelStatus; IBOutlet NSProgressIndicator *configStateStatus; IBOutlet id configButtonSave; IBOutlet id menuUptime; IBOutlet id menuLoad; IBOutlet id menuWanIP; IBOutlet id menuWanStatus; IBOutlet id menuWanUptime; IBOutlet id menuWanTrafficIn; IBOutlet id menuWanTrafficOut; IBOutlet id menuWanSeparator; IBOutlet id menuWanDNS; IBOutlet id menuWanDNSItem0; IBOutlet id menuWanDNSItem1; IBOutlet id menuWanDNSItem2; IBOutlet id menuWanBandwidthGraph; IBOutlet id menuClients; IBOutlet id menuClientsCount; IBOutlet id menuClientsConnections; IBOutlet id menuClientsSeparator; NSUserDefaults *defaults; // application prefs: NSString *hostname; NSString *protocol; uint16_t port; NSString *username; NSString *password; uint16_t refreshTime; BOOL useBytes; BOOL showMenuIcon; // end app prefs NSStatusItem *_appMenu; WRTStatusClient *wrt_update_client; WRTStatusClient *wrt_request_client; NSTimer *_updateTimer; NSDate *_lastDateThroughput; uint64_t _lastInThroughput; uint64_t _lastOutThroughput; @private uint8_t _statusDataRequestNumber; NSString *_statusStringData; } # pragma mark Application Delegates: - (void) terminate:(id)sender; - (void) initialize; - (void) deinitialize; # pragma mark Menu Methods: - (void) showMenubar; - (void) hideMenubar; - (void) showMenubarIcon:(BOOL)enabled; - (void) hideMenubarIcon; - (void) setMenubarText:(NSString *)menubarText; # pragma mark Configs Methods: - (void) initDefaults; - (void) readDefaults; - (void) writeDefaults; - (IBAction) showConfigPanel:(id)sender; - (IBAction) hideConfigPanel:(id)sender; - (IBAction) setConfigProtocol:(id)sender; - (IBAction) setConfigRefresh:(id)sender; - (IBAction) saveConfig:(id)sender; # pragma mark Request Handlers: - (void) cbUpdateStatus; - (void) getThroughput:(NSTimer *)timer; - (void) cbThroughput:(NSData *)data; - (void) getRouterData:(NSData *)data; # pragma mark Menu Handlers: - (IBAction) refreshMenu:(id)sender; - (void) populateMenuMain; - (void) populateMenuWan; - (void) populateMenuClients; - (NSMenu *) createCopyMenuItem; # pragma mark Utilities: - (IBAction) copyParentMenuTitle:(id)sender; - (NSString *) stringFromSize:(uint64_t)theBytes; - (NSString *) stringFromSpeed:(uint64_t)theBytes; @end