/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * mainwindow.h * * Sat Aug 21 19:50:13 2004 * Copyright 2004 deva * deva@aasimon.org ****************************************************************************/ /* * This file is part of MIaV. * * MIaV is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * MIaV is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MIaV; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /* * $Id$ */ /* * $Log$ * Revision 1.15 2005/06/02 20:45:01 deva * * Added clear button * Optimized the frame handling a little (very little!). * * Revision 1.14 2005/05/23 19:30:36 deva * Made some cleanup in the status bar. * * Revision 1.13 2005/05/16 16:00:57 deva * * Lots of stuff! * * Revision 1.12 2005/05/03 09:22:12 deva * Implemented the gui part of the info object. * * Revision 1.11 2005/05/03 08:31:59 deva * Removed the error object, and replaced it with a more generic info object. * * Revision 1.10 2005/05/02 20:34:38 deva * * Some hacked borky ugly scumm code to check for errors! :( * * Revision 1.9 2005/05/02 19:56:17 deva * * cpr_clicked is now blocked, if a recording session on. A messagebox explains * how to stop before trying to change the cpr number again. * * Revision 1.8 2005/05/01 09:56:26 deva * Added Id and Log tags to all files */ #include #ifdef USE_GUI #ifndef __MAINWINDOW_H__ #define __MAINWINDOW_H__ #include using namespace std; #include #include #include #include #include #include #include #include "videowidget.h" #include "camera.h" #include "cprquerydialog.h" #include "info_gui.h" #define NUM_HISTORY 3 /** * Textstrings */ #define TXT_ERROR_TITLE "Der er opstået en fejl!" #define TXT_READY "Klar..." #define TXT_CPRDLG_TITLE "CPRQueryDialog" #define TXT_ASK_SAVE_TITLE "Vil du gemme filmen?" #define TXT_ASK_SAVE "Vil du gemme filmen permanent?" #define TXT_STOP_RECORDING_TITLE "Stop optagelsen" #define TXT_STOP_RECORDING "Optagelsen skal standses, inden et nyt cpr nummer kan indtastes.\n\ Optagelsen standses ved tryk på den røde cirkel med gul streg over." #define TXT_TIME "Tid:" #define TXT_QUEUELENGTH "Buffer størelse:" #define TXT_ASK_CLEAR_SCREEN_TITLE "Tøm billedlisten" #define TXT_ASK_CLEAR_SCREEN "Er du sikker på at du vil tømme billedlisten?" /** * Images */ #define PIXMAP_RECORD PIXMAPS"/record.png" #define PIXMAP_STOP PIXMAPS"/stop.png" #define PIXMAP_FREEZE PIXMAPS"/freeze.png" #define PIXMAP_UNFREEZE PIXMAPS"/unfreeze.png" #define PIXMAP_CPR PIXMAPS"/cpr.png" #define PIXMAP_CLEAR PIXMAPS"/clear.png" #define PIXMAP_SNAPSHOT PIXMAPS"/snapshot.png" #define PIXMAP_DUMMY PIXMAPS"/dummy.png" #define PIXMAP_LOGO_SMALL PIXMAPS"/miav_small.png" class MainWindow : public QWidget { Q_OBJECT public: MainWindow(QApplication *qApp, QWidget* parent = 0, const char* name = 0); ~MainWindow(); void message(char* msg); public slots: void cpr_clicked(); void clear_clicked(); void rec_clicked(); void shoot_clicked(); void freeze_clicked(); void redraw_edge(); void taskbar_update(); private: Info *info; void createGui(); Camera *camera; Info *cam_info; QPixmap *pix_unfreeze; QPixmap *pix_freeze; QPixmap *pix_snapshot; QPixmap *pix_cpr; QPixmap *pix_clear; QPixmap *pix_record; QPixmap *pix_stop; QPixmap *pix_logo; QImage *pix_dummy; QLabel *lbl_version; QLabel *lbl_cpr; QLabel *lbl_name; QLabel *lbl_recordtime; QTimer *taskbartimer; // Used for the check_for_error_once_per_2_seconds (very ugly) QTimer *errtimer; float rec_edge_counter; QTimer *timer; QLabel *img_recedge; QLabel *img_history[NUM_HISTORY]; QPushButton *btn_logo; QPushButton *btn_clear; QPushButton *btn_cpr; QPushButton *btn_rec; QPushButton *btn_shoot; QPushButton *btn_freeze; QStatusBar *status; VideoWidget *img_live; bool recording; bool frozen; // Configuration values float unit; int video_width; int video_height; QPushButton *createButton(char *caption, int width, int height); QLabel *createLabel(char *caption, int width, int height); }; #endif #endif /*USE_GUI*/