blob: 15150dd62fa972b40c98dc2aaa6a68fa32e0597e [file] [log] [blame]
[email protected]f7867172012-07-11 07:04:071// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]8b048322009-05-11 04:41:212// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]c6d068ff2011-10-14 17:28:235#ifndef CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_
6#define CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_
[email protected]8b048322009-05-11 04:41:217
8#include <windows.h>
9
10#include <string>
[email protected]9db40b682009-05-29 00:39:5911#include <vector>
[email protected]8b048322009-05-11 04:41:2112#include "base/basictypes.h"
13
[email protected]2dbcad1c2012-10-30 00:20:0914namespace content {
15
[email protected]8b048322009-05-11 04:41:2116// Implements the platform-dependent part of a pseudo keyboard device for
17// Windows.
18class 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:
[email protected]9db40b682009-05-29 00:39:5928 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.
[email protected]8b048322009-05-11 04:41:2133 HKL original_keyboard_layout_;
[email protected]9db40b682009-05-29 00:39:5934 // The currently active driver.
35 HKL active_keyboard_layout_;
[email protected]8b048322009-05-11 04:41:2136 BYTE original_keyboard_states_[256];
37
[email protected]8b048322009-05-11 04:41:2138 BYTE keyboard_states_[256];
39
40 DISALLOW_COPY_AND_ASSIGN(MockKeyboardDriverWin);
41};
42
[email protected]2dbcad1c2012-10-30 00:20:0943} // namespace content
44
[email protected]c6d068ff2011-10-14 17:28:2345#endif // CONTENT_TEST_MOCK_KEYBOARD_DRIVER_WIN_H_