Add IDOMElementPrivate::font() to get an element's font
[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 typedef struct WebFontDescription WebFontDescription;
56
57 [
58     object,
59     oleautomation,
60     uuid(7FF28EC8-6DA1-498d-9A43-7E67C2D3128F),
61     pointer_default(unique)
62 ]
63 interface IDOMElementPrivate : IUnknown
64 {
65     [local] HRESULT coreElement(void** element);
66     HRESULT isEqual([in] IDOMElement* other, [out, retval] BOOL* result);
67     HRESULT isFocused([out, retval] BOOL* result);
68     HRESULT innerText([out, retval] BSTR* result);
69     [local] HRESULT font(WebFontDescription* webFontDescription);
70 }
71
72 /*
73     All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
74     They are stopgap measures until we finish transitioning form controls to not use NSView. Each one should become
75     replaceable by public DOM API, and when that happens Safari will switch to implementations using that public API,
76     and these will be deleted.
77
78     @interface DOMHTMLInputElement(FormsAutoFillTransition)
79 */
80 [
81     object,
82     oleautomation,
83     uuid(2DF339BC-B48E-4d35-B93A-299756ED0B4B),
84     pointer_default(unique)
85 ]
86 interface IFormsAutoFillTransition : IUnknown
87 {
88     /*
89         - (BOOL)_isTextField;
90     */
91     HRESULT isTextField([out, retval] BOOL* result);
92
93     /*
94         - (NSRect)_rectOnScreen; // bounding box of the text field, in screen coordinates
95     */
96     HRESULT rectOnScreen([out, retval] LPRECT rect);
97
98     /*
99         - (void)_replaceCharactersInRange:(NSRange)targetRange withString:(NSString *)replacementString selectingFromIndex:(int)index;
100     */
101     HRESULT replaceCharactersInRange([in] int startTarget, [in] int endTarget, [in] BSTR replacementString, [in] int index);
102
103     /*
104         - (NSRange)_selectedRange;
105     */
106     HRESULT selectedRange([out] int* start, [out] int* end);
107
108     /*
109         - (void)_setAutofilled:(BOOL)filled;
110     */
111     HRESULT setAutofilled([in] BOOL filled);
112 }
113
114 /*
115     // These changes are necessary to detect whether a form input was modified by a user
116     // or javascript
117     @interface DOMHTMLInputElement (FormPromptAdditions)
118
119     @interface DOMHTMLTextAreaElement (FormPromptAdditions)
120 */
121 [
122     object,
123     oleautomation,
124     uuid(C8C5F0CD-07B0-4a32-BFA8-AE465E80DD3C),
125     pointer_default(unique)
126 ]
127 interface IFormPromptAdditions : IUnknown
128 {
129     /*
130         - (BOOL)_isUserEdited;
131     */
132     HRESULT isUserEdited([out, retval] BOOL* result);
133 }
134
135 /*
136     All the methods in this category are used by Safari forms autofill and should not be used for any other purpose.
137     They are stopgap measures until we finish transitioning form controls to not use NSView. Each one should become
138     replaceable by public DOM API, and when that happens Safari will switch to implementations using that public API,
139     and these will be deleted.
140
141     @interface DOMHTMLSelectElement(FormsAutoFillTransition)
142 */
143 [
144     object,
145     oleautomation,
146     uuid(6959F712-1563-4661-8D8C-F4C739C55839),
147     pointer_default(unique)
148 ]
149 interface IFormsAutoFillTransitionSelect : IUnknown
150 {
151     /*
152         - (void)_activateItemAtIndex:(int)index;
153     */
154     HRESULT activateItemAtIndex([in] int index);
155 }