00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef GUI_PHOTODESCEDIT_H
00012 #define GUI_PHOTODESCEDIT_H
00013
00014
00015
00016 class QGridLayout;
00017 class QLabel;
00018 class QTimer;
00019 class QImage;
00020 class QPixmap;
00021 class QTextEdit;
00022 class PhotoPreviewWidget;
00023 class TextEdit;
00024
00025
00026 #define STATIC 0
00027 #define APPEARING 1
00028 #define DISAPPEARING 2
00029 #define DISAPPEARED 3
00030
00031 #include <qwidget.h>
00032 #include <qdatetime.h>
00033 #include <qtextedit.h>
00034
00035 class PhotoDescEdit : public QWidget
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 PhotoDescEdit( PhotoPreviewWidget* ppw, bool useAnimation, QWidget *parent=0, const char* name=0);
00041 ~PhotoDescEdit();
00042
00043 public slots:
00044 void hide();
00045
00046 private slots:
00048 void animate();
00049
00052 void disappear();
00053
00054 private:
00056 bool useAnimation;
00057
00059 PhotoPreviewWidget* ppw;
00060
00062 QImage *imageLarge;
00063
00065 QImage* textRectangle;
00066
00067
00068 QPoint initPos, finalPos;
00069
00071 int left, right, top, bottom;
00072
00074 int idealTextSize;
00075
00078 QPixmap* backgroundImage;
00079
00081 int smallWidth, smallHeight;
00083
00084 QGridLayout* mainGrid;
00087
00089 QLabel* animationLabel;
00090
00092 QPixmap* buffer;
00095
00097 QGridLayout* staticGrid;
00098
00100 QWidget* staticFrame;
00101
00103 QLabel* staticPhoto;
00104
00106 TextEdit* photoDesc;
00109
00110
00111 int initDelay, accel, minDelay, step, delay;
00112
00113
00114 int mode;
00115
00117 bool dropShadowsEnabled;
00118
00119
00120 QTimer* timer;
00121 QTime lastTime, currentTime;
00123 };
00124
00125
00126 class TextEdit : public QTextEdit
00127 {
00128 Q_OBJECT
00129
00130 public:
00131 TextEdit(QWidget *parent=0, const char* name=0);
00132 void paintNow();
00133
00134 private:
00135 QPopupMenu* contextMenu;
00136
00137 protected:
00138 void keyPressEvent ( QKeyEvent* e );
00139 void focusOutEvent ( QFocusEvent* );
00140 QPopupMenu* createPopupMenu ( const QPoint& pos );
00141
00142 signals:
00143 void finished();
00144
00145 private slots:
00146 void contextMenuHiding();
00147 };
00148
00149
00150
00151
00152 #endif //GUI_PHOTODESCEDIT_H