• 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 #include "chrome/browser/ui/views/location_bar/star_view.h"
6 
7 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_command_ids.h"
9 #include "chrome/browser/command_updater.h"
10 #include "chrome/browser/ui/view_ids.h"
11 #include "chrome/browser/ui/views/browser_dialogs.h"
12 #include "grit/generated_resources.h"
13 #include "grit/theme_resources.h"
14 #include "ui/base/accessibility/accessible_view_state.h"
15 #include "ui/base/l10n/l10n_util.h"
16 #include "ui/base/resource/resource_bundle.h"
17 
StarView(CommandUpdater * command_updater)18 StarView::StarView(CommandUpdater* command_updater)
19     : command_updater_(command_updater) {
20   SetID(VIEW_ID_STAR_BUTTON);
21   SetToggled(false);
22   set_accessibility_focusable(true);
23 }
24 
~StarView()25 StarView::~StarView() {
26 }
27 
SetToggled(bool on)28 void StarView::SetToggled(bool on) {
29   SetTooltipText(UTF16ToWide(l10n_util::GetStringUTF16(
30       on ? IDS_TOOLTIP_STARRED : IDS_TOOLTIP_STAR)));
31   SetImage(ResourceBundle::GetSharedInstance().GetBitmapNamed(
32       on ? IDR_STAR_LIT : IDR_STAR));
33 }
34 
GetAccessibleState(ui::AccessibleViewState * state)35 void StarView::GetAccessibleState(ui::AccessibleViewState* state) {
36   state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_STAR);
37   state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON;
38 }
39 
GetTooltipText(const gfx::Point & p,std::wstring * tooltip)40 bool StarView::GetTooltipText(const gfx::Point& p, std::wstring* tooltip) {
41   // Don't show tooltip to distract user if BookmarkBubbleView is showing.
42   if (browser::IsBookmarkBubbleViewShowing())
43     return false;
44 
45   return ImageView::GetTooltipText(p, tooltip);
46 }
47 
OnMousePressed(const views::MouseEvent & event)48 bool StarView::OnMousePressed(const views::MouseEvent& event) {
49   // We want to show the bubble on mouse release; that is the standard behavior
50   // for buttons.
51   return true;
52 }
53 
OnMouseReleased(const views::MouseEvent & event)54 void StarView::OnMouseReleased(const views::MouseEvent& event) {
55   if (HitTest(event.location()))
56     command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE);
57 }
58 
OnKeyPressed(const views::KeyEvent & event)59 bool StarView::OnKeyPressed(const views::KeyEvent& event) {
60   if (event.key_code() == ui::VKEY_SPACE ||
61       event.key_code() == ui::VKEY_RETURN) {
62     command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE);
63     return true;
64   }
65   return false;
66 }
67 
BubbleClosing(Bubble * bubble,bool closed_by_escape)68 void StarView::BubbleClosing(Bubble* bubble, bool closed_by_escape) {
69 }
70 
CloseOnEscape()71 bool StarView::CloseOnEscape() {
72   return true;
73 }
74 
FadeInOnShow()75 bool StarView::FadeInOnShow() {
76   return false;
77 }
78