blob: 27ced8c790e10e4a87893fedafda6bbf0a6e4b47 [file] [log] [blame]
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -07001/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
2/*
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 Afanasyev88f0b3a2013-09-24 23:52:08 -070011
12@interface MenuDelegate : NSObject <NSApplicationDelegate>
13{
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070014 NSOperationQueue *m_operationQueue;
15
16 NSStatusItem *statusItem;
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070017
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070018 NSImage *m_connectedIcon;
19 NSImage *m_disconnectedIcon;
20 NSData *m_statusXslt;
Ilya Moiseenkob4aca052013-10-06 15:10:19 -070021 NSData *m_statusToFibXslt;
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070022
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070023 IBOutlet NSPopover *statusPopover;
24
25 IBOutlet NSMenu *statusMenu;
26 IBOutlet NSMenuItem *connectionStatus;
27 IBOutlet NSMenuItem *startstopButton;
28 IBOutlet NSMenuItem *daemonStatus;
29 IBOutlet NSMenuItem *routingStatus;
30 IBOutlet NSMenuItem *trafficMap;
31 IBOutlet NSMenuItem *ndnPreferences;
Ilya Moiseenkoa10ef8d2013-09-25 17:23:05 -070032
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070033 BOOL m_daemonStarted;
34 BOOL allowSoftwareUpdates;
35 BOOL enableHubDiscovery;
Ilya Moiseenko01264322013-09-26 15:34:21 -070036
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070037 IBOutlet NSView *daemonStatusView;
38 IBOutlet NSTextField *daemonStatusHtml;
39 IBOutlet NSView *daemonStatusHtmlView;
40 NSAttributedString *m_statusString;
Ilya Moiseenko01264322013-09-26 15:34:21 -070041
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070042 IBOutlet NSView *connectionStatusView;
43 IBOutlet NSTextField *connectionStatusText;
Ilya Moiseenko2dffcf52013-09-27 15:08:04 -070044
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070045 IBOutlet PreferenceDelegate *preferencesDelegate;
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -070046}
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070047
Ilya Moiseenko01264322013-09-26 15:34:21 -070048-(void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item;
Ilya Moiseenko350b9b52013-09-25 16:38:41 -070049
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070050-(IBAction)openDaemonStatus:(id)sender;
Ilya Moiseenkoe7058e72013-10-02 15:56:45 -070051-(IBAction)showExitConfirmationWindow:(id)sender;
Alexander Afanasyev6cacb972013-10-03 23:39:06 -070052
53- (void)statusUpdated:(NSXMLDocument*)document;
54- (void)statusUnavailable:(id)none;
55
Alexander Afanasyev88f0b3a2013-09-24 23:52:08 -070056@end