[Scummvm-git-logs] scummvm master -> 7b0402fbb0dc9fa5759b7f059ada915d72677e4d
criezy
criezy at scummvm.org
Tue Jul 24 01:42:16 CEST 2018
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f7a4b74130 GUI: Fix container widgets not receiving events
211ef61fdf GUI: Set ScrollContainer single step to kLineHeight instead of 1 pixel
bd98c6f045 GUI: Handle continous scrolling in ScrollContainer
7b0402fbb0 GUI: Fix scrollbar bottom arrow being displayed as up arrow after mouse up
Commit: f7a4b74130fa1f02c64811dd4d14f257512e861b
https://github.com/scummvm/scummvm/commit/f7a4b74130fa1f02c64811dd4d14f257512e861b
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00
Commit Message:
GUI: Fix container widgets not receiving events
Changed paths:
gui/widget.cpp
gui/widgets/scrollcontainer.cpp
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 1dfd069..2ac73dd 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -748,7 +748,10 @@ bool ContainerWidget::containsWidget(Widget *w) const {
}
Widget *ContainerWidget::findWidget(int x, int y) {
- return findWidgetInChain(_firstWidget, x, y);
+ Widget *w = findWidgetInChain(_firstWidget, x, y);
+ if (w)
+ return w;
+ return this;
}
void ContainerWidget::removeWidget(Widget *widget) {
diff --git a/gui/widgets/scrollcontainer.cpp b/gui/widgets/scrollcontainer.cpp
index 7994c00..33f7e7f 100644
--- a/gui/widgets/scrollcontainer.cpp
+++ b/gui/widgets/scrollcontainer.cpp
@@ -153,7 +153,10 @@ bool ScrollContainerWidget::containsWidget(Widget *w) const {
Widget *ScrollContainerWidget::findWidget(int x, int y) {
if (_verticalScroll->isVisible() && x >= _w - _verticalScroll->getWidth())
return _verticalScroll;
- return Widget::findWidgetInChain(_firstWidget, x + _scrolledX, y + _scrolledY);
+ Widget *w = Widget::findWidgetInChain(_firstWidget, x + _scrolledX, y + _scrolledY);
+ if (w)
+ return w;
+ return this;
}
Common::Rect ScrollContainerWidget::getClipRect() const {
Commit: 211ef61fdf1f833267788511d5bcb354db78ee45
https://github.com/scummvm/scummvm/commit/211ef61fdf1f833267788511d5bcb354db78ee45
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00
Commit Message:
GUI: Set ScrollContainer single step to kLineHeight instead of 1 pixel
The single step is the amount of scroll done when clicking once on
the scrollbar up or down arrow. It used to be 1 entry, but for the
ScrollContainer 1 entry is 1 pixel, which was too litle. Now the
single step can be set to a multiple entries.
Changed paths:
gui/widgets/scrollbar.cpp
gui/widgets/scrollbar.h
gui/widgets/scrollcontainer.cpp
diff --git a/gui/widgets/scrollbar.cpp b/gui/widgets/scrollbar.cpp
index 38cdc6f..c45b4e0 100644
--- a/gui/widgets/scrollbar.cpp
+++ b/gui/widgets/scrollbar.cpp
@@ -47,6 +47,7 @@ ScrollBarWidget::ScrollBarWidget(GuiObject *boss, int x, int y, int w, int h)
_numEntries = 0;
_entriesPerPage = 0;
_currentPos = 0;
+ _singleStep = 1;
_repeatTimer = 0;
}
@@ -60,12 +61,12 @@ void ScrollBarWidget::handleMouseDown(int x, int y, int button, int clickCount)
if (y <= UP_DOWN_BOX_HEIGHT) {
// Up arrow
- _currentPos--;
+ _currentPos -= _singleStep;
_repeatTimer = g_system->getMillis() + kRepeatInitialDelay;
_draggingPart = kUpArrowPart;
} else if (y >= _h - UP_DOWN_BOX_HEIGHT) {
// Down arrow
- _currentPos++;
+ _currentPos += _singleStep;
_repeatTimer = g_system->getMillis() + kRepeatInitialDelay;
_draggingPart = kDownArrowPart;
} else if (y < _sliderPos) {
@@ -93,9 +94,9 @@ void ScrollBarWidget::handleMouseWheel(int x, int y, int direction) {
return;
if (direction < 0) {
- _currentPos--;
+ _currentPos -= _singleStep;
} else {
- _currentPos++;
+ _currentPos += _singleStep;
}
// Make sure that _currentPos is still inside the bounds
@@ -146,9 +147,9 @@ void ScrollBarWidget::handleTickle() {
const int old_pos = _currentPos;
if (_part == kUpArrowPart)
- _currentPos -= 3;
+ _currentPos -= 3 * _singleStep;
else if (_part == kDownArrowPart)
- _currentPos += 3;
+ _currentPos += 3 * _singleStep;
checkBounds(old_pos);
diff --git a/gui/widgets/scrollbar.h b/gui/widgets/scrollbar.h
index a1181b9..9fdc94c 100644
--- a/gui/widgets/scrollbar.h
+++ b/gui/widgets/scrollbar.h
@@ -60,6 +60,7 @@ public:
int _numEntries;
int _entriesPerPage;
int _currentPos;
+ int _singleStep;
public:
ScrollBarWidget(GuiObject *boss, int x, int y, int w, int h);
diff --git a/gui/widgets/scrollcontainer.cpp b/gui/widgets/scrollcontainer.cpp
index 33f7e7f..3c2e7aa 100644
--- a/gui/widgets/scrollcontainer.cpp
+++ b/gui/widgets/scrollcontainer.cpp
@@ -73,6 +73,7 @@ void ScrollContainerWidget::recalc() {
_verticalScroll->_numEntries = h;
_verticalScroll->_currentPos = _scrolledY;
_verticalScroll->_entriesPerPage = _limitH;
+ _verticalScroll->_singleStep = kLineHeight;
_verticalScroll->setPos(_w - scrollbarWidth, _scrolledY+1);
_verticalScroll->setSize(scrollbarWidth, _limitH -2);
}
Commit: bd98c6f045dab0c87ebdc08a542ef8486b740bea
https://github.com/scummvm/scummvm/commit/bd98c6f045dab0c87ebdc08a542ef8486b740bea
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00
Commit Message:
GUI: Handle continous scrolling in ScrollContainer
When keeping the scrollbar up or down arrow pressed in a
ScrollContainer is now scrolls continously, as it was
already doing in the ListWidget.
Changed paths:
gui/widgets/scrollbar.h
diff --git a/gui/widgets/scrollbar.h b/gui/widgets/scrollbar.h
index 9fdc94c..ad7e83f 100644
--- a/gui/widgets/scrollbar.h
+++ b/gui/widgets/scrollbar.h
@@ -72,6 +72,7 @@ public:
void handleMouseEntered(int button) { setFlags(WIDGET_HILITED); }
void handleMouseLeft(int button) { clearFlags(WIDGET_HILITED); _part = kNoPart; markAsDirty(); }
void handleTickle();
+ bool wantsFocus() { return true; }
// FIXME - this should be private, but then we also have to add accessors
// for _numEntries, _entriesPerPage and _currentPos. This again leads to the question:
Commit: 7b0402fbb0dc9fa5759b7f059ada915d72677e4d
https://github.com/scummvm/scummvm/commit/7b0402fbb0dc9fa5759b7f059ada915d72677e4d
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00
Commit Message:
GUI: Fix scrollbar bottom arrow being displayed as up arrow after mouse up
Changed paths:
gui/ThemeEngine.cpp
diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp
index d38a03f..867960c 100644
--- a/gui/ThemeEngine.cpp
+++ b/gui/ThemeEngine.cpp
@@ -839,7 +839,7 @@ void ThemeEngine::drawDD(DrawData type, const Common::Rect &r, uint32 dynamic, b
return;
if (kDrawDataDefaults[type].parent != kDDNone && kDrawDataDefaults[type].parent != type)
- drawDD(kDrawDataDefaults[type].parent, r);
+ drawDD(kDrawDataDefaults[type].parent, r, dynamic);
Common::Rect area = r;
area.clip(_screen.w, _screen.h);
More information about the Scummvm-git-logs
mailing list