| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 | 75 |
| 76 void ScrollView::removeChild(Widget* child) | 76 void ScrollView::removeChild(Widget* child) |
| 77 { | 77 { |
| 78 ASSERT(child->parent() == this); | 78 ASSERT(child->parent() == this); |
| 79 child->setParent(0); | 79 child->setParent(0); |
| 80 m_children.remove(child); | 80 m_children.remove(child); |
| 81 } | 81 } |
| 82 | 82 |
| 83 void ScrollView::setHasHorizontalScrollbar(bool hasBar) | 83 void ScrollView::setHasHorizontalScrollbar(bool hasBar) |
| 84 { | 84 { |
| 85 ASSERT(!hasBar || !avoidScrollbarCreation()); | |
| 86 if (hasBar && !m_horizontalScrollbar) { | 85 if (hasBar && !m_horizontalScrollbar) { |
| 87 m_horizontalScrollbar = createScrollbar(HorizontalScrollbar); | 86 m_horizontalScrollbar = createScrollbar(HorizontalScrollbar); |
| 88 addChild(m_horizontalScrollbar.get()); | 87 addChild(m_horizontalScrollbar.get()); |
| 89 didAddHorizontalScrollbar(m_horizontalScrollbar.get()); | 88 didAddHorizontalScrollbar(m_horizontalScrollbar.get()); |
| 90 m_horizontalScrollbar->styleChanged(); | 89 m_horizontalScrollbar->styleChanged(); |
| 91 } else if (!hasBar && m_horizontalScrollbar) { | 90 } else if (!hasBar && m_horizontalScrollbar) { |
| 92 willRemoveHorizontalScrollbar(m_horizontalScrollbar.get()); | 91 willRemoveHorizontalScrollbar(m_horizontalScrollbar.get()); |
| 93 removeChild(m_horizontalScrollbar.get()); | 92 removeChild(m_horizontalScrollbar.get()); |
| 94 m_horizontalScrollbar = 0; | 93 m_horizontalScrollbar = 0; |
| 95 } | 94 } |
| 96 | 95 |
| 97 if (AXObjectCache* cache = axObjectCache()) | 96 if (AXObjectCache* cache = axObjectCache()) |
| 98 cache->handleScrollbarUpdate(this); | 97 cache->handleScrollbarUpdate(this); |
| 99 } | 98 } |
| 100 | 99 |
| 101 void ScrollView::setHasVerticalScrollbar(bool hasBar) | 100 void ScrollView::setHasVerticalScrollbar(bool hasBar) |
| 102 { | 101 { |
| 103 ASSERT(!hasBar || !avoidScrollbarCreation()); | |
| 104 if (hasBar && !m_verticalScrollbar) { | 102 if (hasBar && !m_verticalScrollbar) { |
| 105 m_verticalScrollbar = createScrollbar(VerticalScrollbar); | 103 m_verticalScrollbar = createScrollbar(VerticalScrollbar); |
| 106 addChild(m_verticalScrollbar.get()); | 104 addChild(m_verticalScrollbar.get()); |
| 107 didAddVerticalScrollbar(m_verticalScrollbar.get()); | 105 didAddVerticalScrollbar(m_verticalScrollbar.get()); |
| 108 m_verticalScrollbar->styleChanged(); | 106 m_verticalScrollbar->styleChanged(); |
| 109 } else if (!hasBar && m_verticalScrollbar) { | 107 } else if (!hasBar && m_verticalScrollbar) { |
| 110 willRemoveVerticalScrollbar(m_verticalScrollbar.get()); | 108 willRemoveVerticalScrollbar(m_verticalScrollbar.get()); |
| 111 removeChild(m_verticalScrollbar.get()); | 109 removeChild(m_verticalScrollbar.get()); |
| 112 m_verticalScrollbar = 0; | 110 m_verticalScrollbar = 0; |
| 113 } | 111 } |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 | 399 |
| 402 ScrollbarMode hScroll = m_horizontalScrollbarMode; | 400 ScrollbarMode hScroll = m_horizontalScrollbarMode; |
| 403 ScrollbarMode vScroll = m_verticalScrollbarMode; | 401 ScrollbarMode vScroll = m_verticalScrollbarMode; |
| 404 | 402 |
| 405 if (hScroll != ScrollbarAuto) | 403 if (hScroll != ScrollbarAuto) |
| 406 newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn); | 404 newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn); |
| 407 if (vScroll != ScrollbarAuto) | 405 if (vScroll != ScrollbarAuto) |
| 408 newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn); | 406 newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn); |
| 409 | 407 |
| 410 if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != Scroll
barAuto)) { | 408 if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != Scroll
barAuto)) { |
| 411 if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizonta
lScrollbar || !avoidScrollbarCreation())) | 409 if (hasHorizontalScrollbar != newHasHorizontalScrollbar) |
| 412 setHasHorizontalScrollbar(newHasHorizontalScrollbar); | 410 setHasHorizontalScrollbar(newHasHorizontalScrollbar); |
| 413 if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrol
lbar || !avoidScrollbarCreation())) | 411 if (hasVerticalScrollbar != newHasVerticalScrollbar) |
| 414 setHasVerticalScrollbar(newHasVerticalScrollbar); | 412 setHasVerticalScrollbar(newHasVerticalScrollbar); |
| 415 } else { | 413 } else { |
| 416 bool scrollbarExistenceChanged = false; | 414 bool scrollbarExistenceChanged = false; |
| 417 | 415 |
| 418 IntSize docSize = contentsSize(); | 416 IntSize docSize = contentsSize(); |
| 419 IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size(); | 417 IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size(); |
| 420 | 418 |
| 421 bool scrollbarsAreOverlay = ScrollbarTheme::theme()->usesOverlayScrollba
rs(); | 419 bool scrollbarsAreOverlay = ScrollbarTheme::theme()->usesOverlayScrollba
rs(); |
| 422 | 420 |
| 423 if (hScroll == ScrollbarAuto) { | 421 if (hScroll == ScrollbarAuto) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 434 if (!scrollbarsAreOverlay) { | 432 if (!scrollbarsAreOverlay) { |
| 435 // If we ever turn one scrollbar off, always turn the other one off
too. Never ever | 433 // If we ever turn one scrollbar off, always turn the other one off
too. Never ever |
| 436 // try to both gain/lose a scrollbar in the same pass. | 434 // try to both gain/lose a scrollbar in the same pass. |
| 437 if (!newHasHorizontalScrollbar && hasHorizontalScrollbar && vScroll
!= ScrollbarAlwaysOn) | 435 if (!newHasHorizontalScrollbar && hasHorizontalScrollbar && vScroll
!= ScrollbarAlwaysOn) |
| 438 newHasVerticalScrollbar = false; | 436 newHasVerticalScrollbar = false; |
| 439 if (!newHasVerticalScrollbar && hasVerticalScrollbar && hScroll != S
crollbarAlwaysOn) | 437 if (!newHasVerticalScrollbar && hasVerticalScrollbar && hScroll != S
crollbarAlwaysOn) |
| 440 newHasHorizontalScrollbar = false; | 438 newHasHorizontalScrollbar = false; |
| 441 } | 439 } |
| 442 | 440 |
| 443 bool scrollbarIsOverlay = ScrollbarTheme::theme()->usesOverlayScrollbars
(); | 441 bool scrollbarIsOverlay = ScrollbarTheme::theme()->usesOverlayScrollbars
(); |
| 444 if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizonta
lScrollbar || !avoidScrollbarCreation())) { | 442 if (hasHorizontalScrollbar != newHasHorizontalScrollbar) { |
| 445 scrollbarExistenceChanged = true; | 443 scrollbarExistenceChanged = true; |
| 446 if (scrollOrigin().y() && !newHasHorizontalScrollbar && !scrollbarsA
reOverlay) | 444 if (scrollOrigin().y() && !newHasHorizontalScrollbar && !scrollbarsA
reOverlay) |
| 447 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x(), scr
ollOrigin().y() - m_horizontalScrollbar->height())); | 445 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x(), scr
ollOrigin().y() - m_horizontalScrollbar->height())); |
| 448 if (hasHorizontalScrollbar) | 446 if (hasHorizontalScrollbar) |
| 449 m_horizontalScrollbar->invalidate(); | 447 m_horizontalScrollbar->invalidate(); |
| 450 setHasHorizontalScrollbar(newHasHorizontalScrollbar); | 448 setHasHorizontalScrollbar(newHasHorizontalScrollbar); |
| 451 } | 449 } |
| 452 | 450 |
| 453 if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrol
lbar || !avoidScrollbarCreation())) { | 451 if (hasVerticalScrollbar != newHasVerticalScrollbar) { |
| 454 scrollbarExistenceChanged = true; | 452 scrollbarExistenceChanged = true; |
| 455 if (scrollOrigin().x() && !newHasVerticalScrollbar && !scrollbarsAre
Overlay) | 453 if (scrollOrigin().x() && !newHasVerticalScrollbar && !scrollbarsAre
Overlay) |
| 456 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x() - m_
verticalScrollbar->width(), scrollOrigin().y())); | 454 ScrollableArea::setScrollOrigin(IntPoint(scrollOrigin().x() - m_
verticalScrollbar->width(), scrollOrigin().y())); |
| 457 if (hasVerticalScrollbar) | 455 if (hasVerticalScrollbar) |
| 458 m_verticalScrollbar->invalidate(); | 456 m_verticalScrollbar->invalidate(); |
| 459 setHasVerticalScrollbar(newHasVerticalScrollbar); | 457 setHasVerticalScrollbar(newHasVerticalScrollbar); |
| 460 } | 458 } |
| 461 | 459 |
| 462 if (scrollbarExistenceChanged) { | 460 if (scrollbarExistenceChanged) { |
| 463 if (scrollbarsAreOverlay) { | 461 if (scrollbarsAreOverlay) { |
| (...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1260 { | 1258 { |
| 1261 } | 1259 } |
| 1262 | 1260 |
| 1263 bool ScrollView::platformIsOffscreen() const | 1261 bool ScrollView::platformIsOffscreen() const |
| 1264 { | 1262 { |
| 1265 return false; | 1263 return false; |
| 1266 } | 1264 } |
| 1267 | 1265 |
| 1268 | 1266 |
| 1269 } | 1267 } |
| OLD | NEW |