mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 08:27:46 +00:00
Ladybird: Implement a basic Inspector window for the AppKit chrome
This commit includes only fetching the DOM tree from the WebContent process and displaying it in an NSOutlineView. The displayed tree includes some basic styling (e.g. colors).
This commit is contained in:
parent
33b006f157
commit
4483204c9c
10 changed files with 400 additions and 0 deletions
|
@ -14,6 +14,8 @@
|
|||
#import <Application/ApplicationDelegate.h>
|
||||
#import <UI/Console.h>
|
||||
#import <UI/ConsoleController.h>
|
||||
#import <UI/Inspector.h>
|
||||
#import <UI/InspectorController.h>
|
||||
#import <UI/LadybirdWebView.h>
|
||||
#import <UI/Tab.h>
|
||||
#import <UI/TabController.h>
|
||||
|
@ -32,6 +34,7 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800;
|
|||
@property (nonatomic, strong) NSImage* favicon;
|
||||
|
||||
@property (nonatomic, strong) ConsoleController* console_controller;
|
||||
@property (nonatomic, strong) InspectorController* inspector_controller;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -109,6 +112,9 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800;
|
|||
if (self.console_controller != nil) {
|
||||
[self.console_controller.window close];
|
||||
}
|
||||
if (self.inspector_controller != nil) {
|
||||
[self.inspector_controller.window close];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)openConsole:(id)sender
|
||||
|
@ -127,6 +133,22 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800;
|
|||
self.console_controller = nil;
|
||||
}
|
||||
|
||||
- (void)openInspector:(id)sender
|
||||
{
|
||||
if (self.inspector_controller != nil) {
|
||||
[self.inspector_controller.window makeKeyAndOrderFront:sender];
|
||||
return;
|
||||
}
|
||||
|
||||
self.inspector_controller = [[InspectorController alloc] init:self];
|
||||
[self.inspector_controller showWindow:nil];
|
||||
}
|
||||
|
||||
- (void)onInspectorClosed
|
||||
{
|
||||
self.inspector_controller = nil;
|
||||
}
|
||||
|
||||
#pragma mark - Private methods
|
||||
|
||||
- (TabController*)tabController
|
||||
|
@ -222,6 +244,18 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800;
|
|||
auto* console = (Console*)[self.console_controller window];
|
||||
[console reset];
|
||||
}
|
||||
if (self.inspector_controller != nil) {
|
||||
auto* inspector = (Inspector*)[self.inspector_controller window];
|
||||
[inspector reset];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)onLoadFinish:(URL const&)url
|
||||
{
|
||||
if (self.inspector_controller != nil) {
|
||||
auto* inspector = (Inspector*)[self.inspector_controller window];
|
||||
[inspector inspect];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)onTitleChange:(DeprecatedString const&)title
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue