diff options
Diffstat (limited to 'client/mainwindow.h')
-rw-r--r-- | client/mainwindow.h | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/client/mainwindow.h b/client/mainwindow.h new file mode 100644 index 0000000..2ac7d82 --- /dev/null +++ b/client/mainwindow.h @@ -0,0 +1,193 @@ +/* -*- 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. + */ +#include "config.h" +#ifdef USE_GUI + +#ifndef __MAINWINDOW_H__ +#define __MAINWINDOW_H__ + +#include <string> +using namespace std; + +#include <qwidget.h> +#include <qlabel.h> +#include <qpushbutton.h> +#include <qstatusbar.h> +#include <qtimer.h> +#include <qpixmap.h> +#include <qimage.h> + +#include "videowidget.h" +#include "camera.h" +#include "cprquerydialog.h" +#include "historywidget.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( char *name, int height = BUTTON_HEIGHT ); + QImage *loadImage( 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; + QLabel *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(char *caption, int width = BUTTON_WIDTH, int height = BUTTON_HEIGHT); + QPushButton *createButton(char *caption, QWidget *parent, int width = BUTTON_WIDTH, int height = BUTTON_HEIGHT); + QLabel *createLabel(char *caption, int width, int height); +}; + +#endif + +#endif /*USE_GUI*/ |