2 * Copyright (C) 2015 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 #import "WK1WebDocumentController.h"
28 #import <WebKit/WebKit.h>
29 #import <WebKit/WebPreferences.h>
30 #import <WebKit/WebPreferencesPrivate.h>
31 #import <WebKit/WebPreferenceKeysPrivate.h>
32 #import <WebKit/WebViewPrivate.h>
34 @interface WK1WebDocumentController () <WebUIDelegate>
35 @property (nonatomic, strong) WebView *webView;
38 @implementation WK1WebDocumentController
42 self.webView = [[WebView alloc] initWithFrame:[containerView bounds] frameName:nil groupName:@"WebEditingTester"];
43 _webView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
45 _webView.editable = YES;
46 _webView.UIDelegate = self;
48 WebPreferences *preferences = [WebPreferences standardPreferences];
49 preferences.fullScreenEnabled = YES;
50 preferences.developerExtrasEnabled = YES;
51 preferences.imageControlsEnabled = YES;
52 preferences.serviceControlsEnabled = YES;
54 self.window.title = @"WebEditor [WK1]";
55 [containerView addSubview:_webView];
58 - (void)loadHTMLString:(NSString *)content
60 [_webView.mainFrame loadHTMLString:content baseURL:nil];
63 - (IBAction)pasteAsMarkup:(id)sender
65 // FIXME: This is probably incorrect, should use WebArchive
66 NSString *markup = [[NSPasteboard generalPasteboard] stringForType:NSStringPboardType];
67 [_webView replaceSelectionWithMarkupString:markup ? markup : @""];