]> code.delx.au - virtualtones/blob - mainwin.h
Few polish fixes
[virtualtones] / mainwin.h
1 // mainwin.h - Displays the MIDI keyboard and instrument selector
2 // Written by James Bunton <james@delx.cjb.net>
3 // Licensed under the GPL, see COPYING.txt for more details
4
5
6
7 #ifndef MAINWIN_H
8 #define MAINWIN_H
9
10 #include <qapplication.h>
11 #include <qmessagebox.h>
12 #include <qcombobox.h>
13 #include <qlabel.h>
14 #include <qpushbutton.h>
15 #include <qlayout.h>
16 #include <qfiledialog.h>
17 #include <qtooltip.h>
18
19 #include <stdlib.h>
20
21 #include "instrument.h"
22 #include "stringinstrument.h"
23 #include "pianoinstrument.h"
24 #include "midiengine.h"
25
26
27
28
29 class MainWin : public QWidget
30 {
31 Q_OBJECT
32
33 public:
34 MainWin();
35 ~MainWin();
36
37 public slots:
38 void interfaceSelectionSlot(int);
39 void setupRecord();
40 void finishRecord();
41
42 private:
43 // Functions
44 void instrumentLayouts();
45 void fillSounds();
46
47 // Widgets
48 Instrument *instrument;
49 QComboBox *soundSelection;
50 QComboBox *interfaceSelection;
51 QComboBox *octaveSelection;
52 QLabel *soundSelectionLabel;
53 QLabel *interfaceSelectionLabel;
54 QLabel *octaveSelectionLabel;
55 QLabel *aboutLabel;
56 QPushButton *helpBtn;
57 QPushButton *quitBtn;
58 QPushButton *recordBtn;
59 QPushButton *stopBtn;
60
61 // Layouts
62 QVBoxLayout *soundSelectionLayout;
63 QVBoxLayout *interfaceSelectionLayout;
64 QVBoxLayout *octaveSelectionLayout;
65 QVBoxLayout *midiBtnLayout;
66 QVBoxLayout *buttonsLayout;
67 QHBoxLayout *optionsLayout;
68 QVBoxLayout *vLayout;
69
70 MidiReal *midi;
71 MidiFile *midiFile;
72 };
73
74
75
76 #endif