12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event_handler.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event_dispatcher.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ui { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)EventHandler::EventHandler() { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)EventHandler::~EventHandler() { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (!dispatchers_.empty()) { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EventDispatcher* dispatcher = dispatchers_.top(); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dispatchers_.pop(); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dispatcher->OnHandlerDestroyed(this); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnEvent(Event* event) { 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // TODO(tdanderson): Encapsulate static_casts in ui::Event for all 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // event types. 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (event->IsKeyEvent()) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnKeyEvent(static_cast<KeyEvent*>(event)); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (event->IsMouseEvent()) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnMouseEvent(static_cast<MouseEvent*>(event)); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (event->IsScrollEvent()) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnScrollEvent(static_cast<ScrollEvent*>(event)); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (event->IsTouchEvent()) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnTouchEvent(static_cast<TouchEvent*>(event)); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (event->IsGestureEvent()) 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch OnGestureEvent(event->AsGestureEvent()); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (event->type() == ET_CANCEL_MODE) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnCancelMode(static_cast<CancelModeEvent*>(event)); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnKeyEvent(KeyEvent* event) { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnMouseEvent(MouseEvent* event) { 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnScrollEvent(ScrollEvent* event) { 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnTouchEvent(TouchEvent* event) { 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnGestureEvent(GestureEvent* event) { 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EventHandler::OnCancelMode(CancelModeEvent* event) { 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace ui 59