[WK2] autocorrect and autocapitalize attributes do not work in contenteditable elements
[WebKit-https.git] / Source / WebKit / mac / DOM / DOMPrivate.h
1 /*
2  * Copyright (C) 2004-2006 Apple Inc.  All rights reserved.
3  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
25  */
26
27 #import <WebKitLegacy/DOM.h>
28 #import <WebKitLegacy/WebAutocapitalizeTypes.h>
29
30 #if TARGET_OS_IPHONE
31 #import <CoreText/CoreText.h>
32 #endif
33
34 @interface DOMNode (DOMNodeExtensionsPendingPublic)
35 #if !TARGET_OS_IPHONE
36 - (NSImage *)renderedImage;
37 #endif
38 - (NSArray *)textRects;
39 @end
40
41 @interface DOMNode (WebPrivate)
42 + (id)_nodeFromJSWrapper:(JSObjectRef)jsWrapper;
43 - (void)getPreviewSnapshotImage:(CGImageRef*)cgImage andRects:(NSArray **)rects;
44 @end
45
46 // FIXME: this should be removed as soon as all internal Apple uses of it have been replaced with
47 // calls to the public method - (NSColor *)color.
48 @interface DOMRGBColor (WebPrivate)
49 #if !TARGET_OS_IPHONE
50 - (NSColor *)_color;
51 #endif
52 @end
53
54 // FIXME: this should be removed as soon as all internal Apple uses of it have been replaced with
55 // calls to the public method - (NSString *)text.
56 @interface DOMRange (WebPrivate)
57 - (NSString *)_text;
58 @end
59
60 @interface DOMRange (DOMRangeExtensions)
61 #if TARGET_OS_IPHONE
62 - (CGRect)boundingBox;
63 #else
64 - (NSRect)boundingBox;
65 #endif
66 #if !TARGET_OS_IPHONE
67 - (NSImage *)renderedImageForcingBlackText:(BOOL)forceBlackText;
68 #else
69 - (CGImageRef)renderedImageForcingBlackText:(BOOL)forceBlackText;
70 #endif
71 - (NSArray *)lineBoxRects; // Deprecated. Use textRects instead.
72 - (NSArray *)textRects;
73 @end
74
75 @interface DOMElement (WebPrivate)
76 #if !TARGET_OS_IPHONE
77 - (NSData *)_imageTIFFRepresentation;
78 #endif
79 - (CTFontRef)_font;
80 - (NSURL *)_getURLAttribute:(NSString *)name;
81 - (BOOL)isFocused;
82 @end
83
84 @interface DOMCSSStyleDeclaration (WebPrivate)
85 - (NSString *)_fontSizeDelta;
86 - (void)_setFontSizeDelta:(NSString *)fontSizeDelta;
87 @end
88
89 @interface DOMHTMLDocument (WebPrivate)
90 - (DOMDocumentFragment *)_createDocumentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString;
91 - (DOMDocumentFragment *)_createDocumentFragmentWithText:(NSString *)text;
92 @end
93
94 @interface DOMHTMLTableCellElement (WebPrivate)
95 - (DOMHTMLTableCellElement *)_cellAbove;
96 @end
97
98 // All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
99 // Each one should eventually be replaced by public DOM API, and when that happens Safari will switch to implementations 
100 // using that public API, and these will be deleted.
101 @interface DOMHTMLInputElement (FormAutoFillTransition)
102 - (BOOL)_isTextField;
103 #if TARGET_OS_IPHONE
104 - (BOOL)_isAutofilled;
105 - (void)_setAutofilled:(BOOL)filled;
106 #endif
107 @end
108
109 #if TARGET_OS_IPHONE
110 // These changes are necessary to detect whether a form input was modified by a user
111 // or javascript
112 @interface DOMHTMLInputElement (FormPromptAdditions)
113 - (BOOL)_isEdited;
114 @end
115
116 @interface DOMHTMLTextAreaElement (FormPromptAdditions)
117 - (BOOL)_isEdited;
118 @end
119 #endif // TARGET_OS_IPHONE
120
121 // All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
122 // They are stopgap measures until we finish transitioning form controls to not use NSView. Each one should become
123 // replaceable by public DOM API, and when that happens Safari will switch to implementations using that public API,
124 // and these will be deleted.
125 @interface DOMHTMLSelectElement (FormAutoFillTransition)
126 - (void)_activateItemAtIndex:(int)index;
127 - (void)_activateItemAtIndex:(int)index allowMultipleSelection:(BOOL)allowMultipleSelection;
128 @end
129
130 #if TARGET_OS_IPHONE
131 enum { WebMediaQueryOrientationCurrent, WebMediaQueryOrientationPortrait, WebMediaQueryOrientationLandscape };
132 @interface DOMHTMLLinkElement (WebPrivate)
133 - (BOOL)_mediaQueryMatchesForOrientation:(int)orientation;
134 - (BOOL)_mediaQueryMatches;
135 @end
136
137 // These changes are useful to get the AutocapitalizeType on particular form controls.
138 @interface DOMHTMLInputElement (AutocapitalizeAdditions)
139 - (WebAutocapitalizeType)_autocapitalizeType;
140 @end
141
142 @interface DOMHTMLTextAreaElement (AutocapitalizeAdditions)
143 - (WebAutocapitalizeType)_autocapitalizeType;
144 @end
145
146 // These are used by Date and Time input types because the generated ObjC methods default to not dispatching events.
147 @interface DOMHTMLInputElement (WebInputChangeEventAdditions)
148 - (void)setValueWithChangeEvent:(NSString *)newValue;
149 - (void)setValueAsNumberWithChangeEvent:(double)newValueAsNumber;
150 @end
151 #endif // TARGET_OS_IPHONE