| 99 | } |
| 100 | |
| 101 | void UIScrollableWidget::onContentSizeChange() { |
| 102 | Sizef contentSize( getContentSize() ); |
| 103 | |
| 104 | if ( ScrollBarMode::AlwaysOn == mHScrollMode ) { |
| 105 | mHScroll->setVisible( true )->setEnabled( true ); |
| 106 | } else if ( ScrollBarMode::AlwaysOff == mHScrollMode ) { |
| 107 | mHScroll->setVisible( false )->setEnabled( false ); |
| 108 | } else { |
| 109 | Float totW = |
| 110 | getPixelsSize().getWidth() - getPixelsPadding().Left - getPixelsPadding().Right; |
| 111 | |
| 112 | if ( mScrollViewType == ScrollViewType::Outside ) |
| 113 | totW -= mVScroll->getPixelsSize().getWidth(); |
| 114 | |
| 115 | bool visible = contentSize.getWidth() > totW; |
| 116 | |
| 117 | mHScroll->setVisible( visible )->setEnabled( visible ); |
| 118 | } |
| 119 | |
| 120 | if ( ScrollBarMode::AlwaysOn == mVScrollMode ) { |
| 121 | mVScroll->setVisible( true )->setEnabled( true ); |
| 122 | } else if ( ScrollBarMode::AlwaysOff == mVScrollMode ) { |
| 123 | mVScroll->setVisible( false )->setEnabled( false ); |
| 124 | } else { |
| 125 | Float totH = |
| 126 | getPixelsSize().getHeight() - getPixelsPadding().Top - getPixelsPadding().Bottom - |
| 127 | ( ScrollBarMode::AlwaysOff == mHScrollMode ? 0 |
| 128 | : mHScroll->getPixelsSize().getHeight() ); |
| 129 | |
| 130 | bool visible = contentSize.getHeight() > totH; |
| 131 | |
| 132 | mVScroll->setVisible( visible )->setEnabled( visible ); |
| 133 | } |
| 134 | |
| 135 | if ( ScrollBarMode::Auto == mHScrollMode ) { |
| 136 | Float totW = |
| 137 | getPixelsSize().getWidth() - getPixelsPadding().Left - getPixelsPadding().Right - |
| 138 | ( mVScroll->isVisible() && |
| 139 | ( mScrollViewType == ScrollViewType::Outside || mVScroll->getAlpha() != 0.f ) |
| 140 | ? mVScroll->getPixelsSize().getWidth() |
| 141 | : 0 ); |
| 142 | |
| 143 | bool visible = contentSize.getWidth() > totW; |
| 144 | |
| 145 | mHScroll->setVisible( visible )->setEnabled( visible ); |
| 146 | } |
| 147 | |
| 148 | Sizef size = getPixelsSize() - mPaddingPx; |
| 149 | |
| 150 | if ( ScrollViewType::Outside == mScrollViewType ) { |
| 151 | if ( mVScroll->isVisible() ) |
| 152 | size.x -= mVScroll->getPixelsSize().getWidth(); |
| 153 | |
| 154 | if ( mHScroll->isVisible() ) |
| 155 | size.y -= mHScroll->getPixelsSize().getHeight(); |
| 156 | } |
| 157 | |
| 158 | mVScroll->setPixelsPosition( getPixelsSize().getWidth() - mVScroll->getPixelsSize().getWidth() - |
nothing calls this directly
no test coverage detected