Home | History | Annotate | Download | only in events
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ui/events/event_handler.h"
      6 
      7 #include "ui/events/event.h"
      8 #include "ui/events/event_dispatcher.h"
      9 
     10 namespace ui {
     11 
     12 EventHandler::EventHandler() {
     13 }
     14 
     15 EventHandler::~EventHandler() {
     16   while (!dispatchers_.empty()) {
     17     EventDispatcher* dispatcher = dispatchers_.top();
     18     dispatchers_.pop();
     19     dispatcher->OnHandlerDestroyed(this);
     20   }
     21 }
     22 
     23 void EventHandler::OnEvent(Event* event) {
     24   // TODO(tdanderson): Encapsulate static_casts in ui::Event for all
     25   //                   event types.
     26   if (event->IsKeyEvent())
     27     OnKeyEvent(static_cast<KeyEvent*>(event));
     28   else if (event->IsMouseEvent())
     29     OnMouseEvent(static_cast<MouseEvent*>(event));
     30   else if (event->IsScrollEvent())
     31     OnScrollEvent(static_cast<ScrollEvent*>(event));
     32   else if (event->IsTouchEvent())
     33     OnTouchEvent(static_cast<TouchEvent*>(event));
     34   else if (event->IsGestureEvent())
     35     OnGestureEvent(event->AsGestureEvent());
     36   else if (event->type() == ET_CANCEL_MODE)
     37     OnCancelMode(static_cast<CancelModeEvent*>(event));
     38 }
     39 
     40 void EventHandler::OnKeyEvent(KeyEvent* event) {
     41 }
     42 
     43 void EventHandler::OnMouseEvent(MouseEvent* event) {
     44 }
     45 
     46 void EventHandler::OnScrollEvent(ScrollEvent* event) {
     47 }
     48 
     49 void EventHandler::OnTouchEvent(TouchEvent* event) {
     50 }
     51 
     52 void EventHandler::OnGestureEvent(GestureEvent* event) {
     53 }
     54 
     55 void EventHandler::OnCancelMode(CancelModeEvent* event) {
     56 }
     57 
     58 }  // namespace ui
     59