00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _KOLISTVIEW_H
00027 #define _KOLISTVIEW_H
00028
00029 #include <tqdict.h>
00030 #include <tqmap.h>
00031 #include <tqtooltip.h>
00032
00033 #include <libkcal/incidence.h>
00034
00035 #include "koeventview.h"
00036 #include "customlistviewitem.h"
00037
00038 using namespace KCal;
00039
00040 typedef CustomListViewItem<Incidence *> KOListViewItem;
00041
00042 class KOListView;
00043
00044 class KOListViewToolTip : public TQToolTip
00045 {
00046 public:
00047 KOListViewToolTip ( TQWidget* parent, Calendar *calendar, KListView* lv );
00048
00049 protected:
00050 void maybeTip( const TQPoint &pos );
00051
00052 private:
00053 Calendar *mCalendar;
00054 KListView* eventlist;
00055 };
00056
00057
00068 class KOListView : public KOEventView
00069 {
00070 Q_OBJECT
00071 TQ_OBJECT
00072 public:
00073 explicit KOListView( Calendar *calendar,
00074 TQWidget *parent = 0,
00075 const char *name = 0,
00076 bool nonInteractive = false );
00077 ~KOListView();
00078
00079 virtual int maxDatesHint();
00080 virtual int currentDateCount();
00081 virtual Incidence::List selectedIncidences();
00082 virtual DateList selectedIncidenceDates();
00083
00084 void showDates( bool show );
00085
00086
00087 void showAll();
00088
00089 void readSettings(KConfig *config);
00090 void writeSettings(KConfig *config);
00091
00092 void clear();
00093 TQSize sizeHint() const;
00094
00095 public slots:
00096 virtual void updateView();
00097 virtual void showDates( const TQDate &start, const TQDate &end );
00098 virtual void showIncidences( const Incidence::List &incidenceList, const TQDate &date );
00099
00100 void clearSelection();
00101
00102 void showDates();
00103 void hideDates();
00104
00105 void changeIncidenceDisplay(Incidence *, int);
00106
00107 void defaultItemAction(TQListViewItem *item);
00108 void popupMenu(TQListViewItem *item,const TQPoint &,int);
00109
00110 protected slots:
00111 void processSelectionChange();
00112
00113 protected:
00114 void addIncidences(const Incidence::List &, const TQDate &date);
00115 void addIncidence(Incidence *, const TQDate &date);
00116 KOListViewItem *getItemForIncidence(Incidence *incidence);
00117
00118 private:
00119 class ListItemVisitor;
00120 KListView *mListView;
00121 KOEventPopupMenu *mPopupMenu;
00122 KOListViewItem *mActiveItem;
00123 TQDict<Incidence> mUidDict;
00124 TQMap<TQString, TQDate>mDateList;
00125 DateList mSelectedDates;
00126
00127
00128 bool mIsNonInteractive;
00129 };
00130
00131 #endif