void OutputCtrl::ShowLine( int line ) { // First make sure the line is not folded. EnsureVisible( line ); line = VisibleFromDocLine( line ); int firstVisible = GetFirstVisibleLine(); int lastVisible = firstVisible + ( LinesOnScreen() - 1 ); if ( line <= firstVisible ) { int lines = line - firstVisible; if ( lines < -1 ) { lines -= LinesOnScreen() / 2; } LineScroll( 0, lines ); } else if ( line >= lastVisible ) { int lines = line - lastVisible; if ( lines > 1 ) { lines += LinesOnScreen() / 2; } LineScroll( 0, lines ); } }
void cbStyledTextCtrl::MakeNearbyLinesVisible(int line) { const int dist = VisibleFromDocLine(line) - GetFirstVisibleLine(); if (dist >= 0 && dist < 2) LineScroll(0, dist - 2); else if (dist >= LinesOnScreen() - 2) LineScroll(0, 3 + dist - LinesOnScreen()); }