File: INCLUDE\DETECUSE\DETECGUI.H
1 /*
2 $Header: /vol/baal-vol3/projekt98/quellen/XCTL_32/INCLUDE/DETECUSE/DETECGUI.H,v 1.21 2004/07/06 08:26:09 reinecke Exp $
3
4 Projekt : XCTL
5 Subsystem : Detektoren
6 Autor : Jan Picard <picard@informatik.hu-berlin.de> 2001-2002
7 Institut fuer Informatik,
8 Humboldt-Universitaet Berlin
9 Inhalt : Interface-Deklaration fuer die Oberflaechenklassen des
10 Detektoren-Subsystems
11 */
12
13 #ifndef _DETECGUI_H
14 #define _DETECGUI_H
15
16 #include "utils\u_utils.h"
17 #include "datavisa\datavisa.h" // für TCurve
18 #include "detecuse\detecmes.h"
19
20 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--
21
22 //##############################################################################
23 // TCommonDevParamDlg
24 //##############################################################################
25
26 // Dialog für die allgemeinen Einstellungen der Meß-Einheiten
27 class TCommonDevParamDlg : public TModalDlg
28 {
29 public:
30 TCommonDevParamDlg( TDetector* = 0);
31
32 private:
33 HWND hChooseDetector;
34 TDetector* Detector;
35 BOOL Dlg_OnInit( HWND, HWND, LPARAM );
36 void Dlg_OnCommand( HWND, int, HWND, UINT );
37 BOOL CanClose( void );
38 void LeaveDialog( void );
39
40 // event handler
41 void OnParamSet();
42 void OnShowCounter(HWND hwnd);
43 void OnActivateChanges();
44 void OnSoundSwitch();
45 void OnSpecificParameters();
46 void OnStaticFailure(HWND hwnd);
47 void OnChooseDetector(HWND hwnd, UINT codeNotify);
48 };
49
50 //##############################################################################
51 // TPsdParametersDlg
52 //##############################################################################
53
54 // Dialog für die Einstellungen des Psd
55 class TPsdParametersDlg : public TModelessDlg
56 {
57 public:
58 TPsdParametersDlg( TModelessDlg** );
59
60 virtual BOOL Initialize ( HINSTANCE, HWND );
61
62 protected:
63 virtual BOOL Dlg_OnInit( HWND, HWND, LPARAM );
64 virtual void Dlg_OnCommand( HWND, int, HWND, UINT );
65
66 // event handler und Hilfemethoden zum Auswerten/ Aktualisieren des Bildschirms
67 private:
68 void OnInitializePsd(HWND);
69 void PSD2Screen(BOOL, BOOL, BOOL);
70 bool Screen2PSD(BOOL, BOOL, BOOL);
71
72 private:
73 TOneDimDetector* Detector;
74 HWND m_Parent; // an dieses Fensterhandle wird beim 'Setzen'-Button eine Nachricht zum Update geschickt
75 int OldId;
76 };
77
78 //##############################################################################
79 // TScsParametersDlg
80 //##############################################################################
81
82 // Parameter-Dialog
83 class TScsParametersDlg : public TModalDlg
84 {
85 public:
86 TScsParametersDlg( TDetector*);
87
88 private:
89 TRadicon *Radicon;
90 BOOL Dlg_OnInit( HWND, HWND, LPARAM );
91 void Dlg_OnCommand( HWND, int, HWND, UINT );
92 BOOL CanClose( void );
93
94 // event handler
95 void OnParamSet();
96 };
97
98 //##############################################################################
99 // TCalibratePsdDlg
100 //##############################################################################
101
102 // Struktur für linken und rechten Peak
103 struct CPoint
104 {
105 float Pt[3];
106 BOOL Valid;
107 };
108
109 // Dialog zum Kalibrieren des Psd
110 class TCalibratePsdDlg : public TModalDlg, public ITimer
111 {
112 // überschriebenes aus der (Fenster-)Basisklasse
113 public:
114 TCalibratePsdDlg( TCurve& );
115
116 //! setzt Defaultwerte der Dialogbox bei Aufruf der Box
117 //! Rueckkehrcode immer true
118 virtual BOOL Dlg_OnInit( HWND, HWND, LPARAM );
119
120 //! behandelt Kommandos in der Dialogbox
121 virtual void Dlg_OnCommand( HWND, int, HWND, UINT );
122
123 //! behandelt alle Scrollbarereignisse
124 virtual void Dlg_OnHScrollBar( HWND, HWND, UINT, int );
125
126 //! wird bei verlassen der dialogbox aufgerufen
127 virtual void LeaveDialog( void );
128
129 virtual void OnTimer ( TBasicTimer *const );
130
131 // event handler
132 private:
133 void OnIDOK();
134 void OnCancel();
135 double DoRefreshPosition(BOOL&);
136 void OnParamSet();
137 void OnCounterSet();
138 void OnRightPositionReached();
139 void OnLeftPositionReached();
140
141 // Hilfsmethoden zum Ermitteln der Scrollbarpositionen
142 private:
143 double GetBarScale ( void ) const;
144
145 //! ermittelt Anzahl der Scrollbarschritte links bzw. rechts von der
146 //! absoluten Null
147 int GetBarEgde( BOOL ) const;
148
149 //! liefert die Position des Scrollbar anhand der akt. Motorposition im
150 //! Rueckkehrcode
151 int GetBarPos() const;
152
153 private:
154 TInterfaceTimer *m_lnkTimer; // POLLING-Timer
155
156 //! gibt umrechnungsfactor an um Winkelsekunden in die jeweilige Einheit
157 //! umzurechnen
158 float fRelationFactor;
159
160 //! wahrscheinlich ueberfluessig
161 // 21.04.2004 BOOL bCalibrationOk;
162
163 //! akt. angezeigte Kurve
164 TCurve *Curve; // nicht im Destruktor freigeben
165
166 //! gibt pos. des linken bzw. rechten Peaks an
167 CPoint LeftPeak;
168 CPoint RightPeak;
169
170 //! gibt an ob rechter bzw. linker Peak schon erreicht ist
171 BOOL bGetRightPeak;
172 BOOL bGetLeftPeak;
173
174 //! gibt an ob motor ueber groessere distanz faehrt
175 BOOL bLongMove;
176
177 // cm_CounterSet an dieses Fenster weiterleiten (AreaScan-Fenster)
178 HWND m_OldControlWnd;
179
180 //! scheinbar ueberfluessig
181 // 21.04.2004 float fOldPsdStep;
182
183 //! FIX Fehler 49
184 //! beinhaltet die Schrittweite vor Aufruf der Calibr.-Box
185 double dOldMotorWidth;
186
187 //! Handle des Scrollbars
188 HWND hBar, m_lastfocused;
189
190 //! gibt an ob Abzahl der Scrollbarschritte kleiner als 20000 ist (1) oder
191 //! nicht (2)
192 int BarFactor;
193
194 int nMotor; //! enthaelt Index des Thetamotors in der Motorenliste
195 float dStepWidth; //! Wert fuer Winkel pro Kanal
196 TOneDimDetector *Psd; //! Pointer auf den Psd
197 };
198
199 #endif // #ifndef _DETECGUI_H
200