Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" | 5 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 243 // TODO(gbillock): Implement web intents tool for mac | 243 // TODO(gbillock): Implement web intents tool for mac |
| 244 } | 244 } |
| 245 | 245 |
| 246 void LocationBarViewMac::SaveStateToContents(WebContents* contents) { | 246 void LocationBarViewMac::SaveStateToContents(WebContents* contents) { |
| 247 // TODO(shess): Why SaveStateToContents vs SaveStateToTab? | 247 // TODO(shess): Why SaveStateToContents vs SaveStateToTab? |
| 248 omnibox_view_->SaveStateToTab(contents); | 248 omnibox_view_->SaveStateToTab(contents); |
| 249 } | 249 } |
| 250 | 250 |
| 251 void LocationBarViewMac::Update(const WebContents* contents, | 251 void LocationBarViewMac::Update(const WebContents* contents, |
| 252 bool should_restore_state) { | 252 bool should_restore_state) { |
| 253 bool star_enabled = IsStarEnabled(); | 253 command_updater_->UpdateCommandEnabled(IDC_BOOKMARK_PAGE, IsStarEnabled()); |
| 254 command_updater_->UpdateCommandEnabled(IDC_BOOKMARK_PAGE, star_enabled); | 254 UpdateStarDecorationVisibility(); |
| 255 star_decoration_->SetVisible(star_enabled); | |
| 256 UpdateChromeToMobileEnabled(); | 255 UpdateChromeToMobileEnabled(); |
| 257 UpdateZoomDecoration(); | 256 UpdateZoomDecoration(); |
| 258 RefreshPageActionDecorations(); | 257 RefreshPageActionDecorations(); |
| 259 RefreshContentSettingsDecorations(); | 258 RefreshContentSettingsDecorations(); |
| 260 // OmniboxView restores state if the tab is non-NULL. | 259 // OmniboxView restores state if the tab is non-NULL. |
| 261 omnibox_view_->Update(should_restore_state ? contents : NULL); | 260 omnibox_view_->Update(should_restore_state ? contents : NULL); |
| 262 OnChanged(); | 261 OnChanged(); |
| 263 } | 262 } |
| 264 | 263 |
| 265 void LocationBarViewMac::OnAutocompleteAccept( | 264 void LocationBarViewMac::OnAutocompleteAccept( |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 471 } | 470 } |
| 472 | 471 |
| 473 void LocationBarViewMac::TestPageActionPressed(size_t index) { | 472 void LocationBarViewMac::TestPageActionPressed(size_t index) { |
| 474 DCHECK_LT(index, page_action_decorations_.size()); | 473 DCHECK_LT(index, page_action_decorations_.size()); |
| 475 if (index < page_action_decorations_.size()) | 474 if (index < page_action_decorations_.size()) |
| 476 page_action_decorations_[index]->OnMousePressed(NSZeroRect); | 475 page_action_decorations_[index]->OnMousePressed(NSZeroRect); |
| 477 } | 476 } |
| 478 | 477 |
| 479 void LocationBarViewMac::SetEditable(bool editable) { | 478 void LocationBarViewMac::SetEditable(bool editable) { |
| 480 [field_ setEditable:editable ? YES : NO]; | 479 [field_ setEditable:editable ? YES : NO]; |
| 481 star_decoration_->SetVisible(IsStarEnabled()); | 480 UpdateStarDecorationVisibility(); |
| 482 UpdateChromeToMobileEnabled(); | 481 UpdateChromeToMobileEnabled(); |
| 483 UpdateZoomDecoration(); | 482 UpdateZoomDecoration(); |
| 484 UpdatePageActions(); | 483 UpdatePageActions(); |
| 485 Layout(); | 484 Layout(); |
| 486 } | 485 } |
| 487 | 486 |
| 488 bool LocationBarViewMac::IsEditable() { | 487 bool LocationBarViewMac::IsEditable() { |
| 489 return [field_ isEditable] ? true : false; | 488 return [field_ isEditable] ? true : false; |
| 490 } | 489 } |
| 491 | 490 |
| 492 void LocationBarViewMac::OnDecorationsChanged() { | 491 void LocationBarViewMac::OnDecorationsChanged() { |
| 493 // TODO(shess): The field-editor frame and cursor rects should not | 492 // TODO(shess): The field-editor frame and cursor rects should not |
| 494 // change, here. | 493 // change, here. |
| 495 [field_ updateCursorAndToolTipRects]; | 494 [field_ updateCursorAndToolTipRects]; |
| 496 [field_ resetFieldEditorFrameIfNeeded]; | 495 [field_ resetFieldEditorFrameIfNeeded]; |
| 497 [field_ setNeedsDisplay:YES]; | 496 [field_ setNeedsDisplay:YES]; |
| 498 } | 497 } |
| 499 | 498 |
| 500 void LocationBarViewMac::SetStarred(bool starred) { | 499 void LocationBarViewMac::SetStarred(bool starred) { |
| 501 star_decoration_->SetStarred(starred); | 500 star_decoration_->SetStarred(starred); |
| 501 UpdateStarDecorationVisibility(); | |
| 502 OnDecorationsChanged(); | 502 OnDecorationsChanged(); |
| 503 } | 503 } |
| 504 | 504 |
| 505 void LocationBarViewMac::SetChromeToMobileDecorationLit(bool lit) { | 505 void LocationBarViewMac::SetChromeToMobileDecorationLit(bool lit) { |
| 506 chrome_to_mobile_decoration_->SetLit(lit); | 506 chrome_to_mobile_decoration_->SetLit(lit); |
| 507 OnDecorationsChanged(); | 507 OnDecorationsChanged(); |
| 508 } | 508 } |
| 509 | 509 |
| 510 void LocationBarViewMac::ZoomChangedForActiveTab(bool can_show_bubble) { | 510 void LocationBarViewMac::ZoomChangedForActiveTab(bool can_show_bubble) { |
| 511 UpdateZoomDecoration(); | 511 UpdateZoomDecoration(); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 577 | 577 |
| 578 case chrome::NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED: { | 578 case chrome::NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED: { |
| 579 // Only update if the updated action box was for the active tab contents. | 579 // Only update if the updated action box was for the active tab contents. |
| 580 TabContents* target_tab = content::Details<TabContents>(details).ptr(); | 580 TabContents* target_tab = content::Details<TabContents>(details).ptr(); |
| 581 if (target_tab == GetTabContents()) | 581 if (target_tab == GetTabContents()) |
| 582 UpdatePageActions(); | 582 UpdatePageActions(); |
| 583 break; | 583 break; |
| 584 } | 584 } |
| 585 | 585 |
| 586 case chrome::NOTIFICATION_PREF_CHANGED: | 586 case chrome::NOTIFICATION_PREF_CHANGED: |
| 587 star_decoration_->SetVisible(IsStarEnabled()); | 587 UpdateStarDecorationVisibility(); |
| 588 UpdateChromeToMobileEnabled(); | 588 UpdateChromeToMobileEnabled(); |
| 589 OnChanged(); | 589 OnChanged(); |
| 590 break; | 590 break; |
| 591 | 591 |
| 592 default: | 592 default: |
| 593 NOTREACHED() << "Unexpected notification"; | 593 NOTREACHED() << "Unexpected notification"; |
| 594 break; | 594 break; |
| 595 } | 595 } |
| 596 } | 596 } |
| 597 | 597 |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 760 command_updater_->UpdateCommandEnabled(IDC_CHROME_TO_MOBILE_PAGE, enabled); | 760 command_updater_->UpdateCommandEnabled(IDC_CHROME_TO_MOBILE_PAGE, enabled); |
| 761 } | 761 } |
| 762 | 762 |
| 763 void LocationBarViewMac::UpdateZoomDecoration() { | 763 void LocationBarViewMac::UpdateZoomDecoration() { |
| 764 TabContents* tab_contents = GetTabContents(); | 764 TabContents* tab_contents = GetTabContents(); |
| 765 if (!tab_contents) | 765 if (!tab_contents) |
| 766 return; | 766 return; |
| 767 | 767 |
| 768 zoom_decoration_->Update(tab_contents->zoom_controller()); | 768 zoom_decoration_->Update(tab_contents->zoom_controller()); |
| 769 } | 769 } |
| 770 | |
| 771 void LocationBarViewMac::UpdateStarDecorationVisibility() { | |
| 772 bool action_box_enabled = | |
| 773 CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableActionBox); | |
| 774 // If the action box is enabled, only show the star if it's lit. | |
| 775 star_decoration_->SetVisible(IsStarEnabled() && | |
| 776 (star_decoration_->starred() || !action_box_enabled)); | |
|
Scott Hess - ex-Googler
2012/08/27 19:47:31
I think this condition is needlessly complicated.
beaudoin
2012/08/27 21:25:48
Good job on that truth table! This indeed simplifi
| |
| 777 } | |
| OLD | NEW |