You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.0 KiB
Objective-C
97 lines
3.0 KiB
Objective-C
#import "_cgo_export.h"
|
|
#import "MainViewController.h"
|
|
#import "MainView.h"
|
|
|
|
@interface MainViewController ()
|
|
|
|
@property (nonatomic, strong) NSOpenPanel *selectDirectoryPanel;
|
|
@property (nonatomic, strong) NSButton *selectDirectoryButton;
|
|
@property (nonatomic, strong) NSTextField *selectedDirectoryText;
|
|
|
|
@end
|
|
|
|
@implementation MainViewController
|
|
|
|
- (void) loadView {
|
|
NSLog(@"[MainViewController] loadView");
|
|
self.view = [[MainView alloc] init];
|
|
}
|
|
|
|
- (void) viewDidLoad {
|
|
NSLog(@"[MainViewController] viewDidLoad");
|
|
[super viewDidLoad];
|
|
|
|
// set window dimensions
|
|
[self.view.widthAnchor constraintGreaterThanOrEqualToConstant:640.0].active = YES;
|
|
[self.view.heightAnchor constraintGreaterThanOrEqualToConstant:480.0].active = YES;
|
|
|
|
// create open panel
|
|
self.selectDirectoryPanel = [NSOpenPanel openPanel];
|
|
[self.selectDirectoryPanel setCanChooseFiles:NO];
|
|
[self.selectDirectoryPanel setCanChooseDirectories:YES];
|
|
|
|
// create select directory button
|
|
self.selectDirectoryButton = [NSButton buttonWithTitle:@"select directory"
|
|
target:self
|
|
action:@selector(selectDirectory)];
|
|
[self.selectDirectoryButton setTranslatesAutoresizingMaskIntoConstraints:NO];
|
|
[self.view addSubview:self.selectDirectoryButton];
|
|
|
|
// create label to show selected directory
|
|
self.selectedDirectoryText = [NSTextField labelWithString:@"(none)"];
|
|
[self.view addSubview:self.selectedDirectoryText];
|
|
|
|
// setup constraints
|
|
[self.selectDirectoryButton.rightAnchor
|
|
constraintEqualToAnchor:self.view.rightAnchor
|
|
constant:-8.0].active = YES;
|
|
[self.selectDirectoryButton.topAnchor
|
|
constraintEqualToAnchor:self.view.topAnchor
|
|
constant:8.0].active = YES;
|
|
}
|
|
|
|
- (void) selectDirectory {
|
|
NSLog(@"[MainViewController] select directory start");
|
|
[self.selectDirectoryPanel beginWithCompletionHandler:^(NSInteger result) {
|
|
if (result != NSFileHandlingPanelOKButton) {
|
|
NSLog(@"[MainViewController] user canceled select directory window");
|
|
return;
|
|
}
|
|
NSURL *selected = [[self.selectDirectoryPanel URLs] objectAtIndex:0];
|
|
char *path = (char *)[[selected path] UTF8String];
|
|
selectDirectory(path);
|
|
}];
|
|
}
|
|
|
|
- (void) viewWillAppear {
|
|
NSLog(@"[MainViewController] viewWillAppear");
|
|
return [super viewWillAppear];
|
|
}
|
|
|
|
- (void) viewDidAppear {
|
|
NSLog(@"[MainViewController] viewDidAppear");
|
|
return [super viewDidAppear];
|
|
}
|
|
|
|
- (void) viewWillDisappear {
|
|
NSLog(@"[MainViewController] viewWillDisappear");
|
|
return [super viewWillDisappear];
|
|
}
|
|
|
|
- (void) viewDidDisappear {
|
|
NSLog(@"[MainViewController] viewDidDisappear");
|
|
return [super viewDidDisappear];
|
|
}
|
|
|
|
- (void) viewWillLayout {
|
|
NSLog(@"[MainViewController] viewWillLayout");
|
|
return [super viewWillLayout];
|
|
}
|
|
|
|
- (void) viewDidLayout {
|
|
NSLog(@"[MainViewController] viewDidLayout");
|
|
return [super viewDidLayout];
|
|
}
|
|
|
|
@end
|