view widgets/TypingSelectWidget.h @ 53:bcea875d8d2f tip

More build fixes
author Chris Cannam
date Thu, 16 Oct 2014 19:03:51 +0100
parents a42493a3baf8
children
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

#ifndef _TYPING_SELECT_WIDGET_H_
#define _TYPING_SELECT_WIDGET_H_

#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
{
    Q_OBJECT

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

private slots:
    void textEdited(const QString &);
    void menuKeyPressed(QKeyEvent *);
    void menuItemSelected(QString);

private:
    QList<Matcher *> m_matchers;
    QLineEdit *m_editor;
    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