It has been a while since I last worked on Aesalon proper.
[aesalon.git] / visualizer / src / session / SessionDisplay.h
blob2be9ca8245d15692dea7a1026af9110d143aee3c
1 #ifndef SessionDisplay_H
2 #define SessionDisplay_H
4 #include <QWidget>
5 #include <QGridLayout>
6 #include <QMenu>
7 #include <QTimer>
8 #include <QMenuBar>
10 #include "module/ModuleMapper.h"
11 #include "SessionVisualization.h"
12 #include "SessionHeartbeat.h"
14 class Session;
16 class SessionDisplay : public QWidget { Q_OBJECT
17 public:
18 SessionDisplay(Session *session);
19 virtual ~SessionDisplay();
20 private:
21 ModuleMapper *m_moduleMapper;
22 QGridLayout *m_grid;
23 QMenu *m_contextMenu;
24 SessionVisualization *m_contextVisualization;
25 SessionHeartbeat *m_heartbeat;
26 Session *m_session;
27 QMenuBar *m_menuBar;
28 public:
29 ModuleMapper *moduleMapper() const { return m_moduleMapper; }
30 QGridLayout *grid() const { return m_grid; }
32 virtual void resizeEvent(QResizeEvent *event);
33 private:
34 SessionVisualization *newVisualization() const;
35 void setupMenuBar();
36 public slots:
37 void addColumn();
38 void addRow();
40 void setWidget(QPoint which, QWidget *widget);
41 private slots:
42 void displayContextMenu(QPoint globalPosition, SessionVisualization *visualization);
43 void setVisualizationModule(SessionVisualization *visualization, int moduleID);
44 void setVisualizationModule(QAction *action);
46 void showSettings();
47 signals:
48 void updateVisualizations();
51 #endif