- add sources.
[platform/framework/web/crosswalk.git] / src / ui / base / ime / input_method_factory.h
1 // Copyright (c) 2011 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 #ifndef UI_BASE_IME_INPUT_METHOD_FACTORY_H_
6 #define UI_BASE_IME_INPUT_METHOD_FACTORY_H_
7
8 #include "ui/base/ui_export.h"
9 #include "ui/gfx/native_widget_types.h"
10
11 namespace ui {
12
13 class InputMethod;
14
15 namespace internal {
16 class InputMethodDelegate;
17 }  // namespace internal
18
19 // Creates and returns an input method implementation for the platform. Caller
20 // must delete the object. The object does not own |delegate|.
21 UI_EXPORT InputMethod* CreateInputMethod(
22     internal::InputMethodDelegate* delegate,
23     gfx::AcceleratedWidget widget);
24
25 // With calling this function, CreateInputMethod will return MockInputMethod.
26 UI_EXPORT void SetUpInputMethodFactoryForTesting();
27
28 // Returns a shared input method object for the platform. Caller must not
29 // delete the object. Currently supported only on Windows. This method is
30 // for non-Aura environment, where only one input method object is created for
31 // the browser process.
32 UI_EXPORT InputMethod* GetSharedInputMethod();
33
34 namespace internal {
35 // Destroys the shared input method object returned by GetSharedInputMethod().
36 // This function must be called only from input_method_initializer.cc.
37 void DestroySharedInputMethod();
38 }  // namespace internal
39
40 }  // namespace ui;
41
42 #endif  // UI_BASE_IME_INPUT_METHOD_FACTORY_H_