| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1382 } | 1382 } |
| 1383 } | 1383 } |
| 1384 | 1384 |
| 1385 views::TextButton* BookmarkBarView::CreateAppsPageShortcutButton() { | 1385 views::TextButton* BookmarkBarView::CreateAppsPageShortcutButton() { |
| 1386 views::TextButton* button = new ShortcutButton( | 1386 views::TextButton* button = new ShortcutButton( |
| 1387 this, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME)); | 1387 this, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME)); |
| 1388 button->SetTooltipText(l10n_util::GetStringUTF16( | 1388 button->SetTooltipText(l10n_util::GetStringUTF16( |
| 1389 IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP)); | 1389 IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP)); |
| 1390 button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); | 1390 button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); |
| 1391 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 1391 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 1392 button->SetIcon(*rb.GetImageSkiaNamed(IDR_WEBSTORE_ICON_16)); | 1392 button->SetIcon(*rb.GetImageSkiaNamed(IDR_BOOKMARK_BAR_APPS_SHORTCUT)); |
| 1393 button->set_context_menu_controller(this); | 1393 button->set_context_menu_controller(this); |
| 1394 button->set_tag(kAppsShortcutButtonTag); | 1394 button->set_tag(kAppsShortcutButtonTag); |
| 1395 return button; | 1395 return button; |
| 1396 } | 1396 } |
| 1397 | 1397 |
| 1398 void BookmarkBarView::ConfigureButton(const BookmarkNode* node, | 1398 void BookmarkBarView::ConfigureButton(const BookmarkNode* node, |
| 1399 views::TextButton* button) { | 1399 views::TextButton* button) { |
| 1400 button->SetText(node->GetTitle()); | 1400 button->SetText(node->GetTitle()); |
| 1401 button->SetAccessibleName(node->GetTitle()); | 1401 button->SetAccessibleName(node->GetTitle()); |
| 1402 button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); | 1402 button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1713 UpdateBookmarksSeparatorVisibility(); | 1713 UpdateBookmarksSeparatorVisibility(); |
| 1714 Layout(); | 1714 Layout(); |
| 1715 SchedulePaint(); | 1715 SchedulePaint(); |
| 1716 } | 1716 } |
| 1717 | 1717 |
| 1718 void BookmarkBarView::UpdateBookmarksSeparatorVisibility() { | 1718 void BookmarkBarView::UpdateBookmarksSeparatorVisibility() { |
| 1719 // Ash does not paint the bookmarks separator line because it looks odd on | 1719 // Ash does not paint the bookmarks separator line because it looks odd on |
| 1720 // the flat background. We keep it present for layout, but don't draw it. | 1720 // the flat background. We keep it present for layout, but don't draw it. |
| 1721 bookmarks_separator_view_->SetVisible( | 1721 bookmarks_separator_view_->SetVisible( |
| 1722 browser_->host_desktop_type() != chrome::HOST_DESKTOP_TYPE_ASH && | 1722 browser_->host_desktop_type() != chrome::HOST_DESKTOP_TYPE_ASH && |
| 1723 (other_bookmarked_button_->visible() || | 1723 other_bookmarked_button_->visible()); |
| 1724 apps_page_shortcut_->visible())); | |
| 1725 } | 1724 } |
| 1726 | 1725 |
| 1727 gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) { | 1726 gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) { |
| 1728 gfx::Size prefsize; | 1727 gfx::Size prefsize; |
| 1729 if (!parent() && !compute_bounds_only) | 1728 if (!parent() && !compute_bounds_only) |
| 1730 return prefsize; | 1729 return prefsize; |
| 1731 | 1730 |
| 1732 int x = kLeftMargin; | 1731 int x = kLeftMargin; |
| 1733 int top_margin = IsDetached() ? kDetachedTopMargin : 0; | 1732 int top_margin = IsDetached() ? kDetachedTopMargin : 0; |
| 1734 int y = top_margin; | 1733 int y = top_margin; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1759 | 1758 |
| 1760 int max_x = width - overflow_pref.width() - kButtonPadding - | 1759 int max_x = width - overflow_pref.width() - kButtonPadding - |
| 1761 bookmarks_separator_pref.width(); | 1760 bookmarks_separator_pref.width(); |
| 1762 if (other_bookmarked_button_->visible()) | 1761 if (other_bookmarked_button_->visible()) |
| 1763 max_x -= other_bookmarked_pref.width() + kButtonPadding; | 1762 max_x -= other_bookmarked_pref.width() + kButtonPadding; |
| 1764 if (apps_page_shortcut_->visible()) | 1763 if (apps_page_shortcut_->visible()) |
| 1765 max_x -= apps_page_shortcut_pref.width() + kButtonPadding; | 1764 max_x -= apps_page_shortcut_pref.width() + kButtonPadding; |
| 1766 | 1765 |
| 1767 // Next, layout out the buttons. Any buttons that are placed beyond the | 1766 // Next, layout out the buttons. Any buttons that are placed beyond the |
| 1768 // visible region and made invisible. | 1767 // visible region and made invisible. |
| 1768 |
| 1769 // Start with the apps page shortcut button. |
| 1770 if (apps_page_shortcut_->visible()) { |
| 1771 if (!compute_bounds_only) { |
| 1772 apps_page_shortcut_->SetBounds(x, y, apps_page_shortcut_pref.width(), |
| 1773 height); |
| 1774 } |
| 1775 x += apps_page_shortcut_pref.width() + kButtonPadding; |
| 1776 } |
| 1777 |
| 1778 // Then go through the bookmark buttons. |
| 1769 if (GetBookmarkButtonCount() == 0 && model_ && model_->IsLoaded()) { | 1779 if (GetBookmarkButtonCount() == 0 && model_ && model_->IsLoaded()) { |
| 1770 gfx::Size pref = instructions_->GetPreferredSize(); | 1780 gfx::Size pref = instructions_->GetPreferredSize(); |
| 1771 if (!compute_bounds_only) { | 1781 if (!compute_bounds_only) { |
| 1772 instructions_->SetBounds( | 1782 instructions_->SetBounds( |
| 1773 x + kInstructionsPadding, y, | 1783 x + kInstructionsPadding, y, |
| 1774 std::min(static_cast<int>(pref.width()), | 1784 std::min(static_cast<int>(pref.width()), |
| 1775 max_x - x), | 1785 max_x - x), |
| 1776 height); | 1786 height); |
| 1777 instructions_->SetVisible(true); | 1787 instructions_->SetVisible(true); |
| 1778 } | 1788 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1824 | 1834 |
| 1825 // The other bookmarks button. | 1835 // The other bookmarks button. |
| 1826 if (other_bookmarked_button_->visible()) { | 1836 if (other_bookmarked_button_->visible()) { |
| 1827 if (!compute_bounds_only) { | 1837 if (!compute_bounds_only) { |
| 1828 other_bookmarked_button_->SetBounds(x, y, other_bookmarked_pref.width(), | 1838 other_bookmarked_button_->SetBounds(x, y, other_bookmarked_pref.width(), |
| 1829 height); | 1839 height); |
| 1830 } | 1840 } |
| 1831 x += other_bookmarked_pref.width() + kButtonPadding; | 1841 x += other_bookmarked_pref.width() + kButtonPadding; |
| 1832 } | 1842 } |
| 1833 | 1843 |
| 1834 // The app page shortcut button. | |
| 1835 if (apps_page_shortcut_->visible()) { | |
| 1836 if (!compute_bounds_only) { | |
| 1837 apps_page_shortcut_->SetBounds(x, y, apps_page_shortcut_pref.width(), | |
| 1838 height); | |
| 1839 } | |
| 1840 x += apps_page_shortcut_pref.width() + kButtonPadding; | |
| 1841 } | |
| 1842 | |
| 1843 // Set the preferred size computed so far. | 1844 // Set the preferred size computed so far. |
| 1844 if (compute_bounds_only) { | 1845 if (compute_bounds_only) { |
| 1845 x += kRightMargin; | 1846 x += kRightMargin; |
| 1846 prefsize.set_width(x); | 1847 prefsize.set_width(x); |
| 1847 if (IsDetached()) { | 1848 if (IsDetached()) { |
| 1848 x += static_cast<int>(GetNewtabHorizontalPadding() * | 1849 x += static_cast<int>(GetNewtabHorizontalPadding() * |
| 1849 (1 - size_animation_->GetCurrentValue())); | 1850 (1 - size_animation_->GetCurrentValue())); |
| 1850 int ntp_bookmark_bar_height = | 1851 int ntp_bookmark_bar_height = |
| 1851 chrome::IsInstantExtendedAPIEnabled() | 1852 chrome::IsInstantExtendedAPIEnabled() |
| 1852 ? kSearchNewTabBookmarkBarHeight : chrome::kNTPBookmarkBarHeight; | 1853 ? kSearchNewTabBookmarkBarHeight : chrome::kNTPBookmarkBarHeight; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1875 return; | 1876 return; |
| 1876 apps_page_shortcut_->SetVisible(visible); | 1877 apps_page_shortcut_->SetVisible(visible); |
| 1877 UpdateBookmarksSeparatorVisibility(); | 1878 UpdateBookmarksSeparatorVisibility(); |
| 1878 Layout(); | 1879 Layout(); |
| 1879 } | 1880 } |
| 1880 | 1881 |
| 1881 void BookmarkBarView::OnAppLauncherEnabledCompleted(bool app_launcher_enabled) { | 1882 void BookmarkBarView::OnAppLauncherEnabledCompleted(bool app_launcher_enabled) { |
| 1882 // Disregard |app_launcher_enabled|, use apps::WasAppLauncherEnable instead. | 1883 // Disregard |app_launcher_enabled|, use apps::WasAppLauncherEnable instead. |
| 1883 OnAppsPageShortcutVisibilityPrefChanged(); | 1884 OnAppsPageShortcutVisibilityPrefChanged(); |
| 1884 } | 1885 } |
| OLD | NEW |