blob: dc736a6590573d40e6c5e54e755e0b145e615367 [file] [log] [blame]
Alexander Afanasyev14b09482013-10-11 18:24:45 +02001/* -*- Mode: objc; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -07002/*
3 * @copyright See LICENCE for copyright and license information.
4 *
5 * @author Alexander Afanasyev <alexander.afanasyev@ucla.edu>
6 * @author Ilya Moiseenko <iliamo@ucla.edu>
7 */
8
9#import <Cocoa/Cocoa.h>
Ilya Moiseenko1dc76da2013-09-30 11:53:36 -070010#import "preference-delegate.h"
Alexander Afanasyev17922872013-10-15 11:45:58 +030011#import "system-events.h"
Ilya Moiseenko0c9ab7c2013-10-29 15:08:23 -070012#import "tight-menu-item-view.h"
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -070013
14@interface MenuDelegate : NSObject <NSApplicationDelegate>
15{
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070016 NSOperationQueue *m_operationQueue;
17
18 NSStatusItem *statusItem;
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070019
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070020 NSImage *m_connectedIcon;
21 NSImage *m_disconnectedIcon;
22 NSData *m_statusXslt;
Ilya Moiseenkob4aca052013-10-06 15:10:19 -070023 NSData *m_statusToFibXslt;
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070024
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070025 IBOutlet NSPopover *statusPopover;
26
27 IBOutlet NSMenu *statusMenu;
28 IBOutlet NSMenuItem *connectionStatus;
29 IBOutlet NSMenuItem *startstopButton;
30 IBOutlet NSMenuItem *daemonStatus;
31 IBOutlet NSMenuItem *routingStatus;
32 IBOutlet NSMenuItem *trafficMap;
33 IBOutlet NSMenuItem *ndnPreferences;
Ilya Moiseenkoa10ef8d2013-09-25 17:23:05 -070034
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070035 BOOL m_daemonStarted;
Ilya Moiseenko01264322013-09-26 15:34:21 -070036
Ilya Moiseenko0c9ab7c2013-10-29 15:08:23 -070037 IBOutlet NSTextField *interestSentRecv;
38 IBOutlet NSTextField *dataSentRecv;
39
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070040 IBOutlet NSView *daemonStatusView;
Ilya Moiseenko01264322013-09-26 15:34:21 -070041
Ilya Moiseenko0c9ab7c2013-10-29 15:08:23 -070042 TightMenuItemView *connectionStatusView;
Ilya Moiseenko2dffcf52013-09-27 15:08:04 -070043
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070044 IBOutlet PreferenceDelegate *preferencesDelegate;
Alexander Afanasyevb9024d12013-10-14 18:10:18 +030045
Alexander Afanasyev17922872013-10-15 11:45:58 +030046 SystemEvents *m_systemEvents;
Alexander Afanasyevb9024d12013-10-14 18:10:18 +030047 bool m_autoconfInProgress;
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -070048}
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070049
Alexander Afanasyev506d0ab2013-10-29 19:18:10 -070050@property (nonatomic, readwrite) NSString *interestSent;
51@property (nonatomic, readwrite) NSString *interestRecv;
52@property (nonatomic, readwrite) NSString *dataSent;
53@property (nonatomic, readwrite) NSString *dataRecv;
54
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070055-(IBAction)openDaemonStatus:(id)sender;
Ilya Moiseenkoe7058e72013-10-02 15:56:45 -070056-(IBAction)showExitConfirmationWindow:(id)sender;
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070057
Alexander Afanasyev4e1c7e92013-10-11 18:25:09 +020058-(void)updateStatus;
59-(void)updateStatusWithDependency:(NSOperation*)dependency;
60-(void)statusUpdated:(NSXMLDocument*)document;
61-(void)statusUnavailable:(id)none;
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070062
Alexander Afanasyevb9024d12013-10-14 18:10:18 +030063-(void)restartDaemon:(id)none;
64
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -070065@end