Home | History | Annotate | Download | only in gtk
      1 /*
      2  * Copyright (C) 2010 Apple Inc. All rights reserved.
      3  * Portions Copyright (c) 2010 Motorola Mobility, Inc.  All rights reserved.
      4  * Copyright (C) 2011 Igalia S.L.
      5  *
      6  * Redistribution and use in source and binary forms, with or without
      7  * modification, are permitted provided that the following conditions
      8  * are met:
      9  * 1. Redistributions of source code must retain the above copyright
     10  *    notice, this list of conditions and the following disclaimer.
     11  * 2. Redistributions in binary form must reproduce the above copyright
     12  *    notice, this list of conditions and the following disclaimer in the
     13  *    documentation and/or other materials provided with the distribution.
     14  *
     15  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
     16  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     17  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     18  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
     19  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     20  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     21  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     24  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
     25  * THE POSSIBILITY OF SUCH DAMAGE.
     26  */
     27 
     28 #include "config.h"
     29 #include "WebPage.h"
     30 
     31 #include "NotImplemented.h"
     32 #include "WebEvent.h"
     33 #include "WindowsKeyboardCodes.h"
     34 #include <WebCore/FocusController.h>
     35 #include <WebCore/Frame.h>
     36 #include <WebCore/KeyboardEvent.h>
     37 #include <WebCore/Page.h>
     38 #include <WebCore/PlatformKeyboardEvent.h>
     39 #include <WebCore/Settings.h>
     40 
     41 using namespace WebCore;
     42 
     43 namespace WebKit {
     44 
     45 void WebPage::platformInitialize()
     46 {
     47     notImplemented();
     48 }
     49 
     50 void WebPage::platformPreferencesDidChange(const WebPreferencesStore&)
     51 {
     52     notImplemented();
     53 }
     54 
     55 static inline void scroll(Page* page, ScrollDirection direction, ScrollGranularity granularity)
     56 {
     57     page->focusController()->focusedOrMainFrame()->eventHandler()->scrollRecursively(direction, granularity);
     58 }
     59 
     60 bool WebPage::performDefaultBehaviorForKeyEvent(const WebKeyboardEvent& keyboardEvent)
     61 {
     62     if (keyboardEvent.type() != WebEvent::KeyDown && keyboardEvent.type() != WebEvent::RawKeyDown)
     63         return false;
     64 
     65     switch (keyboardEvent.windowsVirtualKeyCode()) {
     66     case VK_BACK:
     67         if (keyboardEvent.shiftKey())
     68             m_page->goForward();
     69         else
     70             m_page->goBack();
     71         break;
     72     case VK_SPACE:
     73         scroll(m_page.get(), keyboardEvent.shiftKey() ? ScrollUp : ScrollDown, ScrollByPage);
     74         break;
     75     case VK_LEFT:
     76         scroll(m_page.get(), ScrollLeft, ScrollByLine);
     77         break;
     78     case VK_RIGHT:
     79         scroll(m_page.get(), ScrollRight, ScrollByLine);
     80         break;
     81     case VK_UP:
     82         scroll(m_page.get(), ScrollUp, ScrollByLine);
     83         break;
     84     case VK_DOWN:
     85         scroll(m_page.get(), ScrollDown, ScrollByLine);
     86         break;
     87     case VK_HOME:
     88         scroll(m_page.get(), ScrollUp, ScrollByDocument);
     89         break;
     90     case VK_END:
     91         scroll(m_page.get(), ScrollDown, ScrollByDocument);
     92         break;
     93     case VK_PRIOR:
     94         scroll(m_page.get(), ScrollUp, ScrollByPage);
     95         break;
     96     case VK_NEXT:
     97         scroll(m_page.get(), ScrollDown, ScrollByPage);
     98         break;
     99     default:
    100         return false;
    101     }
    102 
    103     return true;
    104 }
    105 
    106 bool WebPage::platformHasLocalDataForURL(const WebCore::KURL&)
    107 {
    108     // FIXME: Implement
    109     notImplemented();
    110     return false;
    111 }
    112 
    113 String WebPage::cachedResponseMIMETypeForURL(const WebCore::KURL&)
    114 {
    115     // FIXME: Implement
    116     return String();
    117 }
    118 
    119 bool WebPage::platformCanHandleRequest(const WebCore::ResourceRequest&)
    120 {
    121     // FIXME: Implement
    122     return true;
    123 }
    124 
    125 } // namespace WebKit
    126