Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Unified Diff: chrome/browser/cocoa/location_bar_view_mac.mm

Issue 1540009: [Mac] Move star button into page-actions area of omnibox. (Closed)
Patch Set: Why did the trybot fail? I can't see anything. Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/cocoa/location_bar_view_mac.h ('k') | chrome/browser/cocoa/toolbar_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/location_bar_view_mac.mm
diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm
index c9584a06e264bc7b5d3a25a78e564bf3893403f5..3cbc49f4509ae2816a459995902262da150ed318 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.mm
+++ b/chrome/browser/cocoa/location_bar_view_mac.mm
@@ -105,6 +105,7 @@ LocationBarViewMac::LocationBarViewMac(
disposition_(CURRENT_TAB),
location_icon_view_(this),
security_label_view_(),
+ star_icon_view_(command_updater),
page_action_views_(this, profile, toolbar_model),
profile_(profile),
browser_(browser),
@@ -121,6 +122,7 @@ LocationBarViewMac::LocationBarViewMac(
AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell];
[cell setLocationIconView:&location_icon_view_];
[cell setSecurityLabelView:&security_label_view_];
+ [cell setStarIconView:&star_icon_view_];
[cell setPageActionViewList:&page_action_views_];
[cell setContentSettingViewsList:&content_setting_views_];
@@ -135,6 +137,7 @@ LocationBarViewMac::~LocationBarViewMac() {
[cell setPageActionViewList:NULL];
[cell setLocationIconView:NULL];
[cell setSecurityLabelView:NULL];
+ [cell setStarIconView:NULL];
}
std::wstring LocationBarViewMac::GetInputString() const {
@@ -449,6 +452,12 @@ void LocationBarViewMac::TestPageActionPressed(size_t index) {
page_action_views_.OnMousePressed(NSZeroRect, index);
}
+void LocationBarViewMac::SetStarred(bool starred) {
+ star_icon_view_.SetStarred(starred);
+ [field_ updateCursorAndToolTipRects];
+ [field_ resetFieldEditorFrameIfNeeded];
+}
+
NSImage* LocationBarViewMac::GetTabButtonImage() {
if (!tab_button_image_) {
SkBitmap* skiaBitmap = ResourceBundle::GetSharedInstance().
@@ -468,8 +477,7 @@ void LocationBarViewMac::SetIcon(int resource_id) {
!edit_view_->model()->is_keyword_hint()) {
location_icon_view_.SetVisible(false);
} else {
- location_icon_view_.SetImage(
- ResourceBundle::GetSharedInstance().GetNSImageNamed(resource_id));
+ location_icon_view_.SetIcon(resource_id);
location_icon_view_.SetVisible(true);
SetSecurityLabel();
}
@@ -541,8 +549,9 @@ void LocationBarViewMac::LocationBarImageView::SetImage(NSImage* image) {
image_.reset([image retain]);
}
-void LocationBarViewMac::LocationBarImageView::SetImage(SkBitmap* image) {
- SetImage(gfx::SkBitmapToNSImage(*image));
+void LocationBarViewMac::LocationBarImageView::SetIcon(int resource_id) {
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ SetImage(rb.GetNSImageNamed(resource_id));
}
void LocationBarViewMac::LocationBarImageView::SetLabel(NSString* text,
@@ -600,6 +609,34 @@ void LocationBarViewMac::LocationIconView::OnMousePressed(NSRect bounds) {
tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true);
}
+// StarIconView-----------------------------------------------------------------
+
+LocationBarViewMac::StarIconView::StarIconView(CommandUpdater* command_updater)
+ : command_updater_(command_updater) {
+ SetVisible(true);
+ SetStarred(false);
+}
+
+void LocationBarViewMac::StarIconView::SetStarred(bool starred) {
+ if (starred) {
+ SetIcon(IDR_STARRED_NOBORDER_CENTER);
+ tooltip_.reset(
+ [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STARRED) retain]);
+ } else {
+ SetIcon(IDR_STAR_NOBORDER_CENTER);
+ tooltip_.reset(
+ [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STAR) retain]);
+ }
+}
+
+void LocationBarViewMac::StarIconView::OnMousePressed(NSRect bounds) {
+ command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE);
+}
+
+const NSString* LocationBarViewMac::StarIconView::GetToolTip() {
+ return tooltip_.get();
+}
+
// PageActionImageView----------------------------------------------------------
LocationBarViewMac::PageActionImageView::PageActionImageView(
@@ -853,10 +890,9 @@ void LocationBarViewMac::ContentSettingImageView::UpdateFromTabContents(
const TabContents* tab_contents) {
content_setting_image_model_->UpdateFromTabContents(tab_contents);
if (content_setting_image_model_->is_visible()) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
// TODO(thakis): We should use pdfs for these icons on OSX.
// http://crbug.com/35847
- SetImage(rb.GetNSImageNamed(content_setting_image_model_->get_icon()));
+ SetIcon(content_setting_image_model_->get_icon());
SetToolTip(base::SysUTF8ToNSString(
content_setting_image_model_->get_tooltip()));
SetVisible(true);
« no previous file with comments | « chrome/browser/cocoa/location_bar_view_mac.h ('k') | chrome/browser/cocoa/toolbar_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698