| 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 <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 #include "ui/base/page_transition_types.h" | 76 #include "ui/base/page_transition_types.h" |
| 77 #include "ui/base/resource/material_design/material_design_controller.h" | 77 #include "ui/base/resource/material_design/material_design_controller.h" |
| 78 #include "ui/base/resource/resource_bundle.h" | 78 #include "ui/base/resource/resource_bundle.h" |
| 79 #include "ui/base/theme_provider.h" | 79 #include "ui/base/theme_provider.h" |
| 80 #include "ui/base/window_open_disposition.h" | 80 #include "ui/base/window_open_disposition.h" |
| 81 #include "ui/compositor/paint_recorder.h" | 81 #include "ui/compositor/paint_recorder.h" |
| 82 #include "ui/gfx/animation/slide_animation.h" | 82 #include "ui/gfx/animation/slide_animation.h" |
| 83 #include "ui/gfx/canvas.h" | 83 #include "ui/gfx/canvas.h" |
| 84 #include "ui/gfx/favicon_size.h" | 84 #include "ui/gfx/favicon_size.h" |
| 85 #include "ui/gfx/paint_vector_icon.h" | 85 #include "ui/gfx/paint_vector_icon.h" |
| 86 #include "ui/gfx/scoped_canvas.h" |
| 86 #include "ui/gfx/text_constants.h" | 87 #include "ui/gfx/text_constants.h" |
| 87 #include "ui/gfx/text_elider.h" | 88 #include "ui/gfx/text_elider.h" |
| 88 #include "ui/gfx/vector_icons_public.h" | 89 #include "ui/gfx/vector_icons_public.h" |
| 89 #include "ui/resources/grit/ui_resources.h" | 90 #include "ui/resources/grit/ui_resources.h" |
| 90 #include "ui/views/button_drag_utils.h" | 91 #include "ui/views/button_drag_utils.h" |
| 91 #include "ui/views/controls/button/label_button.h" | 92 #include "ui/views/controls/button/label_button.h" |
| 92 #include "ui/views/controls/button/label_button_border.h" | 93 #include "ui/views/controls/button/label_button_border.h" |
| 93 #include "ui/views/controls/button/menu_button.h" | 94 #include "ui/views/controls/button/menu_button.h" |
| 94 #include "ui/views/controls/label.h" | 95 #include "ui/views/controls/label.h" |
| 95 #include "ui/views/drag_utils.h" | 96 #include "ui/views/drag_utils.h" |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 canvas->sk_canvas()->drawRect(rc_down, paint_down); | 471 canvas->sk_canvas()->drawRect(rc_down, paint_down); |
| 471 } | 472 } |
| 472 | 473 |
| 473 class BookmarkBarView::ButtonSeparatorView : public views::View { | 474 class BookmarkBarView::ButtonSeparatorView : public views::View { |
| 474 public: | 475 public: |
| 475 ButtonSeparatorView() {} | 476 ButtonSeparatorView() {} |
| 476 ~ButtonSeparatorView() override {} | 477 ~ButtonSeparatorView() override {} |
| 477 | 478 |
| 478 void OnPaint(gfx::Canvas* canvas) override { | 479 void OnPaint(gfx::Canvas* canvas) override { |
| 479 if (ui::MaterialDesignController::IsModeMaterial()) { | 480 if (ui::MaterialDesignController::IsModeMaterial()) { |
| 481 gfx::ScopedCanvas scoped_canvas(canvas); |
| 480 // 1px wide at all scale factors. If there is an uneven amount of padding | 482 // 1px wide at all scale factors. If there is an uneven amount of padding |
| 481 // left over, place the extra pixel on the outside, i.e. away from the | 483 // left over, place the extra pixel on the outside, i.e. away from the |
| 482 // "Other bookmarks" folder. | 484 // "Other bookmarks" folder. |
| 483 const float scale = canvas->SaveAndUnscale(); | 485 const float scale = canvas->UndoDeviceScaleFactor(); |
| 484 const gfx::RectF scaled_bounds = | 486 const gfx::RectF scaled_bounds = |
| 485 gfx::ScaleRect(gfx::RectF(bounds()), scale); | 487 gfx::ScaleRect(gfx::RectF(bounds()), scale); |
| 486 | 488 |
| 487 const int kLineThickness = 1; | 489 const int kLineThickness = 1; |
| 488 const float fractional_x = (scaled_bounds.width() - kLineThickness) / 2.f; | 490 const float fractional_x = (scaled_bounds.width() - kLineThickness) / 2.f; |
| 489 const int x = base::i18n::IsRTL() ? std::floor(fractional_x) | 491 const int x = base::i18n::IsRTL() ? std::floor(fractional_x) |
| 490 : std::ceil(fractional_x); | 492 : std::ceil(fractional_x); |
| 491 | 493 |
| 492 const int height = gfx::kFaviconSize * scale; | 494 const int height = gfx::kFaviconSize * scale; |
| 493 const int top_y = (scaled_bounds.height() - height) / 2; | 495 const int top_y = (scaled_bounds.height() - height) / 2; |
| 494 canvas->DrawLine( | 496 canvas->DrawLine( |
| 495 gfx::Point(x, top_y), gfx::Point(x, top_y + height), | 497 gfx::Point(x, top_y), gfx::Point(x, top_y + height), |
| 496 SkColorSetA(GetThemeProvider()->GetColor( | 498 SkColorSetA(GetThemeProvider()->GetColor( |
| 497 ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON), | 499 ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON), |
| 498 0x4D)); | 500 0x4D)); |
| 499 canvas->Restore(); | |
| 500 } else { | 501 } else { |
| 501 PaintVerticalDivider( | 502 PaintVerticalDivider( |
| 502 canvas, kSeparatorStartX, height(), 1, kEdgeDividerColor, | 503 canvas, kSeparatorStartX, height(), 1, kEdgeDividerColor, |
| 503 kMiddleDividerColor, | 504 kMiddleDividerColor, |
| 504 GetThemeProvider()->GetColor(ThemeProperties::COLOR_TOOLBAR)); | 505 GetThemeProvider()->GetColor(ThemeProperties::COLOR_TOOLBAR)); |
| 505 } | 506 } |
| 506 } | 507 } |
| 507 | 508 |
| 508 gfx::Size GetPreferredSize() const override { | 509 gfx::Size GetPreferredSize() const override { |
| 509 // We get the full height of the bookmark bar, so that the height returned | 510 // We get the full height of the bookmark bar, so that the height returned |
| (...skipping 1579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2089 return; | 2090 return; |
| 2090 apps_page_shortcut_->SetVisible(visible); | 2091 apps_page_shortcut_->SetVisible(visible); |
| 2091 UpdateBookmarksSeparatorVisibility(); | 2092 UpdateBookmarksSeparatorVisibility(); |
| 2092 LayoutAndPaint(); | 2093 LayoutAndPaint(); |
| 2093 } | 2094 } |
| 2094 | 2095 |
| 2095 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() { | 2096 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() { |
| 2096 if (UpdateOtherAndManagedButtonsVisibility()) | 2097 if (UpdateOtherAndManagedButtonsVisibility()) |
| 2097 LayoutAndPaint(); | 2098 LayoutAndPaint(); |
| 2098 } | 2099 } |
| OLD | NEW |