diff options
Diffstat (limited to 'src/gui/setup_joystick.cpp')
-rw-r--r-- | src/gui/setup_joystick.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gui/setup_joystick.cpp b/src/gui/setup_joystick.cpp index 34b0061a9..8956384c1 100644 --- a/src/gui/setup_joystick.cpp +++ b/src/gui/setup_joystick.cpp @@ -45,6 +45,7 @@ Setup_Joystick::Setup_Joystick(const Widget2 *const widget) : mCalibrateLabel(new Label(this, _("Press the button to start calibration"))), mCalibrateButton(new Button(this, _("Calibrate"), "calibrate", this)), + mDetectButton(new Button(this, _("Detect joysticks"), "detect", this)), mJoystickEnabled(new CheckBox(this, _("Enable joystick"))), mNamesModel(new NamesModel), mNamesDropDown(new DropDown(this, mNamesModel)), @@ -83,8 +84,9 @@ Setup_Joystick::Setup_Joystick(const Widget2 *const widget) : place(0, 0, mJoystickEnabled); place(0, 1, mNamesDropDown); place(0, 2, mUseInactiveCheckBox); - place(0, 3, mCalibrateLabel); - place(0, 4, mCalibrateButton); + place(0, 3, mDetectButton); + place(0, 4, mCalibrateLabel); + place(0, 5, mCalibrateButton); setDimension(gcn::Rectangle(0, 0, 365, 75)); } @@ -97,15 +99,25 @@ Setup_Joystick::~Setup_Joystick() void Setup_Joystick::action(const gcn::ActionEvent &event) { - if (event.getSource() == mJoystickEnabled) + const gcn::Widget *const source = event.getSource(); + if (source == mJoystickEnabled) { setTempEnabled(mJoystickEnabled->isSelected()); } - else if (event.getSource() == mNamesDropDown) + else if (source == mNamesDropDown) { if (joystick) joystick->setNumber(mNamesDropDown->getSelected()); } + else if (source == mDetectButton) + { + if (joystick) + { + joystick->reload(); + Joystick::getNames(mNamesModel->getNames()); + mNamesDropDown->setSelected(joystick->getNumber()); + } + } else { if (!joystick) |