blob: 14029ff7e2875307e637f008a04156c26b62c8a3 [file] [log] [blame]
// Copyright 2014 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.
#ifndef UI_BASE_IME_IME_INPUT_CONTEXT_HANDLER_INTERFACE_H_
#define UI_BASE_IME_IME_INPUT_CONTEXT_HANDLER_INTERFACE_H_
#include <stdint.h>
#include <string>
#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/input_method.h"
#include "ui/base/ime/ui_base_ime_export.h"
#include "ui/events/event.h"
namespace ui {
struct SurroundingTextInfo {
base::string16 surrounding_text;
gfx::Range selection_range;
};
class UI_BASE_IME_EXPORT IMEInputContextHandlerInterface {
public:
// Called when the engine commit a text.
virtual void CommitText(const std::string& text) = 0;
// Called when the engine updates composition text.
virtual void UpdateCompositionText(const CompositionText& text,
uint32_t cursor_pos,
bool visible) = 0;
// Called when the engine request deleting surrounding string.
virtual void DeleteSurroundingText(int32_t offset, uint32_t length) = 0;
// Called from the extension API.
virtual SurroundingTextInfo GetSurroundingTextInfo() = 0;
// Called when the engine sends a key event.
virtual void SendKeyEvent(KeyEvent* event) = 0;
// Gets the input method pointer.
virtual InputMethod* GetInputMethod() = 0;
};
} // namespace ui
#endif // UI_BASE_IME_IME_INPUT_CONTEXT_HANDLER_INTERFACE_H_