00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef ALARMLISTVIEW_H
00022 #define ALARMLISTVIEW_H
00023
00024 #include "kalarm.h"
00025 #include "eventlistviewbase.h"
00026
00027 class AlarmListView;
00028 class AlarmListTooltip;
00029
00030
00031 class AlarmListViewItem : public EventListViewItemBase
00032 {
00033 public:
00034 AlarmListViewItem(AlarmListView* parent, const KAEvent&, const TQDateTime& now);
00035 TQTime showTimeToAlarm(bool show);
00036 void updateTimeToAlarm(const TQDateTime& now, bool forceDisplay = false);
00037 virtual void paintCell(TQPainter*, const TQColorGroup&, int column, int width, int align);
00038 AlarmListView* alarmListView() const { return (AlarmListView*)listView(); }
00039 bool messageTruncated() const { return mMessageTruncated; }
00040 int messageColWidthNeeded() const { return mMessageColWidth; }
00041 static int typeIconWidth(AlarmListView*);
00042
00043 AlarmListViewItem* nextSibling() const { return (AlarmListViewItem*)TQListViewItem::nextSibling(); }
00044 virtual TQString key(int column, bool ascending) const;
00045 protected:
00046 virtual TQString lastColumnText() const { return alarmText(event()); }
00047 private:
00048 TQString alarmText(const KAEvent&) const;
00049 TQString alarmTimeText(const DateTime&) const;
00050 TQString timeToAlarmText(const TQDateTime& now) const;
00051
00052 static int mTimeHourPos;
00053 static int mDigitWidth;
00054 TQString mDateTimeOrder;
00055 TQString mRepeatOrder;
00056 TQString mColourOrder;
00057 TQString mTypeOrder;
00058 mutable int mMessageColWidth;
00059 mutable bool mMessageTruncated;
00060 bool mTimeToAlarmShown;
00061 };
00062
00063
00064 class AlarmListView : public EventListViewBase
00065 {
00066 Q_OBJECT
00067 TQ_OBJECT
00068 public:
00069 enum ColumnIndex {
00070 TIME_COLUMN, TIME_TO_COLUMN, REPEAT_COLUMN, COLOUR_COLUMN, TYPE_COLUMN, MESSAGE_COLUMN,
00071 COLUMN_COUNT
00072 };
00073
00074 AlarmListView(const TQValueList<int>& order, TQWidget* parent = 0, const char* name = 0);
00075 ~AlarmListView();
00076 void showExpired(bool show) { mShowExpired = show; }
00077 bool showingExpired() const { return mShowExpired; }
00078 bool showingTimeTo() const { return columnWidth(mColumn[TIME_TO_COLUMN]); }
00079 void selectTimeColumns(bool time, bool timeTo);
00080 void updateTimeToAlarms(bool forceDisplay = false);
00081 bool expired(AlarmListViewItem*) const;
00082 bool drawMessageInColour() const { return mDrawMessageInColour; }
00083 void setDrawMessageInColour(bool inColour) { mDrawMessageInColour = inColour; }
00084 TQValueList<int> columnOrder() const;
00085 int column(ColumnIndex i) const { return mColumn[i]; }
00086 static bool dragging() { return mDragging; }
00087
00088 static void addEvent(const KAEvent&, EventListViewBase*);
00089 static void modifyEvent(const KAEvent& e, EventListViewBase* selectionView)
00090 { EventListViewBase::modifyEvent(e.id(), e, mInstanceList, selectionView); }
00091 static void modifyEvent(const TQString& oldEventID, const KAEvent& newEvent, EventListViewBase* selectionView)
00092 { EventListViewBase::modifyEvent(oldEventID, newEvent, mInstanceList, selectionView); }
00093 static void deleteEvent(const TQString& eventID)
00094 { EventListViewBase::deleteEvent(eventID, mInstanceList); }
00095 static void undeleteEvent(const TQString& oldEventID, const KAEvent& event, EventListViewBase* selectionView)
00096 { EventListViewBase::modifyEvent(oldEventID, event, mInstanceList, selectionView); }
00097 AlarmListViewItem* getEntry(const TQString& eventID) { return (AlarmListViewItem*)EventListViewBase::getEntry(eventID); }
00098 AlarmListViewItem* currentItem() const { return (AlarmListViewItem*)EventListViewBase::currentItem(); }
00099 AlarmListViewItem* firstChild() const { return (AlarmListViewItem*)EventListViewBase::firstChild(); }
00100 AlarmListViewItem* selectedItem() const { return (AlarmListViewItem*)EventListViewBase::selectedItem(); }
00101 virtual void setSelected(TQListViewItem* item, bool selected) { EventListViewBase::setSelected(item, selected); }
00102 virtual void setSelected(AlarmListViewItem* item, bool selected) { EventListViewBase::setSelected(item, selected); }
00103 virtual InstanceList instances() { return mInstanceList; }
00104
00105 protected:
00106 virtual void populate();
00107 EventListViewItemBase* createItem(const KAEvent&);
00108 virtual TQString whatsThisText(int column) const;
00109 virtual bool shouldShowEvent(const KAEvent& e) const { return mShowExpired || !e.expired(); }
00110 AlarmListViewItem* addEntry(const KAEvent& e, bool setSize = false)
00111 { return addEntry(e, TQDateTime::currentDateTime(), setSize); }
00112 AlarmListViewItem* updateEntry(AlarmListViewItem* item, const KAEvent& newEvent, bool setSize = false)
00113 { return (AlarmListViewItem*)EventListViewBase::updateEntry(item, newEvent, setSize); }
00114 virtual void contentsMousePressEvent(TQMouseEvent*);
00115 virtual void contentsMouseMoveEvent(TQMouseEvent*);
00116 virtual void contentsMouseReleaseEvent(TQMouseEvent*);
00117
00118 private:
00119 AlarmListViewItem* addEntry(const KAEvent&, const TQDateTime& now, bool setSize = false, bool reselect = false);
00120
00121 static InstanceList mInstanceList;
00122 static bool mDragging;
00123 int mColumn[COLUMN_COUNT];
00124 int mTimeColumnHeaderWidth;
00125 int mTimeToColumnHeaderWidth;
00126 AlarmListTooltip* mTooltip;
00127 TQPoint mMousePressPos;
00128 bool mMousePressed;
00129 bool mDrawMessageInColour;
00130 bool mShowExpired;
00131 };
00132
00133 #endif // ALARMLISTVIEW_H
00134