diff widgets/TypingSelectWidget.h @ 41:a42493a3baf8

* Make the typing select widget more useful (with working menu!)
author Chris Cannam
date Fri, 09 Apr 2010 16:19:50 +0100
parents 94cdfacc4910
children
line wrap: on
line diff
--- a/widgets/TypingSelectWidget.h	Tue Apr 06 17:36:27 2010 +0100
+++ b/widgets/TypingSelectWidget.h	Fri Apr 09 16:19:50 2010 +0100
@@ -5,16 +5,23 @@
 
 #include <QWidget>
 #include <QList>
+#include <QLabel>
+#include <QMenu>
+#include <QMouseEvent>
+#include <QShortcut>
 
 class QLineEdit;
 class QListWidget;
 class QGridLayout;
 class QFrame;
 
+
 namespace ClassicalData
 {
 
 class Matcher;
+class TypingSelectListEntry;
+class TypingSelectListMenu;
 
 class TypingSelectWidget : public QWidget
 {
@@ -27,15 +34,33 @@
 
 private slots:
     void textEdited(const QString &);
+    void menuKeyPressed(QKeyEvent *);
+    void menuItemSelected(QString);
 
 private:
     QList<Matcher *> m_matchers;
     QLineEdit *m_editor;
-    QFrame *m_list;
-    QGridLayout *m_listLayout;
-    QList<QWidget *> m_listEntries;
+    TypingSelectListMenu *m_menu;
+    QList<TypingSelectListEntry *> m_listEntries;
 };
 
+class TypingSelectListMenu : public QMenu
+{
+    Q_OBJECT
+    
+public:
+    TypingSelectListMenu(QWidget *parent = 0) : QMenu(parent) { }
+
+signals:
+    void keyPressed(QKeyEvent *e);
+    void itemSelected(QString);
+
+protected:
+    void keyPressEvent(QKeyEvent *e);
+    void keyReleaseEvent(QKeyEvent *e);
+};
+    
+
 }
 
 #endif