Index: chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
index fce7df82977b04d38eac162680755e06daad9a46..0a9019c854bd52acebd08a0b8968ff1fa73e08dd 100644 |
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
@@ -395,7 +395,7 @@ class BookmarkBarView::ButtonSeparatorView : public views::View { |
GetThemeProvider()->GetColor(ThemeProperties::COLOR_TOOLBAR)); |
} |
- virtual gfx::Size GetPreferredSize() OVERRIDE { |
+ virtual gfx::Size GetPreferredSize() const OVERRIDE { |
// We get the full height of the bookmark bar, so that the height returned |
// here doesn't matter. |
return gfx::Size(kSeparatorWidth, 1); |
@@ -664,8 +664,19 @@ int BookmarkBarView::GetToolbarOverlap() const { |
size_animation_->GetCurrentValue()); |
} |
-gfx::Size BookmarkBarView::GetPreferredSize() { |
- return LayoutItems(true); |
+gfx::Size BookmarkBarView::GetPreferredSize() const { |
+ gfx::Size prefsize; |
+ if (IsDetached()) { |
+ prefsize.set_height( |
+ chrome::kBookmarkBarHeight + |
+ static_cast<int>( |
+ (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * |
+ (1 - size_animation_->GetCurrentValue()))); |
+ } else { |
+ prefsize.set_height(static_cast<int>(chrome::kBookmarkBarHeight * |
+ size_animation_->GetCurrentValue())); |
+ } |
+ return prefsize; |
} |
bool BookmarkBarView::HitTestRect(const gfx::Rect& rect) const { |
@@ -681,7 +692,7 @@ bool BookmarkBarView::HitTestRect(const gfx::Rect& rect) const { |
return DetachableToolbarView::HitTestRect(rect); |
} |
-gfx::Size BookmarkBarView::GetMinimumSize() { |
+gfx::Size BookmarkBarView::GetMinimumSize() const { |
// The minimum width of the bookmark bar should at least contain the overflow |
// button, by which one can access all the Bookmark Bar items, and the "Other |
// Bookmarks" folder, along with appropriate margins and button padding. |
@@ -718,7 +729,7 @@ gfx::Size BookmarkBarView::GetMinimumSize() { |
} |
void BookmarkBarView::Layout() { |
- LayoutItems(false); |
+ LayoutItems(); |
} |
void BookmarkBarView::ViewHierarchyChanged( |
@@ -1299,7 +1310,7 @@ void BookmarkBarView::Init() { |
} |
} |
-int BookmarkBarView::GetBookmarkButtonCount() { |
+int BookmarkBarView::GetBookmarkButtonCount() const { |
// We contain four non-bookmark button views: other bookmarks, bookmarks |
// separator, chevrons (for overflow), apps page, and the instruction label. |
return child_count() - 5; |
@@ -1714,10 +1725,9 @@ void BookmarkBarView::UpdateBookmarksSeparatorVisibility() { |
other_bookmarked_button_->visible()); |
} |
-gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) { |
- gfx::Size prefsize; |
- if (!parent() && !compute_bounds_only) |
- return prefsize; |
+void BookmarkBarView::LayoutItems() { |
+ if (!parent()) |
+ return; |
int x = kLeftMargin; |
int top_margin = IsDetached() ? kDetachedTopMargin : 0; |
@@ -1757,36 +1767,29 @@ gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) { |
// Start with the apps page shortcut button. |
if (apps_page_shortcut_->visible()) { |
- if (!compute_bounds_only) { |
- apps_page_shortcut_->SetBounds(x, y, apps_page_shortcut_pref.width(), |
- height); |
- } |
+ apps_page_shortcut_->SetBounds(x, y, apps_page_shortcut_pref.width(), |
+ height); |
x += apps_page_shortcut_pref.width() + kButtonPadding; |
} |
// Then go through the bookmark buttons. |
if (GetBookmarkButtonCount() == 0 && model_ && model_->loaded()) { |
gfx::Size pref = instructions_->GetPreferredSize(); |
- if (!compute_bounds_only) { |
- instructions_->SetBounds( |
- x + kInstructionsPadding, y, |
- std::min(static_cast<int>(pref.width()), |
- max_x - x), |
- height); |
- instructions_->SetVisible(true); |
- } |
+ instructions_->SetBounds( |
+ x + kInstructionsPadding, y, |
+ std::min(static_cast<int>(pref.width()), |
+ max_x - x), |
+ height); |
+ instructions_->SetVisible(true); |
} else { |
- if (!compute_bounds_only) |
- instructions_->SetVisible(false); |
+ instructions_->SetVisible(false); |
for (int i = 0; i < GetBookmarkButtonCount(); ++i) { |
views::View* child = child_at(i); |
gfx::Size pref = child->GetPreferredSize(); |
int next_x = x + pref.width() + kButtonPadding; |
- if (!compute_bounds_only) { |
- child->SetVisible(next_x < max_x); |
- child->SetBounds(x, y, pref.width(), height); |
- } |
+ child->SetVisible(next_x < max_x); |
+ child->SetBounds(x, y, pref.width(), height); |
x = next_x; |
} |
} |
@@ -1796,58 +1799,30 @@ gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) { |
child_at(GetBookmarkButtonCount() - 1)->visible()); |
// Layout the right side buttons. |
- if (!compute_bounds_only) |
- x = max_x + kButtonPadding; |
- else |
- x += kButtonPadding; |
+ x = max_x + kButtonPadding; |
// The overflow button. |
- if (!compute_bounds_only) { |
- overflow_button_->SetBounds(x, y, overflow_pref.width(), height); |
- overflow_button_->SetVisible(!all_visible); |
- } |
+ overflow_button_->SetBounds(x, y, overflow_pref.width(), height); |
+ overflow_button_->SetVisible(!all_visible); |
x += overflow_pref.width(); |
// Separator. |
if (bookmarks_separator_view_->visible()) { |
- if (!compute_bounds_only) { |
- bookmarks_separator_view_->SetBounds(x, |
- y - top_margin, |
- bookmarks_separator_pref.width(), |
- height + top_margin + kBottomMargin - |
- separator_margin); |
- } |
+ bookmarks_separator_view_->SetBounds(x, |
+ y - top_margin, |
+ bookmarks_separator_pref.width(), |
+ height + top_margin + kBottomMargin - |
+ separator_margin); |
x += bookmarks_separator_pref.width(); |
} |
// The other bookmarks button. |
if (other_bookmarked_button_->visible()) { |
- if (!compute_bounds_only) { |
- other_bookmarked_button_->SetBounds(x, y, other_bookmarked_pref.width(), |
- height); |
- } |
+ other_bookmarked_button_->SetBounds(x, y, other_bookmarked_pref.width(), |
+ height); |
x += other_bookmarked_pref.width() + kButtonPadding; |
} |
- |
- // Set the preferred size computed so far. |
- if (compute_bounds_only) { |
- x += kRightMargin; |
- prefsize.set_width(x); |
- if (IsDetached()) { |
- x += static_cast<int>(kNewtabHorizontalPadding * |
- (1 - size_animation_->GetCurrentValue())); |
- prefsize.set_height( |
- chrome::kBookmarkBarHeight + |
- static_cast<int>( |
- (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * |
- (1 - size_animation_->GetCurrentValue()))); |
- } else { |
- prefsize.set_height(static_cast<int>(chrome::kBookmarkBarHeight * |
- size_animation_->GetCurrentValue())); |
- } |
- } |
- return prefsize; |
} |
void BookmarkBarView::OnAppsPageShortcutVisibilityPrefChanged() { |