korganizer

koeditorgeneralevent.h

00001 /*
00002     This file is part of KOrganizer.
00003     Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
00004     Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00019 
00020     As a special exception, permission is given to link this program
00021     with any edition of TQt, and distribute the resulting executable,
00022     without including the source code for TQt in the source distribution.
00023 */
00024 #ifndef _KOEDITORGENERALEVENT_H
00025 #define _KOEDITORGENERALEVENT_H
00026 
00027 #include "koeditorgeneral.h"
00028 #include <tqdatetime.h>
00029 
00030 class TQLabel;
00031 class KDateEdit;
00032 class KTimeEdit;
00033 class TQCheckBox;
00034 class TQComboBox;
00035 class TQBoxLayout;
00036 
00037 namespace KCal {
00038 class Event;
00039 }
00040 using namespace KCal;
00041 
00042 class KOEditorGeneralEvent : public KOEditorGeneral
00043 {
00044     Q_OBJECT
00045   
00046   public:
00047     KOEditorGeneralEvent (TQObject* parent=0,const char* name=0);
00048     virtual ~KOEditorGeneralEvent();
00049 
00050     void initTime(TQWidget *,TQBoxLayout *);
00051     void initClass(TQWidget *,TQBoxLayout *);
00052     void initInvitationBar( TQWidget* parent, TQBoxLayout *layout );
00053 
00054     void finishSetup();
00055 
00057     void setDefaults( const TQDateTime &from, const TQDateTime &to, bool allDay );
00062     void readEvent( Event *event, Calendar *calendar, const TQDate &date, bool tmpl = false );
00064     void writeEvent( Event * );
00065 
00067     bool validateInput();
00068 
00069     void updateRecurrenceSummary( Event *event );
00070 
00071     TQFrame* invitationBar() const { return mInvitationBar; }
00072 
00073   public slots:
00074     void setDateTimes( const TQDateTime &start, const TQDateTime &end );
00075     void setDuration();
00076 
00077   protected slots:
00078     void timeStuffDisable( bool disable );
00079     void associateTime( bool time );
00080 
00081     void startTimeChanged( TQTime );
00082     void startDateChanged( const TQDate& );
00083     void endTimeChanged( TQTime );
00084     void endDateChanged( const TQDate& );
00085 
00086     void emitDateTimeStr();
00087 
00088   signals:
00089     void allDayChanged(bool);
00090     void dateTimeStrChanged( const TQString & );
00091     void dateTimesChanged( const TQDateTime &start, const TQDateTime &end );
00092     void editRecurrence();
00093     void acceptInvitation();
00094     void declineInvitation();
00095 
00096   private:
00097     TQLabel                  *mStartDateLabel;
00098     TQLabel                  *mEndDateLabel;
00099     KDateEdit               *mStartDateEdit;
00100     KDateEdit               *mEndDateEdit;
00101     KTimeEdit               *mStartTimeEdit;
00102     KTimeEdit               *mEndTimeEdit;
00103     TQLabel                  *mDurationLabel;
00104     TQCheckBox               *mAlldayEventCheckbox;
00105     TQComboBox               *mFreeTimeCombo;
00106     TQFrame                  *mInvitationBar;
00107 
00108     // current start and end date and time
00109     TQDateTime mCurrStartDateTime;
00110     TQDateTime mCurrEndDateTime;
00111 };
00112 
00113 #endif