00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KOTIMELINEVIEW_H
00025 #define KOTIMELINEVIEW_H
00026
00027 #include <koeventview.h>
00028 #include <kdgantt/KDGanttView.h>
00029 #include <tqmap.h>
00030
00031 class KDGanttViewItem;
00032
00033 namespace KCal {
00034 class ResourceCalendar;
00035 }
00036
00037 namespace KOrg {
00038 class TimelineItem;
00039 }
00040
00044 class KOTimelineView : public KOEventView
00045 {
00046 Q_OBJECT
00047 TQ_OBJECT
00048 public:
00049 KOTimelineView(Calendar *calendar, TQWidget *parent = 0,
00050 const char *name = 0);
00051 ~KOTimelineView();
00052
00053 virtual KCal::ListBase<KCal::Incidence> selectedIncidences();
00054 virtual KCal::DateList selectedIncidenceDates();
00055 virtual int currentDateCount();
00056 virtual void showDates(const TQDate&, const TQDate&);
00057 virtual void showIncidences(const KCal::ListBase<KCal::Incidence>&, const TQDate &date);
00058 virtual void updateView();
00059 virtual void changeIncidenceDisplay(KCal::Incidence* incidence, int mode);
00060 virtual int maxDatesHint() { return 0; }
00061
00062 virtual bool eventDurationHint(TQDateTime &startDt, TQDateTime &endDt, bool &allDay);
00063
00064 private:
00065 KOrg::TimelineItem* calendarItemForIncidence( KCal::Incidence* incidence );
00066 void insertIncidence( KCal::Incidence* incidence );
00067 void insertIncidence( KCal::Incidence* incidence, const TQDate &day );
00068 void removeIncidence( KCal::Incidence* incidence );
00069
00070 private slots:
00071 void itemSelected( KDGanttViewItem *item );
00072 void itemDoubleClicked( KDGanttViewItem *item );
00073 void itemRightClicked( KDGanttViewItem *item );
00074 void itemMoved( KDGanttViewItem *item );
00075 void overscale( KDGanttView::Scale scale );
00076 void newEventWithHint( const TQDateTime & );
00077
00078 private:
00079 KDGanttView* mGantt;
00080 TQMap<KCal::ResourceCalendar*, TQMap<TQString, KOrg::TimelineItem*> > mCalendarItemMap;
00081 KOEventPopupMenu *mEventPopup;
00082 TQDate mStartDate, mEndDate;
00083 TQDateTime mHintDate;
00084 };
00085
00086 #endif