Split view management out of NJDeviceController. Right now this probably just makes...
[enjoyable.git] / Classes / NJDeviceViewController.h
1 //
2 // NJDeviceViewController.h
3 // Enjoyable
4 //
5 // Created by Joe Wreschnig on 3/16/13.
6 //
7 //
8
9 @class NJDevice;
10 @class NJInputPathElement;
11
12 @protocol NJDeviceViewControllerDelegate;
13
14 @interface NJDeviceViewController : NSObject <NSOutlineViewDataSource,
15 NSOutlineViewDelegate>
16
17 @property (nonatomic, strong) IBOutlet NSOutlineView *inputsTree;
18 @property (nonatomic, strong) IBOutlet NSView *noDevicesNotice;
19 @property (nonatomic, strong) IBOutlet NSView *hidStoppedNotice;
20
21 @property (nonatomic, weak) IBOutlet id <NJDeviceViewControllerDelegate> delegate;
22
23 @property (nonatomic, copy) NSArray *devices;
24 // Assigning directly will trigger a full reload.
25
26 - (void)addedDevice:(NJDevice *)device atIndex:(NSUInteger)idx;
27 - (void)removedDevice:(NJDevice *)device atIndex:(NSUInteger)idx;
28 // But using these will animate nicely.
29
30 - (void)hidStarted;
31 - (void)hidStopped;
32
33 - (void)expandAndSelectItem:(NJInputPathElement *)item;
34
35 - (NJInputPathElement *)selectedHandler;
36
37 @end
38
39 @protocol NJDeviceViewControllerDelegate <NSObject>
40
41 - (void)deviceViewController:(NJDeviceViewController *)devices
42 didSelectDevice:(NJInputPathElement *)device;
43 - (void)deviceViewController:(NJDeviceViewController *)devices
44 didSelectBranch:(NJInputPathElement *)handler;
45 - (void)deviceViewController:(NJDeviceViewController *)devices
46 didSelectHandler:(NJInputPathElement *)handler;
47 - (void)deviceViewControllerDidSelectNothing:(NJDeviceViewController *)devices;
48
49 @end