Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / location_bar / star_decoration.mm
blob790b7172045c32cc4fcfdeaa9f174dcec7ae11f3
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.
5 #import "chrome/browser/ui/cocoa/location_bar/star_decoration.h"
7 #include "chrome/app/chrome_command_ids.h"
8 #include "chrome/browser/command_updater.h"
9 #import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h"
10 #include "chrome/grit/generated_resources.h"
11 #include "grit/theme_resources.h"
12 #include "ui/base/l10n/l10n_util_mac.h"
14 namespace {
16 // The info-bubble point should look like it points to the point
17 // between the star's lower tips.  The popup should be where the
18 // Omnibox popup ends up (2px below field).  Determined via Pixie.app
19 // magnification.
20 const CGFloat kStarPointYOffset = 2.0;
22 }  // namespace
24 StarDecoration::StarDecoration(CommandUpdater* command_updater)
25     : command_updater_(command_updater) {
26   SetVisible(true);
27   SetStarred(false);
30 StarDecoration::~StarDecoration() {
33 void StarDecoration::SetStarred(bool starred) {
34   starred_ = starred;
35   const int image_id = starred ? IDR_STAR_LIT : IDR_STAR;
36   const int tip_id = starred ? IDS_TOOLTIP_STARRED : IDS_TOOLTIP_STAR;
37   SetImage(OmniboxViewMac::ImageForResource(image_id));
38   tooltip_.reset([l10n_util::GetNSStringWithFixup(tip_id) retain]);
41 NSPoint StarDecoration::GetBubblePointInFrame(NSRect frame) {
42   const NSRect draw_frame = GetDrawRectInFrame(frame);
43   return NSMakePoint(NSMidX(draw_frame),
44                      NSMaxY(draw_frame) - kStarPointYOffset);
47 bool StarDecoration::AcceptsMousePress() {
48   return true;
51 bool StarDecoration::OnMousePressed(NSRect frame, NSPoint location) {
52   command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE);
53   return true;
56 NSString* StarDecoration::GetToolTip() {
57   return tooltip_.get();