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 <tqdatetime.h>
00031
00032 class TQToolTipGroup;
00033 class TQDragEnterEvent;
00034 class TQDropEvent;
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 TQWidget, public KOrg::CellItem
00076 {
00077 Q_OBJECT
00078 TQ_OBJECT
00079 public:
00080 KOAgendaItem( Calendar *calendar, Incidence *incidence, const TQDate &qd,
00081 TQWidget *parent,
00082 int itemPos, int itemCount,
00083 const char *name = 0, WFlags f = 0 );
00084
00085 int cellXLeft() const { return mCellXLeft; }
00086 int cellXRight() const { return mCellXRight; }
00087 int cellYTop() const { return mCellYTop; }
00088 int cellYBottom() const { return mCellYBottom; }
00089 int cellHeight() const;
00090 int cellWidth() const;
00091
00092 int itemPos() const { return mItemPos; }
00093 int itemCount() const { return mItemCount; }
00094
00095 void setCellXY(int X, int YTop, int YBottom);
00096 void setCellY(int YTop, int YBottom);
00097 void setCellX(int XLeft, int XRight);
00098 void setCellXRight(int xright);
00099
00101 void startMove();
00103 void resetMove();
00105 void endMove();
00106
00107 void moveRelative(int dx,int dy);
00108 void expandTop(int dy);
00109 void expandBottom(int dy);
00110 void expandLeft(int dx);
00111 void expandRight(int dx);
00112
00113 bool isMultiItem();
00114 KOAgendaItem *prevMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mPrevMultiItem):0; }
00115 KOAgendaItem *nextMoveItem() const { return (mStartMoveInfo)?(mStartMoveInfo->mNextMultiItem):0; }
00116 MultiItemInfo *moveInfo() const { return mStartMoveInfo; }
00117 void setMultiItem(KOAgendaItem *first,KOAgendaItem *prev,
00118 KOAgendaItem *next, KOAgendaItem *last);
00119 KOAgendaItem *prependMoveItem(KOAgendaItem*);
00120 KOAgendaItem *appendMoveItem(KOAgendaItem*);
00121 KOAgendaItem *removeMoveItem(KOAgendaItem*);
00122 KOAgendaItem *firstMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mFirstMultiItem):0; }
00123 KOAgendaItem *prevMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mPrevMultiItem):0; }
00124 KOAgendaItem *nextMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mNextMultiItem):0; }
00125 KOAgendaItem *lastMultiItem() const { return (mMultiItemInfo)?(mMultiItemInfo->mLastMultiItem):0; }
00126
00127 bool dissociateFromMultiItem();
00128
00129 bool setIncidence( Incidence * );
00130 Incidence *incidence() const { return mIncidence; }
00131 TQDate itemDate() { return mDate; }
00132
00134 void setItemDate( const TQDate &qd );
00135
00136 void setText ( const TQString & text ) { mLabelText = text; }
00137 TQString text () { return mLabelText; }
00138
00139 static TQToolTipGroup *toolTipGroup();
00140
00141 TQPtrList<KOAgendaItem> conflictItems();
00142 void setConflictItems(TQPtrList<KOAgendaItem>);
00143 void addConflictItem(KOAgendaItem *ci);
00144
00145 TQString label() const;
00146
00147 bool overlaps( KOrg::CellItem * ) const;
00148
00149 void setResourceColor( const TQColor& color ) { mResourceColor = color; }
00150 TQColor resourceColor() {return mResourceColor;}
00151 signals:
00152 void removeAgendaItem( KOAgendaItem* );
00153 void showAgendaItem( KOAgendaItem* );
00154
00155 public slots:
00156 void updateIcons();
00157 void select(bool=true);
00158 void addAttendee( const TQString & );
00159
00160 protected:
00161 void dragEnterEvent(TQDragEnterEvent *e);
00162 void dropEvent(TQDropEvent *e);
00163 void paintEvent(TQPaintEvent *e);
00164 void paintFrame(TQPainter *p, const TQColor &color);
00165 void paintEventIcon(TQPainter *p, int &x, int ft);
00166 void paintTodoIcon(TQPainter *p, int &x, int ft);
00167 void paintAlarmIcon(TQPainter *p, int &x, int ft);
00168
00169
00170 void paintIcons(TQPainter *p, int &x, int ft);
00171
00175 void startMovePrivate();
00176 void resetMovePrivate();
00177 void endMovePrivate();
00178
00179
00180 private:
00181 int mCellXLeft, mCellXRight;
00182 int mCellYTop, mCellYBottom;
00183
00184 Calendar *mCalendar;
00185 Incidence *mIncidence;
00186 TQDate mDate;
00187 TQString mLabelText;
00188 bool mIconAlarm, mIconRecur, mIconReadonly;
00189 bool mIconReply, mIconGroup, mIconGroupTentative;
00190 bool mIconOrganizer, mSpecialEvent;
00191
00192
00193
00194 int mItemPos;
00195 int mItemCount;
00196
00197
00198 MultiItemInfo* mMultiItemInfo;
00199 protected:
00200
00201 MultiItemInfo* mStartMoveInfo;
00202
00203 TQColor mResourceColor;
00204 private:
00205 static TQToolTipGroup *mToolTipGroup;
00206
00207 bool mSelected;
00208 TQPtrList<KOAgendaItem> mConflictItems;
00209
00210 static TQPixmap *alarmPxmp;
00211 static TQPixmap *recurPxmp;
00212 static TQPixmap *readonlyPxmp;
00213 static TQPixmap *replyPxmp;
00214 static TQPixmap *groupPxmp;
00215 static TQPixmap *groupPxmpTentative;
00216 static TQPixmap *organizerPxmp;
00217 };
00218
00219 #endif
|