diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/setupactiondata.h | 12 | ||||
-rw-r--r-- | src/gui/widgets/tabbedarea.cpp | 19 | ||||
-rw-r--r-- | src/gui/widgets/tabbedarea.h | 4 | ||||
-rw-r--r-- | src/gui/windows/shortcutwindow.cpp | 12 | ||||
-rw-r--r-- | src/gui/windows/shortcutwindow.h | 4 | ||||
-rw-r--r-- | src/gui/windows/socialwindow.cpp | 24 |
6 files changed, 55 insertions, 20 deletions
diff --git a/src/gui/setupactiondata.h b/src/gui/setupactiondata.h index 2b9d694a8..6065f624c 100644 --- a/src/gui/setupactiondata.h +++ b/src/gui/setupactiondata.h @@ -497,6 +497,18 @@ static SetupActionData setupActionData2[] = "", }, { + // TRANSLATORS: input action name + N_("Previous Shortcuts tab"), + Input::KEY_PREV_SHORTCUTS_TAB, + "", + }, + { + // TRANSLATORS: input action name + N_("Next Shortcuts tab"), + Input::KEY_NEXT_SHORTCUTS_TAB, + "", + }, + { "", Input::KEY_NO_VALUE, "" diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index da6c89d1a..3b0cf1db5 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -725,3 +725,22 @@ void TabbedArea::death(const gcn::Event &event) else gcn::BasicContainer::death(event); } + +void TabbedArea::selectNextTab() +{ + int tab = getSelectedTabIndex(); + tab++; + if (tab == static_cast<int>(mTabs.size())) + tab = 0; + setSelectedTab(mTabs[tab].first); +} + +void TabbedArea::selectPrevTab() +{ + int tab = getSelectedTabIndex(); + + if (tab == 0) + tab = static_cast<int>(mTabs.size()); + tab--; + setSelectedTab(mTabs[tab].first); +} diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h index eaac7a6d5..d0f97b688 100644 --- a/src/gui/widgets/tabbedarea.h +++ b/src/gui/widgets/tabbedarea.h @@ -189,6 +189,10 @@ class TabbedArea final : public Widget2, void adjustWidget(gcn::Widget *const widget) const; + void selectNextTab(); + + void selectPrevTab(); + private: typedef std::vector <std::pair<Tab*, gcn::Widget*> > TabContainer; diff --git a/src/gui/windows/shortcutwindow.cpp b/src/gui/windows/shortcutwindow.cpp index 1d9fa88c2..5cf2ad7df 100644 --- a/src/gui/windows/shortcutwindow.cpp +++ b/src/gui/windows/shortcutwindow.cpp @@ -234,6 +234,18 @@ void ShortcutWindow::widgetMoved(const gcn::Event& event) (*it)->setRedraw(true); } +void ShortcutWindow::nextTab() +{ + if (mTabs) + mTabs->selectNextTab(); +} + +void ShortcutWindow::prevTab() +{ + if (mTabs) + mTabs->selectPrevTab(); +} + #ifdef USE_PROFILER void ShortcutWindow::logicChildren() { diff --git a/src/gui/windows/shortcutwindow.h b/src/gui/windows/shortcutwindow.h index b7d7f70a1..f4c417c94 100644 --- a/src/gui/windows/shortcutwindow.h +++ b/src/gui/windows/shortcutwindow.h @@ -68,6 +68,10 @@ class ShortcutWindow final : public Window void mouseDragged(gcn::MouseEvent &event) override final; + void nextTab(); + + void prevTab(); + #ifdef USE_PROFILER void logicChildren(); #endif diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp index 1c6b85153..8b1d0d79c 100644 --- a/src/gui/windows/socialwindow.cpp +++ b/src/gui/windows/socialwindow.cpp @@ -1819,30 +1819,14 @@ void SocialWindow::removePortal(const int x, const int y) void SocialWindow::nextTab() { - if (!mTabs) - return; - - int tab = mTabs->getSelectedTabIndex(); - - tab++; - if (tab == mTabs->getNumberOfTabs()) - tab = 0; - - mTabs->setSelectedTabByIndex(tab); + if (mTabs) + mTabs->selectNextTab(); } void SocialWindow::prevTab() { - if (!mTabs) - return; - - int tab = mTabs->getSelectedTabIndex(); - - if (tab == 0) - tab = mTabs->getNumberOfTabs(); - tab--; - - mTabs->setSelectedTabByIndex(tab); + if (mTabs) + mTabs->selectPrevTab(); } void SocialWindow::updateAttackFilter() |