summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-12-16 00:43:47 +0300
committerAndrei Karas <akaras@inbox.ru>2012-12-16 00:56:57 +0300
commit955c9fcba2a4a8b19389760bc74a59ab2173de02 (patch)
tree50dc69ff5c8a4d94238f51b707db1718e7ae5dcb /src/gui
parent661a14c66685de67ec560005c285267fe7098c62 (diff)
downloadplus-955c9fcba2a4a8b19389760bc74a59ab2173de02.tar.gz
plus-955c9fcba2a4a8b19389760bc74a59ab2173de02.tar.bz2
plus-955c9fcba2a4a8b19389760bc74a59ab2173de02.tar.xz
plus-955c9fcba2a4a8b19389760bc74a59ab2173de02.zip
Add keyboard selection in drop down.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/widgets/popuplist.cpp6
-rw-r--r--src/gui/widgets/popuplist.h8
2 files changed, 7 insertions, 7 deletions
diff --git a/src/gui/widgets/popuplist.cpp b/src/gui/widgets/popuplist.cpp
index 586dd5172..3a27b78a1 100644
--- a/src/gui/widgets/popuplist.cpp
+++ b/src/gui/widgets/popuplist.cpp
@@ -42,7 +42,6 @@ PopupList::PopupList(DropDown *const widget,
setFocusable(true);
mListBox->setDistributeMousePressed(true);
- mListBox->addSelectionListener(this);
mScrollArea->setPosition(mPadding, mPadding);
add(mScrollArea);
@@ -51,6 +50,8 @@ PopupList::PopupList(DropDown *const widget,
if (gui)
gui->addGlobalFocusListener(this);
+ addKeyListener(mDropDown);
+ addMouseListener(this);
adjustSize();
}
@@ -58,6 +59,7 @@ PopupList::~PopupList()
{
if (gui)
gui->removeGlobalFocusListener(this);
+ removeKeyListener(mDropDown);
}
void PopupList::show(int x, int y)
@@ -113,7 +115,7 @@ void PopupList::adjustSize()
mListBox->setWidth(getWidth() - pad2);
}
-void PopupList::valueChanged(const gcn::SelectionEvent& event A_UNUSED)
+void PopupList::mousePressed(gcn::MouseEvent& mouseEvent)
{
if (mDropDown)
mDropDown->updateSelection();
diff --git a/src/gui/widgets/popuplist.h b/src/gui/widgets/popuplist.h
index a74d82c20..e609b52f6 100644
--- a/src/gui/widgets/popuplist.h
+++ b/src/gui/widgets/popuplist.h
@@ -27,7 +27,6 @@
#include <guichan/actionlistener.hpp>
#include "guichan/focuslistener.hpp"
#include <guichan/listmodel.hpp>
-#include "guichan/selectionlistener.hpp"
#include "localconsts.h"
@@ -36,8 +35,7 @@ class ListBox;
class ScrollArea;
class PopupList final : public Popup,
- public gcn::FocusListener,
- public gcn::SelectionListener
+ public gcn::FocusListener
{
public:
PopupList(DropDown *const widget,
@@ -62,12 +60,12 @@ class PopupList final : public Popup,
void adjustSize();
- void valueChanged(const gcn::SelectionEvent& event);
-
void focusGained(const gcn::Event& event A_UNUSED);
void focusLost(const gcn::Event& event A_UNUSED);
+ void mousePressed(gcn::MouseEvent& mouseEvent);
+
private:
gcn::ListModel *mListModel;
ListBox *mListBox;