Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(723)

Side by Side Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 22265009: Implement initial version of scroll end effect Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed another compile issue :-/ Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 devtools_window_(NULL), 407 devtools_window_(NULL),
408 initialized_(false), 408 initialized_(false),
409 ignore_layout_(true), 409 ignore_layout_(true),
410 #if defined(OS_WIN) && !defined(USE_AURA) 410 #if defined(OS_WIN) && !defined(USE_AURA)
411 hung_window_detector_(&hung_plugin_action_), 411 hung_window_detector_(&hung_plugin_action_),
412 ticker_(0), 412 ticker_(0),
413 #endif 413 #endif
414 force_location_bar_focus_(false), 414 force_location_bar_focus_(false),
415 immersive_mode_controller_(chrome::CreateImmersiveModeController()), 415 immersive_mode_controller_(chrome::CreateImmersiveModeController()),
416 #if defined(OS_CHROMEOS) 416 #if defined(OS_CHROMEOS)
417 scroll_end_effect_controller_(ScrollEndEffectController::Create()), 417 scroll_end_effect_controller_(ScrollEndEffectController::Create(this)),
418 #endif 418 #endif
419 color_change_listener_(this), 419 color_change_listener_(this),
420 activate_modal_dialog_factory_(this) { 420 activate_modal_dialog_factory_(this) {
421 } 421 }
422 422
423 BrowserView::~BrowserView() { 423 BrowserView::~BrowserView() {
424 // Immersive mode may need to reparent views before they are removed/deleted. 424 // Immersive mode may need to reparent views before they are removed/deleted.
425 immersive_mode_controller_.reset(); 425 immersive_mode_controller_.reset();
426 426
427 browser_->tab_strip_model()->RemoveObserver(this); 427 browser_->tab_strip_model()->RemoveObserver(this);
(...skipping 1413 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 return chrome::ExecuteCommand(browser_.get(), command_id); 1841 return chrome::ExecuteCommand(browser_.get(), command_id);
1842 } 1842 }
1843 1843
1844 /////////////////////////////////////////////////////////////////////////////// 1844 ///////////////////////////////////////////////////////////////////////////////
1845 // BrowserView, OmniboxPopupModelObserver overrides: 1845 // BrowserView, OmniboxPopupModelObserver overrides:
1846 void BrowserView::OnOmniboxPopupShownOrHidden() { 1846 void BrowserView::OnOmniboxPopupShownOrHidden() {
1847 infobar_container_->SetMaxTopArrowHeight(GetMaxTopInfoBarArrowHeight()); 1847 infobar_container_->SetMaxTopArrowHeight(GetMaxTopInfoBarArrowHeight());
1848 } 1848 }
1849 1849
1850 /////////////////////////////////////////////////////////////////////////////// 1850 ///////////////////////////////////////////////////////////////////////////////
1851 // BrowserView, ScrollEndEffectControllerDelegate overrides:
1852
1853 ContentsContainer* BrowserView::GetContentsContainer() {
1854 return contents_container_;
1855 }
1856
1857 gfx::Rect BrowserView::GetFrameBounds() {
1858 return frame_->GetWindowBoundsInScreen();
1859 }
1860
1861 void BrowserView::SetFrameBounds(gfx::Rect bounds) {
1862 frame_->SetBounds(bounds);
1863 }
1864
1865 ///////////////////////////////////////////////////////////////////////////////
1851 // BrowserView, ImmersiveModeController::Delegate overrides: 1866 // BrowserView, ImmersiveModeController::Delegate overrides:
1852 1867
1853 BookmarkBarView* BrowserView::GetBookmarkBar() { 1868 BookmarkBarView* BrowserView::GetBookmarkBar() {
1854 return bookmark_bar_view_.get(); 1869 return bookmark_bar_view_.get();
1855 } 1870 }
1856 1871
1857 FullscreenController* BrowserView::GetFullscreenController() { 1872 FullscreenController* BrowserView::GetFullscreenController() {
1858 // Cannot be injected into ImmersiveModeController because it is constructed 1873 // Cannot be injected into ImmersiveModeController because it is constructed
1859 // after BrowserView. 1874 // after BrowserView.
1860 return browser()->fullscreen_controller(); 1875 return browser()->fullscreen_controller();
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
2569 password_generator, 2584 password_generator,
2570 browser_.get(), 2585 browser_.get(),
2571 GetWidget()->GetThemeProvider()); 2586 GetWidget()->GetThemeProvider());
2572 2587
2573 views::BubbleDelegateView::CreateBubble(bubble); 2588 views::BubbleDelegateView::CreateBubble(bubble);
2574 bubble->SetAlignment(views::BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR); 2589 bubble->SetAlignment(views::BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR);
2575 bubble->GetWidget()->Show(); 2590 bubble->GetWidget()->Show();
2576 } 2591 }
2577 2592
2578 void BrowserView::OverscrollUpdate(int delta_y) { 2593 void BrowserView::OverscrollUpdate(int delta_y) {
2579 if (scroll_end_effect_controller_) 2594 // TODO(rharrison): Remove the check for fullscreen & maximized once the
2595 // related cases have been fixed in the effect.
sadrul 2013/10/25 18:28:25 Reference the crbug here.
rharrison 2013/11/18 21:52:26 Done.
2596 if (scroll_end_effect_controller_ && !IsFullscreen() && !IsMaximized())
2580 scroll_end_effect_controller_->OverscrollUpdate(delta_y); 2597 scroll_end_effect_controller_->OverscrollUpdate(delta_y);
2581 } 2598 }
2582 2599
2583 int BrowserView::GetRenderViewHeightInsetWithDetachedBookmarkBar() { 2600 int BrowserView::GetRenderViewHeightInsetWithDetachedBookmarkBar() {
2584 if (browser_->bookmark_bar_state() != BookmarkBar::DETACHED || 2601 if (browser_->bookmark_bar_state() != BookmarkBar::DETACHED ||
2585 !bookmark_bar_view_.get() || !bookmark_bar_view_->IsDetached()) { 2602 !bookmark_bar_view_.get() || !bookmark_bar_view_->IsDetached()) {
2586 return 0; 2603 return 0;
2587 } 2604 }
2588 // Don't use bookmark_bar_view_->height() which won't be the final height if 2605 // Don't use bookmark_bar_view_->height() which won't be the final height if
2589 // the bookmark bar is animating. 2606 // the bookmark bar is animating.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2674 // The +1 in the next line creates a 1-px gap between icon and arrow tip. 2691 // The +1 in the next line creates a 1-px gap between icon and arrow tip.
2675 gfx::Point icon_bottom(0, location_icon_view->GetImageBounds().bottom() - 2692 gfx::Point icon_bottom(0, location_icon_view->GetImageBounds().bottom() -
2676 LocationBarView::kIconInternalPadding + 1); 2693 LocationBarView::kIconInternalPadding + 1);
2677 ConvertPointToTarget(location_icon_view, this, &icon_bottom); 2694 ConvertPointToTarget(location_icon_view, this, &icon_bottom);
2678 gfx::Point infobar_top(0, infobar_container_->GetVerticalOverlap(NULL)); 2695 gfx::Point infobar_top(0, infobar_container_->GetVerticalOverlap(NULL));
2679 ConvertPointToTarget(infobar_container_, this, &infobar_top); 2696 ConvertPointToTarget(infobar_container_, this, &infobar_top);
2680 top_arrow_height = infobar_top.y() - icon_bottom.y(); 2697 top_arrow_height = infobar_top.y() - icon_bottom.y();
2681 } 2698 }
2682 return top_arrow_height; 2699 return top_arrow_height;
2683 } 2700 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698