• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
7 #pragma once
8 
9 #include <set>
10 
11 #include "chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h"
12 #include "chrome/browser/ui/webui/html_dialog_ui.h"
13 #include "chrome/browser/ui/views/html_dialog_view.h"
14 #include "views/window/window_delegate.h"
15 
16 class BrowserView;
17 
18 // A customized dialog view for the keyboard overlay.
19 class KeyboardOverlayDialogView : public HtmlDialogView {
20  public:
21   KeyboardOverlayDialogView(Profile* profile,
22                             HtmlDialogUIDelegate* delegate,
23                             BrowserView* parent_view);
24   virtual ~KeyboardOverlayDialogView();
25 
26   // Initializes the contents of the dialog (the DOMView and the callbacks).
27   void InitDialog();
28 
29   // Overridden from views::View:
30   virtual bool AcceleratorPressed(const views::Accelerator& accelerator);
31 
32   // Shows the keyboard overlay.
33   static void ShowDialog(gfx::NativeWindow owning_window, BrowserView* parent);
34 
35  private:
36   // Returns true if |accelerator| is an accelerator for closing the dialog.
37   bool IsCloseAccelerator(const views::Accelerator& accelerator);
38 
39   // Points to the view from which this dialog is created.
40   BrowserView* parent_view_;
41 
42   // Contains accelerators for closing this dialog.
43   std::set<views::Accelerator> close_accelerators_;
44 
45   DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDialogView);
46 };
47 
48 #endif  // CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
49