korganizer
koagendaitem.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef KOAGENDAITEM_H
00026 #define KOAGENDAITEM_H
00027
00028 #include "cellitem.h"
00029
00030 #include <qdatetime.h>
00031
00032 class QToolTipGroup;
00033 class QDragEnterEvent;
00034 class QDropEvent;
00035
00036 namespace KCal {
00037 class Incidence;
00038 }
00039 using namespace KCal;
00040 class KOAgendaItem;
00041
00042 struct MultiItemInfo
00043 {
00044 int mStartCellXLeft, mStartCellXRight;
00045 int mStartCellYTop, mStartCellYBottom;
00046 KOAgendaItem *mFirstMultiItem;
00047 KOAgendaItem *mPrevMultiItem;
00048 KOAgendaItem *mNextMultiItem;
00049 KOAgendaItem *mLastMultiItem;
00050 };
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 class KOAgendaItem : public QWidget, public KOrg::CellItem
00075 {
00076 Q_OBJECT
00077 public:
00078 KOAgendaItem(Incidence *incidence, const QDate &qd, QWidget *parent, const char *name=0,
00079 WFlags f=0 );
00080
00081 int cellXLeft() const { return mCellXLeft; }
00082 int cellXRight() const { return mCellXRight; }
00083 int cellYTop() const { return mCellYTop; }
00084 int cellYBottom() const { return mCellYBottom; }
00085 int cellHeight() const;
00086 int cellWidth() const;
00087
00088 void setCellXY(int X, int YTop, int YBottom);
00089 void setCellY(int YTop, int YBottom);
00090 void setCellX(int XLeft, int XRight);
00091 void setCellXRight(int xright);
00092
00094 void startMove();
00096 void resetMove();
00098 void endMove();
00099
00100 void moveRelative(int dx,int dy);
00101 void expandTop(int dy);
00102 void expandBottom(int dy);
00103 void expandLeft(int dx);
00104 void expandRight(int dx);
00105
00106 bool isMultiItem();
00107 KOAgendaItem *prevMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mPrevMultiItem):0; }
00108 KOAgendaItem *nextMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mNextMultiItem):0; }
00109 MultiItemInfo *moveInfo() const { return mStartMoveInfo; }
00110 void setMultiItem(KOAgendaItem *first,KOAgendaItem *prev,
00111 KOAgendaItem *next, KOAgendaItem *last);
00112 KOAgendaItem *prependMoveItem(KOAgendaItem*);
00113 KOAgendaItem *appendMoveItem(KOAgendaItem*);
00114 KOAgendaItem *removeMoveItem(KOAgendaItem*);
00115 KOAgendaItem *firstMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mFirstMultiItem):0; }
00116 KOAgendaItem *prevMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mPrevMultiItem):0; }
00117 KOAgendaItem *nextMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mNextMultiItem):0; }
00118 KOAgendaItem *lastMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mLastMultiItem):0; }
00119
00120 bool dissociateFromMultiItem();
00121
00122 bool setIncidence( Incidence * );
00123 Incidence *incidence() const { return mIncidence; }
00124 QDate itemDate() { return mDate; }
00125
00127 void setItemDate( const QDate &qd );
00128
00129 void setText ( const QString & text ) { mLabelText = text; }
00130 QString text () { return mLabelText; }
00131
00132 static QToolTipGroup *toolTipGroup();
00133
00134 QPtrList<KOAgendaItem> conflictItems();
00135 void setConflictItems(QPtrList<KOAgendaItem>);
00136 void addConflictItem(KOAgendaItem *ci);
00137
00138 QString label() const;
00139
00140 bool overlaps( KOrg::CellItem * ) const;
00141
00142 void setResourceColor( const QColor& color ) { mResourceColor = color; }
00143 QColor resourceColor() {return mResourceColor;}
00144 signals:
00145 void removeAgendaItem( KOAgendaItem* );
00146 void showAgendaItem( KOAgendaItem* );
00147
00148 public slots:
00149 void updateIcons();
00150 void select(bool=true);
00151 void addAttendee( const QString & );
00152
00153 protected:
00154 void dragEnterEvent(QDragEnterEvent *e);
00155 void dropEvent(QDropEvent *e);
00156 void paintEvent(QPaintEvent *e);
00157 void paintFrame(QPainter *p, const QColor &color);
00158 void paintEventIcon(QPainter *p, int &x, int ft);
00159 void paintTodoIcon(QPainter *p, int &x, int ft);
00160
00161
00162 void paintIcons(QPainter *p, int &x, int ft);
00163
00167 void startMovePrivate();
00168 void resetMovePrivate();
00169 void endMovePrivate();
00170
00171
00172 private:
00173 int mCellXLeft, mCellXRight;
00174 int mCellYTop, mCellYBottom;
00175 int mSubCell;
00176 int mSubCells;
00177
00178 Incidence *mIncidence;
00179 QDate mDate;
00180 QString mLabelText;
00181 bool mIconAlarm, mIconRecur, mIconReadonly;
00182 bool mIconReply, mIconGroup, mIconGroupTentative;
00183 bool mIconOrganizer;
00184
00185
00186 MultiItemInfo* mMultiItemInfo;
00187 protected:
00188
00189 MultiItemInfo* mStartMoveInfo;
00190
00191 QColor mResourceColor;
00192 private:
00193 static QToolTipGroup *mToolTipGroup;
00194
00195 bool mSelected;
00196 QPtrList<KOAgendaItem> mConflictItems;
00197
00198 static QPixmap *alarmPxmp;
00199 static QPixmap *recurPxmp;
00200 static QPixmap *readonlyPxmp;
00201 static QPixmap *replyPxmp;
00202 static QPixmap *groupPxmp;
00203 static QPixmap *groupPxmpTentative;
00204 static QPixmap *organizerPxmp;
00205 };
00206
00207 #endif
|