6d78172e07897da7ea3c9e389b5163930246e2cb
[WebKit-https.git] / WebKit / win / Interfaces / DOMPrivate.idl
1 /*
2  * Copyright (C) 2006, 2007 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 COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 cpp_quote("/*")
27 cpp_quote(" * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.")
28 cpp_quote(" *")
29 cpp_quote(" * Redistribution and use in source and binary forms, with or without")
30 cpp_quote(" * modification, are permitted provided that the following conditions")
31 cpp_quote(" * are met:")
32 cpp_quote(" * 1. Redistributions of source code must retain the above copyright")
33 cpp_quote(" *    notice, this list of conditions and the following disclaimer.")
34 cpp_quote(" * 2. Redistributions in binary form must reproduce the above copyright")
35 cpp_quote(" *    notice, this list of conditions and the following disclaimer in the")
36 cpp_quote(" *    documentation and/or other materials provided with the distribution.")
37 cpp_quote(" *")
38 cpp_quote(" * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY")
39 cpp_quote(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE")
40 cpp_quote(" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR")
41 cpp_quote(" * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR")
42 cpp_quote(" * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,")
43 cpp_quote(" * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,")
44 cpp_quote(" * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR")
45 cpp_quote(" * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY")
46 cpp_quote(" * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT")
47 cpp_quote(" * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE")
48 cpp_quote(" * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ")
49 cpp_quote(" */")
50
51 import "oaidl.idl";
52 import "ocidl.idl";
53 import "DOMCore.idl";
54
55 [
56     object,
57     oleautomation,
58     uuid(7FF28EC8-6DA1-498d-9A43-7E67C2D3128F),
59     pointer_default(unique)
60 ]
61 interface IDOMElementPrivate : IUnknown
62 {
63     [local] HRESULT coreElement(void** element);
64     HRESULT isEqual([in] IDOMElement* other, [out, retval] BOOL* result);
65     HRESULT isFocused([out, retval] BOOL* result);
66     HRESULT innerText([out, retval] BSTR* result);
67 }
68
69 /*
70     All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
71     They are stopgap measures until we finish transitioning form controls to not use NSView. Each one should become
72     replaceable by public DOM API, and when that happens Safari will switch to implementations using that public API,
73     and these will be deleted.
74
75     @interface DOMHTMLInputElement(FormsAutoFillTransition)
76 */
77 [
78     object,
79     oleautomation,
80     uuid(2DF339BC-B48E-4d35-B93A-299756ED0B4B),
81     pointer_default(unique)
82 ]
83 interface IFormsAutoFillTransition : IUnknown
84 {
85     /*
86         - (BOOL)_isTextField;
87     */
88     HRESULT isTextField([out, retval] BOOL* result);
89
90     /*
91         - (NSRect)_rectOnScreen; // bounding box of the text field, in screen coordinates
92     */
93     HRESULT rectOnScreen([out, retval] LPRECT rect);
94
95     /*
96         - (void)_replaceCharactersInRange:(NSRange)targetRange withString:(NSString *)replacementString selectingFromIndex:(int)index;
97     */
98     HRESULT replaceCharactersInRange([in] int startTarget, [in] int endTarget, [in] BSTR replacementString, [in] int index);
99
100     /*
101         - (NSRange)_selectedRange;
102     */
103     HRESULT selectedRange([out] int* start, [out] int* end);
104
105     /*
106         - (void)_setAutofilled:(BOOL)filled;
107     */
108     HRESULT setAutofilled([in] BOOL filled);
109 }
110
111 /*
112     // These changes are necessary to detect whether a form input was modified by a user
113     // or javascript
114     @interface DOMHTMLInputElement (FormPromptAdditions)
115
116     @interface DOMHTMLTextAreaElement (FormPromptAdditions)
117 */
118 [
119     object,
120     oleautomation,
121     uuid(C8C5F0CD-07B0-4a32-BFA8-AE465E80DD3C),
122     pointer_default(unique)
123 ]
124 interface IFormPromptAdditions : IUnknown
125 {
126     /*
127         - (BOOL)_isUserEdited;
128     */
129     HRESULT isUserEdited([out, retval] BOOL* result);
130 }
131
132 /*
133     All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
134     They are stopgap measures until we finish transitioning form controls to not use NSView. Each one should become
135     replaceable by public DOM API, and when that happens Safari will switch to implementations using that public API,
136     and these will be deleted.
137
138     @interface DOMHTMLSelectElement(FormsAutoFillTransition)
139 */
140 [
141     object,
142     oleautomation,
143     uuid(6959F712-1563-4661-8D8C-F4C739C55839),
144     pointer_default(unique)
145 ]
146 interface IFormsAutoFillTransitionSelect : IUnknown
147 {
148     /*
149         - (void)_activateItemAtIndex:(int)index;
150     */
151     HRESULT activateItemAtIndex([in] int index);
152 }