kalarm
messagewin.hGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef MESSAGEWIN_H
00022 #define MESSAGEWIN_H
00023
00026 #include "mainwindowbase.h"
00027 #include "alarmevent.h"
00028
00029 class QPushButton;
00030 class KPushButton;
00031 class QLabel;
00032 class QTimer;
00033 class KWinModule;
00034 class AlarmTimeWidget;
00035 class DeferAlarmDlg;
00036 class KArtsDispatcher;
00037 namespace KDE { class PlayObject; }
00038
00042 class MessageWin : public MainWindowBase
00043 {
00044 Q_OBJECT
00045 public:
00046 MessageWin();
00047 MessageWin(const KAEvent&, const KAAlarm&, bool reschedule_event = true, bool allowDefer = true);
00048 MessageWin(const KAEvent&, const DateTime& alarmDateTime, const QStringList& errmsgs);
00049 ~MessageWin();
00050 void repeat(const KAAlarm&);
00051 void setRecreating() { mRecreating = true; }
00052 const DateTime& dateTime() { return mDateTime; }
00053 KAAlarm::Type alarmType() const { return mAlarmType; }
00054 bool hasDefer() const { return !!mDeferButton; }
00055 bool isValid() const { return !mInvalid; }
00056 virtual void show();
00057 virtual QSize sizeHint() const;
00058 static int instanceCount() { return mWindowList.count(); }
00059 static MessageWin* findEvent(const QString& eventID);
00060
00061 protected:
00062 virtual void showEvent(QShowEvent*);
00063 virtual void moveEvent(QMoveEvent*);
00064 virtual void resizeEvent(QResizeEvent*);
00065 virtual void closeEvent(QCloseEvent*);
00066 virtual void saveProperties(KConfig*);
00067 virtual void readProperties(KConfig*);
00068
00069 private slots:
00070 void slotEdit();
00071 void slotDefer();
00072 void checkDeferralLimit();
00073 void displayMainWindow();
00074 void slotShowKMailMessage();
00075 void slotSpeak();
00076 void slotPlayAudio();
00077 void checkAudioPlay();
00078 void stopPlay();
00079 void slotFade();
00080 void enableButtons();
00081 void setRemainingTextDay();
00082 void setRemainingTextMinute();
00083 void setMaxSize();
00084
00085 private:
00086 void initView();
00087 #ifndef WITHOUT_ARTS
00088 void initAudio(bool firstTime);
00089 int getKMixVolume();
00090 void setKMixVolume(int percent);
00091 #endif
00092 void displayComplete();
00093 void playAudio();
00094 void setDeferralLimit(const KAEvent&);
00095
00096 static QValueList<MessageWin*> mWindowList;
00097
00098 QString mMessage;
00099 QFont mFont;
00100 QColor mBgColour, mFgColour;
00101 DateTime mDateTime;
00102 QDateTime mCloseTime;
00103 QString mEventID;
00104 QString mAudioFile;
00105 float mVolume;
00106 float mFadeVolume;
00107 int mFadeSeconds;
00108 int mDefaultDeferMinutes;
00109 KAAlarm::Type mAlarmType;
00110 KAEvent::Action mAction;
00111 unsigned long mKMailSerialNumber;
00112 QStringList mErrorMsgs;
00113 int mRestoreHeight;
00114 bool mAudioRepeat;
00115 bool mConfirmAck;
00116 bool mShowEdit;
00117 bool mNoDefer;
00118 bool mInvalid;
00119
00120 KArtsDispatcher* mArtsDispatcher;
00121 KDE::PlayObject* mPlayObject;
00122 QCString mKMixName;
00123 QString mKMixError;
00124 QTimer* mPlayTimer;
00125 QTimer* mFadeTimer;
00126 float mOldVolume;
00127 QString mLocalAudioFile;
00128 QTime mAudioFileStart;
00129 int mAudioFileLoadSecs;
00130 bool mPlayedOnce;
00131 bool mPlayed;
00132
00133 KAEvent mEvent;
00134 QLabel* mRemainingText;
00135 KPushButton* mOkButton;
00136 QPushButton* mEditButton;
00137 QPushButton* mDeferButton;
00138 QPushButton* mSilenceButton;
00139 QPushButton* mKAlarmButton;
00140 QPushButton* mKMailButton;
00141 DeferAlarmDlg* mDeferDlg;
00142 QDateTime mDeferLimit;
00143 mutable KWinModule* mWinModule;
00144 int mFlags;
00145 int mLateCancel;
00146 int mButtonDelay;
00147 bool mErrorWindow;
00148 bool mNoPostAction;
00149 bool mRecreating;
00150 bool mBeep;
00151 bool mSpeak;
00152 bool mRescheduleEvent;
00153 bool mShown;
00154 bool mPositioning;
00155 bool mNoCloseConfirm;
00156 bool mUsingKMix;
00157 };
00158
00159 #endif // MESSAGEWIN_H
|