diff options
Diffstat (limited to 'src/gui/widgets/tabbedarea.cpp')
-rw-r--r-- | src/gui/widgets/tabbedarea.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index fc6526a13..bb8ea063b 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -477,6 +477,37 @@ void TabbedArea::removeAll() } } +void TabbedArea::keyPressed(gcn::KeyEvent& keyEvent) +{ + if (keyEvent.isConsumed() || !isFocused()) + return; + + if (keyEvent.getKey().getValue() == gcn::Key::LEFT) + { + int index = getSelectedTabIndex(); + index--; + + if (index < 0) + return; + else + setSelectedTab(mTabs[index].first); + + keyEvent.consume(); + } + else if (keyEvent.getKey().getValue() == gcn::Key::RIGHT) + { + int index = getSelectedTabIndex(); + index++; + + if (index >= static_cast<int>(mTabs.size())) + return; + else + setSelectedTab(mTabs[index].first); + + keyEvent.consume(); + } +} + /* void TabbedArea::moveLeft(gcn::Tab *tab) { |