// Copyright 2012 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 CHROME_BROWSER_EXTENSIONS_API_INPUT_INPUT_H_
#define CHROME_BROWSER_EXTENSIONS_API_INPUT_INPUT_H_
#include "base/compiler_specific.h"
#include "extensions/browser/browser_context_keyed_api_factory.h"
#include "extensions/browser/extension_function.h"
namespace content {
class BrowserContext;
}
namespace extensions {
class VirtualKeyboardPrivateInsertTextFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("virtualKeyboardPrivate.insertText",
VIRTUALKEYBOARDPRIVATE_INSERTTEXT);
protected:
virtual ~VirtualKeyboardPrivateInsertTextFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateMoveCursorFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("virtualKeyboardPrivate.moveCursor",
VIRTUALKEYBOARDPRIVATE_MOVECURSOR);
protected:
virtual ~VirtualKeyboardPrivateMoveCursorFunction() {}
// ExtensionFunction.
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateSendKeyEventFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION(
"virtualKeyboardPrivate.sendKeyEvent",
VIRTUALKEYBOARDPRIVATE_SENDKEYEVENT);
protected:
virtual ~VirtualKeyboardPrivateSendKeyEventFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateHideKeyboardFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION(
"virtualKeyboardPrivate.hideKeyboard",
VIRTUALKEYBOARDPRIVATE_HIDEKEYBOARD);
protected:
virtual ~VirtualKeyboardPrivateHideKeyboardFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateLockKeyboardFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION(
"virtualKeyboardPrivate.lockKeyboard",
VIRTUALKEYBOARDPRIVATE_LOCKKEYBOARD);
protected:
virtual ~VirtualKeyboardPrivateLockKeyboardFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateKeyboardLoadedFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION(
"virtualKeyboardPrivate.keyboardLoaded",
VIRTUALKEYBOARDPRIVATE_KEYBOARDLOADED);
protected:
virtual ~VirtualKeyboardPrivateKeyboardLoadedFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateGetKeyboardConfigFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION(
"virtualKeyboardPrivate.getKeyboardConfig",
VIRTUALKEYBOARDPRIVATE_GETKEYBOARDCONFIG);
protected:
virtual ~VirtualKeyboardPrivateGetKeyboardConfigFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class VirtualKeyboardPrivateOpenSettingsFunction
: public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("virtualKeyboardPrivate.openSettings",
VIRTUALKEYBOARDPRIVATE_OPENSETTINGS);
protected:
virtual ~VirtualKeyboardPrivateOpenSettingsFunction() {}
// ExtensionFunction:
virtual bool RunSync() OVERRIDE;
};
class InputAPI : public BrowserContextKeyedAPI {
public:
explicit InputAPI(content::BrowserContext* context);
virtual ~InputAPI();
// BrowserContextKeyedAPI implementation.
static BrowserContextKeyedAPIFactory<InputAPI>* GetFactoryInstance();
private:
friend class BrowserContextKeyedAPIFactory<InputAPI>;
// BrowserContextKeyedAPI implementation.
static const char* service_name() {
return "InputAPI";
}
static const bool kServiceIsNULLWhileTesting = true;
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_API_INPUT_INPUT_H_