annotate widgets/TypingSelectWidget.h @ 53:bcea875d8d2f tip

More build fixes
author Chris Cannam
date Thu, 16 Oct 2014 19:03:51 +0100
parents a42493a3baf8
children
rev   line source
Chris@28 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@28 2
Chris@28 3 #ifndef _TYPING_SELECT_WIDGET_H_
Chris@28 4 #define _TYPING_SELECT_WIDGET_H_
Chris@28 5
Chris@28 6 #include <QWidget>
Chris@28 7 #include <QList>
Chris@41 8 #include <QLabel>
Chris@41 9 #include <QMenu>
Chris@41 10 #include <QMouseEvent>
Chris@41 11 #include <QShortcut>
Chris@28 12
Chris@30 13 class QLineEdit;
Chris@30 14 class QListWidget;
Chris@39 15 class QGridLayout;
Chris@39 16 class QFrame;
Chris@30 17
Chris@41 18
Chris@28 19 namespace ClassicalData
Chris@28 20 {
Chris@28 21
Chris@28 22 class Matcher;
Chris@41 23 class TypingSelectListEntry;
Chris@41 24 class TypingSelectListMenu;
Chris@28 25
Chris@28 26 class TypingSelectWidget : public QWidget
Chris@28 27 {
Chris@30 28 Q_OBJECT
Chris@30 29
Chris@28 30 public:
Chris@28 31 TypingSelectWidget(QWidget *parent = 0);
Chris@28 32
Chris@30 33 void addMatcher(Matcher *m) { m_matchers.push_back(m); }
Chris@30 34
Chris@30 35 private slots:
Chris@30 36 void textEdited(const QString &);
Chris@41 37 void menuKeyPressed(QKeyEvent *);
Chris@41 38 void menuItemSelected(QString);
Chris@28 39
Chris@28 40 private:
Chris@28 41 QList<Matcher *> m_matchers;
Chris@30 42 QLineEdit *m_editor;
Chris@41 43 TypingSelectListMenu *m_menu;
Chris@41 44 QList<TypingSelectListEntry *> m_listEntries;
Chris@28 45 };
Chris@28 46
Chris@41 47 class TypingSelectListMenu : public QMenu
Chris@41 48 {
Chris@41 49 Q_OBJECT
Chris@41 50
Chris@41 51 public:
Chris@41 52 TypingSelectListMenu(QWidget *parent = 0) : QMenu(parent) { }
Chris@41 53
Chris@41 54 signals:
Chris@41 55 void keyPressed(QKeyEvent *e);
Chris@41 56 void itemSelected(QString);
Chris@41 57
Chris@41 58 protected:
Chris@41 59 void keyPressEvent(QKeyEvent *e);
Chris@41 60 void keyReleaseEvent(QKeyEvent *e);
Chris@41 61 };
Chris@41 62
Chris@41 63
Chris@28 64 }
Chris@28 65
Chris@28 66 #endif
Chris@28 67
Chris@28 68