• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_
6 #define CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_
7 
8 #include <windows.h>
9 
10 #include <string>
11 #include <vector>
12 #include "base/basictypes.h"
13 
14 namespace content {
15 
16 // Implements the platform-dependent part of a pseudo keyboard device for
17 // Windows.
18 class MockKeyboardDriverWin {
19  public:
20   MockKeyboardDriverWin();
21   ~MockKeyboardDriverWin();
22 
23   bool SetLayout(int layout);
24   bool SetModifiers(int modifiers);
25   int GetCharacters(int key_code, std::wstring* code);
26 
27  private:
28   void MaybeUnloadActiveLayout();
29 
30   // The list of keyboard drivers that are installed on this machine.
31   std::vector<HKL> orig_keyboard_layouts_list_;
32   // The active keyboard driver at the time the Ctor was called.
33   HKL original_keyboard_layout_;
34   // The currently active driver.
35   HKL active_keyboard_layout_;
36   BYTE original_keyboard_states_[256];
37 
38   BYTE keyboard_states_[256];
39 
40   DISALLOW_COPY_AND_ASSIGN(MockKeyboardDriverWin);
41 };
42 
43 }  // namespace content
44 
45 #endif  // CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_
46