Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4OpenGLQtExportDialog.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28// GEANT4 tag $Name:
29//
30//
31
32#ifdef G4VIS_BUILD_OPENGLQT_DRIVER
33
34#ifndef G4OPENGLQTEXPORTDIALOG_HH
35#define G4OPENGLQTEXPORTDIALOG_HH
36
37#include <qdialog.h>
38
39class QButtonGroup;
40class QPushButton;
41class QRadioButton;
42class QCheckBox;
43class QSlider;
44class QComboBox;
45class QLabel;
46class QLineEdit;
47
48class QGroupBox;
49
50/** The G4OpenGLQtExportDialog class provide a Dialog displaying differents options
51 for each file format
52*/
53class G4OpenGLQtExportDialog : public QDialog
54{
55 Q_OBJECT
56
57 public:
58 /** Construct a G4OpenGLQtExportDialog
59 @param parentw : parent widget
60 @param format : format of save file in lower case
61 @param height : height of the original file
62 @param width : width of the original file
63 */
64 G4OpenGLQtExportDialog(QWidget* parentw, QString format, int height =0, int width=0);
65
66 /** Destroys G4OpenGLQtExportDialog */
67 ~G4OpenGLQtExportDialog();
68
69 /** @return the value of the slider if format has a slider widget, instead return -1 */
70 int getSliderValue();
71
72 /** return the new width for file if format has a width widget, instead return
73 the original value */
74 int getWidth();
75
76 /** return the new height for file if format has a height widget, instead return
77 the original value */
78 int getHeight();
79
80 /** return the value of the transparency if format has a transparency, instead return -1 */
81 int getTransparency();
82
83 /** return the numbers of colors in the picture if format has a BW/Color widget, instead return -1 */
84 int getNbColor();
85
86 /** return if vector EPS is checked, if button does'nt exist, return 0 */
87 bool getVectorEPS();
88
89 public Q_SLOTS:
90
91 /** Called by a clic on modify/original size button.This will
92 invert buttons and hide/unhide size
93 */
94 void changeSizeBox();
95
96 /** Called by a clic on vectorEPS check box.If vectorEPS checkBox is checked,
97 it will enable change size buttons. Else it will disable them.
98 */
99 void changeVectorEPS();
100
101 /** Called by changing value in height lineEdit. If ratio is keep, will also change the width
102 */
103 void textWidthChanged(const QString &);
104
105 /** Called by changing value in width lineEdit. If ratio is keep, will also change the height
106 */
107 void textHeightChanged(const QString &);
108
109 private:
110 QString f_name, f_type, f_dir;
111 QLabel* qualityLabel;
112 bool expAll;
113 QPushButton* buttonOk;
114 QPushButton* buttonCancel;
115
116 QGroupBox * sizeGroupBox;
117
118 QCheckBox* transparencyEPS,*boxTransparency,*vectorEPSCheckBox;
119 QCheckBox* ratioCheckBox;
120 QSlider * qualitySlider;
121 QLabel *formatLabel;
122 QRadioButton* colorButton,*BWButton;
123 QRadioButton* original,* modify;
124 QLineEdit* height,*width;
125 QWidget* heightWidget,* widthWidget;
126 int originalWidth;
127 int originalHeight;
128 bool isChangingSize;
129};
130
131#endif
132
133#endif