summaryrefslogtreecommitdiff
path: root/src/gui/widgets/tabbedarea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/tabbedarea.cpp')
-rw-r--r--src/gui/widgets/tabbedarea.cpp31
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)
{