bool ScrollBar::keyPressed (const KeyPress& key) { if (! isVisible()) return false; if (key.isKeyCode (KeyPress::upKey) || key.isKeyCode (KeyPress::leftKey)) moveScrollbarInSteps (-1); else if (key.isKeyCode (KeyPress::downKey) || key.isKeyCode (KeyPress::rightKey)) moveScrollbarInSteps (1); else if (key.isKeyCode (KeyPress::pageUpKey)) moveScrollbarInPages (-1); else if (key.isKeyCode (KeyPress::pageDownKey)) moveScrollbarInPages (1); else if (key.isKeyCode (KeyPress::homeKey)) scrollToTop(); else if (key.isKeyCode (KeyPress::endKey)) scrollToBottom(); else return false; return true; }
void ScrollBar::mouseDown (const MouseEvent& e) { isDraggingThumb = false; lastMousePos = vertical ? e.y : e.x; dragStartMousePos = lastMousePos; dragStartRange = visibleRange.getStart(); if (dragStartMousePos < thumbStart) { moveScrollbarInPages (-1); startTimer (400); } else if (dragStartMousePos >= thumbStart + thumbSize) { moveScrollbarInPages (1); startTimer (400); } else { isDraggingThumb = (thumbAreaSize > getLookAndFeel().getMinimumScrollbarThumbSize (*this)) && (thumbAreaSize > thumbSize); } }