Restore compilation of loggraph, extract code layout of kernel's message dialog into...
[vlp.git] / src / graph / loggraph.h
1 #ifndef _VLP_GRAPH_H
2 #define _VLP_GRAPH_H
3
4 #include <QtGui/QPainter>
5 #include <QtGui/QPrinter>
6 #include <QtGui/QPushButton>
7 #include <QtGui/QRadioButton>
8 #include <QtGui/QButtonGroup>
9 #include <QtGui/QApplication>
10 #include <QtGui/QMainWindow>
11 #include <QtGui/QFrame>
12 #include <math.h>
13 #include <QtGui/QPixmap>
14 #include <QtGui/QScrollBar>
15 #include <QtGui/QColor>
16 #include <stdio.h>
17 #include <QtGui/QFont>
18 #include <QtGui/QFontMetrics>
19 #include <QtCore/QList>
20 #include <fcntl.h>
21 #include <sys/stat.h>
22 #include <netinet/in.h>
23 #include "genint1.h"
24 #include "comm.h"
25 #include "socu.h"
26 #include <unistd.h>
27 #include <QtCore/QSocketNotifier>
28 #include <QtCore/QObject>
29 #include <errno.h>
30 #include <QtCore/QQueue>
31 #include <QtGui/QMessageBox>
32 #include <QtGui/QMenuBar>
33 #include <QtGui/QMouseEvent>
34 // #include <qpopmenu.h>
35 #include <QtCore/qnamespace.h>
36
37 #define MAXWIDTH        640
38 #define MAXHEIGHT       480
39 #define TEXT_LINES      50
40 #define TEXT_COLS       100
41 #define REQUEST_NAME    "gr.req"
42 #define PERM            0666
43
44 class VGRMap {
45 public:
46         QPixmap *map;
47         int number;
48
49         VGRMap(int n, QPixmap *m) {
50                 number = n;
51                 map = m;
52         };
53 };
54
55 class VGR : public QMainWindow {
56         Q_OBJECT
57 public:
58         VGR(int argc, char ** argv);
59         ~VGR();
60
61         int resp_sock;
62         int fcol;
63         int bcol;
64         int gfcol;
65         int gbcol;
66         int curx;
67         int cury;
68         int tx;
69         int ty;
70         QQueue<int *> CharBuffer;
71
72         bool string_wait;
73         bool char_wait;
74         bool line_wait;
75         bool mouse_wait;
76         bool inkey_wait;
77         bool was_line;
78         QColor *lcolors[256];
79         QFont *prv_font;
80         QFont *italic_font;
81         QFont *bold_font;
82         QFont *normal_font;
83
84         void MakeColors();
85
86         void SetForeground(int);
87         void SetBackground(int);
88         void ClearAll();
89         void ClearArea(int, int, int, int);
90
91         void Line(int, int, int, int);
92         void Ellipse(int x, int y, int a, int b, int alfa, int beta, int fill);
93         void Rect(int x1, int y1, int x2, int y2, int col, int fill);
94         void Point(int x, int y);
95         void TextXY(int x, int y, char *s);
96         void CharXY(int x, int y, char a);
97         void IntXY(int x, int y, int val);
98
99         void WriteText(char *s);
100         void WriteChar(char a);
101         void WriteLine();
102         
103         /* Write Char w/o changing position */
104         void PutChar(char a);
105         void DelChar();
106
107         void Outstring(int x, int y, char *s, int b, int f);
108         void writeintxy(int x, int y, int val, int c);
109         void CurPos();
110
111         int Getmap(int w, int h);
112         void Putmap(int map); 
113
114         void MagicGraph(G_MESSAGE*);
115         bool GetInput(int);
116
117 public slots:
118         void vscrolled(int);
119         void hscrolled(int);
120         void CloseMe();
121         void RequestMessage();
122
123 protected:
124         virtual void resizeEvent(QResizeEvent *);
125         virtual void closeEvent(QCloseEvent *);
126         virtual void keyPressEvent(QKeyEvent *);
127         virtual void mousePressEvent(QMouseEvent *);
128         virtual void paintEvent(QPaintEvent *);
129         virtual void focusInEvent(QFocusEvent *);
130
131 private:
132         QPixmap *canvas;
133         QScrollBar *hscroll;
134         QScrollBar *vscroll;
135         QPushButton *close_btn;
136         int ox,oy,lstep,pstep,gx,gy;
137         QList<VGRMap *> maps;
138         int firstfreemap;
139         bool Closed;
140         bool MustRepaint;
141         bool GraphRead;
142         QSocketNotifier *request;
143         char internal_buffer[256];
144         int strcnt;
145 };
146
147 #endif /* _VLP_GRAPH_H */