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
00026
00027
00028
00029
00030
00031
00032 #ifndef WIDGET_H
00033 #define WIDGET_H
00034
00035 #include <QWidget>
00036 #include <QLocale>
00037
00038 class QEvent;
00039 class QCloseEvent;
00040 class QString;
00041 class Folder;
00042
00054 class MyWidget: public QWidget
00055 {
00056 Q_OBJECT
00057
00058 public:
00059
00061
00068 MyWidget(const QString& label = QString(), QWidget * parent = 0, const QString& name = QString(), Qt::WFlags f = 0);
00069
00071 enum CaptionPolicy{
00072 Name = 0,
00073 Label = 1,
00074 Both = 2
00075 };
00076 enum Status{Hidden = -1, Normal = 0, Minimized = 1, Maximized = 2};
00077
00079 QString windowLabel(){return QString(w_label);};
00081 void setWindowLabel(const QString& s) { w_label = s; updateCaption();};
00082
00084 QString name(){return objectName();};
00086 void setName(const QString& s){setObjectName(s); updateCaption();};
00087
00089 CaptionPolicy captionPolicy(){return caption_policy;};
00091 void setCaptionPolicy(CaptionPolicy policy) { caption_policy = policy; updateCaption(); }
00092
00094 QString birthDate(){return birthdate;};
00096 void setBirthDate(const QString& s){birthdate = s;};
00097
00099 QString aspect();
00101 Status status(){return w_status;};
00103 void setStatus(Status s);
00104
00105 virtual QString saveAsTemplate(const QString& ){return QString();};
00106
00108 virtual void restore(const QStringList& ){};
00109
00110 virtual void print(){};
00111 virtual void exportPDF(const QString&){};
00112
00113 virtual QString saveToString(const QString &, bool = false){return QString();};
00114
00115
00117 virtual QString sizeToString();
00118
00120 virtual void setHidden();
00121
00122
00124
00128 void closeEvent( QCloseEvent *);
00129 void resizeEvent( QResizeEvent* );
00130
00132 void askOnCloseEvent(bool ask){askOnClose = ask;};
00134 bool eventFilter(QObject *object, QEvent *e);
00135
00137 Folder* folder(){return parentFolder;};
00138
00140 void setFolder(Folder* f){parentFolder = f;};
00141
00143 void notifyChanges(){emit modifiedWindow(this);};
00144
00145 void setNormal();
00146 void setMinimized();
00147 void setMaximized();
00148
00149 QLocale locale(){return d_locale;};
00150 void setLocale(const QLocale & l){d_locale = l;};
00151
00152 signals:
00154 void closedWindow(MyWidget *);
00156 void hiddenWindow(MyWidget *);
00157 void modifiedWindow(QWidget *);
00158 void resizedWindow(QWidget *);
00160 void statusChanged(MyWidget *);
00162 void showTitleBarMenu();
00163 void moved();
00164
00165 protected:
00167 virtual void changeEvent(QEvent *event);
00169 QWidget *titleBar;
00170
00171 private:
00173 void updateCaption();
00174
00176 Folder *parentFolder;
00178
00181 QString w_label;
00183 QString birthdate;
00185 Status w_status;
00187
00190 CaptionPolicy caption_policy;
00192 bool askOnClose;
00193
00194 QLocale d_locale;
00195 };
00196
00197 #endif