diff options
author | Eugene Sandulenko | 2017-08-02 23:14:07 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2017-08-04 21:54:19 +0200 |
commit | 7b7117d5b8e28cbecb49ac2539b9aff61f0139c8 (patch) | |
tree | 8ea797d45e885b2345d0cb92c059fc46d4dcbe1d /graphics/macgui | |
parent | e316fb4b163dcf1f7250d26fddf6536470a7bf62 (diff) | |
download | scummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.tar.gz scummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.tar.bz2 scummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.zip |
GRAPHICS: MACGUI: Implement scrolling in MacTextWindow
Diffstat (limited to 'graphics/macgui')
-rw-r--r-- | graphics/macgui/mactextwindow.cpp | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/graphics/macgui/mactextwindow.cpp b/graphics/macgui/mactextwindow.cpp index d3a18224db..7ed04247fa 100644 --- a/graphics/macgui/mactextwindow.cpp +++ b/graphics/macgui/mactextwindow.cpp @@ -34,7 +34,8 @@ enum { kConHOverlap = 20, kConWPadding = 3, kConHPadding = 4, - kConOverscan = 3 + kConOverscan = 3, + kConScrollStep = 12 }; static void cursorTimerHandler(void *refCon); @@ -184,6 +185,44 @@ bool MacTextWindow::processEvent(Common::Event &event) { } } + if (click == kBorderScrollUp || click == kBorderScrollDown) { + if (event.type == Common::EVENT_LBUTTONDOWN) { + int consoleHeight = _innerDims.height(); + int textFullSize = _mactext->getTextHeight(); + float scrollPos = (float)_scrollPos / textFullSize; + float scrollSize = (float)consoleHeight / textFullSize; + + setScroll(scrollPos, scrollSize); + + return true; + } else if (event.type == Common::EVENT_LBUTTONUP) { + int oldScrollPos = _scrollPos; + + switch (click) { + case kBorderScrollUp: + _scrollPos = MAX<int>(0, _scrollPos - kConScrollStep); + undrawCursor(); + _cursorY -= (_scrollPos - oldScrollPos); + _contentIsDirty = true; + _borderIsDirty = true; + break; + case kBorderScrollDown: + _scrollPos = MIN<int>(_mactext->getTextHeight() - kConScrollStep, _scrollPos + kConScrollStep); + undrawCursor(); + _cursorY -= (_scrollPos - oldScrollPos); + _contentIsDirty = true; + _borderIsDirty = true; + break; + default: + return false; + } + + return true; + } + + return false; + } + return MacWindow::processEvent(event); } |