GUI: properly display scrollbuttons at edge

This commit is contained in:
aryanrawlani28 2020-03-21 15:15:09 +05:30 committed by Eugene Sandulenko
parent 4493216098
commit bd688cfbc1

View file

@ -71,6 +71,9 @@ void TabWidget::init() {
int y = _butTP - _tabHeight;
_navLeft = new ButtonWidget(this, x, y, _butW, _butH, "<", nullptr, kCmdLeft);
_navRight = new ButtonWidget(this, x + _butW + 2, y, _butW, _butH, ">", nullptr, kCmdRight);
_navLeft->setVisible(false);
_navRight->setVisible(true);
_lastRead = -1;
}
@ -186,15 +189,29 @@ void TabWidget::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case kCmdLeft:
if (!_navRight->isVisible()) {
_navRight->setVisible(true);
}
if (_firstVisibleTab > 0) {
setFirstVisible(_firstVisibleTab - 1);
}
if (_firstVisibleTab == 0) {
_navLeft->setVisible(false);
}
break;
case kCmdRight:
if (!_navLeft->isVisible()) {
_navLeft->setVisible(true);
}
if (_lastVisibleTab + 1 < (int)_tabs.size()) {
setFirstVisible(_firstVisibleTab + 1, false);
}
if (_lastVisibleTab + 1 == (int)_tabs.size()) {
_navRight->setVisible(false);
}
break;
default: