|
@@ -11,13 +11,14 @@
|
|
#import <UI/LadybirdWebView.h>
|
|
#import <UI/LadybirdWebView.h>
|
|
#import <UI/Tab.h>
|
|
#import <UI/Tab.h>
|
|
#import <UI/TabController.h>
|
|
#import <UI/TabController.h>
|
|
|
|
+#import <UI/TaskManagerController.h>
|
|
#import <Utilities/Conversions.h>
|
|
#import <Utilities/Conversions.h>
|
|
|
|
|
|
#if !__has_feature(objc_arc)
|
|
#if !__has_feature(objc_arc)
|
|
# error "This project requires ARC"
|
|
# error "This project requires ARC"
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-@interface ApplicationDelegate ()
|
|
|
|
|
|
+@interface ApplicationDelegate () <TaskManagerDelegate>
|
|
{
|
|
{
|
|
Vector<URL::URL> m_initial_urls;
|
|
Vector<URL::URL> m_initial_urls;
|
|
URL::URL m_new_tab_page_url;
|
|
URL::URL m_new_tab_page_url;
|
|
@@ -35,6 +36,8 @@
|
|
|
|
|
|
@property (nonatomic, strong) NSMutableArray<TabController*>* managed_tabs;
|
|
@property (nonatomic, strong) NSMutableArray<TabController*>* managed_tabs;
|
|
|
|
|
|
|
|
+@property (nonatomic, strong) TaskManagerController* task_manager_controller;
|
|
|
|
+
|
|
- (NSMenuItem*)createApplicationMenu;
|
|
- (NSMenuItem*)createApplicationMenu;
|
|
- (NSMenuItem*)createFileMenu;
|
|
- (NSMenuItem*)createFileMenu;
|
|
- (NSMenuItem*)createEditMenu;
|
|
- (NSMenuItem*)createEditMenu;
|
|
@@ -119,6 +122,12 @@
|
|
- (void)removeTab:(TabController*)controller
|
|
- (void)removeTab:(TabController*)controller
|
|
{
|
|
{
|
|
[self.managed_tabs removeObject:controller];
|
|
[self.managed_tabs removeObject:controller];
|
|
|
|
+
|
|
|
|
+ if ([self.managed_tabs count] == 0u) {
|
|
|
|
+ if (self.task_manager_controller != nil) {
|
|
|
|
+ [self.task_manager_controller.window close];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- (WebView::CookieJar&)cookieJar
|
|
- (WebView::CookieJar&)cookieJar
|
|
@@ -185,6 +194,17 @@
|
|
[current_window close];
|
|
[current_window close];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+- (void)openTaskManager:(id)sender
|
|
|
|
+{
|
|
|
|
+ if (self.task_manager_controller != nil) {
|
|
|
|
+ [self.task_manager_controller.window makeKeyAndOrderFront:sender];
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ self.task_manager_controller = [[TaskManagerController alloc] init:self];
|
|
|
|
+ [self.task_manager_controller showWindow:nil];
|
|
|
|
+}
|
|
|
|
+
|
|
- (void)openLocation:(id)sender
|
|
- (void)openLocation:(id)sender
|
|
{
|
|
{
|
|
auto* current_tab = [NSApp keyWindow];
|
|
auto* current_tab = [NSApp keyWindow];
|
|
@@ -430,6 +450,9 @@
|
|
[submenu addItem:[[NSMenuItem alloc] initWithTitle:@"Open Inspector"
|
|
[submenu addItem:[[NSMenuItem alloc] initWithTitle:@"Open Inspector"
|
|
action:@selector(openInspector:)
|
|
action:@selector(openInspector:)
|
|
keyEquivalent:@"I"]];
|
|
keyEquivalent:@"I"]];
|
|
|
|
+ [submenu addItem:[[NSMenuItem alloc] initWithTitle:@"Open Task Manager"
|
|
|
|
+ action:@selector(openTaskManager:)
|
|
|
|
+ keyEquivalent:@"M"]];
|
|
|
|
|
|
[menu setSubmenu:submenu];
|
|
[menu setSubmenu:submenu];
|
|
return menu;
|
|
return menu;
|
|
@@ -586,4 +609,11 @@
|
|
return YES;
|
|
return YES;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#pragma mark - TaskManagerDelegate
|
|
|
|
+
|
|
|
|
+- (void)onTaskManagerClosed
|
|
|
|
+{
|
|
|
|
+ self.task_manager_controller = nil;
|
|
|
|
+}
|
|
|
|
+
|
|
@end
|
|
@end
|