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 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" | 5 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 591 } | 591 } |
| 592 | 592 |
| 593 private: | 593 private: |
| 594 DISALLOW_COPY_AND_ASSIGN(ButtonSeparatorView); | 594 DISALLOW_COPY_AND_ASSIGN(ButtonSeparatorView); |
| 595 }; | 595 }; |
| 596 | 596 |
| 597 // BookmarkBarView ------------------------------------------------------------ | 597 // BookmarkBarView ------------------------------------------------------------ |
| 598 | 598 |
| 599 // static | 599 // static |
| 600 const char BookmarkBarView::kViewClassName[] = "BookmarkBarView"; | 600 const char BookmarkBarView::kViewClassName[] = "BookmarkBarView"; |
| 601 int BookmarkBarView::extra_font_padding_ = -1; | |
| 601 | 602 |
| 602 BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view) | 603 BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view) |
| 603 : page_navigator_(NULL), | 604 : page_navigator_(NULL), |
| 604 managed_(NULL), | 605 managed_(NULL), |
| 605 bookmark_menu_(NULL), | 606 bookmark_menu_(NULL), |
| 606 bookmark_drop_menu_(NULL), | 607 bookmark_drop_menu_(NULL), |
| 607 other_bookmarks_button_(NULL), | 608 other_bookmarks_button_(NULL), |
| 608 managed_bookmarks_button_(NULL), | 609 managed_bookmarks_button_(NULL), |
| 609 supervised_bookmarks_button_(NULL), | 610 supervised_bookmarks_button_(NULL), |
| 610 apps_page_shortcut_(NULL), | 611 apps_page_shortcut_(NULL), |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 836 if (infobar_visible_) | 837 if (infobar_visible_) |
| 837 return detached_overlap; | 838 return detached_overlap; |
| 838 | 839 |
| 839 // When detached with no infobar, animate the overlap between the attached and | 840 // When detached with no infobar, animate the overlap between the attached and |
| 840 // detached states. | 841 // detached states. |
| 841 return detached_overlap + static_cast<int>( | 842 return detached_overlap + static_cast<int>( |
| 842 (attached_overlap - detached_overlap) * | 843 (attached_overlap - detached_overlap) * |
| 843 size_animation_.GetCurrentValue()); | 844 size_animation_.GetCurrentValue()); |
| 844 } | 845 } |
| 845 | 846 |
| 847 int BookmarkBarView::GetExtraFontPadding() const { | |
| 848 if (extra_font_padding_ == -1) { | |
| 849 int height = 0; | |
| 850 for (int i = 0; i < child_count(); ++i) { | |
| 851 const views::View* view = child_at(i); | |
| 852 gfx::Size pref = view->GetPreferredSize(); | |
| 853 height = std::max(pref.height(), height); | |
| 854 } | |
| 855 extra_font_padding_ = std::max(0, height - chrome::kBookmarkBarHeight); | |
| 856 } | |
| 857 return extra_font_padding_; | |
| 858 } | |
| 859 | |
| 846 gfx::Size BookmarkBarView::GetPreferredSize() const { | 860 gfx::Size BookmarkBarView::GetPreferredSize() const { |
| 847 gfx::Size prefsize; | 861 gfx::Size prefsize; |
| 848 if (IsDetached()) { | 862 if (IsDetached()) { |
| 863 int padded_height = chrome::kBookmarkBarHeight + GetExtraFontPadding(); | |
| 849 prefsize.set_height( | 864 prefsize.set_height( |
| 850 chrome::kBookmarkBarHeight + | 865 padded_height + |
| 851 static_cast<int>( | 866 static_cast<int>((chrome::kNTPBookmarkBarHeight - padded_height) * |
| 852 (chrome::kNTPBookmarkBarHeight - chrome::kBookmarkBarHeight) * | 867 (1 - size_animation_.GetCurrentValue()))); |
| 853 (1 - size_animation_.GetCurrentValue()))); | |
| 854 } else { | 868 } else { |
| 855 prefsize.set_height(static_cast<int>(chrome::kBookmarkBarHeight * | 869 prefsize.set_height( |
| 856 size_animation_.GetCurrentValue())); | 870 static_cast<int>((chrome::kBookmarkBarHeight + GetExtraFontPadding()) * |
|
Evan Stade
2016/08/04 16:05:40
this should probably just take the max of its chil
kylix_rd
2016/08/04 16:42:10
One of the issues I noticed is if the calculation
| |
| 871 size_animation_.GetCurrentValue())); | |
| 857 } | 872 } |
| 858 return prefsize; | 873 return prefsize; |
| 859 } | 874 } |
| 860 | 875 |
| 861 bool BookmarkBarView::CanProcessEventsWithinSubtree() const { | 876 bool BookmarkBarView::CanProcessEventsWithinSubtree() const { |
| 862 // If the bookmark bar is attached and the omnibox popup is open (on top of | 877 // If the bookmark bar is attached and the omnibox popup is open (on top of |
| 863 // the bar), prevent events from targeting the bookmark bar or any of its | 878 // the bar), prevent events from targeting the bookmark bar or any of its |
| 864 // descendants. This will prevent hovers/clicks just above the omnibox popup | 879 // descendants. This will prevent hovers/clicks just above the omnibox popup |
| 865 // from activating the top few pixels of items on the bookmark bar. | 880 // from activating the top few pixels of items on the bookmark bar. |
| 866 if (!IsDetached() && browser_view_ && | 881 if (!IsDetached() && browser_view_ && |
| (...skipping 1307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2174 return; | 2189 return; |
| 2175 apps_page_shortcut_->SetVisible(visible); | 2190 apps_page_shortcut_->SetVisible(visible); |
| 2176 UpdateBookmarksSeparatorVisibility(); | 2191 UpdateBookmarksSeparatorVisibility(); |
| 2177 LayoutAndPaint(); | 2192 LayoutAndPaint(); |
| 2178 } | 2193 } |
| 2179 | 2194 |
| 2180 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() { | 2195 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() { |
| 2181 if (UpdateOtherAndManagedButtonsVisibility()) | 2196 if (UpdateOtherAndManagedButtonsVisibility()) |
| 2182 LayoutAndPaint(); | 2197 LayoutAndPaint(); |
| 2183 } | 2198 } |
| OLD | NEW |