1ce24d62a2ea41a67244a39f52708bc5c2f77088
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / ios / WKContentView.h
1 /*
2  * Copyright (C) 2013 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
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.
12  *
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.
24  */
25
26 #import <UIKit/UIKit.h>
27 #import <WebKit2/WKBase.h>
28 #import <WebKit2/WKBrowsingContextController.h>
29 #import <WebKit2/WKBrowsingContextGroup.h>
30 #import <WebKit2/WKProcessGroup.h>
31
32 @class WKContentView;
33 @class WKWebViewConfiguration;
34
35 typedef NS_ENUM(unsigned, WKContentType)
36 {
37     Standard = 0,
38     PlainText,
39     Image
40 };
41
42 @protocol WKContentViewDelegate <NSObject>
43 @optional
44 - (void)contentView:(WKContentView *)contentView contentsSizeDidChange:(CGSize)newSize;
45 - (void)contentViewDidCommitLoadForMainFrame:(WKContentView *)contentView;
46 - (void)contentViewDidReceiveMobileDocType:(WKContentView *)contentView;
47 - (void)contentView:(WKContentView *)contentView didChangeViewportArgumentsSize:(CGSize)newSize initialScale:(float)initialScale minimumScale:(float)minimumScale maximumScale:(float)maximumScale allowsUserScaling:(float)allowsUserScaling;
48
49 @end
50
51 WK_API_CLASS
52 @interface WKContentView : UIView
53
54 @property (readonly, nonatomic) WKBrowsingContextController *browsingContextController;
55
56 @property (nonatomic, assign) id <WKContentViewDelegate> delegate;
57 @property (nonatomic, readonly) WKContentType contentType;
58
59 @property (readonly) WKPageRef _pageRef;
60
61 - (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration;
62
63 - (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
64 - (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef relatedToPage:(WKPageRef)relatedPage;
65 - (id)initWithFrame:(CGRect)frame processGroup:(WKProcessGroup *)processGroup browsingContextGroup:(WKBrowsingContextGroup *)browsingContextGroup;
66
67 - (void)setMinimumSize:(CGSize)size;
68 - (void)setViewportSize:(CGSize)size;
69
70 - (void)didFinishScrollTo:(CGPoint)contentOffset;
71 - (void)didScrollTo:(CGPoint)contentOffset;
72 - (void)didZoomToScale:(CGFloat)scale;
73 - (void)willStartZoomOrScroll;
74
75 @end