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

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2855523002: Deleted Widget/FrameViewBase (Closed)
Patch Set: removed FrameViewBase.h file now that dependent CL submitted Created 3 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 } 412 }
413 } 413 }
414 414
415 void FrameView::ScrollbarManager::SetHasHorizontalScrollbar( 415 void FrameView::ScrollbarManager::SetHasHorizontalScrollbar(
416 bool has_scrollbar) { 416 bool has_scrollbar) {
417 if (has_scrollbar == HasHorizontalScrollbar()) 417 if (has_scrollbar == HasHorizontalScrollbar())
418 return; 418 return;
419 419
420 if (has_scrollbar) { 420 if (has_scrollbar) {
421 h_bar_ = CreateScrollbar(kHorizontalScrollbar); 421 h_bar_ = CreateScrollbar(kHorizontalScrollbar);
422 scrollable_area_->GetLayoutBox()->GetDocument().View()->AddScrollbar(
423 h_bar_);
424 h_bar_is_attached_ = 1; 422 h_bar_is_attached_ = 1;
425 scrollable_area_->DidAddScrollbar(*h_bar_, kHorizontalScrollbar); 423 scrollable_area_->DidAddScrollbar(*h_bar_, kHorizontalScrollbar);
426 h_bar_->StyleChanged(); 424 h_bar_->StyleChanged();
427 } else { 425 } else {
428 h_bar_is_attached_ = 0; 426 h_bar_is_attached_ = 0;
429 DestroyScrollbar(kHorizontalScrollbar); 427 DestroyScrollbar(kHorizontalScrollbar);
430 } 428 }
431 429
432 scrollable_area_->SetScrollCornerNeedsPaintInvalidation(); 430 scrollable_area_->SetScrollCornerNeedsPaintInvalidation();
433 } 431 }
434 432
435 void FrameView::ScrollbarManager::SetHasVerticalScrollbar(bool has_scrollbar) { 433 void FrameView::ScrollbarManager::SetHasVerticalScrollbar(bool has_scrollbar) {
436 if (has_scrollbar == HasVerticalScrollbar()) 434 if (has_scrollbar == HasVerticalScrollbar())
437 return; 435 return;
438 436
439 if (has_scrollbar) { 437 if (has_scrollbar) {
440 v_bar_ = CreateScrollbar(kVerticalScrollbar); 438 v_bar_ = CreateScrollbar(kVerticalScrollbar);
441 scrollable_area_->GetLayoutBox()->GetDocument().View()->AddScrollbar(
442 v_bar_);
443 v_bar_is_attached_ = 1; 439 v_bar_is_attached_ = 1;
444 scrollable_area_->DidAddScrollbar(*v_bar_, kVerticalScrollbar); 440 scrollable_area_->DidAddScrollbar(*v_bar_, kVerticalScrollbar);
445 v_bar_->StyleChanged(); 441 v_bar_->StyleChanged();
446 } else { 442 } else {
447 v_bar_is_attached_ = 0; 443 v_bar_is_attached_ = 0;
448 DestroyScrollbar(kVerticalScrollbar); 444 DestroyScrollbar(kVerticalScrollbar);
449 } 445 }
450 446
451 scrollable_area_->SetScrollCornerNeedsPaintInvalidation(); 447 scrollable_area_->SetScrollCornerNeedsPaintInvalidation();
452 } 448 }
(...skipping 17 matching lines...) Expand all
470 void FrameView::ScrollbarManager::DestroyScrollbar( 466 void FrameView::ScrollbarManager::DestroyScrollbar(
471 ScrollbarOrientation orientation) { 467 ScrollbarOrientation orientation) {
472 Member<Scrollbar>& scrollbar = 468 Member<Scrollbar>& scrollbar =
473 orientation == kHorizontalScrollbar ? h_bar_ : v_bar_; 469 orientation == kHorizontalScrollbar ? h_bar_ : v_bar_;
474 DCHECK(orientation == kHorizontalScrollbar ? !h_bar_is_attached_ 470 DCHECK(orientation == kHorizontalScrollbar ? !h_bar_is_attached_
475 : !v_bar_is_attached_); 471 : !v_bar_is_attached_);
476 if (!scrollbar) 472 if (!scrollbar)
477 return; 473 return;
478 474
479 scrollable_area_->WillRemoveScrollbar(*scrollbar, orientation); 475 scrollable_area_->WillRemoveScrollbar(*scrollbar, orientation);
480 scrollable_area_->GetLayoutBox()->GetDocument().View()->RemoveScrollbar(
481 scrollbar);
482 scrollbar->DisconnectFromScrollableArea(); 476 scrollbar->DisconnectFromScrollableArea();
483 scrollbar = nullptr; 477 scrollbar = nullptr;
484 } 478 }
485 479
486 void FrameView::RecalculateCustomScrollbarStyle() { 480 void FrameView::RecalculateCustomScrollbarStyle() {
487 bool did_style_change = false; 481 bool did_style_change = false;
488 if (HorizontalScrollbar() && HorizontalScrollbar()->IsCustomScrollbar()) { 482 if (HorizontalScrollbar() && HorizontalScrollbar()->IsCustomScrollbar()) {
489 HorizontalScrollbar()->StyleChanged(); 483 HorizontalScrollbar()->StyleChanged();
490 did_style_change = true; 484 did_style_change = true;
491 } 485 }
(...skipping 3380 matching lines...) Expand 10 before | Expand all | Expand 10 after
3872 if (child->IsFrameView() && 3866 if (child->IsFrameView() &&
3873 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) 3867 !RuntimeEnabledFeatures::rootLayerScrollingEnabled())
3874 RemoveScrollableArea(ToFrameView(child)); 3868 RemoveScrollableArea(ToFrameView(child));
3875 3869
3876 child->SetParent(nullptr); 3870 child->SetParent(nullptr);
3877 children_.erase(child); 3871 children_.erase(child);
3878 } 3872 }
3879 3873
3880 void FrameView::RemoveScrollbar(Scrollbar* scrollbar) { 3874 void FrameView::RemoveScrollbar(Scrollbar* scrollbar) {
3881 DCHECK(scrollbars_.Contains(scrollbar)); 3875 DCHECK(scrollbars_.Contains(scrollbar));
3882 scrollbar->SetParent(nullptr);
3883 scrollbars_.erase(scrollbar); 3876 scrollbars_.erase(scrollbar);
3884 } 3877 }
3885 3878
3886 void FrameView::AddScrollbar(Scrollbar* scrollbar) { 3879 void FrameView::AddScrollbar(Scrollbar* scrollbar) {
3887 DCHECK(!scrollbars_.Contains(scrollbar)); 3880 DCHECK(!scrollbars_.Contains(scrollbar));
3888 scrollbar->SetParent(this);
3889 scrollbars_.insert(scrollbar); 3881 scrollbars_.insert(scrollbar);
3890 } 3882 }
3891 3883
3892 bool FrameView::VisualViewportSuppliesScrollbars() { 3884 bool FrameView::VisualViewportSuppliesScrollbars() {
3893 // On desktop, we always use the layout viewport's scrollbars. 3885 // On desktop, we always use the layout viewport's scrollbars.
3894 if (!frame_->GetSettings() || !frame_->GetSettings()->GetViewportEnabled() || 3886 if (!frame_->GetSettings() || !frame_->GetSettings()->GetViewportEnabled() ||
3895 !frame_->GetDocument() || !frame_->GetPage()) 3887 !frame_->GetDocument() || !frame_->GetPage())
3896 return false; 3888 return false;
3897 3889
3898 const TopDocumentRootScrollerController& controller = 3890 const TopDocumentRootScrollerController& controller =
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
4731 } 4723 }
4732 4724
4733 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const { 4725 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const {
4734 if (parent_) { 4726 if (parent_) {
4735 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point); 4727 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point);
4736 return parent_->ConvertToRootFrame(parent_point); 4728 return parent_->ConvertToRootFrame(parent_point);
4737 } 4729 }
4738 return local_point; 4730 return local_point;
4739 } 4731 }
4740 4732
4733 IntRect FrameView::ConvertFromRootFrame(
4734 const IntRect& rect_in_root_frame) const {
4735 if (parent_) {
4736 IntRect parent_rect = parent_->ConvertFromRootFrame(rect_in_root_frame);
4737 return ConvertFromContainingFrameViewBase(parent_rect);
4738 }
4739 return rect_in_root_frame;
4740 }
4741
4742 IntPoint FrameView::ConvertFromRootFrame(
4743 const IntPoint& point_in_root_frame) const {
4744 if (parent_) {
4745 IntPoint parent_point = parent_->ConvertFromRootFrame(point_in_root_frame);
4746 return ConvertFromContainingFrameViewBase(parent_point);
4747 }
4748 return point_in_root_frame;
4749 }
4750
4751 FloatPoint FrameView::ConvertFromRootFrame(
4752 const FloatPoint& point_in_root_frame) const {
4753 // FrameViews / windows are required to be IntPoint aligned, but we may
4754 // need to convert FloatPoint values within them (eg. for event
4755 // co-ordinates).
4756 IntPoint floored_point = FlooredIntPoint(point_in_root_frame);
4757 FloatPoint parent_point = ConvertFromRootFrame(floored_point);
4758 FloatSize window_fraction = point_in_root_frame - floored_point;
4759 // Use linear interpolation handle any fractional value (eg. for iframes
4760 // subject to a transform beyond just a simple translation).
4761 // FIXME: Add FloatPoint variants of all co-ordinate space conversion APIs.
4762 if (!window_fraction.IsEmpty()) {
4763 const int kFactor = 1000;
4764 IntPoint parent_line_end = ConvertFromRootFrame(
4765 floored_point + RoundedIntSize(window_fraction.ScaledBy(kFactor)));
4766 FloatSize parent_fraction =
4767 (parent_line_end - parent_point).ScaledBy(1.0f / kFactor);
4768 parent_point.Move(parent_fraction);
4769 }
4770 return parent_point;
4771 }
4772
4741 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar( 4773 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar(
4742 const Scrollbar& scrollbar, 4774 const Scrollbar& scrollbar,
4743 const IntPoint& parent_point) const { 4775 const IntPoint& parent_point) const {
4744 IntPoint new_point = parent_point; 4776 IntPoint new_point = parent_point;
4745 // Scrollbars won't be transformed within us 4777 // Scrollbars won't be transformed within us
4746 new_point.MoveBy(-scrollbar.Location()); 4778 new_point.MoveBy(-scrollbar.Location());
4747 return new_point; 4779 return new_point;
4748 } 4780 }
4749 4781
4750 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item, 4782 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item,
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
5357 void FrameView::SetAnimationHost( 5389 void FrameView::SetAnimationHost(
5358 std::unique_ptr<CompositorAnimationHost> host) { 5390 std::unique_ptr<CompositorAnimationHost> host) {
5359 animation_host_ = std::move(host); 5391 animation_host_ = std::move(host);
5360 } 5392 }
5361 5393
5362 LayoutUnit FrameView::CaretWidth() const { 5394 LayoutUnit FrameView::CaretWidth() const {
5363 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1)); 5395 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1));
5364 } 5396 }
5365 5397
5366 } // namespace blink 5398 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/FrameView.h ('k') | third_party/WebKit/Source/core/html/HTMLObjectElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698