Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

void OglGui::ScrollBar::SetRange ( int  totalRange,
int  pageSize 
) [inline]

Definition at line 138 of file ScrollBar.h.

References cSbW, OglGui::OglWindow::GetOGLWND(), mButDecr, mButIncr, mButThumb, mHorizontal, OglGui::OglWindow::mOglWnd, mPixelPage, mPixelPos, mPixelRange, mScrollPage, mScrollRange, and OglGui::OglWindow::SetVisible().

Referenced by OglGui::StringSelector::AddString(), OglGui::TextArea::CheckTextFormat(), OglGui::OglDemo::ControlDrop(), OglGui::TextArea::CreateScrollBar(), OglGui::TextEditLineScroller::DisplayFunc(), OglGui::ScrollWnd::FollowContent(), OglGui::DocScroller::FollowContent(), OglGui::ScrollWnd::FollowScrollBar(), OglGui::DocScroller::FollowScrollBar(), Impala::Application::MediaTable::TableWindow::HandleColumnPositions(), OglGui::TextEdit::HandleScrollBarsOnDisplay(), Impala::Visualization::ImageStrip::ImageAdded(), Impala::Visualization::ImageStrip::ImagesRemoved(), Impala::Visualization::ImageStrip::Init(), OglGui::ValueScrollBar::Init(), OglGui::StringSelector::Init(), Impala::Application::VideoExcel::TableWindow::Init(), Impala::Application::MediaTable::TableWindow::Init(), Impala::Application::VideoExcel::GridWindow::Init(), Impala::Application::MediaTable::GridWindow::Init(), InitDisplayFunc(), OglGui::StringSelector::RemoveStrings(), Impala::Visualization::ImageStrip::ReshapeFunc(), OglGui::StringSelector::ReshapeFunc(), OglGui::ValueScrollBar::SetMinMaxValue(), SetPosition(), OglGui::ViewStrip::SetScrollBarRange(), Impala::Application::VideoExcel::TableWindow::UpdateRowsEvent(), Impala::Application::MediaTable::TableWindow::UpdateRowsEvent(), Impala::Application::VideoExcel::GridWindow::UpdateRowsEvent(), Impala::Application::MediaTable::GridWindow::UpdateRowsEvent(), and Impala::Visualization::ImageSet::UpdateScrollBarRange().

00139     {
00140         bool    tooSmall =  (mHorizontal && mOglWnd->width < 40) ||
00141                             (!mHorizontal && mOglWnd->height < 40);
00142 
00143         mScrollRange = totalRange;
00144         mScrollPage = pageSize;
00145         // reposition thumb
00146         // RvB: Added test on mScrollRange != 0, to prevent zero division
00147         if(totalRange > pageSize && pageSize > 0 && !tooSmall &&
00148            mScrollRange!=0)
00149         {
00150             mButThumb->SetVisible(true);
00151             mButIncr->SetVisible(true);
00152             mButDecr->SetVisible(true);
00153             if (mHorizontal)
00154                 mPixelPage = ((mOglWnd->width - (2*cSbW)) * mScrollPage) /
00155                              mScrollRange;
00156             else
00157                 mPixelPage = ((mOglWnd->height - (2*cSbW)) * mScrollPage) /
00158                              mScrollRange;
00159             // minimal thumb size
00160             if (mPixelPage < 12)
00161                 mPixelPage = 12;
00162 
00163             // if change of range pushes thumb over maximum then reposition
00164             if (mPixelPage + mPixelPos > mPixelRange)
00165             {
00166                 mPixelPos = mPixelRange - mPixelPage;
00167                 // RvB: When resizing, jumpy behavior of content being scrolled
00168                 // occurred.After countless hours of trying different strategies
00169                 // removing next line solved the problem.
00170                 // Although I do allow an inconsistency here (BUT RESULT: MUCH
00171                 // BETTER BEHAVIOUR)
00172                 // This trick should probably be made settable
00173 
00174                 // OnScrollThumb(mPixelPos);
00175             }
00176 
00177             if (mHorizontal)
00178                 oglSys.SetDimensions(mButThumb->GetOGLWND(), mPixelPos + cSbW,
00179                                      0, mPixelPage, cSbW);
00180             else
00181             {
00182                 int y = mOglWnd->height - cSbW - mPixelPos - mPixelPage;
00183                 oglSys.SetDimensions(mButThumb->GetOGLWND(), 0, y, cSbW,
00184                                      mPixelPage);
00185             }
00186         }
00187         else
00188         {   // Too small to show buttons
00189             mButThumb->SetVisible(false);
00190             mButIncr->SetVisible(false);
00191             mButDecr->SetVisible(false);
00192         }
00193     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:26:46 2011 for ImpalaSrc by  doxygen 1.5.1