OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
5 * | 5 * |
6 * Other contributors: | 6 * Other contributors: |
7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
884 if (scrollbar == m_vBar.get()) | 884 if (scrollbar == m_vBar.get()) |
885 return IntSize(verticalScrollbarStart(0, box().size().width()), box().bo
rderTop()); | 885 return IntSize(verticalScrollbarStart(0, box().size().width()), box().bo
rderTop()); |
886 | 886 |
887 if (scrollbar == m_hBar.get()) | 887 if (scrollbar == m_hBar.get()) |
888 return IntSize(horizontalScrollbarStart(0), box().size().height() - box(
).borderBottom() - scrollbar->height()); | 888 return IntSize(horizontalScrollbarStart(0), box().size().height() - box(
).borderBottom() - scrollbar->height()); |
889 | 889 |
890 ASSERT_NOT_REACHED(); | 890 ASSERT_NOT_REACHED(); |
891 return IntSize(); | 891 return IntSize(); |
892 } | 892 } |
893 | 893 |
894 static inline RenderObject* rendererForScrollbar(RenderObject& renderer) | 894 static inline LayoutObject* rendererForScrollbar(LayoutObject& renderer) |
895 { | 895 { |
896 if (Node* node = renderer.node()) { | 896 if (Node* node = renderer.node()) { |
897 if (ShadowRoot* shadowRoot = node->containingShadowRoot()) { | 897 if (ShadowRoot* shadowRoot = node->containingShadowRoot()) { |
898 if (shadowRoot->type() == ShadowRoot::UserAgentShadowRoot) | 898 if (shadowRoot->type() == ShadowRoot::UserAgentShadowRoot) |
899 return shadowRoot->host()->renderer(); | 899 return shadowRoot->host()->renderer(); |
900 } | 900 } |
901 } | 901 } |
902 | 902 |
903 return &renderer; | 903 return &renderer; |
904 } | 904 } |
905 | 905 |
906 PassRefPtrWillBeRawPtr<Scrollbar> LayerScrollableArea::createScrollbar(Scrollbar
Orientation orientation) | 906 PassRefPtrWillBeRawPtr<Scrollbar> LayerScrollableArea::createScrollbar(Scrollbar
Orientation orientation) |
907 { | 907 { |
908 RefPtrWillBeRawPtr<Scrollbar> widget = nullptr; | 908 RefPtrWillBeRawPtr<Scrollbar> widget = nullptr; |
909 RenderObject* actualRenderer = rendererForScrollbar(box()); | 909 LayoutObject* actualRenderer = rendererForScrollbar(box()); |
910 bool hasCustomScrollbarStyle = actualRenderer->isBox() && actualRenderer->st
yle()->hasPseudoStyle(SCROLLBAR); | 910 bool hasCustomScrollbarStyle = actualRenderer->isBox() && actualRenderer->st
yle()->hasPseudoStyle(SCROLLBAR); |
911 if (hasCustomScrollbarStyle) { | 911 if (hasCustomScrollbarStyle) { |
912 widget = RenderScrollbar::createCustomScrollbar(this, orientation, actua
lRenderer->node()); | 912 widget = RenderScrollbar::createCustomScrollbar(this, orientation, actua
lRenderer->node()); |
913 } else { | 913 } else { |
914 ScrollbarControlSize scrollbarSize = RegularScrollbar; | 914 ScrollbarControlSize scrollbarSize = RegularScrollbar; |
915 if (actualRenderer->style()->hasAppearance()) | 915 if (actualRenderer->style()->hasAppearance()) |
916 scrollbarSize = LayoutTheme::theme().scrollbarControlSizeForPart(act
ualRenderer->style()->appearance()); | 916 scrollbarSize = LayoutTheme::theme().scrollbarControlSizeForPart(act
ualRenderer->style()->appearance()); |
917 widget = Scrollbar::create(this, orientation, scrollbarSize); | 917 widget = Scrollbar::create(this, orientation, scrollbarSize); |
918 if (orientation == HorizontalScrollbar) | 918 if (orientation == HorizontalScrollbar) |
919 didAddScrollbar(widget.get(), HorizontalScrollbar); | 919 didAddScrollbar(widget.get(), HorizontalScrollbar); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1041 layer()->compositedLayerMapping()->positionOverflowControlsLayers(offset
FromRoot); | 1041 layer()->compositedLayerMapping()->positionOverflowControlsLayers(offset
FromRoot); |
1042 } | 1042 } |
1043 | 1043 |
1044 void LayerScrollableArea::updateScrollCornerStyle() | 1044 void LayerScrollableArea::updateScrollCornerStyle() |
1045 { | 1045 { |
1046 if (!m_scrollCorner && !hasScrollbar()) | 1046 if (!m_scrollCorner && !hasScrollbar()) |
1047 return; | 1047 return; |
1048 if (!m_scrollCorner && hasOverlayScrollbars()) | 1048 if (!m_scrollCorner && hasOverlayScrollbars()) |
1049 return; | 1049 return; |
1050 | 1050 |
1051 RenderObject* actualRenderer = rendererForScrollbar(box()); | 1051 LayoutObject* actualRenderer = rendererForScrollbar(box()); |
1052 RefPtr<RenderStyle> corner = box().hasOverflowClip() ? actualRenderer->getUn
cachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style())
: PassRefPtr<RenderStyle>(nullptr); | 1052 RefPtr<RenderStyle> corner = box().hasOverflowClip() ? actualRenderer->getUn
cachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style())
: PassRefPtr<RenderStyle>(nullptr); |
1053 if (corner) { | 1053 if (corner) { |
1054 if (!m_scrollCorner) { | 1054 if (!m_scrollCorner) { |
1055 m_scrollCorner = RenderScrollbarPart::createAnonymous(&box().documen
t()); | 1055 m_scrollCorner = RenderScrollbarPart::createAnonymous(&box().documen
t()); |
1056 m_scrollCorner->setParent(&box()); | 1056 m_scrollCorner->setParent(&box()); |
1057 } | 1057 } |
1058 m_scrollCorner->setStyle(corner.release()); | 1058 m_scrollCorner->setStyle(corner.release()); |
1059 } else if (m_scrollCorner) { | 1059 } else if (m_scrollCorner) { |
1060 m_scrollCorner->destroy(); | 1060 m_scrollCorner->destroy(); |
1061 m_scrollCorner = nullptr; | 1061 m_scrollCorner = nullptr; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1169 frameView->addResizerArea(box()); | 1169 frameView->addResizerArea(box()); |
1170 else | 1170 else |
1171 frameView->removeResizerArea(box()); | 1171 frameView->removeResizerArea(box()); |
1172 } | 1172 } |
1173 | 1173 |
1174 void LayerScrollableArea::updateResizerStyle() | 1174 void LayerScrollableArea::updateResizerStyle() |
1175 { | 1175 { |
1176 if (!m_resizer && !box().canResize()) | 1176 if (!m_resizer && !box().canResize()) |
1177 return; | 1177 return; |
1178 | 1178 |
1179 RenderObject* actualRenderer = rendererForScrollbar(box()); | 1179 LayoutObject* actualRenderer = rendererForScrollbar(box()); |
1180 RefPtr<RenderStyle> resizer = box().hasOverflowClip() ? actualRenderer->getU
ncachedPseudoStyle(PseudoStyleRequest(RESIZER), actualRenderer->style()) : PassR
efPtr<RenderStyle>(nullptr); | 1180 RefPtr<RenderStyle> resizer = box().hasOverflowClip() ? actualRenderer->getU
ncachedPseudoStyle(PseudoStyleRequest(RESIZER), actualRenderer->style()) : PassR
efPtr<RenderStyle>(nullptr); |
1181 if (resizer) { | 1181 if (resizer) { |
1182 if (!m_resizer) { | 1182 if (!m_resizer) { |
1183 m_resizer = RenderScrollbarPart::createAnonymous(&box().document()); | 1183 m_resizer = RenderScrollbarPart::createAnonymous(&box().document()); |
1184 m_resizer->setParent(&box()); | 1184 m_resizer->setParent(&box()); |
1185 } | 1185 } |
1186 m_resizer->setStyle(resizer.release()); | 1186 m_resizer->setStyle(resizer.release()); |
1187 } else if (m_resizer) { | 1187 } else if (m_resizer) { |
1188 m_resizer->destroy(); | 1188 m_resizer->destroy(); |
1189 m_resizer = nullptr; | 1189 m_resizer = nullptr; |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1377 void LayerScrollableArea::setTopmostScrollChild(Layer* scrollChild) | 1377 void LayerScrollableArea::setTopmostScrollChild(Layer* scrollChild) |
1378 { | 1378 { |
1379 // We only want to track the topmost scroll child for scrollable areas with | 1379 // We only want to track the topmost scroll child for scrollable areas with |
1380 // overlay scrollbars. | 1380 // overlay scrollbars. |
1381 if (!hasOverlayScrollbars()) | 1381 if (!hasOverlayScrollbars()) |
1382 return; | 1382 return; |
1383 m_nextTopmostScrollChild = scrollChild; | 1383 m_nextTopmostScrollChild = scrollChild; |
1384 } | 1384 } |
1385 | 1385 |
1386 } // namespace blink | 1386 } // namespace blink |
OLD | NEW |