OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ | 5 #ifndef CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ |
6 #define CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ | 6 #define CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ |
7 | 7 |
8 #include "ui/base/models/simple_menu_model.h" | 8 #include "ui/base/models/simple_menu_model.h" |
9 #include "chrome/common/content_settings.h" | 9 #include "chrome/common/content_settings.h" |
10 #include "chrome/common/content_settings_types.h" | 10 #include "chrome/common/content_settings_types.h" |
11 #include "googleurl/src/gurl.h" | 11 #include "googleurl/src/gurl.h" |
12 | 12 |
13 class PermissionMenuModel : public ui::SimpleMenuModel, | 13 class PermissionMenuModel : public ui::SimpleMenuModel, |
14 public ui::SimpleMenuModel::Delegate { | 14 public ui::SimpleMenuModel::Delegate { |
15 public: | 15 public: |
16 enum CommandID { | 16 enum CommandID { |
17 COMMAND_SET_TO_DEFAULT, | 17 COMMAND_SET_TO_DEFAULT, |
18 COMMAND_SET_TO_ALLOW, | 18 COMMAND_SET_TO_ALLOW, |
19 COMMAND_SET_TO_BLOCK, | 19 COMMAND_SET_TO_BLOCK, |
20 }; | 20 }; |
21 | 21 |
22 class Delegate { | 22 class Delegate { |
23 public: | 23 public: |
24 // Executes the command with the given |command_id|. | 24 // Executes the command with the given |command_id|. |
25 virtual void ExecuteCommand(int command_id) = 0; | 25 virtual void ExecuteCommand(int command_id) = 0; |
26 // Returns true if the command with the given |command_id| should be | 26 // Returns true if the command with the given |command_id| should be |
27 // checked. | 27 // checked. |
28 virtual bool IsCommandIdChecked(int command_id) = 0; | 28 virtual bool IsCommandIdChecked(int command_id) = 0; |
| 29 |
| 30 protected: |
| 31 virtual ~Delegate() { } |
29 }; | 32 }; |
30 | 33 |
31 PermissionMenuModel(Delegate* delegate, | 34 PermissionMenuModel(Delegate* delegate, |
32 const GURL& url, | 35 const GURL& url, |
33 ContentSettingsType type, | 36 ContentSettingsType type, |
34 ContentSetting default_setting, | 37 ContentSetting default_setting, |
35 ContentSetting current_setting); | 38 ContentSetting current_setting); |
36 | 39 |
37 // Overridden from ui::SimpleMenuModel::Delegate: | 40 // Overridden from ui::SimpleMenuModel::Delegate: |
38 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; | 41 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; |
39 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; | 42 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; |
40 virtual bool GetAcceleratorForCommandId( | 43 virtual bool GetAcceleratorForCommandId( |
41 int command_id, | 44 int command_id, |
42 ui::Accelerator* accelerator) OVERRIDE; | 45 ui::Accelerator* accelerator) OVERRIDE; |
43 virtual void ExecuteCommand(int command_id) OVERRIDE; | 46 virtual void ExecuteCommand(int command_id) OVERRIDE; |
44 | 47 |
45 private: | 48 private: |
46 // The delegate of the |PermissionMenuModel|. |delegate_| can be NULL. | 49 // The delegate of the |PermissionMenuModel|. |delegate_| can be NULL. |
47 Delegate* delegate_; | 50 Delegate* delegate_; |
48 | 51 |
49 // The URL of the website for which to display site permissions. | 52 // The URL of the website for which to display site permissions. |
50 GURL site_url_; | 53 GURL site_url_; |
51 | 54 |
52 DISALLOW_COPY_AND_ASSIGN(PermissionMenuModel); | 55 DISALLOW_COPY_AND_ASSIGN(PermissionMenuModel); |
53 }; | 56 }; |
54 | 57 |
55 #endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ | 58 #endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_PERMISSION_MENU_MODEL_H_ |
OLD | NEW |