Skip to content

Commit

Permalink
GRAPHICS: MACGUI: Added support for scrolling with mouse wheel
Browse files Browse the repository at this point in the history
  • Loading branch information
sev- committed Aug 22, 2017
1 parent a7dbacb commit 8458630
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
35 changes: 23 additions & 12 deletions graphics/macgui/mactextwindow.cpp
Expand Up @@ -313,6 +313,16 @@ bool MacTextWindow::processEvent(Common::Event &event) {
if (hasAllFocus())
return MacWindow::processEvent(event); // Pass it to upstream

if (event.type == Common::EVENT_WHEELUP) {
scroll(-2);
return true;
}

if (event.type == Common::EVENT_WHEELDOWN) {
scroll(2);
return true;
}

if (click == kBorderScrollUp || click == kBorderScrollDown) {
if (event.type == Common::EVENT_LBUTTONDOWN) {
int consoleHeight = getInnerDimensions().height();
Expand All @@ -324,22 +334,12 @@ bool MacTextWindow::processEvent(Common::Event &event) {

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;
scroll(-1);
break;
case kBorderScrollDown:
_scrollPos = MIN<int>(_mactext->getTextHeight() - kConScrollStep, _scrollPos + kConScrollStep);
undrawCursor();
_cursorY -= (_scrollPos - oldScrollPos);
_contentIsDirty = true;
_borderIsDirty = true;
scroll(1);
break;
default:
return false;
Expand Down Expand Up @@ -389,6 +389,17 @@ bool MacTextWindow::processEvent(Common::Event &event) {
return MacWindow::processEvent(event);
}

void MacTextWindow::scroll(int delta) {
int oldScrollPos = _scrollPos;

_scrollPos += delta * kConScrollStep;
_scrollPos = CLIP<int>(_scrollPos, 0, _mactext->getTextHeight() - kConScrollStep);
undrawCursor();
_cursorY -= (_scrollPos - oldScrollPos);
_contentIsDirty = true;
_borderIsDirty = true;
}

void MacTextWindow::startMarking(int x, int y) {
x -= getInnerDimensions().left - 2;
y -= getInnerDimensions().top;
Expand Down
2 changes: 2 additions & 0 deletions graphics/macgui/mactextwindow.h
Expand Up @@ -77,6 +77,8 @@ class MacTextWindow : public MacWindow {
private:
bool isCutAllowed();

void scroll(int delta);

void undrawInput();
void drawInput();
void drawSelection();
Expand Down

0 comments on commit 8458630

Please sign in to comment.