summaryrefslogtreecommitdiffstats
path: root/kalarm/sounddlg.h
diff options
context:
space:
mode:
Diffstat (limited to 'kalarm/sounddlg.h')
-rw-r--r--kalarm/sounddlg.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/kalarm/sounddlg.h b/kalarm/sounddlg.h
new file mode 100644
index 000000000..ee4273b5d
--- /dev/null
+++ b/kalarm/sounddlg.h
@@ -0,0 +1,97 @@
+/*
+ * sounddlg.h - sound file selection and configuration dialog
+ * Program: kalarm
+ * Copyright © 2005,2007,2008 by David Jarvie <djarvie@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SOUNDDLG_H
+#define SOUNDDLG_H
+
+#include <qframe.h>
+#include <qstring.h>
+#include <kdialogbase.h>
+
+class QHBox;
+class QPushButton;
+class KArtsDispatcher;
+namespace KDE { class PlayObject; }
+class LineEdit;
+class PushButton;
+class CheckBox;
+class SpinBox;
+class Slider;
+
+
+class SoundDlg : public KDialogBase
+{
+ Q_OBJECT
+ public:
+ SoundDlg(const QString& file, float volume, float fadeVolume, int fadeSeconds, bool repeat,
+ const QString& caption, QWidget* parent, const char* name = 0);
+ ~SoundDlg();
+ void setReadOnly(bool);
+ bool isReadOnly() const { return mReadOnly; }
+ QString getFile() const { return mFileName; }
+ bool getSettings(float& volume, float& fadeVolume, int& fadeSeconds) const;
+ QString defaultDir() const { return mDefaultDir; }
+
+ static QString i18n_SetVolume(); // plain text of Set volume checkbox
+ static QString i18n_v_SetVolume(); // text of Set volume checkbox, with 'V' shortcut
+ static QString i18n_Repeat(); // plain text of Repeat checkbox
+ static QString i18n_p_Repeat(); // text of Repeat checkbox, with 'P' shortcut
+
+ protected:
+ virtual void showEvent(QShowEvent*);
+ virtual void resizeEvent(QResizeEvent*);
+
+ protected slots:
+ virtual void slotOk();
+
+ private slots:
+ void slotPickFile();
+ void slotVolumeToggled(bool on);
+ void slotFadeToggled(bool on);
+ void playSound();
+ void checkAudioPlay();
+
+ private:
+ void stopPlay();
+ bool checkFile();
+
+ QPushButton* mFilePlay;
+ LineEdit* mFileEdit;
+ PushButton* mFileBrowseButton;
+ CheckBox* mRepeatCheckbox;
+ CheckBox* mVolumeCheckbox;
+ Slider* mVolumeSlider;
+ CheckBox* mFadeCheckbox;
+ QHBox* mFadeBox;
+ SpinBox* mFadeTime;
+ QHBox* mFadeVolumeBox;
+ Slider* mFadeSlider;
+ QString mDefaultDir; // current default directory for mFileEdit
+ QString mFileName;
+ bool mReadOnly;
+ // Sound file playing
+ KArtsDispatcher* mArtsDispatcher;
+ KDE::PlayObject* mPlayObject;
+ QTimer* mPlayTimer; // timer for playing the sound file
+ QString mLocalAudioFile; // local copy of audio file
+ bool mPlayStarted; // the sound file has started playing
+};
+
+#endif