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 3// found in the LICENSE file. 4 5#include "chrome/browser/ui/views/location_bar/star_view.h" 6 7#include "base/metrics/histogram.h" 8#include "base/strings/utf_string_conversions.h" 9#include "chrome/app/chrome_command_ids.h" 10#include "chrome/browser/bookmarks/bookmark_stats.h" 11#include "chrome/browser/ui/view_ids.h" 12#include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h" 13#include "chrome/grit/generated_resources.h" 14#include "grit/theme_resources.h" 15#include "ui/base/l10n/l10n_util.h" 16#include "ui/base/resource/resource_bundle.h" 17 18StarView::StarView(CommandUpdater* command_updater) 19 : BubbleIconView(command_updater, IDC_BOOKMARK_PAGE) { 20 set_id(VIEW_ID_STAR_BUTTON); 21 SetToggled(false); 22} 23 24StarView::~StarView() {} 25 26void StarView::SetToggled(bool on) { 27 SetTooltipText(l10n_util::GetStringUTF16( 28 on ? IDS_TOOLTIP_STARRED : IDS_TOOLTIP_STAR)); 29 SetImage(ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 30 on ? IDR_STAR_LIT : IDR_STAR)); 31} 32 33bool StarView::IsBubbleShowing() const { 34 return BookmarkBubbleView::IsShowing(); 35} 36 37void StarView::OnExecuting( 38 BubbleIconView::ExecuteSource execute_source) { 39 BookmarkEntryPoint entry_point = BOOKMARK_ENTRY_POINT_STAR_MOUSE; 40 switch (execute_source) { 41 case EXECUTE_SOURCE_MOUSE: 42 entry_point = BOOKMARK_ENTRY_POINT_STAR_MOUSE; 43 break; 44 case EXECUTE_SOURCE_KEYBOARD: 45 entry_point = BOOKMARK_ENTRY_POINT_STAR_KEY; 46 break; 47 case EXECUTE_SOURCE_GESTURE: 48 entry_point = BOOKMARK_ENTRY_POINT_STAR_GESTURE; 49 break; 50 } 51 UMA_HISTOGRAM_ENUMERATION("Bookmarks.EntryPoint", 52 entry_point, 53 BOOKMARK_ENTRY_POINT_LIMIT); 54} 55