WebCore/page/wx/EventHandlerWx.cpp
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 /*
       
     2  * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>. 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 #include "config.h"
       
    27 #include "EventHandler.h"
       
    28 
       
    29 #include "ClipboardWx.h"
       
    30 #include "FocusController.h"
       
    31 #include "Frame.h"
       
    32 #include "FrameView.h"
       
    33 #include "KeyboardEvent.h"
       
    34 #include "MouseEventWithHitTestResults.h"
       
    35 #include "NotImplemented.h"
       
    36 #include "Page.h"
       
    37 #include "PlatformKeyboardEvent.h"
       
    38 #include "RenderWidget.h"
       
    39 #include "Scrollbar.h"
       
    40 
       
    41 namespace WebCore {
       
    42 
       
    43 const double EventHandler::TextDragDelay = 0.0;
       
    44 
       
    45 bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe)
       
    46 {
       
    47     subframe->eventHandler()->handleMousePressEvent(mev.event());
       
    48     return true;
       
    49 }
       
    50 
       
    51 bool EventHandler::passMouseMoveEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe, WebCore::HitTestResult* hittest)
       
    52 {
       
    53     subframe->eventHandler()->handleMouseMoveEvent(mev.event(), hittest);
       
    54     return true;
       
    55 }
       
    56 
       
    57 bool EventHandler::passMouseReleaseEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe)
       
    58 {
       
    59     subframe->eventHandler()->handleMouseReleaseEvent(mev.event());
       
    60     return true;
       
    61 }
       
    62 
       
    63 bool EventHandler::passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults& event)
       
    64 {
       
    65     // Figure out which view to send the event to.
       
    66     if (!event.targetNode() || !event.targetNode()->renderer() || !event.targetNode()->renderer()->isWidget())
       
    67         return false;
       
    68     
       
    69     return passMouseDownEventToWidget(toRenderWidget(event.targetNode()->renderer())->widget());
       
    70 }
       
    71 
       
    72 bool EventHandler::passWidgetMouseDownEventToWidget(RenderWidget* renderWidget)
       
    73 {
       
    74     return passMouseDownEventToWidget(renderWidget->widget());
       
    75 }
       
    76 
       
    77 bool EventHandler::passWheelEventToWidget(PlatformWheelEvent& event, Widget* widget)
       
    78 {
       
    79     if (!widget || !widget->isFrameView())
       
    80         return false;
       
    81 
       
    82     return static_cast<FrameView*>(widget)->frame()->eventHandler()->handleWheelEvent(event);
       
    83 }
       
    84 
       
    85 bool EventHandler::tabsToAllControls(KeyboardEvent* event) const 
       
    86 { 
       
    87     notImplemented(); 
       
    88     return false; 
       
    89 }
       
    90 
       
    91 bool EventHandler::passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult*)
       
    92 {
       
    93     notImplemented(); 
       
    94     return false; 
       
    95 }
       
    96 
       
    97 bool EventHandler::passMouseDownEventToWidget(Widget*)
       
    98 { 
       
    99     notImplemented();
       
   100     return false; 
       
   101 }
       
   102 
       
   103 void EventHandler::focusDocumentView()
       
   104 {
       
   105     if (Page* page = m_frame->page())
       
   106         page->focusController()->setFocusedFrame(m_frame);
       
   107 }
       
   108 
       
   109 bool EventHandler::eventActivatedView(const PlatformMouseEvent&) const
       
   110 {
       
   111     // wx sends activate events separate from mouse events. 
       
   112     // We'll have to test the exact order of events, 
       
   113     // but for the moment just return false.
       
   114     return false;
       
   115 }
       
   116 
       
   117 PassRefPtr<Clipboard> EventHandler::createDraggingClipboard() const 
       
   118 {
       
   119     return ClipboardWx::create(ClipboardWritable, true);
       
   120 }
       
   121 
       
   122 unsigned EventHandler::accessKeyModifiers()
       
   123 {
       
   124     return PlatformKeyboardEvent::AltKey;
       
   125 }
       
   126 
       
   127 }