]> git.zerfleddert.de Git - proxmark3-svn/blame - client/proxguiqt.h
Merge pull request #302 from pwpiwi/fix_QtThreads
[proxmark3-svn] / client / proxguiqt.h
CommitLineData
a553f267 1//-----------------------------------------------------------------------------
212ef3a0 2// Copyright (C) 2009 Michael Gernoth <michael at gernoth.net>
3//
a553f267 4// This code is licensed to you under the terms of the GNU GPL, version 2 or,
5// at your option, any later version. See the LICENSE.txt file for the text of
6// the license.
7//-----------------------------------------------------------------------------
8// GUI (QT)
9//-----------------------------------------------------------------------------
10
1a3c0064 11#ifndef PROXGUI_QT
12#define PROXGUI_QT
13
b8208bda 14#include <stdint.h>
15#include <string.h>
16
6658905f 17#include <QApplication>
18#include <QPushButton>
19#include <QObject>
20#include <QWidget>
21#include <QPainter>
b8fdac9e 22#include <QtGui>
6658905f 23
b8fdac9e 24#include "ui/ui_overlays.h"
25/**
26 * @brief The actual plot, black area were we paint the graph
27 */
28class Plot: public QWidget
29{
30private:
31 int GraphStart;
32 double GraphPixelsPerPoint;
33 int CursorAPos;
34 int CursorBPos;
35 void PlotGraph(int *buffer, int len, QRect r,QRect r2, QPainter* painter, int graphNum);
36 void PlotDemod(uint8_t *buffer, size_t len, QRect r,QRect r2, QPainter* painter, int graphNum, int plotOffset);
37 void plotGridLines(QPainter* painter,QRect r);
38 int xCoordOf(int i, QRect r );
39 int yCoordOf(int v, QRect r, int maxVal);
40 int valueOf_yCoord(int y, QRect r, int maxVal);
999d57c2 41 void setMaxAndStart(int *buffer, int len, QRect plotRect);
b8fdac9e 42 QColor getColor(int graphNum);
43public:
44 Plot(QWidget *parent = 0);
45
46protected:
47 void paintEvent(QPaintEvent *event);
48 void closeEvent(QCloseEvent *event);
49 void mouseMoveEvent(QMouseEvent *event);
50 void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); }
51 void keyPressEvent(QKeyEvent *event);
52
53};
54class ProxGuiQT;
55
56/**
57 * The window with plot and controls
58 */
6658905f 59class ProxWidget : public QWidget
60{
1a3c0064 61 Q_OBJECT; //needed for slot/signal classes
6658905f 62
63 private:
1a3c0064 64 ProxGuiQT *master;
b8fdac9e 65 Plot *plot;
66 Ui::Form *opsController;
1a3c0064 67 QWidget* controlWidget;
68
6658905f 69 public:
b8fdac9e 70 ProxWidget(QWidget *parent = 0, ProxGuiQT *master = NULL);
1a3c0064 71 ~ProxWidget(void);
72 //OpsShow(void);
6658905f 73
1a3c0064 74 protected:
b8fdac9e 75 // void paintEvent(QPaintEvent *event);
1a3c0064 76 void closeEvent(QCloseEvent *event);
77 void showEvent(QShowEvent *event);
78 void hideEvent(QHideEvent *event);
b8fdac9e 79 // void mouseMoveEvent(QMouseEvent *event);
80 // void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); }
81 // void keyPressEvent(QKeyEvent *event);
82 public slots:
83 void applyOperation();
84 void stickOperation();
85 void vchange_autocorr(int v);
c4f51073 86 void vchange_askedge(int v);
b8fdac9e 87 void vchange_dthr_up(int v);
88 void vchange_dthr_down(int v);
6658905f 89};
90
91class ProxGuiQT : public QObject
92{
93 Q_OBJECT;
94
95 private:
96 QApplication *plotapp;
97 ProxWidget *plotwidget;
98 int argc;
99 char **argv;
100 void (*main_func)(void);
101
102 public:
103 ProxGuiQT(int argc, char **argv);
104 ~ProxGuiQT(void);
105 void ShowGraphWindow(void);
106 void RepaintGraphWindow(void);
107 void HideGraphWindow(void);
108 void MainLoop(void);
1a3c0064 109 void Exit(void);
6658905f 110 private slots:
111 void _ShowGraphWindow(void);
112 void _RepaintGraphWindow(void);
113 void _HideGraphWindow(void);
1a3c0064 114 void _Exit(void);
6658905f 115 signals:
116 void ShowGraphWindowSignal(void);
117 void RepaintGraphWindowSignal(void);
118 void HideGraphWindowSignal(void);
1a3c0064 119 void ExitSignal(void);
6658905f 120};
5acd195d 121
122
123class WorkerThread : public QThread {
124 Q_OBJECT;
125public:
126 WorkerThread(char*, bool);
127 ~WorkerThread();
128 void run();
129private:
130 char *script_cmds_file = NULL;
131 bool usb_present = false;
132};
133
1a3c0064 134#endif // PROXGUI_QT
Impressum, Datenschutz