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 #ifndef ASH_EVENT_REWRITER_DELEGATE_H_ 6 #define ASH_EVENT_REWRITER_DELEGATE_H_ 7 8 namespace ui { 9 class KeyEvent; 10 class LocatedEvent; 11 } // namespace aura 12 13 namespace ash { 14 15 // Delegate for rewriting or filtering an event. 16 class EventRewriterDelegate { 17 public: 18 enum Action { 19 ACTION_REWRITE_EVENT, 20 ACTION_DROP_EVENT, 21 }; 22 23 virtual ~EventRewriterDelegate() {} 24 25 // A derived class can do either of the following: 26 // 1) Just return ACTION_DROP_EVENT to drop the |event|. 27 // 2) Rewrite the |event| and return ACTION_REWRITE_EVENT. 28 virtual Action RewriteOrFilterKeyEvent(ui::KeyEvent* event) = 0; 29 virtual Action RewriteOrFilterLocatedEvent(ui::LocatedEvent* event) = 0; 30 }; 31 32 } // namespace ash 33 34 #endif // ASH_EVENT_REWRITER_DELEGATE_H_ 35