Fix creation of output file name
[skype-call-recorder.git] / gui.h
blob78fbd61f54c78c4e7aea82cc398b14ed112c1b09
1 /*
2 Skype Call Recorder
3 Copyright 2008 - 2009 by jlh (jlh at gmx dot ch)
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2 of the License, version 3 of
8 the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 The GNU General Public License version 2 is included with the source of
20 this program under the file name COPYING. You can also get a copy on
21 http://www.fsf.org/
24 #ifndef GUI_H
25 #define GUI_H
27 #include <QDialog>
28 #include <QList>
29 #include <QStyle>
30 #include <QString>
32 #include "common.h"
34 class QWidget;
35 class QCheckBox;
36 class QHBoxLayout;
37 class QVBoxLayout;
38 class QPushButton;
40 // base dialog with a pixmap, a vbox and an hbox
42 class IconDialogBase : public QDialog {
43 protected:
44 IconDialogBase(const QString &, QStyle::StandardPixmap);
46 protected:
47 QHBoxLayout *hbox;
48 QVBoxLayout *vbox;
50 DISABLE_COPY_AND_ASSIGNMENT(IconDialogBase);
53 // recording confirmation dialog for calls
55 class RecordConfirmationDialog : public IconDialogBase {
56 Q_OBJECT
57 public:
58 RecordConfirmationDialog(const QString &, const QString &);
60 signals:
61 void yes();
62 void no();
64 private slots:
65 void yesClicked();
66 void noClicked();
67 void enableWidgets();
69 private:
70 QString skypeName;
71 QList<QWidget *> widgets;
72 QCheckBox *remember;
74 DISABLE_COPY_AND_ASSIGNMENT(RecordConfirmationDialog);
77 // information dialog about legality of recording calls
79 class LegalInformationDialog: public IconDialogBase {
80 public:
81 LegalInformationDialog();
83 DISABLE_COPY_AND_ASSIGNMENT(LegalInformationDialog);
86 // about dialog
88 class AboutDialog : public QDialog {
89 public:
90 AboutDialog();
92 DISABLE_COPY_AND_ASSIGNMENT(AboutDialog);
95 // first run dialog
97 class FirstRunDialog : public IconDialogBase {
98 public:
99 FirstRunDialog();
101 DISABLE_COPY_AND_ASSIGNMENT(FirstRunDialog);
104 // message about missing system tray
106 class NoSystemTrayDialog : public IconDialogBase {
107 Q_OBJECT
108 public:
109 NoSystemTrayDialog();
111 signals:
112 void useWindowedModeNow();
113 void useWindowedModeAlways();
114 void doQuit();
116 private slots:
117 void buttonAlways();
118 void buttonYes();
119 void buttonDoQuit();
121 private:
122 DISABLE_COPY_AND_ASSIGNMENT(NoSystemTrayDialog);
125 // main window for system tray-less operation
127 class MainWindow : public QWidget {
128 Q_OBJECT
129 public:
130 MainWindow(QWidget * = NULL);
131 void setColor(bool);
133 signals:
134 void activate();
136 private:
137 QPushButton *button;
139 DISABLE_COPY_AND_ASSIGNMENT(MainWindow);
142 #endif