From fc48c24c6d366e165cbcfbd022d9421790089890 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Sun, 6 Dec 2009 13:01:16 -0700 Subject: Improve keyboard accessibility of login sequence Enter and Escape now move forward and backwards for all dialogs except ServerSelectDialog (Escape quits) and CharSelectDialog (Enter doesn't do anything special). --- src/gui/worldselectdialog.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/gui/worldselectdialog.cpp') diff --git a/src/gui/worldselectdialog.cpp b/src/gui/worldselectdialog.cpp index aef98078..0a616f25 100644 --- a/src/gui/worldselectdialog.cpp +++ b/src/gui/worldselectdialog.cpp @@ -26,6 +26,8 @@ #include "gui/widgets/listbox.h" #include "gui/widgets/scrollarea.h" +#include "gui/sdlinput.h" + #include "net/logindata.h" #include "net/loginhandler.h" #include "net/net.h" @@ -92,6 +94,8 @@ WorldSelectDialog::WorldSelectDialog(Worlds worlds): // Select first server mWorldList->setSelected(0); + addKeyListener(this); + center(); setVisible(true); mChooseWorld->requestFocus(); @@ -119,3 +123,17 @@ void WorldSelectDialog::action(const gcn::ActionEvent &event) state = STATE_LOGIN; } } + +void WorldSelectDialog::keyPressed(gcn::KeyEvent &keyEvent) +{ + gcn::Key key = keyEvent.getKey(); + + if (key.getValue() == Key::ESCAPE) + { + action(gcn::ActionEvent(NULL, mChangeLoginButton->getActionEventId())); + } + else if (key.getValue() == Key::ENTER) + { + action(gcn::ActionEvent(NULL, mChooseWorld->getActionEventId())); + } +} -- cgit v1.2.3-60-g2f50