Don't use (Details) when exposing SPI
[WebKit-https.git] / Source / WebKit2 / Platform / spi / ios / CorePDFSPI.h
1 /*
2  * Copyright (C) 2014 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 <CoreGraphics/CoreGraphics.h>
27 #import <UIKit/UIKit.h>
28
29 #if USE(APPLE_INTERNAL_SDK)
30
31 #import <CorePDF/UIPDFAnnotationController.h>
32 #import <CorePDF/UIPDFDocument.h>
33 #import <CorePDF/UIPDFLinkAnnotation.h>
34 #import <CorePDF/UIPDFPage.h>
35 #import <CorePDF/UIPDFPageView.h>
36 #import <CorePDF/UIPDFSelection.h>
37
38 #else
39
40 @class UIPDFSelection;
41
42 @interface UIPDFPage : NSObject
43 @end
44
45 @interface UIPDFPage ()
46 - (CGRect)cropBoxAccountForRotation;
47 - (UIPDFSelection *)findString:(NSString *)string fromSelection:(UIPDFSelection *)selection options:(NSStringCompareOptions)options;
48 @end
49
50 @interface UIPDFDocument : NSObject
51 @end
52
53 @interface UIPDFDocument ()
54 - (UIPDFPage *)pageAtIndex:(NSUInteger)index;
55 - (id)initWithCGPDFDocument:(CGPDFDocumentRef)document;
56 @property (assign, readonly) NSUInteger numberOfPages;
57 @property (readonly) CGPDFDocumentRef CGDocument;
58 @end
59
60 typedef enum {
61     kUIPDFObjectKindGraphic = 1,
62     kUIPDFObjectKindText = 2
63 } UIPDFObjectKind;
64
65 @class UIPDFPageView;
66 @protocol UIPDFAnnotationControllerDelegate;
67
68 @interface UIPDFAnnotationController : NSObject<UIGestureRecognizerDelegate>
69 @end
70
71 @interface UIPDFAnnotationController ()
72 @property (nonatomic, readonly) UIPDFPageView *pageView;
73 @property (nonatomic, assign) id<NSObject, UIPDFAnnotationControllerDelegate> delegate;
74 @end
75
76 @protocol UIPDFPageViewDelegate;
77
78 @interface UIPDFPageView : UIView
79 @end
80
81 @interface UIPDFPageView ()
82 - (id)initWithPage:(UIPDFPage *) page tiledContent:(BOOL)tiled;
83 - (CGRect)convertRectFromPDFPageSpace:(CGRect)p;
84 - (void)highlightSearchSelection:(UIPDFSelection *)selection animated:(BOOL)animated;
85 - (void)clearSearchHighlights;
86 @property (nonatomic, assign) BOOL useBackingLayer;
87 @property (nonatomic, assign) id<NSObject, UIPDFPageViewDelegate> delegate;
88 @property (nonatomic, readonly) CALayer *contentLayer;
89 @property (nonatomic, readonly) UIPDFAnnotationController *annotationController;
90 @end
91
92 @protocol UIPDFPageViewDelegate
93 @optional
94 - (BOOL)selectionWillTrack:(UIPDFPageView*)pageView;
95 - (BOOL)shouldRecognizeTapIn:(UIPDFPageView *)pageView atPoint:(CGPoint)point;
96 - (Class)classForAnnotationType:(const char *)type;
97 - (void)didTap:(UIPDFPageView *)pageView atPoint:(CGPoint)point;
98 - (void)doubleTapIn:(UIPDFPageView *)pageView atPoint:(CGPoint)point;
99 - (void)pageWasRendered:(UIPDFPageView *)pageView;
100 - (void)resetZoom:(UIPDFPageView *)pageView;
101 - (void)selectionDidEndTracking:(UIPDFPageView *)pageView;
102 - (void)zoom:(UIPDFPageView *)pageView to:(CGRect)rect atPoint:(CGPoint)pt kind:(UIPDFObjectKind)kind;
103 @end
104
105 @interface UIPDFAnnotation : NSObject
106 @end
107
108 @interface UIPDFAnnotation ()
109 - (CGRect)Rect;
110 @property (nonatomic, assign) UIPDFAnnotationController* annotationController;
111 @end
112
113 @interface UIPDFMarkupAnnotation : UIPDFAnnotation
114 @end
115
116 @interface UIPDFLinkAnnotation : UIPDFMarkupAnnotation
117 @end
118
119 @interface UIPDFLinkAnnotation ()
120 - (NSURL *)url;
121 - (NSUInteger)pageNumber;
122 @end
123
124 @protocol UIPDFAnnotationControllerDelegate
125 @optional
126 - (void)annotation:(UIPDFAnnotation *)annotation wasTouchedAtPoint:(CGPoint) point controller:(UIPDFAnnotationController *)controller;
127 - (void)annotation:(UIPDFAnnotation *)annotation isBeingPressedAtPoint:(CGPoint) point controller:(UIPDFAnnotationController *)controller;
128 @end
129
130 @interface UIPDFSelection : NSObject
131 @end
132
133 @interface UIPDFSelection ()
134 - (id)initWithPage:(UIPDFPage *)page fromIndex:(NSUInteger)startIndex toIndex:(NSUInteger)endIndex;
135 - (CGRect)bounds;
136 - (UIPDFPage *)page;
137 - (NSUInteger)startIndex;
138 @property (nonatomic, assign) CFRange stringRange;
139 @end
140
141 #endif