[Scummvm-cvs-logs] scummvm master -> 99fbda5842c331a1431172d285641fc2e8ce3257
sev-
sev at scummvm.org
Sat Apr 23 22:31:58 CEST 2016
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
99fbda5842 WAGE: Implement window dragging
Commit: 99fbda5842c331a1431172d285641fc2e8ce3257
https://github.com/scummvm/scummvm/commit/99fbda5842c331a1431172d285641fc2e8ce3257
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-04-23T22:31:38+02:00
Commit Message:
WAGE: Implement window dragging
Changed paths:
engines/wage/gui.h
engines/wage/macwindow.cpp
engines/wage/macwindow.h
diff --git a/engines/wage/gui.h b/engines/wage/gui.h
index c337b1f..4816dac 100644
--- a/engines/wage/gui.h
+++ b/engines/wage/gui.h
@@ -150,6 +150,8 @@ public:
bool _menuDirty;
Scene *_scene;
+
+ MacWindowManager _wm;
MacWindow *_sceneWindow;
MacWindow *_consoleWindow;
@@ -178,8 +180,6 @@ private:
Common::String _undobuffer;
int _inputTextLineNum;
-
- MacWindowManager _wm;
};
} // End of namespace Wage
diff --git a/engines/wage/macwindow.cpp b/engines/wage/macwindow.cpp
index 7b91335..36c4e10 100644
--- a/engines/wage/macwindow.cpp
+++ b/engines/wage/macwindow.cpp
@@ -65,6 +65,8 @@ MacWindow::MacWindow(int id, bool scrollable) : _scrollable(scrollable), _id(id)
_callback = 0;
_dataPtr = 0;
+
+ _beingDragged = false;
}
MacWindow::~MacWindow() {
@@ -284,6 +286,9 @@ static WindowClick isInBorder(Common::Rect &rect, int x, int y) {
if (x >= rect.left - kBorderWidth && x < rect.left && y >= rect.top - kBorderWidth && y < rect.top)
return kBorderCloseButton;
+ if (y >= rect.top - kBorderWidth && y < rect.top)
+ return kBorderHeader;
+
if (x >= rect.right && x < rect.right + kBorderWidth) {
if (y < rect.top - kBorderWidth)
return kBorderNone;
@@ -305,11 +310,31 @@ bool MacWindow::processEvent(Common::Event &event) {
switch (event.type) {
case Common::EVENT_MOUSEMOVE:
+ if (_beingDragged) {
+ _dims.translate(event.mouse.x - _draggedX, event.mouse.y - _draggedY);
+ _draggedX = event.mouse.x;
+ _draggedY = event.mouse.y;
+
+ _innerDims.setWidth(0);
+
+ ((WageEngine *)g_engine)->_gui->_wm.setFullRefresh(true);
+ }
break;
case Common::EVENT_LBUTTONDOWN:
setHighlight(click);
+
+ if (click == kBorderHeader) {
+ _beingDragged = true;
+
+ _draggedX = event.mouse.x;
+ _draggedY = event.mouse.y;
+ }
+
break;
case Common::EVENT_LBUTTONUP:
+ if (_beingDragged)
+ _beingDragged = false;
+
setHighlight(kBorderNone);
break;
default:
diff --git a/engines/wage/macwindow.h b/engines/wage/macwindow.h
index 27ec196..96a0e23 100644
--- a/engines/wage/macwindow.h
+++ b/engines/wage/macwindow.h
@@ -66,7 +66,8 @@ enum WindowClick {
kBorderScrollUp,
kBorderScrollDown,
kBorderCloseButton,
- kBorderInner
+ kBorderInner,
+ kBorderHeader
};
class MacWindow {
@@ -105,6 +106,9 @@ private:
bool _contentIsDirty;
int _id;
+ bool _beingDragged;
+ int _draggedX, _draggedY;
+
WindowClick _highlightedPart;
float _scrollPos, _scrollSize;
More information about the Scummvm-git-logs
mailing list