| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/views/bookmark_bar_view.h" | 5 #include "chrome/browser/views/bookmark_bar_view.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/base_drag_source.h" | 9 #include "base/base_drag_source.h" |
| 10 #include "base/gfx/skia_utils.h" | |
| 11 #include "chrome/app/theme/theme_resources.h" | 10 #include "chrome/app/theme/theme_resources.h" |
| 12 #include "chrome/browser/bookmarks/bookmark_context_menu.h" | 11 #include "chrome/browser/bookmarks/bookmark_context_menu.h" |
| 13 #include "chrome/browser/bookmarks/bookmark_utils.h" | 12 #include "chrome/browser/bookmarks/bookmark_utils.h" |
| 14 #include "chrome/browser/browser.h" | 13 #include "chrome/browser/browser.h" |
| 15 #include "chrome/browser/browser_list.h" | 14 #include "chrome/browser/browser_list.h" |
| 16 #include "chrome/browser/browser_process.h" | 15 #include "chrome/browser/browser_process.h" |
| 17 #include "chrome/browser/browser_window.h" | 16 #include "chrome/browser/browser_window.h" |
| 18 #include "chrome/browser/drag_utils.h" | 17 #include "chrome/browser/drag_utils.h" |
| 19 #include "chrome/browser/download/download_util.h" | 18 #include "chrome/browser/download/download_util.h" |
| 20 #include "chrome/browser/history/history.h" | 19 #include "chrome/browser/history/history.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 38 #include "chrome/common/pref_service.h" | 37 #include "chrome/common/pref_service.h" |
| 39 #include "chrome/common/resource_bundle.h" | 38 #include "chrome/common/resource_bundle.h" |
| 40 #include "chrome/common/win_util.h" | 39 #include "chrome/common/win_util.h" |
| 41 #include "chrome/views/chrome_menu.h" | 40 #include "chrome/views/chrome_menu.h" |
| 42 #include "chrome/views/menu_button.h" | 41 #include "chrome/views/menu_button.h" |
| 43 #include "chrome/views/tooltip_manager.h" | 42 #include "chrome/views/tooltip_manager.h" |
| 44 #include "chrome/views/view_constants.h" | 43 #include "chrome/views/view_constants.h" |
| 45 #include "chrome/views/widget.h" | 44 #include "chrome/views/widget.h" |
| 46 #include "chrome/views/window.h" | 45 #include "chrome/views/window.h" |
| 47 #include "generated_resources.h" | 46 #include "generated_resources.h" |
| 47 #include "skia/ext/skia_utils.h" |
| 48 | 48 |
| 49 using views::BaseButton; | 49 using views::BaseButton; |
| 50 using views::DropTargetEvent; | 50 using views::DropTargetEvent; |
| 51 using views::MenuButton; | 51 using views::MenuButton; |
| 52 using views::MenuItemView; | 52 using views::MenuItemView; |
| 53 using views::View; | 53 using views::View; |
| 54 | 54 |
| 55 // Margins around the content. | 55 // Margins around the content. |
| 56 static const int kTopMargin = 2; | 56 static const int kTopMargin = 2; |
| 57 static const int kBottomMargin = 3; | 57 static const int kBottomMargin = 3; |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 static void PaintAnimation(views::View* view, | 248 static void PaintAnimation(views::View* view, |
| 249 ChromeCanvas* canvas, | 249 ChromeCanvas* canvas, |
| 250 double animation_value) { | 250 double animation_value) { |
| 251 // Since we can't change the alpha of the button (it contains un-alphable | 251 // Since we can't change the alpha of the button (it contains un-alphable |
| 252 // text), we paint the bar background over the front of the button. As the | 252 // text), we paint the bar background over the front of the button. As the |
| 253 // bar background is a gradient, we have to paint the gradient at the | 253 // bar background is a gradient, we have to paint the gradient at the |
| 254 // size of the parent (hence all the margin math below). We can't use | 254 // size of the parent (hence all the margin math below). We can't use |
| 255 // the parent's actual bounds because they differ from what is painted. | 255 // the parent's actual bounds because they differ from what is painted. |
| 256 SkPaint paint; | 256 SkPaint paint; |
| 257 paint.setAlpha(static_cast<int>((1.0 - animation_value) * 255)); | 257 paint.setAlpha(static_cast<int>((1.0 - animation_value) * 255)); |
| 258 paint.setShader(gfx::CreateGradientShader(0, | 258 paint.setShader(skia::CreateGradientShader(0, |
| 259 view->height() + kTopMargin + kBottomMargin, | 259 view->height() + kTopMargin + kBottomMargin, |
| 260 kTopBorderColor, | 260 kTopBorderColor, |
| 261 kBackgroundColor))->safeUnref(); | 261 kBackgroundColor))->safeUnref(); |
| 262 canvas->FillRectInt(0, -kTopMargin, view->width(), | 262 canvas->FillRectInt(0, -kTopMargin, view->width(), |
| 263 view->height() + kTopMargin + kBottomMargin, paint); | 263 view->height() + kTopMargin + kBottomMargin, paint); |
| 264 } | 264 } |
| 265 | 265 |
| 266 private: | 266 private: |
| 267 const GURL& url_; | 267 const GURL& url_; |
| 268 Profile* profile_; | 268 Profile* profile_; |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 | 596 |
| 597 // TODO(sky/glen): this is temporary, need to decide on what this should | 597 // TODO(sky/glen): this is temporary, need to decide on what this should |
| 598 // look like. | 598 // look like. |
| 599 class ButtonSeparatorView : public views::View { | 599 class ButtonSeparatorView : public views::View { |
| 600 public: | 600 public: |
| 601 ButtonSeparatorView() {} | 601 ButtonSeparatorView() {} |
| 602 virtual ~ButtonSeparatorView() {} | 602 virtual ~ButtonSeparatorView() {} |
| 603 | 603 |
| 604 virtual void Paint(ChromeCanvas* canvas) { | 604 virtual void Paint(ChromeCanvas* canvas) { |
| 605 SkPaint paint; | 605 SkPaint paint; |
| 606 paint.setShader(gfx::CreateGradientShader(0, | 606 paint.setShader(skia::CreateGradientShader(0, |
| 607 height() / 2, | 607 height() / 2, |
| 608 kTopBorderColor, | 608 kTopBorderColor, |
| 609 kSeparatorColor))->safeUnref(); | 609 kSeparatorColor))->safeUnref(); |
| 610 SkRect rc = {SkIntToScalar(kSeparatorStartX), SkIntToScalar(0), | 610 SkRect rc = {SkIntToScalar(kSeparatorStartX), SkIntToScalar(0), |
| 611 SkIntToScalar(1), SkIntToScalar(height() / 2) }; | 611 SkIntToScalar(1), SkIntToScalar(height() / 2) }; |
| 612 canvas->drawRect(rc, paint); | 612 canvas->drawRect(rc, paint); |
| 613 | 613 |
| 614 SkPaint paint_down; | 614 SkPaint paint_down; |
| 615 paint_down.setShader(gfx::CreateGradientShader(height() / 2, | 615 paint_down.setShader(skia::CreateGradientShader(height() / 2, |
| 616 height(), | 616 height(), |
| 617 kSeparatorColor, | 617 kSeparatorColor, |
| 618 kBackgroundColor))->safeUnref(); | 618 kBackgroundColor))->safeUnref(); |
| 619 SkRect rc_down = { | 619 SkRect rc_down = { |
| 620 SkIntToScalar(kSeparatorStartX), SkIntToScalar(height() / 2), | 620 SkIntToScalar(kSeparatorStartX), SkIntToScalar(height() / 2), |
| 621 SkIntToScalar(1), SkIntToScalar(height() - 1) }; | 621 SkIntToScalar(1), SkIntToScalar(height() - 1) }; |
| 622 canvas->drawRect(rc_down, paint_down); | 622 canvas->drawRect(rc_down, paint_down); |
| 623 } | 623 } |
| 624 | 624 |
| 625 virtual gfx::Size GetPreferredSize() { | 625 virtual gfx::Size GetPreferredSize() { |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 SkDoubleToScalar(v_padding - 0.5), | 897 SkDoubleToScalar(v_padding - 0.5), |
| 898 SkDoubleToScalar(width() - h_padding - 0.5), | 898 SkDoubleToScalar(width() - h_padding - 0.5), |
| 899 SkDoubleToScalar(height() - v_padding - 0.5)); | 899 SkDoubleToScalar(height() - v_padding - 0.5)); |
| 900 | 900 |
| 901 double roundness = static_cast<double> | 901 double roundness = static_cast<double> |
| 902 (kNewtabBarRoundness) * current_state; | 902 (kNewtabBarRoundness) * current_state; |
| 903 | 903 |
| 904 // Draw our background. | 904 // Draw our background. |
| 905 SkPaint paint; | 905 SkPaint paint; |
| 906 paint.setAntiAlias(true); | 906 paint.setAntiAlias(true); |
| 907 paint.setShader(gfx::CreateGradientShader(0, | 907 paint.setShader(skia::CreateGradientShader(0, |
| 908 height(), | 908 height(), |
| 909 kTopBorderColor, | 909 kTopBorderColor, |
| 910 kBackgroundColor))->safeUnref(); | 910 kBackgroundColor))->safeUnref(); |
| 911 | 911 |
| 912 canvas->drawRoundRect(rect, | 912 canvas->drawRoundRect(rect, |
| 913 SkDoubleToScalar(roundness), | 913 SkDoubleToScalar(roundness), |
| 914 SkDoubleToScalar(roundness), paint); | 914 SkDoubleToScalar(roundness), paint); |
| 915 | 915 |
| 916 // Draw border | 916 // Draw border |
| 917 SkPaint border_paint; | 917 SkPaint border_paint; |
| 918 border_paint.setColor(kNewtabBorderColor); | 918 border_paint.setColor(kNewtabBorderColor); |
| 919 border_paint.setStyle(SkPaint::kStroke_Style); | 919 border_paint.setStyle(SkPaint::kStroke_Style); |
| 920 border_paint.setAntiAlias(true); | 920 border_paint.setAntiAlias(true); |
| 921 | 921 |
| 922 canvas->drawRoundRect(rect, | 922 canvas->drawRoundRect(rect, |
| 923 SkDoubleToScalar(roundness), | 923 SkDoubleToScalar(roundness), |
| 924 SkDoubleToScalar(roundness), border_paint); | 924 SkDoubleToScalar(roundness), border_paint); |
| 925 } else { | 925 } else { |
| 926 SkPaint paint; | 926 SkPaint paint; |
| 927 paint.setShader(gfx::CreateGradientShader(0, | 927 paint.setShader(skia::CreateGradientShader(0, |
| 928 height(), | 928 height(), |
| 929 kTopBorderColor, | 929 kTopBorderColor, |
| 930 kBackgroundColor))->safeUnref(); | 930 kBackgroundColor))->safeUnref(); |
| 931 canvas->FillRectInt(0, 0, width(), height(), paint); | 931 canvas->FillRectInt(0, 0, width(), height(), paint); |
| 932 | 932 |
| 933 canvas->FillRectInt(kTopBorderColor, 0, 0, width(), 1); | 933 canvas->FillRectInt(kTopBorderColor, 0, 0, width(), 1); |
| 934 canvas->FillRectInt(kBottomBorderColor, 0, height() - 1, width(), 1); | 934 canvas->FillRectInt(kBottomBorderColor, 0, height() - 1, width(), 1); |
| 935 } | 935 } |
| 936 } | 936 } |
| 937 | 937 |
| 938 void BookmarkBarView::PaintChildren(ChromeCanvas* canvas) { | 938 void BookmarkBarView::PaintChildren(ChromeCanvas* canvas) { |
| 939 View::PaintChildren(canvas); | 939 View::PaintChildren(canvas); |
| 940 | 940 |
| (...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1837 } | 1837 } |
| 1838 | 1838 |
| 1839 void BookmarkBarView::StopThrobbing(bool immediate) { | 1839 void BookmarkBarView::StopThrobbing(bool immediate) { |
| 1840 if (!throbbing_view_) | 1840 if (!throbbing_view_) |
| 1841 return; | 1841 return; |
| 1842 | 1842 |
| 1843 // If not immediate, cycle through 2 more complete cycles. | 1843 // If not immediate, cycle through 2 more complete cycles. |
| 1844 throbbing_view_->StartThrobbing(immediate ? 0 : 4); | 1844 throbbing_view_->StartThrobbing(immediate ? 0 : 4); |
| 1845 throbbing_view_ = NULL; | 1845 throbbing_view_ = NULL; |
| 1846 } | 1846 } |
| OLD | NEW |