Remove unneeded header imports from some Web Inspector files.
[WebKit-https.git] / WebKit / mac / WebInspector / WebNodeHighlightView.m
index cd5a7a7..f1d6bcc 100644 (file)
 
 #import "WebNodeHighlightView.h"
 #import "WebNodeHighlight.h"
-#import "WebNSViewExtras.h"
 
-#import <WebKit/DOMCore.h>
-#import <WebKit/DOMExtensions.h>
+#import <WebCore/GraphicsContext.h>
+#import <WebCore/InspectorController.h>
+#import <wtf/Assertions.h>
 
-#import <JavaScriptCore/Assertions.h>
+using namespace WebCore;
 
 #define OVERLAY_MAX_ALPHA 0.7
 #define OVERLAY_WHITE_VALUE 0.1
 
-#define WHITE_FRAME_THICKNESS 1.0
-
-@interface WebNodeHighlightView (FileInternal)
-- (NSArray *)_holes;
-@end
+#define BORDER_THICKNESS 1.0
 
 @implementation WebNodeHighlightView
 
     _webNodeHighlight = nil;
 }
 
+- (BOOL)isFlipped
+{
+    return YES;
+}
+
 - (void)drawRect:(NSRect)rect 
 {
     [NSGraphicsContext saveGraphicsState];
 
-    // draw translucent gray fill, out of which we will cut holes
-    [[NSColor colorWithCalibratedWhite:OVERLAY_WHITE_VALUE alpha:(_fractionFadedIn * OVERLAY_MAX_ALPHA)] set];
-    NSRectFill(rect);
-
-    // determine set of holes
-    NSArray *holes = [self _holes];
-    int holeCount = [holes count];
-    int holeIndex;
+    ASSERT([[NSGraphicsContext currentContext] isFlipped]);
 
-    // Draw white frames around holes in first pass, so they will be erased in
-    // places where holes overlap or abut.
-    [[NSColor colorWithCalibratedWhite:1.0 alpha:_fractionFadedIn] set];
-
-    // white frame is just outside of the hole that the delegate returned
-    for (holeIndex = 0; holeIndex < holeCount; ++holeIndex) {
-        NSRect hole = [[holes objectAtIndex:holeIndex] rectValue];
-        hole = NSInsetRect(hole, -WHITE_FRAME_THICKNESS, -WHITE_FRAME_THICKNESS);
-        NSRectFill(hole);
-    }
-
-    [[NSColor clearColor] set];
-
-    // Erase holes in second pass.
-    for (holeIndex = 0; holeIndex < holeCount; ++holeIndex)
-        NSRectFill([[holes objectAtIndex:holeIndex] rectValue]);
+    GraphicsContext context((PlatformGraphicsContext*)[[NSGraphicsContext currentContext] graphicsPort]);
+    [_webNodeHighlight inspectorController]->drawNodeHighlight(context);
 
     [NSGraphicsContext restoreGraphicsState];
 }
     return _webNodeHighlight;
 }
 
-- (float)fractionFadedIn
-{
-    return _fractionFadedIn;
-}
-
-- (void)setFractionFadedIn:(float)fraction
-{
-    ASSERT_ARG(fraction, fraction >= 0.0 && fraction <= 1.0);
-
-    if (_fractionFadedIn == fraction)
-        return;
-    
-    _fractionFadedIn = fraction;
-    [self setNeedsDisplay:YES];
-}
-
-- (void)setHolesNeedUpdateInRect:(NSRect)rect
-{
-    // Redisplay a slightly larger rect to account for white border around holes
-    rect = NSInsetRect(rect, -1 * WHITE_FRAME_THICKNESS, 
-                             -1 * WHITE_FRAME_THICKNESS);
-
-    [self setNeedsDisplayInRect:rect];
-}
-
-@end
-
-@implementation WebNodeHighlightView (FileInternal)
-
-- (NSArray *)_holes
+- (void)setNeedsDisplayInRect:(NSRect)rect
 {
-    DOMNode *node = [_webNodeHighlight highlightedNode];
-
-    // FIXME: node view needs to be the correct frame document view, it isn't always the main frame
-    NSView *nodeView = [_webNodeHighlight targetView];
-
-    NSArray *lineBoxRects = nil;
-    if ([node isKindOfClass:[DOMElement class]]) {
-        DOMCSSStyleDeclaration *style = [[node ownerDocument] getComputedStyle:(DOMElement *)node pseudoElement:@""];
-        if ([[style getPropertyValue:@"display"] isEqualToString:@"inline"])
-            lineBoxRects = [node lineBoxRects];
-    } else if ([node isKindOfClass:[DOMText class]]) {
-#if ENABLE(SVG)
-        if (![[node parentNode] isKindOfClass:NSClassFromString(@"DOMSVGElement")])
-#endif
-            lineBoxRects = [node lineBoxRects];
-    }
-
-    if (![lineBoxRects count]) {
-        NSRect boundingBox = [nodeView _web_convertRect:[node boundingBox] toView:self];
-        return [NSArray arrayWithObject:[NSValue valueWithRect:boundingBox]];
-    }
-
-    NSMutableArray *rects = [[NSMutableArray alloc] initWithCapacity:[lineBoxRects count]];
-
-    unsigned lineBoxRectCount = [lineBoxRects count];
-    for (unsigned lineBoxRectIndex = 0; lineBoxRectIndex < lineBoxRectCount; ++lineBoxRectIndex) {
-        NSRect r = [[lineBoxRects objectAtIndex:lineBoxRectIndex] rectValue];
-        NSRect overlayViewRect = [nodeView _web_convertRect:r toView:self];
-        [rects addObject:[NSValue valueWithRect:overlayViewRect]];
-    }
-
-    return [rects autorelease];
+    // Redisplay a slightly larger rect to account for the border
+    rect = NSInsetRect(rect, -1 * BORDER_THICKNESS, -1 * BORDER_THICKNESS);
+    [super setNeedsDisplayInRect:rect];
 }
 
 @end