aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/mactextwindow.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2017-08-02 23:14:07 +0200
committerEugene Sandulenko2017-08-04 21:54:19 +0200
commit7b7117d5b8e28cbecb49ac2539b9aff61f0139c8 (patch)
tree8ea797d45e885b2345d0cb92c059fc46d4dcbe1d /graphics/macgui/mactextwindow.cpp
parente316fb4b163dcf1f7250d26fddf6536470a7bf62 (diff)
downloadscummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.tar.gz
scummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.tar.bz2
scummvm-rg350-7b7117d5b8e28cbecb49ac2539b9aff61f0139c8.zip
GRAPHICS: MACGUI: Implement scrolling in MacTextWindow
Diffstat (limited to 'graphics/macgui/mactextwindow.cpp')
-rw-r--r--graphics/macgui/mactextwindow.cpp41
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);
}