Rev | Line | |
---|
[807] | 1 | #ifndef gemc_MAINGUI_H |
---|
| 2 | #define gemc_MAINGUI_H |
---|
| 3 | |
---|
| 4 | // %%%%%%%%%% |
---|
| 5 | // Qt headers |
---|
| 6 | // %%%%%%%%%% |
---|
| 7 | #include <QComboBox> |
---|
| 8 | #include <QGroupBox> |
---|
| 9 | #include <QLCDNumber> |
---|
| 10 | #include <QLineEdit> |
---|
| 11 | #include <QObject> |
---|
| 12 | #include <QPushButton> |
---|
| 13 | #include <QSlider> |
---|
| 14 | #include <QVBoxLayout> |
---|
| 15 | #include <QWidget> |
---|
| 16 | |
---|
| 17 | // %%%%%%%%%% |
---|
| 18 | // G4 headers |
---|
| 19 | // %%%%%%%%%% |
---|
| 20 | #include "G4Material.hh" |
---|
| 21 | #include "G4RunManager.hh" |
---|
| 22 | #include "G4VisManager.hh" |
---|
| 23 | #include "G4UImanager.hh" |
---|
| 24 | |
---|
| 25 | // %%%%%%%%%%%%% |
---|
| 26 | // gemc headers |
---|
| 27 | // %%%%%%%%%%%%% |
---|
| 28 | #include "detector_tree.h" |
---|
| 29 | #include "usage.h" |
---|
| 30 | |
---|
| 31 | // %%%%%%%%%%%%%%%% |
---|
| 32 | // Class definition |
---|
| 33 | // %%%%%%%%%%%%%%%% |
---|
| 34 | class gemcMainWidget : public QWidget |
---|
| 35 | { |
---|
| 36 | // metaobject required for non-qt slots |
---|
| 37 | Q_OBJECT |
---|
| 38 | |
---|
| 39 | public: |
---|
| 40 | gemcMainWidget(G4RunManager*, G4VisManager*, G4UImanager*); |
---|
| 41 | ~gemcMainWidget(); |
---|
| 42 | |
---|
| 43 | map<string, detector> *Hall_Map; |
---|
| 44 | map<string, G4Material*> *MMats; |
---|
| 45 | gemc_opts gemcOpt; |
---|
| 46 | |
---|
| 47 | private: |
---|
| 48 | QLineEdit *ManualCommandQLineEdit; |
---|
| 49 | QComboBox *ManualCommandBox; |
---|
| 50 | QPushButton *MainButtons[8]; |
---|
| 51 | QPushButton *PanButtons[4]; |
---|
| 52 | QVBoxLayout *VMainButtons; |
---|
| 53 | |
---|
| 54 | // The timer will periodically update theta_hall, phi_hall if they're changed with the mouse |
---|
| 55 | QTimer *timer ; |
---|
| 56 | |
---|
| 57 | // Transformations |
---|
| 58 | int theta_hall, phi_hall; |
---|
| 59 | double zoom_value; |
---|
| 60 | |
---|
| 61 | QGroupBox *TransfGro[5]; |
---|
| 62 | QVBoxLayout *TransfLay[5]; |
---|
| 63 | QSlider *TransfSli[3]; |
---|
| 64 | QSlider *PanFactorSl; |
---|
| 65 | |
---|
| 66 | QLCDNumber *Theta_V; |
---|
| 67 | QLCDNumber *Phi_V; |
---|
| 68 | |
---|
| 69 | QComboBox *ThetaCombo; |
---|
| 70 | QComboBox *PhiCombo; |
---|
| 71 | vector<string> ThetaSet; |
---|
| 72 | vector<string> PhiSet; |
---|
| 73 | |
---|
| 74 | |
---|
| 75 | // passing G4 managers to QT so we can delete them when QT quits |
---|
| 76 | // and can access directly the UImanager |
---|
| 77 | G4RunManager *runManager; |
---|
| 78 | G4VisManager *visManager; |
---|
| 79 | G4UImanager *UImanager; |
---|
| 80 | |
---|
| 81 | detector_tree *DTree; |
---|
| 82 | |
---|
| 83 | private slots: |
---|
| 84 | |
---|
| 85 | // Command Box |
---|
| 86 | void RunManualCommand(); |
---|
| 87 | |
---|
| 88 | // Transformations |
---|
| 89 | void clickpan_left(); |
---|
| 90 | void clickpan_right(); |
---|
| 91 | void clickpan_up(); |
---|
| 92 | void clickpan_down(); |
---|
| 93 | void change_theta(int); |
---|
| 94 | void set_theta(int); |
---|
| 95 | void change_phi(int); |
---|
| 96 | void set_phi(int); |
---|
| 97 | void zoom(int); |
---|
| 98 | void beamOn(); |
---|
| 99 | |
---|
| 100 | void update_angles(); |
---|
| 101 | |
---|
| 102 | // Tree |
---|
| 103 | void Build_DTree(); |
---|
| 104 | }; |
---|
| 105 | |
---|
| 106 | #endif |
---|
| 107 | |
---|
| 108 | |
---|
| 109 | |
---|
Note: See
TracBrowser
for help on using the repository browser.