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