blob: 6acb99dafcc497a0618d72796544958544abb134 [file] [log] [blame]
// Copyright 2020 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 <stdint.h>
#include "base/component_export.h"
#include "base/strings/string16.h"
#include "ui/gfx/geometry/rect.h"
namespace ui {
namespace ime {
struct AssistiveWindowButton;
struct SuggestionDetails;
} // namespace ime
} // namespace ui
namespace chromeos {
struct AssistiveWindowProperties;
// Contains bounds for windows controlled by handler.
struct Bounds {
// Position of the cursor.
gfx::Rect caret;
// Position of the autocorrect span, empty if not present.
gfx::Rect autocorrect;
// A interface to handle the assistive windows related method call.
class COMPONENT_EXPORT(UI_BASE_IME) IMEAssistiveWindowHandlerInterface {
virtual ~IMEAssistiveWindowHandlerInterface() {}
// Called when showing/hiding assistive window.
virtual void SetAssistiveWindowProperties(
const AssistiveWindowProperties& window) {}
virtual void ShowSuggestion(const ui::ime::SuggestionDetails& details) {}
virtual void ShowMultipleSuggestions(
const std::vector<base::string16>& suggestions) {}
// Highlights or unhighlights a given assistive button based on the given
// parameters.
virtual void SetButtonHighlighted(
const ui::ime::AssistiveWindowButton& button,
bool highlighted) {}
virtual void AcceptSuggestion(const base::string16& suggestion) {}
virtual void HideSuggestion() {}
// Called to get the current suggestion text.
virtual base::string16 GetSuggestionText() const = 0;
// Called to get length of the confirmed part of suggestion text.
virtual size_t GetConfirmedLength() const = 0;
// Called when the application changes its caret bounds.
virtual void SetBounds(const Bounds& bounds) = 0;
// Called when the text field's focus state is changed.
virtual void FocusStateChanged() {}
IMEAssistiveWindowHandlerInterface() {}
} // namespace chromeos