1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ui/base/ime/text_input_focus_manager.h"
6
7#include "base/logging.h"
8#include "base/memory/singleton.h"
9
10namespace ui {
11
12TextInputFocusManager* TextInputFocusManager::GetInstance() {
13  TextInputFocusManager* instance = Singleton<TextInputFocusManager>::get();
14  DCHECK(instance->thread_checker_.CalledOnValidThread());
15  return instance;
16}
17
18TextInputClient* TextInputFocusManager::GetFocusedTextInputClient() {
19  DCHECK(thread_checker_.CalledOnValidThread());
20  return focused_text_input_client_;
21}
22
23void TextInputFocusManager::FocusTextInputClient(
24    TextInputClient* text_input_client) {
25  DCHECK(thread_checker_.CalledOnValidThread());
26  focused_text_input_client_ = text_input_client;
27}
28
29void TextInputFocusManager::BlurTextInputClient(
30    TextInputClient* text_input_client) {
31  DCHECK(thread_checker_.CalledOnValidThread());
32  if (focused_text_input_client_ == text_input_client)
33    focused_text_input_client_ = NULL;
34}
35
36TextInputFocusManager::TextInputFocusManager()
37    : focused_text_input_client_(NULL) {}
38
39TextInputFocusManager::~TextInputFocusManager() {}
40
41}  // namespace ui
42