2 * Copyright (C) 2010 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
26 #include "PlatformWebView.h"
28 #import <Carbon/Carbon.h>
30 namespace TestWebKitAPI {
32 PlatformWebView::PlatformWebView(WKPageNamespaceRef pageNamespaceRef, WKPageGroupRef pageGroupRef)
34 NSRect rect = NSMakeRect(0, 0, 800, 600);
35 m_view = [[WKView alloc] initWithFrame:rect pageNamespaceRef:pageNamespaceRef pageGroupRef:pageGroupRef];
37 NSRect windowRect = NSOffsetRect(rect, -10000, [[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.size.height + 10000);
38 m_window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
39 [m_window setColorSpace:[[NSScreen mainScreen] colorSpace]];
40 [[m_window contentView] addSubview:m_view];
41 [m_window orderBack:nil];
42 [m_window setAutodisplay:NO];
43 [m_window setReleasedWhenClosed:NO];
46 void PlatformWebView::resizeTo(unsigned width, unsigned height)
48 [m_view setFrame:NSMakeRect(0, 0, width, height)];
51 PlatformWebView::~PlatformWebView()
58 WKPageRef PlatformWebView::page()
60 return [m_view pageRef];
63 void PlatformWebView::focus()
68 void PlatformWebView::simulateSpacebarKeyPress()
70 NSEvent *event = [NSEvent keyEventWithType:NSKeyDown
71 location:NSMakePoint(5, 5)
73 timestamp:GetCurrentEventTime()
74 windowNumber:[m_window windowNumber]
75 context:[NSGraphicsContext currentContext]
77 charactersIgnoringModifiers:@" "
81 [m_view keyDown:event];
83 event = [NSEvent keyEventWithType:NSKeyUp
84 location:NSMakePoint(5, 5)
86 timestamp:GetCurrentEventTime()
87 windowNumber:[m_window windowNumber]
88 context:[NSGraphicsContext currentContext]
90 charactersIgnoringModifiers:@" "
97 } // namespace TestWebKitAPI