Chris@28: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@28: Chris@28: #ifndef _TYPING_SELECT_WIDGET_H_ Chris@28: #define _TYPING_SELECT_WIDGET_H_ Chris@28: Chris@28: #include Chris@28: #include Chris@41: #include Chris@41: #include Chris@41: #include Chris@41: #include Chris@28: Chris@30: class QLineEdit; Chris@30: class QListWidget; Chris@39: class QGridLayout; Chris@39: class QFrame; Chris@30: Chris@41: Chris@28: namespace ClassicalData Chris@28: { Chris@28: Chris@28: class Matcher; Chris@41: class TypingSelectListEntry; Chris@41: class TypingSelectListMenu; Chris@28: Chris@28: class TypingSelectWidget : public QWidget Chris@28: { Chris@30: Q_OBJECT Chris@30: Chris@28: public: Chris@28: TypingSelectWidget(QWidget *parent = 0); Chris@28: Chris@30: void addMatcher(Matcher *m) { m_matchers.push_back(m); } Chris@30: Chris@30: private slots: Chris@30: void textEdited(const QString &); Chris@41: void menuKeyPressed(QKeyEvent *); Chris@41: void menuItemSelected(QString); Chris@28: Chris@28: private: Chris@28: QList m_matchers; Chris@30: QLineEdit *m_editor; Chris@41: TypingSelectListMenu *m_menu; Chris@41: QList m_listEntries; Chris@28: }; Chris@28: Chris@41: class TypingSelectListMenu : public QMenu Chris@41: { Chris@41: Q_OBJECT Chris@41: Chris@41: public: Chris@41: TypingSelectListMenu(QWidget *parent = 0) : QMenu(parent) { } Chris@41: Chris@41: signals: Chris@41: void keyPressed(QKeyEvent *e); Chris@41: void itemSelected(QString); Chris@41: Chris@41: protected: Chris@41: void keyPressEvent(QKeyEvent *e); Chris@41: void keyReleaseEvent(QKeyEvent *e); Chris@41: }; Chris@41: Chris@41: Chris@28: } Chris@28: Chris@28: #endif Chris@28: Chris@28: