3 @author Bruno M. Carvalho and Deniz Sarioz
4 modified by Joanna Klukowska (June 2008)
5 added two fields in LAST line for agreement with snark14
6 removed SAVE and MODIFY options of Run since snark14 does not have file12
7 licensed under (open-source) QPL v1.0
8 which accompanies this distribution in the file QPL
11 #ifndef CREATEWINDOW2_H
12 #define CREATEWINDOW2_H
32 class createwindow : public QDialog
37 createwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
48 QTabWidget* tabwidget1;
50 /* tab 1 -- sets 1 and 2 of CREATE sequence */
51 QWidget* headerSpectrum;
52 QLabel* idheaderlabel;
54 QLabel* spectrumlabel;
55 QButtonGroup* spectrumbuttongroup;
56 QRadioButton* monochromaticbutton;
59 QRadioButton* polychromaticbutton;
65 QLabel* percent1label;
69 QLabel* percent2label;
73 QLabel* percent3label;
77 QLabel* percent4label;
81 QLabel* percent5label;
85 QLabel* percent6label;
89 QLabel* percent7label;
91 /* tab 2 -- set 3 of CREATE sequence */
110 QPushButton* addshapebutton;
111 QMultiLineEdit* objectsdescription;
116 /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
118 QLabel* seedvarlabel;
122 /* tab 3 -- sets 4 and 5 of CREATE sequence */
123 QWidget* phantomRaysum;
124 QLabel* phantomlabel;
125 QRadioButton* phantomaveragebutton;
130 QLineEdit* pixelsize;
131 QLabel* pixelsizelabel;
133 QRadioButton* raysumaveragebutton;
155 QLabel* naper10label;
157 QLabel* naper11label;
159 QLabel* naper12label;
161 QLabel* naper13label;
163 /* tab 4 -- set 6 of CREATE sequence */
164 QWidget* geometryRaysums;
165 QLabel* geometrylabel;
166 QButtonGroup* geometrybuttongroup;
167 QRadioButton* parallelbutton;
168 QRadioButton* divergentbutton;
169 QRadioButton* linogrambutton;
170 QButtonGroup* parallelbuttongroup;
171 QRadioButton* uniformbutton;
172 QRadioButton* variablebutton;
173 QButtonGroup* parallelbuttongroup2;
174 QRadioButton* stripbutton;
175 QRadioButton* linebutton;
176 QButtonGroup* divergentbuttongroup;
177 QRadioButton* arcbutton;
178 QRadioButton* tangentbutton;
179 QLineEdit* sourcetoorigin;
180 QLabel* sourcetooriginlabel;
181 QLineEdit* sourcetodetector;
182 QLabel* sourcetodetectorlabel;
183 QLabel* raysumslabel;
184 QButtonGroup* raysumsbuttongroup;
185 QRadioButton* userbutton;
187 QLabel* userrayslabel;
188 QRadioButton* programbutton;
189 QLineEdit* raysumsnelem;
190 QLabel* raysumsnelemlabel;
191 QLineEdit* raysumspixelsize;
192 QLabel* raysumspixelsizelabel;
193 QLineEdit* detectorspacing;
194 QLabel* detectorspacinglabel;
196 QButtonGroup* anglesbuttongroup;
199 QRadioButton* linobutton;
200 QRadioButton* equalspacingbutton;
201 QLineEdit* firstangle;
202 QLabel* firstanglelabel;
203 QLineEdit* lastangle;
204 QLabel* lastanglelabel;
205 QRadioButton* nonebutton;
206 // QMultiLineEdit* angles; // bad idea. make it a regular line edit
209 /* tab 5 -- sets 7 and 8 of CREATE sequence */
210 QWidget* measurementRun;
211 QLabel* measurementlabel;
212 QButtonGroup* measurementbuttongroup;
213 QRadioButton* perfectbutton;
214 QRadioButton* noisybutton;
216 QCheckBox* quantumbutton;
221 QLabel* calibrationlabel;
224 QCheckBox* scatterbutton;
229 QCheckBox* additivebutton;
234 QCheckBox* multiplicativebutton;
236 QLabel* multnmnlabel;
238 QLabel* multnsdlabel;
242 QLabel* backgroundlabel;
244 QLabel* backgr1label;
246 QLabel* backgr2label;
248 QLabel* backgr3label;
250 QLabel* backgr4label;
252 QLabel* backgr5label;
254 QLabel* backgr6label;
256 QLabel* backgr7label;
258 QButtonGroup* runbuttongroup;
259 QRadioButton* savebutton;
260 QRadioButton* modifybutton;
261 QRadioButton* nonebutton_2;
263 QPushButton* okbutton;
264 QPushButton* cancelbutton;
266 bool israysumaveragepresent;
268 bool isRaysumAveragePresent();
271 void activateMonochromaticFields();
272 void activatePolychromaticFields();
273 void activatePhantomAverageFields();
274 void activateRaysumAverageFields();
275 void activateParallelFields();
276 void activateDivergentFields();
277 void activate__6_3__6_4__6_5( bool enable ); // doesn't need to be a slot really
278 void activateLinogramFields();
279 void activateUserFields();
280 void activateProgramFields();
281 void activateEqualSpacingFields();
282 void deactivateEqualSpacingFields();
283 void deactivateNoisyFields();
284 void activateNoisyFields();
285 void activateQuantumFields();
286 void activateScatterFields();
287 void activateAdditiveFields();
288 void activateMultiplicativeFields();
289 void activateOKButton();
293 #endif // CREATEWINDOW2_H