1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ddwrt_monitor/DDWRT_MonitorAppDelegate.h

155 lines
4.3 KiB

//
// 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 <Cocoa/Cocoa.h>
#import<WebKit/WebKit.h>
#import "WRTStatusClient.h"
@interface DDWRT_MonitorAppDelegate : NSObject <NSApplicationDelegate> {
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;
// System Menu Outlets
IBOutlet NSMenuItem *menuSystem;
IBOutlet NSMenuItem *menuSystemUptime;
IBOutlet NSMenuItem *menuSystemLoad;
IBOutlet NSMenuItem *menuSystemName;
IBOutlet NSMenuItem *menuSystemDomain;
IBOutlet NSMenuItem *menuSystemMemory;
IBOutlet NSProgressIndicator *menuSystemMemoryIndicator;
IBOutlet NSTextFieldCell *menuSystemMemoryPercentage;
// Wan Menu Outlets
IBOutlet NSMenuItem *menuWan;
IBOutlet NSMenuItem *menuWanIP;
IBOutlet NSMenuItem *menuWanStatus;
IBOutlet NSMenuItem *menuWanUptime;
IBOutlet NSMenuItem *menuWanTrafficIn;
IBOutlet NSMenuItem *menuWanTrafficOut;
IBOutlet NSMenuItem *menuWanAvrgSpeedIn;
IBOutlet NSMenuItem *menuWanAvrgSpeedOut;
IBOutlet NSMenuItem *menuWanSeparator;
IBOutlet NSMenuItem *menuWanDNS;
IBOutlet NSMenuItem *menuWanDNSItem0;
IBOutlet NSMenuItem *menuWanDNSItem1;
IBOutlet NSMenuItem *menuWanDNSItem2;
IBOutlet NSMenuItem *menuWanBandwidthGraph;
IBOutlet NSMenu *menuWanTraffic;
IBOutlet NSMenuItem *menuWanTrafficItem;
// Clients Menu Outlets
IBOutlet NSMenu *menuClients;
IBOutlet NSMenuItem *menuClientsItem;
IBOutlet NSMenuItem *menuClientsCount;
IBOutlet NSMenuItem *menuClientsConnections;
IBOutlet NSMenuItem *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;
uint8_t _transferDataRequestNumber;
NSString *_transferStringData;
NSMutableArray *_transferData;
}
# pragma mark Application Delegates:
- (void) terminate:(id)sender;
- (void) initialize;
- (void) deinitialize;
- (void) showInitAlert;
- (IBAction) showBandwidthViewer:(id)sender;
# pragma mark Menu Methods:
- (void) showMenubar;
- (void) hideMenubar;
- (void) showMenubarIcon:(BOOL)enabled;
- (void) hideMenubarIcon;
- (void) setMenubarText:(NSString *)menubarText;
- (void) disableDynamicMenus;
- (void) enableDynamicMenus;
# 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) getMonthlyTransfers:(NSData *)data;
- (void) getRouterData:(NSData *)data;
# pragma mark Menu Handlers:
- (IBAction) refreshMenu:(id)sender;
- (void) populateMenuSystem;
- (void) populateMenuWan;
- (void) populateMenuWanTransfers;
- (void) populateMenuClients;
- (NSMenu *) createCopyMenuItem;
# pragma mark Utilities:
- (IBAction) copyParentMenuTitle:(id)sender;
- (NSString *) stringFromSize:(uint64_t)theBytes;
- (NSString *) stringFromSize:(uint64_t)theBytes withUnits:(BOOL)withUnits;
- (NSString *) stringFromSpeed:(uint64_t)theBytes;
- (uint64_t) secondsFromUptimeString:(NSString *)uptime;
- (NSDate *) dateFromMonthsBack:(uint8_t)monthsBack;
@end