00001
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 KODAYMATRIX_H
00026
#define KODAYMATRIX_H
00027
00028
#include <libkcal/calendar.h>
00029
00030
#include <qstring.h>
00031
#include <qframe.h>
00032
#include <qcolor.h>
00033
#include <qpen.h>
00034
#include <qdatetime.h>
00035
#include <qtooltip.h>
00036
#include <qmap.h>
00037
00038
class QDragEnterEvent;
00039
class QDragMoveEvent;
00040
class QDragLeaveEvent;
00041
class QDropEvent;
00042
00043
class KODayMatrix;
00044
00045
using namespace KCal;
00046
00047
00053 class DynamicTip :
public QToolTip
00054 {
00055
public:
00061
DynamicTip( QWidget *parent );
00062
00063
protected:
00070
void maybeTip(
const QPoint &pos );
00071
00072
private:
00074
KODayMatrix *mMatrix;
00075 };
00076
00102 class KODayMatrix:
public QFrame
00103 {
00104 Q_OBJECT
00105
public:
00115
KODayMatrix( QWidget *parent, QDate date,
const char *name );
00116
00119
~KODayMatrix();
00120
00125
void setCalendar( Calendar * );
00126
00134
void updateView( QDate actdate );
00135
00140
void updateEvents();
00141
00145
const QDate&
getDate(
int offset );
00146
00150 QString
getHolidayLabel(
int offset );
00151
00155
void addSelectedDaysTo( DateList & );
00156
00161
void setSelectedDaysFrom(
const QDate &start,
const QDate &end );
00162
00163
00167 bool isTodayVisible()
const {
return today >= 0; }
00168
00175 bool isBeginningOfMonth()
const {
return today <= 8; }
00176
bool isEndOfMonth()
const {
return today >= 27; }
00177
00178
public slots:
00182
void updateView();
00183
00188
void recalculateToday();
00189
00190
00191
00192
00193
00194 signals:
00200
void selected(
const KCal::DateList &daylist );
00201
00206
void eventDropped( Event *event );
00212
void eventDroppedMove( Event *oldevent, Event *newevent );
00218
void todoDroppedMove( Todo *oldtodo, Todo *newtodo );
00223
void todoDropped( Todo *todo );
00224
00225
protected:
00226
void paintEvent( QPaintEvent *ev );
00227
00228
void mousePressEvent( QMouseEvent *e );
00229
00230
void mouseReleaseEvent( QMouseEvent *e );
00231
00232
void mouseMoveEvent( QMouseEvent *e );
00233
00234
void dragEnterEvent( QDragEnterEvent * );
00235
00236
void dragMoveEvent( QDragMoveEvent * );
00237
00238
void dragLeaveEvent( QDragLeaveEvent * );
00239
00240
void dropEvent( QDropEvent * );
00241
00242
void resizeEvent( QResizeEvent * );
00243
00244
private:
00250
int getDayIndexFrom(
int x,
int y );
00251
00257 QColor getShadedColor( QColor color );
00258
00261
static const int NUMDAYS;
00262
00264 Calendar *mCalendar;
00265
00267 QDate startdate;
00268
00270 QString *daylbls;
00271
00274 QDate *days;
00275
00279
int *mEvents;
00280
00282 QMap<int,QString> mHolidays;
00283
00285
int today;
00286
00289
int mSelInit;
00290
00293
static const int NOSELECTION;
00294
00296
int mSelStart;
00297
00299
int mSelEnd;
00300
00302
DynamicTip* mToolTip;
00303
00304
00306 QColor mDefaultBackColor;
00307
00309 QColor mDefaultTextColor;
00310
00312 QColor mDefaultTextColorShaded;
00313
00315 QColor mHolidayColorShaded;
00316
00318 QColor mSelectedDaysColor;
00319
00321
int mTodayMarginWidth;
00322
00326 QRect daysize;
00327 };
00328
00329
#endif