• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 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_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
6 #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
7 #pragma once
8 
9 #include "chrome/browser/notifications/balloon.h"
10 #include "ui/base/models/simple_menu_model.h"
11 
12 // Model for the corner-selection submenu.
13 class CornerSelectionMenuModel : public ui::SimpleMenuModel,
14                                  public ui::SimpleMenuModel::Delegate {
15  public:
16   explicit CornerSelectionMenuModel(Balloon* balloon);
17   virtual ~CornerSelectionMenuModel();
18 
19   // Overridden from ui::SimpleMenuModel::Delegate:
20   virtual bool IsCommandIdChecked(int command_id) const;
21   virtual bool IsCommandIdEnabled(int command_id) const;
22   virtual bool GetAcceleratorForCommandId(int command_id,
23                                           ui::Accelerator* accelerator);
24   virtual void ExecuteCommand(int command_id);
25 
26  private:
27   // Not owned.
28   Balloon* balloon_;
29 
30   DISALLOW_COPY_AND_ASSIGN(CornerSelectionMenuModel);
31 };
32 
33 // Model for the notification options menu itself.
34 class NotificationOptionsMenuModel : public ui::SimpleMenuModel,
35                                      public ui::SimpleMenuModel::Delegate {
36  public:
37   explicit NotificationOptionsMenuModel(Balloon* balloon);
38   virtual ~NotificationOptionsMenuModel();
39 
40   // Overridden from ui::SimpleMenuModel:
41   virtual bool IsItemForCommandIdDynamic(int command_id) const;
42   virtual string16 GetLabelForCommandId(int command_id) const;
43 
44   // Overridden from ui::SimpleMenuModel::Delegate:
45   virtual bool IsCommandIdChecked(int command_id) const;
46   virtual bool IsCommandIdEnabled(int command_id) const;
47   virtual bool GetAcceleratorForCommandId(int command_id,
48                                           ui::Accelerator* accelerator);
49   virtual void ExecuteCommand(int command_id);
50 
51  private:
52   Balloon* balloon_; // Not owned.
53 
54   scoped_ptr<CornerSelectionMenuModel> corner_menu_model_;
55 
56   DISALLOW_COPY_AND_ASSIGN(NotificationOptionsMenuModel);
57 };
58 
59 #endif  // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
60