123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- ## Adds a copy of the bookmark bar into the toolbar to the right of the locationbar
- #
- # 'Other Bookmarks' and the Reading List are not shown.
- # You'll probably want to hide the existing bookmark bar through the right-click menu
- # as well as launch with --bookmark-bar-ntp=never
- # The location can be changed by moving the position in chrome/browser/ui/views/toolbar/toolbar_view.cc
- --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
- +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
- @@ -604,10 +604,11 @@ END_METADATA
-
- // BookmarkBarView ------------------------------------------------------------
-
- -BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view)
- +BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view, bool isbbar)
- : AnimationDelegateViews(this),
- browser_(browser),
- - browser_view_(browser_view) {
- + browser_view_(browser_view),
- + isbbar_(isbbar) {
- SetID(VIEW_ID_BOOKMARK_BAR);
- Init();
-
- @@ -873,7 +874,7 @@ void BookmarkBarView::Layout() {
- if (!model_)
- return;
-
- - int x = kBookmarkBarHorizontalMargin;
- + int x = isbbar_ ? 0 : kBookmarkBarHorizontalMargin;
- int width = View::width() - 2 * kBookmarkBarHorizontalMargin;
-
- const int button_height = GetLayoutConstant(BOOKMARK_BAR_BUTTON_HEIGHT);
- @@ -949,7 +950,7 @@ void BookmarkBarView::Layout() {
- }
-
- if (model_->loaded() && !model_->bookmark_bar_node()->children().empty()) {
- - bool last_visible = x < max_x;
- + bool last_visible = x < max_x || isbbar_;
- size_t button_count = bookmark_buttons_.size();
- for (size_t i = 0; i <= button_count; ++i) {
- if (i == button_count) {
- @@ -971,6 +972,10 @@ void BookmarkBarView::Layout() {
- gfx::Size pref = child->GetPreferredSize();
- int next_x = x + pref.width() + bookmark_bar_button_padding;
- last_visible = next_x < max_x;
- + if (isbbar_) {
- + next_x -= bookmark_bar_button_padding;
- + last_visible = true;
- + }
- child->SetVisible(last_visible);
- // Only need to set bounds if the view is actually visible.
- if (last_visible)
- @@ -979,6 +984,18 @@ void BookmarkBarView::Layout() {
- }
- }
-
- + if (isbbar_ && !bookmark_buttons_.empty()) {
- + bookmarks_separator_view_->SetBounds(x, (View::height() - bookmarks_separator_pref.height()) / 2,
- + bookmarks_separator_pref.width(), bookmarks_separator_pref.height());
- + bookmarks_separator_view_->SetVisible(true);
- + gfx::Size prefsize(x + bookmarks_separator_pref.width(), GetLayoutConstant(BOOKMARK_BAR_HEIGHT));
- + if (prefsize != GetPreferredSize()) {
- + SetPreferredSize(prefsize);
- + PreferredSizeChanged();
- + }
- + return;
- + }
- +
- // Layout the right side buttons.
- x = max_x + bookmark_bar_button_padding;
-
- --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
- +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
- @@ -76,7 +76,7 @@ class BookmarkBarView : public views::Ac
-
- METADATA_HEADER(BookmarkBarView);
- // |browser_view| can be NULL during tests.
- - BookmarkBarView(Browser* browser, BrowserView* browser_view);
- + BookmarkBarView(Browser* browser, BrowserView* browser_view, bool isbbar = false);
- BookmarkBarView(const BookmarkBarView&) = delete;
- BookmarkBarView& operator=(const BookmarkBarView&) = delete;
- ~BookmarkBarView() override;
- @@ -477,6 +477,8 @@ class BookmarkBarView : public views::Ac
- // Returns WeakPtrs used in GetDropCallback(). Used to ensure
- // safety if `model_` is mutated after getting the callback.
- base::WeakPtrFactory<BookmarkBarView> drop_weak_ptr_factory_{this};
- +
- + bool isbbar_ = false;
- };
-
- #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_
- --- a/chrome/browser/ui/views/frame/browser_view.cc
- +++ b/chrome/browser/ui/views/frame/browser_view.cc
- @@ -3388,6 +3388,7 @@ bool BrowserView::MaybeShowBookmarkBar(W
- // Don't change the visibility of the BookmarkBarView. BrowserViewLayout
- // handles it.
- bookmark_bar_view_->SetPageNavigator(GetActiveWebContents());
- + toolbar_->SetBookmarkPageNavigator();
-
- // Update parenting for the bookmark bar. This may detach it from all views.
- bool needs_layout = false;
- --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
- +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
- @@ -38,6 +38,7 @@
- #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h"
- #include "chrome/browser/ui/ui_features.h"
- #include "chrome/browser/ui/view_ids.h"
- +#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
- #include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h"
- #include "chrome/browser/ui/views/extensions/extension_popup.h"
- #include "chrome/browser/ui/views/extensions/extensions_side_panel_controller.h"
- @@ -332,6 +333,8 @@ void ToolbarView::Init() {
-
- location_bar_ = AddChildView(std::move(location_bar));
-
- + bbar_ = AddChildView(std::make_unique<BookmarkBarView>(browser_, browser_view_, true));
- +
- if (extensions_container)
- extensions_container_ = AddChildView(std::move(extensions_container));
-
- @@ -502,6 +505,10 @@ bool ToolbarView::GetAppMenuFocused() co
- return app_menu_button_ && app_menu_button_->HasFocus();
- }
-
- +void ToolbarView::SetBookmarkPageNavigator() {
- + bbar_->SetPageNavigator(GetWebContents());
- +}
- +
- void ToolbarView::ShowIntentPickerBubble(
- std::vector<IntentPickerBubbleView::AppInfo> app_info,
- bool show_stay_in_chrome,
- --- a/chrome/browser/ui/views/toolbar/toolbar_view.h
- +++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
- @@ -124,6 +124,8 @@ class ToolbarView : public views::Access
- // Returns true if the app menu is focused.
- bool GetAppMenuFocused() const;
-
- + void SetBookmarkPageNavigator();
- +
- void ShowIntentPickerBubble(
- std::vector<IntentPickerBubbleView::AppInfo> app_info,
- bool show_stay_in_chrome,
- @@ -275,6 +277,7 @@ class ToolbarView : public views::Access
- HomeButton* home_ = nullptr;
- CustomTabBarView* custom_tab_bar_ = nullptr;
- LocationBarView* location_bar_ = nullptr;
- + BookmarkBarView* bbar_ = nullptr;
- ExtensionsToolbarContainer* extensions_container_ = nullptr;
- ChromeLabsButton* chrome_labs_button_ = nullptr;
- media_router::CastToolbarButton* cast_ = nullptr;
|