LayoutTests:
[WebKit-https.git] / WebCore / platform / win / TemporaryLinkStubs.cpp
1 /*
2  * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
3  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
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 COMPUTER, 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 COMPUTER, 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 #include "config.h"
28
29 #define WIN32_COMPILE_HACK
30
31 #include <windows.h>
32 #include <stdio.h>
33 #include <stdlib.h>
34 #include "CString.h"
35 #include "Node.h"
36 #include "TextField.h"
37 #include "FileChooser.h"
38 #include "Font.h"
39 #include "IntPoint.h"
40 #include "Widget.h"
41 #include "GraphicsContext.h"
42 #include "Cursor.h"
43 #include "loader.h"
44 #include "FrameView.h"
45 #include "FrameLoadRequest.h"
46 #include "KURL.h"
47 #include "PlatformScrollBar.h"
48 #include "ScrollBar.h"
49 #include "Page.h"
50 #include "Path.h"
51 #include "PlatformMouseEvent.h"
52 #include "CookieJar.h"
53 #include "Screen.h"
54 #include "History.h"
55 #include "Language.h"
56 #include "LocalizedStrings.h"
57 #include "PlugInInfoStore.h"
58 #include "RenderTheme.h"
59 #include "FrameWin.h"
60 #include "ResourceHandle.h"
61 #include "ResourceHandleClient.h"
62 #include "ResourceLoader.h"
63 #include "RenderThemeWin.h"
64 #include "TextBoundaries.h"
65 #include "AXObjectCache.h"
66 #include "PopupMenu.h"
67 #include "ChromeClientWin.h"
68 #include "EditCommand.h"
69 #include "EditorClientWin.h"
70 #include "Icon.h"
71 #include "IconLoader.h"
72 #include "IconDatabase.h"
73 #include "CachedResource.h"
74
75 #define notImplemented() do { \
76     char buf[256] = {0}; \
77     _snprintf(buf, sizeof(buf), "FIXME: UNIMPLEMENTED: %s:%d\n", __FILE__, __LINE__); \
78     OutputDebugStringA(buf); \
79 } while (0)
80
81 namespace WebCore {
82
83 void FrameView::updateBorder() { notImplemented(); }
84 bool FrameView::passMousePressEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe) { return true; }
85 bool FrameView::passMouseMoveEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe) { return true; }
86 bool FrameView::passMouseReleaseEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe) { return true; }
87 bool FrameView::passWheelEventToSubframe(PlatformWheelEvent& e, Frame* subframe) { return false; }
88 bool FrameView::passMousePressEventToScrollbar(MouseEventWithHitTestResults&, PlatformScrollbar*) { return false; }
89
90 void Widget::enableFlushDrawing() { notImplemented(); }
91 bool Widget::isEnabled() const { notImplemented(); return 0; }
92 Widget::FocusPolicy Widget::focusPolicy() const { notImplemented(); return NoFocus; }
93 void Widget::disableFlushDrawing() { notImplemented(); }
94 void Widget::removeFromParent() { notImplemented(); }
95 GraphicsContext* Widget::lockDrawingFocus() { notImplemented(); return 0; }
96 void Widget::unlockDrawingFocus(GraphicsContext*) { notImplemented(); }
97 bool Widget::capturingMouse() const { return false; }
98 void Widget::setCapturingMouse(bool capturingMouse) { }
99 Widget* Widget::capturingTarget() { return this; }
100 Widget* Widget::capturingChild() { return 0; }
101 void Widget::setCapturingChild(Widget* w) {}
102 IntPoint Widget::convertChildToSelf(const Widget*, const IntPoint& p) const { return p; }
103 IntPoint Widget::convertSelfToChild(const Widget*, const IntPoint& p) const { return p; }
104 void Widget::setParent(ScrollView*) {}
105 ScrollView* Widget::parent() const { return 0; }
106
107 void TextField::selectAll() { notImplemented(); }
108 void TextField::addSearchResult() { notImplemented(); }
109 int TextField::selectionStart() const { notImplemented(); return 0; }
110 bool TextField::hasSelectedText() const { notImplemented(); return 0; }
111 String TextField::selectedText() const { notImplemented(); return String(); }
112 void TextField::setAutoSaveName(String const&) { notImplemented(); }
113 bool TextField::checksDescendantsForFocus() const { notImplemented(); return false; }
114 void TextField::setSelection(int,int) { notImplemented(); }
115 void TextField::setMaxResults(int) { notImplemented(); }
116 bool TextField::edited() const { notImplemented(); return 0; }
117
118 FileChooser::FileChooser(Document*, RenderFileUploadControl*) { notImplemented(); }
119 FileChooser::~FileChooser() { notImplemented(); }
120 PassRefPtr<FileChooser> FileChooser::create(Document*, RenderFileUploadControl*) { notImplemented(); return 0; }
121 void FileChooser::openFileChooser() { notImplemented(); }
122 String FileChooser::basenameForWidth(int width) const { notImplemented(); return String(); }
123 void FileChooser::disconnectUploadControl() { notImplemented(); }
124 void FileChooser::chooseFile(const String& filename) { notImplemented(); }
125
126 Widget::FocusPolicy TextField::focusPolicy() const { notImplemented(); return NoFocus; }
127
128 PlatformMouseEvent::PlatformMouseEvent(const CurrentEventTag&) { notImplemented(); }
129 String searchableIndexIntroduction() { notImplemented(); return String(); }
130
131 int findNextSentenceFromIndex(UChar const*, int, int, bool) { notImplemented(); return 0; }
132 void findSentenceBoundary(UChar const*, int, int, int*, int*) { notImplemented(); }
133 int findNextWordFromIndex(UChar const*, int, int, bool) { notImplemented(); return 0; }
134
135 void FrameWin::focusWindow() { notImplemented(); }
136 void FrameWin::unfocusWindow() { notImplemented(); }
137 bool FrameWin::locationbarVisible() { notImplemented(); return 0; }
138 void FrameWin::issueRedoCommand(void) { notImplemented(); }
139 KJS::Bindings::Instance* FrameWin::getObjectInstanceForWidget(Widget*) { notImplemented(); return 0; }
140 KJS::Bindings::Instance* FrameWin::getEmbedInstanceForWidget(Widget*) { notImplemented(); return 0; }
141 KJS::Bindings::RootObject* FrameWin::bindingRootObject() { notImplemented(); return 0; }
142 Widget* FrameWin::createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>&) { notImplemented(); return 0; }
143 bool FrameWin::canRedo() const { notImplemented(); return 0; }
144 bool FrameWin::canUndo() const { notImplemented(); return 0; }
145 void FrameWin::registerCommandForUndo(PassRefPtr<WebCore::EditCommand>) { notImplemented(); }
146 void FrameWin::registerCommandForRedo(PassRefPtr<WebCore::EditCommand>) { notImplemented(); }
147 bool FrameWin::runJavaScriptPrompt(String const&, String const&, String &) { notImplemented(); return 0; }
148 bool FrameWin::shouldInterruptJavaScript() { notImplemented(); return false; }
149 void FrameWin::print() { notImplemented(); }
150 KJS::Bindings::Instance* FrameWin::getAppletInstanceForWidget(Widget*) { notImplemented(); return 0; }
151 bool FrameWin::passMouseDownEventToWidget(Widget*) { notImplemented(); return 0; }
152 void FrameWin::issueCutCommand() { notImplemented(); }
153 void FrameWin::issueCopyCommand() { notImplemented(); }
154 bool FrameWin::passWheelEventToChildWidget(Node*) { notImplemented(); return 0; }
155 void FrameWin::issueUndoCommand() { notImplemented(); }
156 String FrameWin::mimeTypeForFileName(String const&) const { notImplemented(); return String(); }
157 void FrameWin::issuePasteCommand() { notImplemented(); }
158 void FrameWin::scheduleClose() { notImplemented(); }
159 void FrameWin::markMisspellings(const WebCore::Selection&) { notImplemented(); }
160 bool FrameWin::menubarVisible() { notImplemented(); return 0; }
161 bool FrameWin::personalbarVisible() { notImplemented(); return 0; }
162 bool FrameWin::statusbarVisible() { notImplemented(); return 0; }
163 bool FrameWin::toolbarVisible() { notImplemented(); return 0; }
164 void FrameWin::issueTransposeCommand() { notImplemented(); }
165 bool FrameWin::canPaste() const { notImplemented(); return 0; }
166 bool FrameWin::canGoBackOrForward(int) const { notImplemented(); return 0; }
167 void FrameWin::goBackOrForward(int distance) { notImplemented(); }
168 int FrameWin::getHistoryLength() { notImplemented(); return 0;}
169 KURL FrameWin::historyURL(int distance) { notImplemented(); return KURL();}
170 void FrameWin::issuePasteAndMatchStyleCommand() { notImplemented(); }
171 KURL FrameWin::originalRequestURL() const { return KURL(); }
172 bool FrameWin::isLoadTypeReload() { notImplemented(); return false; }
173 IntRect FrameWin::windowResizerRect() const { return IntRect(); }
174 void FrameWin::restoreDocumentState() { }
175 void FrameWin::partClearedInBegin() { }
176 void FrameWin::createEmptyDocument() { }
177 String FrameWin::overrideMediaType() const { return String(); }
178 Range* FrameWin::markedTextRange() const { return 0; }
179 bool FrameWin::passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame*) { return false; }
180 bool FrameWin::lastEventIsMouseUp() const { return false; }
181 void FrameWin::addMessageToConsole(String const&, unsigned int ,String const&) { }
182 bool FrameWin::shouldChangeSelection(const Selection&, const Selection&, EAffinity, bool) const { return true; }
183 void FrameWin::respondToChangedSelection(const Selection&, bool) { }
184 static int frameNumber = 0;
185 Frame* FrameWin::createFrame(KURL const&, String const&, Element*, String const&) { return 0; }
186 void FrameWin::saveDocumentState() { }
187 void FrameWin::clearUndoRedoOperations(void) { }
188 String FrameWin::incomingReferrer() const { return String(); }
189 void FrameWin::markMisspellingsInAdjacentWords(VisiblePosition const&) { }
190 void FrameWin::respondToChangedContents(const Selection&) { }
191 void FrameWin::handledOnloadEvents() { }
192 Plugin* FrameWin::createPlugin(Element*, const KURL&, const Vector<String>&, const Vector<String>&, const String&) { return 0; }
193 ObjectContentType FrameWin::objectContentType(const KURL&, const String&) { return ObjectContentNone; }
194
195 void GraphicsContext::addRoundedRectClip(const IntRect& rect, const IntSize& topLeft, const IntSize& topRight,
196     const IntSize& bottomLeft, const IntSize& bottomRight) { notImplemented(); }
197 void GraphicsContext::addInnerRoundedRectClip(const IntRect& rect, int thickness) { notImplemented(); }
198
199 int screenDepthPerComponent(const Page*) { notImplemented(); return 8; }
200 bool screenIsMonochrome(const Page*) { notImplemented(); return false; }
201
202 /********************************************************/
203 /* Completely empty stubs (mostly to allow DRT to run): */
204 /********************************************************/
205 static Cursor localCursor;
206 const Cursor& WebCore::moveCursor() { return localCursor; }
207
208 bool AXObjectCache::gAccessibilityEnabled = false;
209
210 bool historyContains(DeprecatedString const&) { return false; }
211 String submitButtonDefaultLabel() { return "Submit"; }
212 String inputElementAltText() { return DeprecatedString(); }
213 String resetButtonDefaultLabel() { return "Reset"; }
214 String fileButtonChooseFileLabel() { return "Browse..."; }
215 String fileButtonNoFileSelectedLabel() { return String(); }
216
217 String defaultLanguage() { return "en"; }
218
219 void findWordBoundary(UChar const* str, int len, int position, int* start, int* end) {*start = position; *end = position; }
220
221 PluginInfo* PlugInInfoStore::createPluginInfoForPluginAtIndex(unsigned) { return 0;}
222 unsigned PlugInInfoStore::pluginCount() const { return 0; }
223 bool PlugInInfoStore::supportsMIMEType(const String&) { return false; }
224 void refreshPlugins(bool) { }
225
226 Vector<char> ServeSynchronousRequest(Loader*, DocLoader*, const ResourceRequest&, ResourceResponse&){ notImplemented(); return Vector<char>(); }
227
228 void CheckCacheObjectStatus(DocLoader*, CachedResource*) { }
229 bool CheckIfReloading(DocLoader*) { return false; }
230 bool IsResponseURLEqualToURL(PlatformResponse , const String&) { return false; }
231 DeprecatedString ResponseURL(PlatformResponse) { return DeprecatedString(); }
232 DeprecatedString ResponseMIMEType(PlatformResponse) { return DeprecatedString(); }
233 bool ResponseIsMultipart(PlatformResponse) { return false; }
234 time_t CacheObjectExpiresTime(DocLoader*, PlatformResponse) { return 0; }
235
236 void CachedResource::setResponse(PlatformResponse) { notImplemented(); }
237 void CachedResource::setAllData(PlatformData) { notImplemented(); }
238
239 HINSTANCE Page::s_instanceHandle = 0;
240 bool ChromeClientWin::canRunModal() { notImplemented(); return false; }
241 void ChromeClientWin::runModal() { }
242
243 bool EditorClientWin::shouldDeleteRange(Range*) { notImplemented(); return false; }
244 bool EditorClientWin::shouldShowDeleteInterface(HTMLElement*) { return false; }
245 bool EditorClientWin::isContinuousSpellCheckingEnabled() { notImplemented(); return false; }
246 bool EditorClientWin::isGrammarCheckingEnabled() { notImplemented(); return false; }
247 int EditorClientWin::spellCheckerDocumentTag() { notImplemented(); return 0; }
248
249 void Widget::setEnabled(bool) { }
250 void Widget::paint(GraphicsContext*,IntRect const&) { }
251 void Widget::setIsSelected(bool) { }
252 void Widget::invalidate() { }
253 void Widget::invalidateRect(const IntRect& r) { }
254 void ScrollView::addChild(Widget*) { }
255 void ScrollView::removeChild(Widget*) { }
256 void ScrollView::scrollPointRecursively(int x, int y) { }
257 bool ScrollView::inWindow() const { return true; }
258 void ScrollView::paint(GraphicsContext*, const IntRect&) { }
259 void ScrollView::wheelEvent(PlatformWheelEvent&) { }
260 void ScrollView::themeChanged() { }
261 IntPoint ScrollView::convertChildToSelf(const Widget*, const IntPoint& p) const { return p; }
262 IntPoint ScrollView::convertSelfToChild(const Widget*, const IntPoint& p) const { return p; }
263 void ScrollView::geometryChanged() const {};
264 PlatformScrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent) { return 0; }
265 void ScrollView::setFrameGeometry(const IntRect& r) { Widget::setFrameGeometry(r); }
266 IntRect ScrollView::windowResizerRect() { return IntRect(); }
267 bool ScrollView::resizerOverlapsContent() const { return false; }
268
269 void GraphicsContext::setShadow(IntSize const&,int,Color const&) { }
270 void GraphicsContext::clearShadow() { }
271 void GraphicsContext::beginTransparencyLayer(float) { }
272 void GraphicsContext::endTransparencyLayer() { }
273 void GraphicsContext::clearRect(const FloatRect&) { }
274 void GraphicsContext::strokeRect(const FloatRect&, float) { }
275 void GraphicsContext::setLineWidth(float) { }
276 void GraphicsContext::setLineCap(LineCap) { }
277 void GraphicsContext::setLineJoin(LineJoin) { }
278 void GraphicsContext::setMiterLimit(float) { }
279 void GraphicsContext::setAlpha(float) { }
280 void GraphicsContext::setCompositeOperation(CompositeOperator) { }
281 void GraphicsContext::clip(const Path&) { }
282 void GraphicsContext::rotate(float) { }
283 void GraphicsContext::scale(const FloatSize&) { }
284
285 Path::Path(){ }
286 Path::~Path(){ }
287 Path::Path(const Path&){ }
288 bool Path::contains(const FloatPoint&, WindRule rule) const { return false; }
289 void Path::translate(const FloatSize&){ }
290 FloatRect Path::boundingRect() const { return FloatRect(); }
291 Path& Path::operator=(const Path&){ return*this; }
292 void Path::clear() { }
293 void Path::moveTo(const FloatPoint&) { }
294 void Path::addLineTo(const FloatPoint&) { }
295 void Path::addQuadCurveTo(const FloatPoint&, const FloatPoint&) { }
296 void Path::addBezierCurveTo(const FloatPoint&, const FloatPoint&, const FloatPoint&) { }
297 void Path::addArcTo(const FloatPoint&, const FloatPoint&, float) { }
298 void Path::closeSubpath() { }
299 void Path::addArc(const FloatPoint&, float, float, float, bool) { }
300 void Path::addRect(const FloatRect&) { }
301 void Path::addEllipse(const FloatRect&) { }
302 void Path::transform(const AffineTransform&) { }
303
304 TextField::TextField(TextField::Type type) { m_type = type; }
305 TextField::~TextField() { }
306 void TextField::setFont(WebCore::Font const&) { }
307 void TextField::setAlignment(HorizontalAlignment) { }
308 void TextField::setWritingDirection(TextDirection) { }
309 int TextField::maxLength() const { return 0; }
310 void TextField::setMaxLength(int) { }
311 String TextField::text() const { return String(); }
312 void TextField::setText(String const&) { }
313 int TextField::cursorPosition() const { return 0; }
314 void TextField::setCursorPosition(int) { }
315 void TextField::setEdited(bool) { }
316 void TextField::setReadOnly(bool) { }
317 void TextField::setPlaceholderString(String const&) { }
318 void TextField::setColors(Color const&,Color const&) { }
319 IntSize TextField::sizeForCharacterWidth(int) const { return IntSize(); }
320 int TextField::baselinePosition(int) const { return 0; }
321 void TextField::setLiveSearch(bool) { }
322
323 PlatformScrollbar::PlatformScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, ScrollbarControlSize controlSize) : Scrollbar(client, orientation, controlSize) { }
324 PlatformScrollbar::~PlatformScrollbar() { }
325 int PlatformScrollbar::width() const { return 0; }
326 int PlatformScrollbar::height() const { return 0; }
327 void PlatformScrollbar::setEnabled(bool) { }
328 void PlatformScrollbar::paint(GraphicsContext*, const IntRect& damageRect) { }
329 void PlatformScrollbar::updateThumbPosition() { }
330 void PlatformScrollbar::updateThumbProportion() { }
331 void PlatformScrollbar::setRect(const IntRect&) { }
332
333 Scrollbar::Scrollbar(ScrollbarClient*, ScrollbarOrientation, ScrollbarControlSize) { }
334 void Scrollbar::setSteps(int, int) { }
335 bool Scrollbar::scroll(ScrollDirection, ScrollGranularity, float) { return false; }
336 bool Scrollbar::setValue(int) { return false; }
337 void Scrollbar::setProportion(int, int) { }
338
339 Color focusRingColor() { return 0xFF0000FF; }
340 void setFocusRingColorChangeFunction(void (*)()) { }
341
342 void Frame::setNeedsReapplyStyles() { }
343
344 void Image::drawTiled(GraphicsContext*, const FloatRect&, const FloatRect&, TileRule, TileRule, CompositeOperator) { }
345 bool Image::getHBITMAP(HBITMAP) { return false; }
346
347 PopupMenu::PopupMenu(RenderMenuList*) { notImplemented(); }
348 PopupMenu::~PopupMenu() { notImplemented(); }
349 void PopupMenu::show(const IntRect&, FrameView*, int index) { notImplemented(); }
350 void PopupMenu::hide() { notImplemented(); }
351 void PopupMenu::updateFromElement() { notImplemented(); }
352
353 void RenderThemeWin::systemFont(int propId, FontDescription& fontDescription) const {}
354 bool RenderThemeWin::paintMenuList(RenderObject *, const RenderObject::PaintInfo&, const IntRect&) { return false; }
355 void RenderThemeWin::adjustMenuListStyle(CSSStyleSelector*, RenderStyle*, Element*) const { }
356
357 bool ResourceLoader::loadsBlocked() { notImplemented(); return false; }
358
359 Icon::Icon() { notImplemented(); }
360 Icon::~Icon() { notImplemented(); }
361 PassRefPtr<Icon> Icon::newIconForFile(const String& filename) { notImplemented(); return PassRefPtr<Icon>(new Icon()); }
362 void Icon::paint(GraphicsContext*, const IntRect&) { notImplemented(); }
363
364 void IconLoader::stopLoading() { notImplemented(); } 
365 void IconLoader::startLoading() { notImplemented(); } 
366 IconLoader* IconLoader::createForFrame(Frame *frame) { return 0; } 
367
368 bool IconDatabase::isIconExpiredForIconURL(const String& url) { return false; }
369 bool IconDatabase::hasEntryForIconURL(const String& url) { return false; }
370 IconDatabase* IconDatabase::sharedIconDatabase() { return 0; }
371 bool IconDatabase::setIconURLForPageURL(const String& iconURL, const String& pageURL) { return false; }
372
373 void systemBeep() {}
374 } // namespace WebCore