/* -*- 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. */ #ifndef __MAINWINDOW_H__ #define __MAINWINDOW_H__ #include using namespace std; #include #include #include #include #include #include #include #include #include "videowidget.h" #include "camera.h" #include "cprquerydialog.h" #include "historywidget.h" #include "recedge.h" #include "info_gui.h" #define INCH_IN_CM 2.54f /** * First some GUI specs */ //#define NUM_HISTORY 3 // moved to a genuine variable // Button sizes in cm (metric) #define BUTTON_WIDTH 7 #define BUTTON_HEIGHT 2 #define HISTORY_LIST_MARGIN 25 #define HISTORY_LIST_SPACING 5 /** * 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 "Fjerne data fra skærmen?" #define TXT_ASK_CLEAR_SCREEN "Er du sikker på at du vil dataene fra skærmen (billeder, CPR nummer og navn)?" /** * Images */ #define PIXMAP_MUTE PIXMAPS"/mute.png" #define PIXMAP_UNMUTE PIXMAPS"/unmute.png" #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-logo.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(); void about_clicked(); void mute_clicked(); private: unsigned int num_history; void clear(); Info *info; void createGui(); Camera *camera; Info *cam_info; // Image loading routines. QImage *loadButtonIcon( const char *name, int height = BUTTON_HEIGHT ); QImage *loadImage( const char *name ); QImage *img_unfreeze; QImage *img_freeze; QImage *img_snapshot; QImage *img_cpr; QImage *img_clear; QImage *img_record; QImage *img_stop; QImage *img_logo; QImage *img_mute; QImage *img_unmute; QImage *img_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; RecEdge *img_recedge; HistoryWidget **img_history; QPushButton *btn_logo; QPushButton *btn_clear; QPushButton *btn_cpr; QPushButton *btn_rec; QPushButton *btn_shoot; QPushButton *btn_freeze; QPushButton *btn_mute; QPushButton *btn_about; QStatusBar *status; VideoWidget *img_live; bool recording; bool frozen; bool muted; // Configuration values float unit; int video_width; int video_height; QPushButton *createButton(const char *caption, int width = BUTTON_WIDTH, int height = BUTTON_HEIGHT); QPushButton *createButton(const char *caption, QWidget *parent, int width = BUTTON_WIDTH, int height = BUTTON_HEIGHT); QLabel *createLabel(const char *caption, int width, int height); }; #endif/*__MAINWINDOW_H__*/