summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/setup_keyboard.cpp19
-rw-r--r--src/gui/setup_keyboard.h1
2 files changed, 19 insertions, 1 deletions
diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp
index da473aeb..21891d33 100644
--- a/src/gui/setup_keyboard.cpp
+++ b/src/gui/setup_keyboard.cpp
@@ -87,6 +87,10 @@ Setup_Keyboard::Setup_Keyboard():
mAssignKeyButton->addActionListener(this);
mAssignKeyButton->setEnabled(false);
+ mUnAssignKeyButton = new Button(_("Unassign"), "unassign", this);
+ mUnAssignKeyButton->addActionListener(this);
+ mUnAssignKeyButton->setEnabled(false);
+
mMakeDefaultButton = new Button(_("Default"), "makeDefault", this);
mMakeDefaultButton->addActionListener(this);
@@ -96,7 +100,8 @@ Setup_Keyboard::Setup_Keyboard():
place(0, 0, scrollArea, 4, 6).setPadding(2);
place(0, 6, mMakeDefaultButton);
- place(3, 6, mAssignKeyButton);
+ place(2, 6, mAssignKeyButton);
+ place(3, 6, mUnAssignKeyButton);
setDimension(gcn::Rectangle(0, 0, 365, 280));
}
@@ -107,6 +112,7 @@ Setup_Keyboard::~Setup_Keyboard()
delete mKeyListModel;
delete mAssignKeyButton;
+ delete mUnAssignKeyButton;
delete mMakeDefaultButton;
}
@@ -138,7 +144,10 @@ void Setup_Keyboard::action(const gcn::ActionEvent &event)
if (event.getSource() == mKeyList)
{
if (!mKeySetting)
+ {
mAssignKeyButton->setEnabled(true);
+ mUnAssignKeyButton->setEnabled(true);
+ }
}
else if (event.getId() == "assign")
{
@@ -149,6 +158,14 @@ void Setup_Keyboard::action(const gcn::ActionEvent &event)
keyboard.setNewKeyIndex(i);
mKeyListModel->setElementAt(i, keyboard.getKeyCaption(i) + ": ?");
}
+ else if (event.getId() == "unassign")
+ {
+ int i(mKeyList->getSelected());
+ keyboard.setNewKeyIndex(i);
+ refreshAssignedKey(mKeyList->getSelected());
+ keyboard.setNewKey(keyboard.KEY_NO_VALUE);
+ mAssignKeyButton->setEnabled(true);
+ }
else if (event.getId() == "makeDefault")
{
keyboard.makeDefault();
diff --git a/src/gui/setup_keyboard.h b/src/gui/setup_keyboard.h
index 69c2d58a..28f6f9aa 100644
--- a/src/gui/setup_keyboard.h
+++ b/src/gui/setup_keyboard.h
@@ -72,6 +72,7 @@ class Setup_Keyboard : public SetupTab, public gcn::ActionListener
gcn::ListBox *mKeyList;
gcn::Button *mAssignKeyButton;
+ gcn::Button *mUnAssignKeyButton;
gcn::Button *mMakeDefaultButton;
bool mKeySetting; /**< flag to check if key being set. */