• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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_LINUX_LINUX_INPUT_METHOD_CONTEXT_FACTORY_H_
6 #define UI_BASE_IME_LINUX_LINUX_INPUT_METHOD_CONTEXT_FACTORY_H_
7 
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/base/ui_base_export.h"
10 
11 namespace ui {
12 
13 class LinuxInputMethodContext;
14 class LinuxInputMethodContextDelegate;
15 
16 // An interface that lets different Linux platforms override the
17 // CreateInputMethodContext function declared here to return native input method
18 // contexts.
19 class UI_BASE_EXPORT LinuxInputMethodContextFactory {
20  public:
21   // Returns the current active factory or NULL.
22   static const LinuxInputMethodContextFactory* instance();
23 
24   // Sets the dynamically loaded singleton that creates an input method context.
25   // This pointer is not owned, and if this method is called a second time,
26   // the first instance is not deleted.
27   static void SetInstance(const LinuxInputMethodContextFactory* instance);
28 
~LinuxInputMethodContextFactory()29   virtual ~LinuxInputMethodContextFactory() {}
30 
31   // Returns a native input method context.
32   virtual scoped_ptr<LinuxInputMethodContext> CreateInputMethodContext(
33       LinuxInputMethodContextDelegate* delegate) const = 0;
34 };
35 
36 }  // namespace ui
37 
38 #endif  // UI_BASE_IME_LINUX_LINUX_INPUT_METHOD_CONTEXT_FACTORY_H_
39