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 signals:
00140
void removeAgendaItem( KOAgendaItem* );
00141
void showAgendaItem( KOAgendaItem* );
00142
00143 public slots:
00144
void updateIcons();
00145
void select(
bool=true);
00146
void addAttendee(
QString);
00147
00148 protected:
00149
void dragEnterEvent(
QDragEnterEvent *e);
00150
void dropEvent(
QDropEvent *e);
00151
void paintEvent(
QPaintEvent *e);
00152
void paintFrame(
QPainter *p, const
QColor &color);
00153
void paintTodoIcon(
QPainter *p,
int &x,
int ft);
00157
void startMovePrivate();
00158
void resetMovePrivate();
00159
void endMovePrivate();
00160
00161
00162 private:
00163
int mCellXLeft, mCellXRight;
00164
int mCellYTop, mCellYBottom;
00165
int mSubCell;
00166
int mSubCells;
00167
00168 Incidence *mIncidence;
00169
QDate mDate;
00170 QString mLabelText;
00171
bool mIconAlarm, mIconRecur, mIconReadonly;
00172
bool mIconReply, mIconGroup, mIconOrganizer;
00173
00174
00175 MultiItemInfo* mMultiItemInfo;
00176 protected:
00177
00178 MultiItemInfo* mStartMoveInfo;
00179
00180 private:
00181 static
QToolTipGroup *mToolTipGroup;
00182
00183
bool mSelected;
00184
QPtrList<KOAgendaItem> mConflictItems;
00185 };
00186
00187 #endif