• 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_LOCATION_BAR_STAR_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_STAR_VIEW_H_
7 #pragma once
8 
9 #include "chrome/browser/ui/views/bubble/bubble.h"
10 #include "views/controls/image_view.h"
11 
12 class CommandUpdater;
13 class Bubble;
14 
15 namespace views {
16 class KeyEvent;
17 class MouseEvent;
18 }
19 
20 class StarView : public views::ImageView, public BubbleDelegate {
21  public:
22   explicit StarView(CommandUpdater* command_updater);
23   virtual ~StarView();
24 
25   // Toggles the star on or off.
26   void SetToggled(bool on);
27 
28  private:
29   // views::ImageView overrides:
30   virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
31   virtual bool GetTooltipText(const gfx::Point& p,
32                               std::wstring* tooltip) OVERRIDE;
33   virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE;
34   virtual void OnMouseReleased(const views::MouseEvent& event) OVERRIDE;
35   virtual bool OnKeyPressed(const views::KeyEvent& event) OVERRIDE;
36 
37   // BubbleDelegate overrides:
38   virtual void BubbleClosing(Bubble* bubble, bool closed_by_escape) OVERRIDE;
39   virtual bool CloseOnEscape() OVERRIDE;
40   virtual bool FadeInOnShow() OVERRIDE;
41 
42   // The CommandUpdater for the Browser object that owns the location bar.
43   CommandUpdater* command_updater_;
44 
45   DISALLOW_IMPLICIT_CONSTRUCTORS(StarView);
46 };
47 
48 #endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_STAR_VIEW_H_
49