Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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: G4OpenGLQtExportDialog.hh 66373 2012-12-18 09:41:34Z gcosmo $
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 
39 class QButtonGroup;
40 class QPushButton;
41 class QRadioButton;
42 class QCheckBox;
43 class QSlider;
44 class QComboBox;
45 class QLabel;
46 class QLineEdit;
47 
48 class QGroupBox;
49 
50 /** The G4OpenGLQtExportDialog class provide a Dialog displaying differents options
51  for each file format
52 */
53 class 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
#define width