#include "ui/events/ozone/evdev/keyboard_evdev.h"
#include "base/functional/callback_forward.h"
#include "base/logging.h"
#include "base/task/single_thread_task_runner.h"
#include "ui/events/event.h"
#include "ui/events/event_constants.h"
#include "ui/events/event_modifiers.h"
#include "ui/events/event_utils.h"
#include "ui/events/keycodes/dom/dom_code.h"
#include "ui/events/keycodes/dom/keycode_converter.h"
#include "ui/events/keycodes/keyboard_code_conversion.h"
#include "ui/events/keycodes/keyboard_codes_posix.h"
#include "ui/events/ozone/layout/keyboard_layout_engine.h"
#include "ui/events/ozone/layout/keyboard_layout_engine_manager.h"
#include "ui/events/types/event_type.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/constants/ash_features.h"
#endif
namespace ui {
namespace {
std::optional<KeyboardCode> RemapButtonsToKeyboardCodes(unsigned int key) { … }
}
KeyboardEvdev::KeyboardEvdev(
EventModifiers* modifiers,
KeyboardLayoutEngine* keyboard_layout_engine,
const EventDispatchCallback& callback,
base::RepeatingCallback<void(bool)> any_keys_are_pressed_callback)
: … { … }
KeyboardEvdev::~KeyboardEvdev() { … }
void KeyboardEvdev::OnKeyChange(unsigned int key,
unsigned int scan_code,
bool down,
bool suppress_auto_repeat,
base::TimeTicks timestamp,
int device_id,
int flags) { … }
void KeyboardEvdev::SetCapsLockEnabled(bool enabled) { … }
bool KeyboardEvdev::IsCapsLockEnabled() { … }
bool KeyboardEvdev::IsAutoRepeatEnabled() { … }
void KeyboardEvdev::SetAutoRepeatEnabled(bool enabled) { … }
void KeyboardEvdev::SetAutoRepeatRate(const base::TimeDelta& delay,
const base::TimeDelta& interval) { … }
void KeyboardEvdev::GetAutoRepeatRate(base::TimeDelta* delay,
base::TimeDelta* interval) { … }
void KeyboardEvdev::SetCurrentLayoutByName(
const std::string& layout_name,
base::OnceCallback<void(bool)> callback) { … }
void KeyboardEvdev::FlushInput(base::OnceClosure closure) { … }
void KeyboardEvdev::UpdateModifier(int modifier_flag, bool down) { … }
void KeyboardEvdev::RefreshModifiers() { … }
void KeyboardEvdev::DispatchKey(unsigned int key,
unsigned int scan_code,
bool down,
bool repeat,
base::TimeTicks timestamp,
int device_id,
int flags) { … }
}