korganizer

alarmdialog.h

00001 /*
00002     This file is part of the KDE alarm daemon.
00003     Copyright (c) 2000 Cornelius Schumacher <schumacher@kde.org>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018 
00019     As a special exception, permission is given to link this program
00020     with any edition of TQt, and distribute the resulting executable,
00021     without including the source code for TQt in the source distribution.
00022 */
00023 #ifndef ALARMDIALOG_H
00024 #define ALARMDIALOG_H
00025 //
00026 // Alarm dialog.
00027 //
00028 #include <tqtimer.h>
00029 #include <tqdatetime.h>
00030 
00031 #include <kdialogbase.h>
00032 
00033 #include <libkcal/event.h>
00034 #include <libkcal/calendarresources.h>
00035 
00036 using namespace KCal;
00037 
00038 class AlarmListItem;
00039 class KOEventViewer;
00040 class KComboBox;
00041 class TDEListView;
00042 class TQSpinBox;
00043 class TQSplitter;
00044 
00045 class AlarmDialog : public KDialogBase {
00046   Q_OBJECT
00047   
00048   public:
00049     explicit AlarmDialog( CalendarResources *calendar, TQWidget *parent = 0, const char *name = 0 );
00050 
00051     ~AlarmDialog();
00052 
00053     void addIncidence( Incidence *incidence, const TQDateTime &reminderAt,
00054                        const TQString &displayText );
00055     void eventNotification();
00056 
00057   public slots:
00058 
00059     void slotOk();    // suspend
00060     void slotUser1(); // edit
00061     void slotUser2(); // dismiss all
00062     void slotUser3(); // dismiss selected
00063     void slotSave();
00064     void wakeUp();
00065     void show();
00066     void edit();
00067     void suspend();
00068     void suspendAll();
00069     void dismissAll();
00070     void dismissCurrent();
00071 
00076     void slotCalendarChanged();
00077 
00078   signals:
00079     void reminderCount( int count );
00080 
00081   private slots:
00082     void updateButtons();
00083     void showDetails();
00084 
00085   protected:
00086     void closeEvent( TQCloseEvent * );
00087 
00088   private:
00089 
00090     static TQDateTime triggerDateForIncidence( Incidence *inc,
00091                                               const TQDateTime &reminderAt,
00092                                               TQString &displayStr );
00093 
00094     void readLayout();
00095     void writeLayout();
00096     AlarmListItem *searchByUid( const TQString &uid );
00097     bool ensureKorganizerRunning() const;
00098     void setTimer();
00099     int activeCount();
00100     TQValueList<AlarmListItem*> selectedItems() const;
00101 
00102     CalendarResources *mCalendar;
00103     TDEListView *mIncidenceListView;
00104     KOEventViewer *mDetailView;
00105 
00106     TQSpinBox *mSuspendSpin;
00107     TQSplitter *mSplitter;
00108     KComboBox *mSuspendUnit;
00109     TQTimer mSuspendTimer;
00110 };
00111 
00112 #endif