Home | History | Annotate | Download | only in events
      1 // Copyright 2013 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 CHROME_BROWSER_CHROMEOS_EVENTS_KEYBOARD_DRIVEN_EVENT_REWRITER_H_
      6 #define CHROME_BROWSER_CHROMEOS_EVENTS_KEYBOARD_DRIVEN_EVENT_REWRITER_H_
      7 
      8 #include "ui/events/event_rewriter.h"
      9 
     10 namespace chromeos {
     11 
     12 // KeyboardDrivenEventRewriter removes the modifier flags from
     13 // Shift+<Arrow keys|Enter|F6> key events. This mapping only happens
     14 // on login screen and only when the keyboard driven oobe is enabled.
     15 class KeyboardDrivenEventRewriter : public ui::EventRewriter {
     16  public:
     17   KeyboardDrivenEventRewriter();
     18   virtual ~KeyboardDrivenEventRewriter();
     19 
     20   // Calls Rewrite for testing.
     21   ui::EventRewriteStatus RewriteForTesting(const ui::Event& event,
     22                                            scoped_ptr<ui::Event>* new_event);
     23 
     24   // EventRewriter overrides:
     25   virtual ui::EventRewriteStatus RewriteEvent(
     26       const ui::Event& event,
     27       scoped_ptr<ui::Event>* new_event) OVERRIDE;
     28   virtual ui::EventRewriteStatus NextDispatchEvent(
     29       const ui::Event& last_event,
     30       scoped_ptr<ui::Event>* new_event) OVERRIDE;
     31 
     32  private:
     33   ui::EventRewriteStatus Rewrite(const ui::Event& event,
     34                                  scoped_ptr<ui::Event>* new_event);
     35 
     36   DISALLOW_COPY_AND_ASSIGN(KeyboardDrivenEventRewriter);
     37 };
     38 
     39 }  // namespace chromeos
     40 
     41 #endif  // CHROME_BROWSER_CHROMEOS_EVENTS_KEYBOARD_DRIVEN_EVENT_REWRITER_H_
     42