bool AxisY::CanScrollTo(Side aSide) const { switch (aSide) { case eSideTop: return CanScroll(-COORDINATE_EPSILON * 2); case eSideBottom: return CanScroll(COORDINATE_EPSILON * 2); default: MOZ_ASSERT_UNREACHABLE("aSide is out of valid values"); return false; } }
void Axis::OverscrollBy(ParentLayerCoord aOverscroll) { MOZ_ASSERT(CanScroll()); StopSamplingOverscrollAnimation(); aOverscroll = ApplyResistance(aOverscroll); if (aOverscroll > 0) { #ifdef DEBUG if (!FuzzyEqualsCoordinate(GetCompositionEnd().value, GetPageEnd().value)) { nsPrintfCString message("composition end (%f) is not equal (within error) to page end (%f)\n", GetCompositionEnd().value, GetPageEnd().value); NS_ASSERTION(false, message.get()); MOZ_CRASH(); } #endif MOZ_ASSERT(mOverscroll >= 0); } else if (aOverscroll < 0) { #ifdef DEBUG if (!FuzzyEqualsCoordinate(GetOrigin().value, GetPageStart().value)) { nsPrintfCString message("composition origin (%f) is not equal (within error) to page origin (%f)\n", GetOrigin().value, GetPageStart().value); NS_ASSERTION(false, message.get()); MOZ_CRASH(); } #endif MOZ_ASSERT(mOverscroll <= 0); } mOverscroll += aOverscroll; }
void Axis::OverscrollBy(ParentLayerCoord aOverscroll) { MOZ_ASSERT(CanScroll()); // We can get some spurious calls to OverscrollBy() with near-zero values // due to rounding error. Ignore those (they might trip the asserts below.) if (FuzzyEqualsAdditive(aOverscroll.value, 0.0f, COORDINATE_EPSILON)) { return; } EndOverscrollAnimation(); aOverscroll = ApplyResistance(aOverscroll); if (aOverscroll > 0) { #ifdef DEBUG if (!FuzzyEqualsCoordinate(GetCompositionEnd().value, GetPageEnd().value)) { nsPrintfCString message("composition end (%f) is not equal (within error) to page end (%f)\n", GetCompositionEnd().value, GetPageEnd().value); NS_ASSERTION(false, message.get()); MOZ_CRASH("GFX: Overscroll issue > 0"); } #endif MOZ_ASSERT(mOverscroll >= 0); } else if (aOverscroll < 0) { #ifdef DEBUG if (!FuzzyEqualsCoordinate(GetOrigin().value, GetPageStart().value)) { nsPrintfCString message("composition origin (%f) is not equal (within error) to page origin (%f)\n", GetOrigin().value, GetPageStart().value); NS_ASSERTION(false, message.get()); MOZ_CRASH("GFX: Overscroll issue < 0"); } #endif MOZ_ASSERT(mOverscroll <= 0); } mOverscroll += aOverscroll; }
void Axis::OverscrollBy(CSSCoord aOverscroll) { MOZ_ASSERT(CanScroll()); aOverscroll = ApplyResistance(aOverscroll); if (aOverscroll > 0) { #ifdef DEBUG if (!FuzzyEqualsAdditive(GetCompositionEnd().value, GetPageEnd().value, COORDINATE_EPSILON)) { nsPrintfCString message("composition end (%f) is not within COORDINATE_EPISLON of page end (%f)\n", GetCompositionEnd().value, GetPageEnd().value); NS_ASSERTION(false, message.get()); MOZ_CRASH(); } #endif MOZ_ASSERT(mOverscroll >= 0); } else if (aOverscroll < 0) { #ifdef DEBUG if (!FuzzyEqualsAdditive(GetOrigin().value, GetPageStart().value, COORDINATE_EPSILON)) { nsPrintfCString message("composition origin (%f) is not within COORDINATE_EPISLON of page origin (%f)\n", GetOrigin().value, GetPageStart().value); NS_ASSERTION(false, message.get()); MOZ_CRASH(); } #endif MOZ_ASSERT(mOverscroll <= 0); } mOverscroll += aOverscroll; }
bool Axis::CanScroll(ParentLayerCoord aDelta) const { if (!CanScroll() || mAxisLocked) { return false; } return fabs(DisplacementWillOverscrollAmount(aDelta) - aDelta) > COORDINATE_EPSILON; }
bool Axis::CanScroll(ParentLayerCoord aDelta) const { if (!CanScroll() || mAxisLocked) { return false; } return DisplacementWillOverscrollAmount(aDelta) != aDelta; }
bool Axis::CanScroll(double aDelta) const { if (!CanScroll() || mAxisLocked) { return false; } ParentLayerCoord delta = aDelta; return DisplacementWillOverscrollAmount(delta) != delta; }
void Axis::OverscrollBy(CSSCoord aOverscroll) { MOZ_ASSERT(CanScroll()); aOverscroll = ApplyResistance(aOverscroll); if (aOverscroll > 0) { MOZ_ASSERT(FuzzyEqualsAdditive(GetCompositionEnd().value, GetPageEnd().value, COORDINATE_EPSILON)); MOZ_ASSERT(mOverscroll >= 0); } else if (aOverscroll < 0) { MOZ_ASSERT(FuzzyEqualsAdditive(GetOrigin().value, GetPageStart().value, COORDINATE_EPSILON)); MOZ_ASSERT(mOverscroll <= 0); } mOverscroll += aOverscroll; }
/* Returns a scrollbar for the given orientation, or NULL if the scrollbar * has not been previously created and create is false */ wxScrollBar *wxWindowQt::QtGetScrollBar( int orientation ) const { wxCHECK_MSG( CanScroll( orientation ), NULL, "Window can't scroll in that orientation" ); wxScrollBar *scrollBar = NULL; if ( orientation == wxHORIZONTAL ) scrollBar = m_horzScrollBar; else scrollBar = m_vertScrollBar; return scrollBar; }
void wxWindowQt::SetScrollbar( int orientation, int pos, int thumbvisible, int range, bool refresh ) { wxCHECK_RET( CanScroll( orientation ), "Window can't scroll in that orientation" ); //If not exist, create the scrollbar wxScrollBar *scrollBar = QtGetScrollBar( orientation ); if ( scrollBar == NULL ) scrollBar = QtSetScrollBar( orientation ); // Configure the scrollbar if it exists. If range is zero we can get here with // scrollBar == NULL and it is not a problem if ( scrollBar ) { scrollBar->SetScrollbar( pos, thumbvisible, range, thumbvisible, refresh ); if ( HasFlag( wxALWAYS_SHOW_SB ) && ( range == 0 ) ) { // Disable instead of hide scrollBar->GetHandle()->show(); scrollBar->GetHandle()->setEnabled( false ); } else scrollBar->GetHandle()->setEnabled( true ); } }
bool Axis::CanScrollNow() const { return !mAxisLocked && CanScroll(); }