summaryrefslogtreecommitdiffstats
path: root/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp')
-rw-r--r--WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp393
1 files changed, 393 insertions, 0 deletions
diff --git a/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
new file mode 100644
index 0000000..468d86c
--- /dev/null
+++ b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
@@ -0,0 +1,393 @@
+/*
+ * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ChromeClientWinCE.h"
+
+#include "FileChooser.h"
+#include "Icon.h"
+#include "NotImplemented.h"
+#include "PopupMenuWin.h"
+#include "SearchPopupMenuWin.h"
+#include "WebView.h"
+#include <wtf/text/CString.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+ChromeClientWinCE::ChromeClientWinCE(WebView* webView)
+ : m_webView(webView)
+{
+ ASSERT(m_webView);
+}
+
+void ChromeClientWinCE::chromeDestroyed()
+{
+ delete this;
+}
+
+FloatRect ChromeClientWinCE::windowRect()
+{
+ if (!m_webView)
+ return FloatRect();
+
+ RECT rect;
+ m_webView->frameRect(&rect);
+ return rect;
+}
+
+void ChromeClientWinCE::setWindowRect(const FloatRect&)
+{
+ notImplemented();
+}
+
+FloatRect ChromeClientWinCE::pageRect()
+{
+ return windowRect();
+}
+
+float ChromeClientWinCE::scaleFactor()
+{
+ return 1.0;
+}
+
+void ChromeClientWinCE::focus()
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::unfocus()
+{
+ notImplemented();
+}
+
+Page* ChromeClientWinCE::createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&)
+{
+ notImplemented();
+ return 0;
+}
+
+void ChromeClientWinCE::show()
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::canRunModal()
+{
+ notImplemented();
+ return false;
+}
+
+void ChromeClientWinCE::runModal()
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::setToolbarsVisible(bool)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::toolbarsVisible()
+{
+ return false;
+}
+
+void ChromeClientWinCE::setStatusbarVisible(bool)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::statusbarVisible()
+{
+ notImplemented();
+ return false;
+}
+
+void ChromeClientWinCE::setScrollbarsVisible(bool)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::scrollbarsVisible()
+{
+ notImplemented();
+ return false;
+}
+
+void ChromeClientWinCE::setMenubarVisible(bool)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::menubarVisible()
+{
+ notImplemented();
+ return false;
+}
+
+void ChromeClientWinCE::setResizable(bool)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::closeWindowSoon()
+{
+ PostMessageW(m_webView->windowHandle(), WM_CLOSE, 0, 0);
+}
+
+bool ChromeClientWinCE::canTakeFocus(FocusDirection)
+{
+ return true;
+}
+
+void ChromeClientWinCE::takeFocus(FocusDirection)
+{
+ unfocus();
+}
+
+void ChromeClientWinCE::focusedNodeChanged(Node*)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::canRunBeforeUnloadConfirmPanel()
+{
+ return true;
+}
+
+bool ChromeClientWinCE::runBeforeUnloadConfirmPanel(const String& message, Frame* frame)
+{
+ return runJavaScriptConfirm(frame, message);
+}
+
+void ChromeClientWinCE::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&, unsigned int, const String&)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::runJavaScriptAlert(Frame*, const String& message)
+{
+ m_webView->runJavaScriptAlert(message);
+}
+
+bool ChromeClientWinCE::runJavaScriptConfirm(Frame*, const String& message)
+{
+ return m_webView->runJavaScriptConfirm(message);
+}
+
+bool ChromeClientWinCE::runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result)
+{
+ return m_webView->runJavaScriptPrompt(message, defaultValue, result);
+}
+
+void ChromeClientWinCE::setStatusbarText(const String&)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::shouldInterruptJavaScript()
+{
+ notImplemented();
+ return false;
+}
+
+bool ChromeClientWinCE::tabsToLinks() const
+{
+ return true;
+}
+
+IntRect ChromeClientWinCE::windowResizerRect() const
+{
+ notImplemented();
+ return IntRect();
+}
+
+void ChromeClientWinCE::invalidateWindow(const IntRect&, bool)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::invalidateContentsAndWindow(const IntRect& updateRect, bool immediate)
+{
+ RECT rect = updateRect;
+ InvalidateRect(m_webView->windowHandle(), &rect, FALSE);
+
+ if (immediate)
+ UpdateWindow(m_webView->windowHandle());
+}
+
+void ChromeClientWinCE::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate)
+{
+ invalidateContentsAndWindow(updateRect, immediate);
+}
+
+void ChromeClientWinCE::scroll(const IntSize&, const IntRect& rectToScroll, const IntRect&)
+{
+ invalidateContentsAndWindow(rectToScroll, false);
+}
+
+IntRect ChromeClientWinCE::windowToScreen(const IntRect& rect) const
+{
+ notImplemented();
+ return rect;
+}
+
+IntPoint ChromeClientWinCE::screenToWindow(const IntPoint& point) const
+{
+ notImplemented();
+ return point;
+}
+
+PlatformPageClient ChromeClientWinCE::platformPageClient() const
+{
+ notImplemented();
+ return 0;
+}
+
+void ChromeClientWinCE::contentsSizeChanged(Frame*, const IntSize&) const
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::scrollRectIntoView(const IntRect&, const ScrollView*) const
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::scrollbarsModeDidChange() const
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::mouseDidMoveOverElement(const HitTestResult&, unsigned)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::setToolTip(const String&, TextDirection)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::print(Frame*)
+{
+ notImplemented();
+}
+
+#if ENABLE(DATABASE)
+void ChromeClientWinCE::exceededDatabaseQuota(Frame*, const String&)
+{
+ notImplemented()
+}
+#endif
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+void ChromeClientWinCE::reachedMaxAppCacheSize(int64_t)
+{
+ notImplemented();
+}
+#endif
+
+#if ENABLE(TOUCH_EVENTS)
+void ChromeClientWinCE::needTouchEvents(bool)
+{
+ notImplemented();
+}
+#endif
+
+#if USE(ACCELERATED_COMPOSITING)
+void ChromeClientWinCE::attachRootGraphicsLayer(Frame*, GraphicsLayer*)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::setNeedsOneShotDrawingSynchronization()
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::scheduleCompositingLayerSync()
+{
+ notImplemented();
+}
+#endif
+
+void ChromeClientWinCE::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::chooseIconForFiles(const Vector<String>& filenames, FileChooser* chooser)
+{
+ chooser->iconLoaded(Icon::createIconForFiles(filenames));
+}
+
+void ChromeClientWinCE::setCursor(const Cursor&)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::setLastSetCursorToCurrentCursor()
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::formStateDidChange(const Node*)
+{
+ notImplemented();
+}
+
+PassOwnPtr<HTMLParserQuirks> ChromeClientWinCE::createHTMLParserQuirks()
+{
+ return 0;
+}
+
+void ChromeClientWinCE::requestGeolocationPermissionForFrame(Frame*, Geolocation*)
+{
+ notImplemented();
+}
+
+void ChromeClientWinCE::cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*)
+{
+ notImplemented();
+}
+
+bool ChromeClientWinCE::selectItemWritingDirectionIsNatural()
+{
+ return false;
+}
+
+PassRefPtr<PopupMenu> ChromeClientWinCE::createPopupMenu(PopupMenuClient* client) const
+{
+ return adoptRef(new PopupMenuWin(client));
+}
+
+PassRefPtr<SearchPopupMenu> ChromeClientWinCE::createSearchPopupMenu(PopupMenuClient* client) const
+{
+ return adoptRef(new SearchPopupMenuWin(client));
+}
+
+} // namespace WebKit