blob: 2f5db43b3483b41fdcd90cc627c3fdeda57aeff6 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/base/ime/chromeos/ime_keyboard_impl.h"
#include "ui/ozone/public/input_controller.h"
namespace chromeos {
namespace input_method {
ImeKeyboardImpl::ImeKeyboardImpl(ui::InputController* input_controller)
: input_controller_(input_controller) {}
ImeKeyboardImpl::~ImeKeyboardImpl() = default;
bool ImeKeyboardImpl::SetCurrentKeyboardLayoutByName(
const std::string& layout_name) {
ImeKeyboard::SetCurrentKeyboardLayoutByName(layout_name);
last_layout_ = layout_name;
input_controller_->SetCurrentLayoutByName(layout_name);
return true;
}
bool ImeKeyboardImpl::SetAutoRepeatRate(const AutoRepeatRate& rate) {
input_controller_->SetAutoRepeatRate(
base::TimeDelta::FromMilliseconds(rate.initial_delay_in_ms),
base::TimeDelta::FromMilliseconds(rate.repeat_interval_in_ms));
return true;
}
bool ImeKeyboardImpl::SetAutoRepeatEnabled(bool enabled) {
input_controller_->SetAutoRepeatEnabled(enabled);
return true;
}
bool ImeKeyboardImpl::GetAutoRepeatEnabled() {
return input_controller_->IsAutoRepeatEnabled();
}
bool ImeKeyboardImpl::ReapplyCurrentKeyboardLayout() {
return SetCurrentKeyboardLayoutByName(last_layout_);
}
void ImeKeyboardImpl::ReapplyCurrentModifierLockStatus() {}
void ImeKeyboardImpl::DisableNumLock() {
input_controller_->SetNumLockEnabled(false);
}
void ImeKeyboardImpl::SetCapsLockEnabled(bool enable_caps_lock) {
// Inform ImeKeyboard of caps lock state.
ImeKeyboard::SetCapsLockEnabled(enable_caps_lock);
// Inform Ozone InputController input of caps lock state.
input_controller_->SetCapsLockEnabled(enable_caps_lock);
}
bool ImeKeyboardImpl::CapsLockIsEnabled() {
return input_controller_->IsCapsLockEnabled();
}
} // namespace input_method
} // namespace chromeos