Allink  v0.1
ElementiGrafici.h
1 /***********************************************************************
2 ElementiGrafici: Header file for the ElementiGrafici class
3  Copyright (C) 2008 by Giovanni Marelli <sabeiro@virgilio.it>
4 
5 
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ***********************************************************************/
20 #ifndef ELEMENTIGRAFICI_H
21 #define ELEMENTIGRAFICI_H
22 
23 #include <qprinter.h>
24 #include <qmessagebox.h>
25 #include <qimage.h>
26 #include <qerrormessage.h>
27 #include <Q3VBox>
28 #include <qslider.h>
29 #include <qtextdocument.h>
30 //#include <qvbox.h>
31 
32 /* #include <qwidget.h> */
33 /* #include <Q3PointArray> */
34 
35 /* #include <qtimer.h> */
36 /* #include <qpixmap.h> */
37 /* #include <qdatetime.h> */
38 /* /\* /\\* #include <stdlib.h> *\\/ *\/ */
39 /* /\* /\\* #include <math.h> *\\/ *\/ */
40 /* /\* //#include <qpointarray.h> *\/ */
41 /* #include <qpixmap.h> */
42 /* //#include <qpaintdevicemetrics.h> */
43 /* #include <QLineEdit> */
44 //#include <QMenuBar>
45 #include <VarDatFile.h>
46 
47 #define LINEA_NIENTE 0x00000
48 #define LINEA_PUNTO 0x00001
49 #define LINEA_TRATTO 0x00002
50 #define LINEA_PUNTOETRATTO 0x00003
51 #define LINEA_ERRORE 0x00008
52 
53 ;
55 enum VisDis{
57  DIS_SEGNALE = 0x00002,
59  DIS_TUTTI = 0x00004,
61  DIS_MOMENTI = 0x00008,
63  DIS_BLU = 0x00010,
65  DIS_RETTA = 0x00020,
67  DIS_PARABOLA= 0x00040,
69  DIS_EXP = 0x00080,
71  DIS_GAUSS = 0x00100,
73  DIS_PUNTI = 0x00200,
75  DIS_ERR = 0x00400,
76 };
77 #define RIS_UNO 0x00002
78 #define RIS_TUTTI 0x00004
79 
80 #define INIT_NUM 15
81 ;
83 class ElementiGrafici:public QWidget{
84  Q_OBJECT
85  public:
87  ElementiGrafici( QWidget *parent=0,const char *name=0);
90  QSizePolicy Dimensionamento() const;
91  //vector <double> st;
93  int NMax;
95  int NDis;
99  char *nomeFile;
101  char *nomeConf;
103  char *nomeSalva;
105  QString nomeTit;
107  QString nomeEtX;
109  QString nomeEtY;
110  public:
112  void ChooseDataFile(char* FileName);
114  void ChooseConfFile(char* FileName);
115  public slots:
117  void ImpNBin(int n);
119  void ImpNMobile(int n);
121  void ImpNCorrela(int n);
123  void ImpNVisMin(int n);
125  void ImpNVisMax(int n);
127  void ImpNElMin(int n);
129  void ImpNElMax(int n);
130  void ImpNElMinY(int n);
131  void ImpNElMaxY(int n);
132  void ImpInter(int n);
133  void ImpInterEl(int n);
134  void ImpCoordX(int n);
135  void ImpCoordY(int n);
137  void ImpCoordDY(int n);
139  /* typedef void(ElementiGrafici::*IMP_COORD)(int n); */
141  /* IMP_COORD Imp_Coord; */
142  /* /// Pointer to a generic function */
143  /* void ImpCoord(int n){return (*this.*Imp_Coord)(n);} */
144  void ImpNVarX(int n,int m);
145  void ImpNVarY(int n,int m);
146  void ImpInter(int n,int m);
147  void ImpInterEl(int n,int m);
148  void ImpInterY(int n,int m);
149  void Apri();
150  void Apri(char **argv,int *FileList,int NFile);
151  void ApriExt(double **ExtSt,int ExtNMax,int ExtNVar,int ExtNBin);
152  void ApriExt(VarDatFile *Extv1);
153  void Aggiungi();
154  void PuntiSegnale();
155  void PuntiDistribuzione();
156  void PuntiSommaSegnali();
157  void PuntiInterRett();
158  void PuntiInterExp();
159  void PuntiInterGauss();
160  void PuntiParabola();
161  void PuntiMediaMob();
162  void PuntiCorrelaADue();
163  void PuntiAutosimilarita();
164  void PuntiIntegrale();
165  void PuntiDerivata();
166  void PuntiVarie();
167  void PuntiSpettro();
168  void PuntiNormalizza();
169  void PuntiModulo();
170  void PuntiRadice();
171  void PuntiAutocor();
172  void PuntiSum();
173  void DisegnaLinee();
174  void DisegnaPunti();
175  void DisegnaGriglia();
176  void DisegnaLogx();
177  void DisegnaLogy();
178  void SeRiscala();
179  void SeRiscalaTutto();
180  void NSet();
181  void StampaFile();
182  void PuntaExt(double **ExtSt,int nVar);
183  void SulSegnale(bool);
184  void SulGrafico(bool);
185  void SuX(bool);
186  void SuY(bool);
187  void SuDX(bool);
188  void SuDY(bool);
189  void Ridisegna();
190  void InfoStato(const char *);
191  void InfoSequenza(const char *);
192  void Salva();
193  void NomeFile(const QString &);
194  void NomeConf(const QString &);
195  void NomeEntrata(const QString &);
196  void NomeSalva(const QString &);
197  void NomeUscita(const QString &);
198  void NomeTitolo(const QString &);
199  void NomeEtichettaX(const QString &);
200  void NomeEtichettaY(const QString &);
201  void NomeTit(const QString &);
202  void NomeEtX(const QString &);
203  void NomeEtY(const QString &);
204 
205  private slots:
206 
207  signals:
208  void NBinCambiati(int);
209  void NMobileCambiato(int);
210  void NCorrelaCambiato(int);
211  void NVisMinCambiato(int);
212  void NVisMaxCambiato(int);
213  void NElMinCambiato(int);
214  void NElMaxCambiato(int);
215  void NElMinYCambiato(int);
216  void NElMaxYCambiato(int);
217  void LogxCambiato(bool);
218  void LogyCambiato(bool);
219  void MediaCambiata(int);
220  void ScartoCambiato(int);
221  void InterVisCambiato(int);
222  void InterElCambiato(int);
223  void InterVisCambiato(int,int);
224  void InterElCambiato(int,int);
225  void InterYCambiato(int,int);
226  void CoordXCambiata(int);
227  void CoordYCambiata(int);
228  void InterCoordXCambiato(int,int);
229  void InterCoordYCambiato(int,int);
230  void FineSimulazione();
231  void SegnaleGrafico(bool);
232  void Stato(const QString &);
233  void StatoSequenza(const QString &);
234  void TestoCambiato(const QString &);
235  void ConfCambiato(const QString &);
236  void SalvaCambiato(const QString &);
237  void TitoloCambiato(const QString &);
238  void EtichettaXCambiato(const QString &);
239  void EtichettaYCambiato(const QString &);
240 
241  protected:
242  virtual void paintEvent(QPaintEvent *);
243  virtual void mouseMoveEvent(QMouseEvent *);
244 
245  private:
246  void DisegnaPunti(QPainter *);
247  void GrStampante(QPainter *);
248  void GrMomenti(QPainter *);
249  void GrBlu(QPainter *);
250  void GrSet(QPainter *p,int s);
251  void GrPunti(QPainter *);
252  void GrGriglia(QPainter *);
253  void GrBarre(QPainter *);
254  void GrRiscala();
255  void GrLegenda(QPainter *);
256  void GrMessage(const char *s, ... );
257  void DisegnaTesto(QPainter *);
258  void GrScript(char *File2Read,QPainter *p);
259  void GrConf(char *File2Read);
260  void StringToUnicode(char *cLine,QString *Label);
261  FILE *SEGNALE;
262  QRect PuntiRett(QPoint) const;
263  QColor *GrLinee;
264  QString *GrLabel;
265  // vector <QPoint> Punti;
266  //double *Punti;
267  //double *SetPunti;
268  //double *PuntiBlu;
269  //double *Ascissa;
270  QPoint Punto;
271  // QPointArray *PuntiLinea;
272  QPoint Punto1;
273  QPoint Punto2;
274  QPoint Punto3;
275  int PointSize;
276  int ContaTempo;
277  QTimer *TempoGrafica;
278  char *stringa;
279  char *cPos;
280  char **LineaQuale;
281  char FormatPrecX;
282  char FormatPrecY;
283  char XFormula[60];
284  char YFormula[60];
285  int NBin;
286  int NMobile;
287  int NCorrela;
288  int NVisMin;
289  int NVisMax;
290  int NElMin;
291  int NElMax;
292  int NElMinY;
293  int NElMaxY;
294  int PuntiMax;
295  int RisY;
296  int RisX;
297  int GrigliaX;
298  int GrigliaY;
299  int StampaX;
300  int StampaY;
301  int DigPrecX;
302  int DigPrecY;
303  double yMax;
304  double yMin;
305  double yMax1;
306  double yMin1;
307  double xMax;
308  double xMin;
309  double yBluMin;
310  double yBluMax;
311  double Delta;
312  double ViewportX;
313  double ViewportY;
314  double ScalaTopoX;
315  double ScalaTopoY;
316  double PosLegenda[4];
317  double PosInterp[2];
318  double RatioWidthHeight;
319  int NyMin;
320  int NyMax;
321  int NxMin;
322  int NxMax;
323  int NVar;
324  int CoordX;
325  int CoordY;
326  int CoordDY;
327  int Tempx;
328  int Tempy;
329  int NSequenza;
330  int Coord;
331  int Confini[2];
332  int *LineaCome;
333  int PrimaVolta;
334  int VoltaBlu;
335  int VoltaMomenti;
336  int VoltaRetta;
337  int VoltaParabola;
338  int Linee;
339  int Quadrati;
340  int LogLog;
341  int IfLogx;
342  int IfLogy;
343  int Griglia;
344  int IfSegnale;
345  int IfStampa;
346  int IfRiscala;
347  int IfRiscalaTutto;
348  int IfDisegna;
349  int IfNorm;
350  int FontSize;
351  QErrorMessage *ErrPrima;
352  QMessageBox *Messaggio;
353  QImage Immagine;
354  QPrinter *Stampante;
355  QFont Font;
356  MOMENTI m1;
357  RETTA r1;
358  PARABOLA p1;
359  QColor *Colors;
360 };
362 class Finestra: public QWidget{
363  private:
364  // Elementi Grafici
365  ElementiGrafici *e1;
366  public:
367  Finestra(QWidget *parent=0,const char *name=0);
368  void DataFile(char **argv,int *FileList,int NFIle);
369  void ConfFile(char *FileName);
370  // char *FileDaScrivere;
371  // void ScriviNomeFile(char *);
372 };
374 class ImpostaNBin : public Q3VBox{
375  Q_OBJECT
376  public:
377  ImpostaNBin(QWidget *parent,const char *name =0);
378  void Testo(const char *);
379  int Numero() const;
380 
381  public slots:
382  void ImpNumero( int );
383  void ImpInter(int Max);
384  void ImpInter(int Min,int Max);
385  signals:
386  void ValoreCambiato( int );
387 
388  private:
389  QSlider *slider;
390  QLabel *label;
391  QLabel *title;
392 };
393 
394 /* class Sets : public QMenuBar{ */
395 /* Q_OBJECT */
396 /* public: */
397 /* Sets(QWidget *parent,const char *name =0); */
398 /* QAction *ASet; */
399 /* int NSet; */
400 /* public slots: */
401 /* void ImpCoord(int Coord); */
402 /* signals: */
403 /* void ChoosedSet(void); */
404 /* }; */
405 
406 
407 #endif //ELEMENTIGRAFICI_H
char * nomeFile
Name of the current file opened.
ElementiGrafici(QWidget *parent=0, const char *name=0)
General constructor.
void ImpNCorrela(int n)
Set the bins for the point correlation.
char * nomeConf
Name of the config file.
int NMax
Number of points per array.
Parabolas coefficients.
void ImpNBin(int n)
Set NBin.
char * nomeSalva
Name of the output file.
void ChooseConfFile(char *FileName)
Choose the configuration file.
QString nomeTit
Title name.
Defines a window.
void ImpNElMin(int n)
Set the minimum elaboration point.
void ImpNVisMax(int n)
Set the maximum visualisation point.
Linear interpolation.
QString nomeEtY
Y axis label.
Moments of a distribution.
int NDis
Current number of visualisation (debugging)
QString nomeEtX
X axis label.
void ChooseDataFile(char *FileName)
Choose the input file.
void ImpNVisMin(int n)
Set the minimum visualisation point.
Homemade slider.
Reads and stores a data file to be elaborated via Matematica.
Definition: VarDatFile.h:26
Contains the function to interacts with the data stored in VarDatFile.
void ImpNElMax(int n)
Set the maximum elaboration point.
~ElementiGrafici()
Destructor.
void ImpCoordDY(int n)
Set the y error bar.
void ImpNVarX(int n, int m)
Type for coordinate change.
void ImpNMobile(int n)
Set the bins for the running average.
VarDatFile * v1
Class for the file handle.