Home | History | Annotate | Download | only in keyboard_overlay
      1 // Copyright (c) 2012 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 ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
      6 #define ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
      7 
      8 #include "ash/content_support/ash_with_content_export.h"
      9 #include "base/basictypes.h"
     10 #include "base/compiler_specific.h"
     11 #include "base/gtest_prod_util.h"
     12 #include "ui/web_dialogs/web_dialog_delegate.h"
     13 #include "url/gurl.h"
     14 
     15 namespace views {
     16 class WebDialogView;
     17 class Widget;
     18 }
     19 
     20 namespace ash {
     21 
     22 // Delegate to handle showing the keyboard overlay drawing. Exported for test.
     23 class ASH_WITH_CONTENT_EXPORT KeyboardOverlayDelegate
     24     : public ui::WebDialogDelegate {
     25  public:
     26   KeyboardOverlayDelegate(const base::string16& title, const GURL& url);
     27 
     28   // Shows the keyboard overlay widget. Returns the widget for testing.
     29   views::Widget* Show(views::WebDialogView* view);
     30 
     31   // Overridden from ui::WebDialogDelegate:
     32   virtual void GetDialogSize(gfx::Size* size) const OVERRIDE;
     33 
     34  private:
     35   FRIEND_TEST_ALL_PREFIXES(KeyboardOverlayDelegateTest, ShowAndClose);
     36 
     37   virtual ~KeyboardOverlayDelegate();
     38 
     39   // Overridden from ui::WebDialogDelegate:
     40   virtual ui::ModalType GetDialogModalType() const OVERRIDE;
     41   virtual base::string16 GetDialogTitle() const OVERRIDE;
     42   virtual GURL GetDialogContentURL() const OVERRIDE;
     43   virtual void GetWebUIMessageHandlers(
     44       std::vector<content::WebUIMessageHandler*>* handlers) const OVERRIDE;
     45   virtual std::string GetDialogArgs() const OVERRIDE;
     46   virtual void OnDialogClosed(const std::string& json_retval) OVERRIDE;
     47   virtual void OnCloseContents(content::WebContents* source,
     48                                bool* out_close_dialog) OVERRIDE;
     49   virtual bool ShouldShowDialogTitle() const OVERRIDE;
     50   virtual bool HandleContextMenu(
     51       const content::ContextMenuParams& params) OVERRIDE;
     52 
     53   // The dialog title.
     54   base::string16 title_;
     55 
     56   // The URL of the keyboard overlay.
     57   GURL url_;
     58 
     59   // The widget associated with this delegate. Not owned.
     60   views::Widget* widget_;
     61 
     62   DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDelegate);
     63 };
     64 
     65 }  // namespace ash
     66 
     67 #endif  // ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
     68