#include "ui/base/ime/dummy_text_input_client.h"
#include "base/notreached.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "ui/events/event.h"
#include "ui/gfx/geometry/rect.h"
namespace ui {
DummyTextInputClient::DummyTextInputClient()
: … { … }
DummyTextInputClient::DummyTextInputClient(TextInputType text_input_type)
: … { … }
DummyTextInputClient::DummyTextInputClient(TextInputType text_input_type,
TextInputMode text_input_mode)
: … { … }
DummyTextInputClient::~DummyTextInputClient() { … }
base::WeakPtr<ui::TextInputClient> DummyTextInputClient::AsWeakPtr() { … }
void DummyTextInputClient::SetCompositionText(
const CompositionText& composition) { … }
size_t DummyTextInputClient::ConfirmCompositionText(bool keep_selection) { … }
void DummyTextInputClient::ClearCompositionText() { … }
void DummyTextInputClient::InsertText(
const std::u16string& text,
InsertTextCursorBehavior cursor_behavior) { … }
void DummyTextInputClient::InsertChar(const KeyEvent& event) { … }
TextInputType DummyTextInputClient::GetTextInputType() const { … }
TextInputMode DummyTextInputClient::GetTextInputMode() const { … }
base::i18n::TextDirection DummyTextInputClient::GetTextDirection() const { … }
int DummyTextInputClient::GetTextInputFlags() const { … }
bool DummyTextInputClient::CanComposeInline() const { … }
gfx::Rect DummyTextInputClient::GetCaretBounds() const { … }
gfx::Rect DummyTextInputClient::GetSelectionBoundingBox() const { … }
bool DummyTextInputClient::GetCompositionCharacterBounds(
size_t index,
gfx::Rect* rect) const { … }
bool DummyTextInputClient::HasCompositionText() const { … }
ui::TextInputClient::FocusReason DummyTextInputClient::GetFocusReason() const { … }
bool DummyTextInputClient::GetTextRange(gfx::Range* range) const { … }
bool DummyTextInputClient::GetCompositionTextRange(gfx::Range* range) const { … }
bool DummyTextInputClient::GetEditableSelectionRange(gfx::Range* range) const { … }
bool DummyTextInputClient::SetEditableSelectionRange(const gfx::Range& range) { … }
#if BUILDFLAG(IS_MAC)
bool DummyTextInputClient::DeleteRange(const gfx::Range& range) {
return false;
}
#endif
bool DummyTextInputClient::GetTextFromRange(const gfx::Range& range,
std::u16string* text) const { … }
void DummyTextInputClient::OnInputMethodChanged() { … }
bool DummyTextInputClient::ChangeTextDirectionAndLayoutAlignment(
base::i18n::TextDirection direction) { … }
void DummyTextInputClient::ExtendSelectionAndDelete(size_t before,
size_t after) { … }
void DummyTextInputClient::EnsureCaretNotInRect(const gfx::Rect& rect) { … }
bool DummyTextInputClient::IsTextEditCommandEnabled(
TextEditCommand command) const { … }
void DummyTextInputClient::SetTextEditCommandForNextKeyEvent(
TextEditCommand command) { … }
ukm::SourceId DummyTextInputClient::GetClientSourceForMetrics() const { … }
bool DummyTextInputClient::ShouldDoLearning() { … }
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
bool DummyTextInputClient::SetCompositionFromExistingText(
const gfx::Range& range,
const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { … }
#endif
#if BUILDFLAG(IS_CHROMEOS)
gfx::Range DummyTextInputClient::GetAutocorrectRange() const {
return autocorrect_range_;
}
gfx::Rect DummyTextInputClient::GetAutocorrectCharacterBounds() const {
return gfx::Rect();
}
bool DummyTextInputClient::SetAutocorrectRange(
const gfx::Range& range) {
if (autocorrect_enabled_) {
autocorrect_range_ = range;
}
return autocorrect_enabled_;
}
std::optional<GrammarFragment>
DummyTextInputClient::GetGrammarFragmentAtCursor() const {
for (const auto& fragment : grammar_fragments_) {
if (fragment.range.Contains(cursor_range_)) {
return fragment;
}
}
return std::nullopt;
}
bool DummyTextInputClient::ClearGrammarFragments(const gfx::Range& range) {
grammar_fragments_.clear();
return true;
}
bool DummyTextInputClient::AddGrammarFragments(
const std::vector<GrammarFragment>& fragments) {
grammar_fragments_.insert(grammar_fragments_.end(), fragments.begin(),
fragments.end());
return true;
}
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS)
void DummyTextInputClient::GetActiveTextInputControlLayoutBounds(
std::optional<gfx::Rect>* control_bounds,
std::optional<gfx::Rect>* selection_bounds) {}
#endif
#if BUILDFLAG(IS_WIN)
void DummyTextInputClient::SetActiveCompositionForAccessibility(
const gfx::Range& range,
const std::u16string& active_composition_text,
bool is_composition_committed) {}
#endif
}