koagendaitem.h
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 KOAGENDAITEM_H
00025 #define KOAGENDAITEM_H
00026
00027 #include "cellitem.h"
00028
00029 #include <qdatetime.h>
00030
00031 class QToolTipGroup;
00032 class QDragEnterEvent;
00033 class QDropEvent;
00034
00035 namespace KCal {
00036 class Incidence;
00037 }
00038 using namespace KCal;
00039 class KOAgendaItem;
00040
00041 struct MultiItemInfo
00042 {
00043 int mStartCellXLeft, mStartCellXRight;
00044 int mStartCellYTop, mStartCellYBottom;
00045 KOAgendaItem *mFirstMultiItem;
00046 KOAgendaItem *mPrevMultiItem;
00047 KOAgendaItem *mNextMultiItem;
00048 KOAgendaItem *mLastMultiItem;
00049 };
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 class KOAgendaItem : public QWidget, public KOrg::CellItem
00074 {
00075 Q_OBJECT
00076 public:
00077 KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent, const char *name=0,
00078 WFlags f=0 );
00079
00080 int cellXLeft() const { return mCellXLeft; }
00081 int cellXRight() const { return mCellXRight; }
00082 int cellYTop() const { return mCellYTop; }
00083 int cellYBottom() const { return mCellYBottom; }
00084 int cellHeight() const;
00085 int cellWidth() const;
00086
00087 void setCellXY(int X, int YTop, int YBottom);
00088 void setCellY(int YTop, int YBottom);
00089 void setCellX(int XLeft, int XRight);
00090 void setCellXRight(int xright);
00091
00093 void startMove();
00095 void resetMove();
00097 void endMove();
00098
00099 void moveRelative(int dx,int dy);
00100 void expandTop(int dy);
00101 void expandBottom(int dy);
00102 void expandLeft(int dx);
00103 void expandRight(int dx);
00104
00105 bool isMultiItem();
00106 KOAgendaItem *prevMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mPrevMultiItem):0; }
00107 KOAgendaItem *nextMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mNextMultiItem):0; }
00108 MultiItemInfo *moveInfo() const { return mStartMoveInfo; }
00109 void setMultiItem(KOAgendaItem *first,KOAgendaItem *prev,
00110 KOAgendaItem *next, KOAgendaItem *last);
00111 KOAgendaItem *prependMoveItem(KOAgendaItem*);
00112 KOAgendaItem *appendMoveItem(KOAgendaItem*);
00113 KOAgendaItem *removeMoveItem(KOAgendaItem*);
00114 KOAgendaItem *firstMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mFirstMultiItem):0; }
00115 KOAgendaItem *prevMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mPrevMultiItem):0; }
00116 KOAgendaItem *nextMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mNextMultiItem):0; }
00117 KOAgendaItem *lastMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mLastMultiItem):0; }
00118
00119 bool setIncidence( Incidence * );
00120 Incidence *incidence() const { return mIncidence; }
00121 QDate itemDate() { return mDate; }
00122
00124 void setItemDate(QDate qd);
00125
00126 void setText ( const QString & text ) { mLabelText = text; }
00127 QString text () { return mLabelText; }
00128
00129 static QToolTipGroup *toolTipGroup();
00130
00131 QPtrList<KOAgendaItem> conflictItems();
00132 void setConflictItems(QPtrList<KOAgendaItem>);
00133 void addConflictItem(KOAgendaItem *ci);
00134
00135 QString label() const;
00136
00137 bool overlaps( KOrg::CellItem * ) const;
00138
00139 void setResourceColor( const QColor& color ) { mResourceColor = color; }
00140 QColor resourceColor() {return mResourceColor;}
00141 signals:
00142 void removeAgendaItem( KOAgendaItem* );
00143 void showAgendaItem( KOAgendaItem* );
00144
00145 public slots:
00146 void updateIcons();
00147 void select(bool=true);
00148 void addAttendee(QString);
00149
00150 protected:
00151 void dragEnterEvent(QDragEnterEvent *e);
00152 void dropEvent(QDropEvent *e);
00153 void paintEvent(QPaintEvent *e);
00154 void paintFrame(QPainter *p, const QColor &color);
00155 void paintTodoIcon(QPainter *p, int &x, int ft);
00159 void startMovePrivate();
00160 void resetMovePrivate();
00161 void endMovePrivate();
00162
00163
00164 private:
00165 int mCellXLeft, mCellXRight;
00166 int mCellYTop, mCellYBottom;
00167 int mSubCell;
00168 int mSubCells;
00169
00170 Incidence *mIncidence;
00171 QDate mDate;
00172 QString mLabelText;
00173 bool mIconAlarm, mIconRecur, mIconReadonly;
00174 bool mIconReply, mIconGroup, mIconOrganizer;
00175
00176
00177 MultiItemInfo* mMultiItemInfo;
00178 protected:
00179
00180 MultiItemInfo* mStartMoveInfo;
00181
00182 QColor mResourceColor;
00183 private:
00184 static QToolTipGroup *mToolTipGroup;
00185
00186 bool mSelected;
00187 QPtrList<KOAgendaItem> mConflictItems;
00188 };
00189
00190 #endif
This file is part of the documentation for korganizer Library Version 3.3.2.