source: trunk/IPs/systemC/processor/Morpheo/Tools/Viewer/Graphics/include/window.h @ 26

Last change on this file since 26 was 26, checked in by chou, 17 years ago

Release 3 du viewer:
Etape 1 et 2 du projet complet et à jour.

  • Property svn:executable set to *
File size: 5.6 KB
Line 
1/******************************************************/
2/*                                                    */
3/*  this class creates the application windows :      */
4/*  - the main window where composants are drawn,     */
5/*  - the parameters window,                          */
6/*  - and the informations window.                    */
7/*                                                    */
8/******************************************************/
9
10
11#ifndef WINDOW_H
12#define WINDOW_H
13
14
15#include <iostream>
16#include <cmath>
17#include <sstream>
18#include <qstring.h>
19#include <qapplication.h>
20#include <qmetaobject.h>
21#include <qmenu.h>
22#include <qmenubar.h>
23#include <qmainwindow.h>
24#include <qwidget.h>
25#include <qboxlayout.h> 
26#include <qpainter.h>
27#include <qcolor.h>
28#include <qlabel.h>
29#include <qstatusbar.h>
30#include <qpushbutton.h>
31#include <qmessagebox.h>
32#include <qlineedit.h>
33#include <qwindowsstyle.h>
34#include <qplastiquestyle.h>
35#include <qlist.h>
36#include <qrect.h>
37#include <string.h>
38#include <qtreeview.h>
39#include <qdirmodel.h>
40#include <qevent.h>
41
42
43#include "Tools/Viewer/Parser/include/parser.h"
44
45
46#define NORTH 0
47#define SOUTH 1
48#define EAST 2
49#define WEST 3
50
51#define MARGEX 50
52#define MARGEY 70
53
54using namespace morpheo::tools::viewer::parser;
55using namespace morpheo::tools::viewer::bdd;
56using namespace std;
57
58namespace morpheo{
59  namespace tools{
60    namespace viewer{
61      namespace graphics{
62
63class Window : public QMainWindow
64{
65 
66  Q_OBJECT
67
68 public:
69
70  Window(QString name);
71  void _setParse(Parse *p);  //parse the base
72  void _init_file();    //search component and port before drawing
73 private slots:
74   
75  void _open(); //open a file
76  void _open_end();
77  void _open_error();
78
79  void _save(); //save a file
80  void _saveAs();
81  void _saveAsOk();
82
83  void _close(); //close a file
84
85  void _quit(); //quit a file
86  void _quit2();
87
88  void _zoomIn(); //zoom for the architecture view
89  void _zoomOut();
90  void _defautZoom();
91
92  void _level(); 
93  void _informations(); //show or hide informations window
94  void _parameters(); //show or hide parameters window
95  void _about(); //about the programm
96  void _component_name(); //show or hide the components name
97  void _signal_name(); //show or hide the signals name
98
99  void _back();//return to the previous view
100  void _cancel_selection();
101  void _apply();
102
103 protected :
104  void mousePressEvent (QMouseEvent *); //mouse handler when mouse pressed
105  void mouseMoveEvent (QMouseEvent *); //mouse handler in other case
106 private :
107  void wparameters(); // parameters window builder
108  void winformations(); //informations window builder
109  void paintEvent( QPaintEvent * ); //drawing panel
110  void repaint(); //repaint the panel with current parameters
111  void drawPort(int x,int y,int pos,string dir); //draw the components ports
112  void write_name(string name); //write the name of the component clicked name in the informations window
113  void write_position(int x, int y);//write the position of the position clicked in the informations window
114  void write_size(int x, int y);//write the size of the component clicked in the informations window
115  void write_comment(string comment);
116  void erase_position();
117  void erase_size();
118
119  QList <Port> port_east; //ports lists
120  QList <Port> port_west;
121  QList <Port> port_north;
122  QList <Port> port_south;
123  QList <Component> *compo;
124
125  QWidget *wparam;//windows widget (informations, parameters, open, save ...)
126  QWidget *winfo;
127  QWidget *ws;
128  QWidget *wq;
129  QWidget *wo;
130  QWidget *wa;
131
132  QWidget *mess_charg;
133  QWidget *mess;
134  QBoxLayout *informations; //informations box
135  QBoxLayout *parameters; //parameters box
136
137  Parse *parse; //the parser
138  BaseV *base; //the current BaseV
139  BaseP p; //the current BaseP
140  Entity *entity; //entity of current base
141  Coord *c; 
142 
143  QPainter painter;
144
145  QStatusBar *status;
146
147  QLineEdit *file_name; //retrieve the name user wants to open from the open window
148  QString current_name; //name of the current file opened
149
150  /*items of the parameters window*/
151  QLineEdit *positionX; //x position
152  QLineEdit *positionY;//y position
153  QLineEdit *sizeX;//x size
154  QLineEdit *sizeY;//y size
155 
156  /*items of the informations window*/
157  QLabel *lname;//name of the component clicked
158  QLineEdit *comment;//comment associated with the component clicked
159  int level; //level of architecture
160  int mouseX; //mouse position
161  int mouseY;
162
163  int window_height; //main window size
164  int window_width;
165  int margeX;//size of the marge
166  int margeY;
167  int portX;//port size, position and size of components, used when drawing the architecture
168  int portY;
169  int posX;
170  int posY;
171  int tailleX;
172  int tailleY;
173
174  int cpt_level;
175  QString tab[50];
176
177  QString father;//father name
178  QString current;//name of the current architecture visible
179
180  bool save_as; 
181  bool first_save;
182  bool info_open; //know if the informations window opened or not
183  bool param_open; //know if the parameters window opened or not
184  bool is_save; //know if the file has been saved
185  bool paint; //(re)paint or not
186  bool wq_open; //know if Quit/Open ( 2 windows possible)/Save window is open
187  bool wo_open;
188  bool ws_open;
189  bool wa_open;
190  bool quit_demand;//know if user clicked on "quit" (used for saving file before quit)
191  bool file_open;//know if a file is still open (used if user wants to open another file)
192  bool is_parse;//know is the base has been created
193  bool signalName;//show or hide signals name
194  bool componentName;//show or hide components name
195  bool charg_open;//back chargement message box opened or not
196  bool mess_open;//chargment message box opened or not
197  bool component_clicked;//if user clicked on a component to modify its parameters
198
199
200};
201      };
202    };
203  };
204};
205
206#endif
Note: See TracBrowser for help on using the repository browser.