Home | History | Annotate | Download | only in ash
      1 // Copyright (c) 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 CHROME_BROWSER_UI_ASH_ASH_KEYBOARD_CONTROLLER_PROXY_H_
      6 #define CHROME_BROWSER_UI_ASH_ASH_KEYBOARD_CONTROLLER_PROXY_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "chrome/browser/extensions/extension_function_dispatcher.h"
     11 #include "content/public/browser/web_contents_observer.h"
     12 #include "ui/keyboard/keyboard_controller_proxy.h"
     13 
     14 class ExtensionFunctionDispatcher;
     15 
     16 namespace content {
     17 class WebContents;
     18 }
     19 namespace extensions {
     20 class WindowController;
     21 }
     22 namespace gfx {
     23 class Rect;
     24 }
     25 namespace ui {
     26 class InputMethod;
     27 }
     28 
     29 class AshKeyboardControllerProxy
     30     : public keyboard::KeyboardControllerProxy,
     31       public content::WebContentsObserver,
     32       public ExtensionFunctionDispatcher::Delegate {
     33  public:
     34   AshKeyboardControllerProxy();
     35   virtual ~AshKeyboardControllerProxy();
     36 
     37  private:
     38   void OnRequest(const ExtensionHostMsg_Request_Params& params);
     39 
     40   // keyboard::KeyboardControllerProxy overrides
     41   virtual content::BrowserContext* GetBrowserContext() OVERRIDE;
     42   virtual ui::InputMethod* GetInputMethod() OVERRIDE;
     43   virtual void RequestAudioInput(content::WebContents* web_contents,
     44       const content::MediaStreamRequest& request,
     45       const content::MediaResponseCallback& callback) OVERRIDE;
     46   virtual void SetupWebContents(content::WebContents* contents) OVERRIDE;
     47   virtual void ShowKeyboardContainer(aura::Window* container) OVERRIDE;
     48 
     49   // ExtensionFunctionDispatcher::Delegate overrides
     50   virtual extensions::WindowController* GetExtensionWindowController() const
     51       OVERRIDE;
     52   virtual content::WebContents* GetAssociatedWebContents() const OVERRIDE;
     53 
     54   // content::WebContentsObserver overrides
     55   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
     56 
     57   scoped_ptr<ExtensionFunctionDispatcher> extension_function_dispatcher_;
     58 
     59   DISALLOW_COPY_AND_ASSIGN(AshKeyboardControllerProxy);
     60 };
     61 
     62 #endif  // CHROME_BROWSER_UI_ASH_ASH_KEYBOARD_CONTROLLER_PROXY_H_
     63