00001 00002 #ifndef QT_CV_H 00003 #define QT_CV_H 00004 00005 00006 #include <QMainWindow> 00007 00008 class QLayout; 00009 class QPushButton; 00010 class QCheckBox; 00011 class QAction; 00012 class QActionGroup; 00013 class QLabel; 00014 class QMenu; 00015 class QTextEdit; 00016 00021 class UserInterface: public QMainWindow 00022 { 00023 Q_OBJECT 00024 00025 public: 00026 00031 UserInterface(); 00032 00033 Q_SIGNALS: 00034 00042 void sendMouseEvent(int, int, int); 00043 00046 void loadEdgeImage(const char* filename); 00047 void loadPhoto(const char* filename1, const char* filename2); 00048 00054 void mirror(); 00055 00056 00057 void penButtonClick(); 00058 void edgeButtonClick(); 00059 void paintButtonClick(); 00060 void cornerButtonClick(); 00061 void headButtonClick(); 00062 void abortButtonClick(); 00063 00064 public Q_SLOTS: 00065 00069 void SetLeftImage(QImage); 00070 00074 void SetCenterImage(QImage); 00075 00079 void SetRightImage(QImage); 00080 00084 void SetInfo(QString); 00085 00089 void SetStatus(QString); 00090 00098 void UpdateStatusMessage(int, QString); 00099 00107 void ActivateButton(int); 00108 00109 private Q_SLOTS: 00110 00112 void About(); 00113 00115 void Manual(); 00116 00118 void loadEdgeImageButton(); 00120 void loadPhotoButton(); 00125 void ChangeMirror(int); 00126 00131 void PenBClick(); 00132 00137 void EdgeBClick(); 00138 00143 void PaintBClick(); 00144 00149 void CornerBClick(); 00150 00155 void HeadBClick(); 00156 00161 void AbortBClick(); 00162 00163 private: 00164 void CreateActions(); 00165 void CreateMenus(); 00166 00169 bool eventFilter(QObject *obj, QEvent *event); 00170 00171 QString *aboutText; 00172 QString *manualText; 00173 QMenu *fileMenu; 00174 QMenu *helpMenu; 00175 QAction *exitAct; 00176 QAction *loadPhotoAct; 00177 QAction *loadEdgeAct; 00178 QAction *manualAct; 00179 QAction *aboutAct; 00180 QLabel *infoLabel; 00181 QLabel *statusLabel; 00182 QLabel *cameraImageLabel; 00183 QLabel *photoImageLabel; 00184 QLabel *maskImageLabel; 00185 QLabel *penLabel; 00186 QLabel *edgeLabel; 00187 QLabel *paintLabel; 00188 QPushButton *penButton; 00189 QPushButton *edgeButton; 00190 QPushButton *paintButton; 00191 QPushButton *cornerButton; 00192 QPushButton *headButton; 00193 QPushButton *abortButton; 00194 QCheckBox *mirrorCBox; 00195 QTextEdit *penGripperLog; 00196 QTextEdit *contourDetectorLog; 00197 QTextEdit *painterLog; 00198 bool penGripperLogStarted; 00199 bool contourDetectorLogStarted; 00200 bool painterLogStarted; 00201 bool drawingAvailable; 00202 }; 00203 00204 #endif