To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / widgets / TypingSelectWidget.h

History | View | Annotate | Download (1.19 KB)

1
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
2

    
3
#ifndef _TYPING_SELECT_WIDGET_H_
4
#define _TYPING_SELECT_WIDGET_H_
5

    
6
#include <QWidget>
7
#include <QList>
8
#include <QLabel>
9
#include <QMenu>
10
#include <QMouseEvent>
11
#include <QShortcut>
12

    
13
class QLineEdit;
14
class QListWidget;
15
class QGridLayout;
16
class QFrame;
17

    
18

    
19
namespace ClassicalData
20
{
21

    
22
class Matcher;
23
class TypingSelectListEntry;
24
class TypingSelectListMenu;
25

    
26
class TypingSelectWidget : public QWidget
27
{
28
    Q_OBJECT
29

    
30
public:
31
    TypingSelectWidget(QWidget *parent = 0);
32
    
33
    void addMatcher(Matcher *m) { m_matchers.push_back(m); }
34

    
35
private slots:
36
    void textEdited(const QString &);
37
    void menuKeyPressed(QKeyEvent *);
38
    void menuItemSelected(QString);
39

    
40
private:
41
    QList<Matcher *> m_matchers;
42
    QLineEdit *m_editor;
43
    TypingSelectListMenu *m_menu;
44
    QList<TypingSelectListEntry *> m_listEntries;
45
};
46

    
47
class TypingSelectListMenu : public QMenu
48
{
49
    Q_OBJECT
50
    
51
public:
52
    TypingSelectListMenu(QWidget *parent = 0) : QMenu(parent) { }
53

    
54
signals:
55
    void keyPressed(QKeyEvent *e);
56
    void itemSelected(QString);
57

    
58
protected:
59
    void keyPressEvent(QKeyEvent *e);
60
    void keyReleaseEvent(QKeyEvent *e);
61
};
62
    
63

    
64
}
65

    
66
#endif
67

    
68