+#include "ctsupport.h"
+#include "scanner.h"
+#include "phantom.h"
+#include "procsignal.h"
+#include "filter.h"
+#include "projections.h"
+#include "ctsim-map.h"
+
+
+class CTSimHelpButton : public wxButton
+{
+public:
+ CTSimHelpButton (wxWindow* parent, int id)
+ : wxButton (parent, id, "Help")
+ {}
+};
+
+
+// CLASS StringValueAndTitleListBox
+//
+// A superclass of wxListBox that can handle string values and titles
+// and by displaying the title in the list box and returning the string value
+
+class StringValueAndTitleListBox : public wxListBox
+{
+ public:
+ StringValueAndTitleListBox (wxDialog* pParent, int nChoices, const char* const aszTitle[], const char* const aszValue[]);
+
+ const char* getSelectionStringValue () const;
+
+ private:
+ const char* const* m_ppszValues;
+};
+
+
+class StringValueAndTitleRadioBox : public wxRadioBox
+{
+ public:
+ StringValueAndTitleRadioBox (wxDialog* pParent, const wxString& strTitle, int nChoices, const char* const aszTitle[], const char* const aszValue[]);
+
+ const char* getSelectionStringValue () const;
+
+ private:
+ const char* const* m_ppszValues;
+};
+
+
+class DialogGetPhantom : public wxDialog
+{
+ public:
+ DialogGetPhantom (wxWindow* pParent, int iDefaultPhantom = Phantom::PHM_HERMAN);
+ virtual ~DialogGetPhantom () {}
+
+ const char* getPhantom ();
+
+ private:
+ StringValueAndTitleRadioBox* m_pRadioBoxPhantom;
+};
+
+class DialogGetThetaRange : public wxDialog
+{
+ public:
+ DialogGetThetaRange (wxWindow* pParent, int iDefaultThetaRange = ParallelRaysums::THETA_RANGE_UNCONSTRAINED);
+ virtual ~DialogGetThetaRange () {}
+
+ int getThetaRange ();
+
+ private:
+ wxRadioBox* m_pRadioBoxThetaRange;
+};
+
+
+#include <vector>
+class ImageFileDocument;
+class DialogGetComparisonImage : public wxDialog
+{
+ public:
+ DialogGetComparisonImage (wxWindow* pParent, const char* const pszTitle, const std::vector<ImageFileDocument*>& rVecIF, bool bShowMakeDifference);
+ virtual ~DialogGetComparisonImage () {}
+
+ ImageFileDocument* getImageFileDocument ();
+
+ bool getMakeDifferenceImage();
+
+ private:
+ wxListBox* m_pListBoxImageChoices;
+ wxCheckBox* m_pMakeDifferenceImage;
+ const std::vector<ImageFileDocument*>& m_rVecIF;
+};
+
+
+class DialogPreferences : public wxDialog
+{
+ public:
+ DialogPreferences (wxWindow* pParent, const char* const pszTitle, bool bAdvanced, bool bAskNewDocs,
+ bool bVerboseLogging, bool bStartupTips, bool bUseBackgroundTasks);
+ virtual ~DialogPreferences ();
+
+ bool getAdvancedOptions ();
+ bool getAskDeleteNewDocs ();
+ bool getVerboseLogging ();
+ bool getStartupTips ();
+ bool getUseBackgroundTasks();
+
+ private:
+ wxCheckBox* m_pCBAdvancedOptions;
+ wxCheckBox* m_pCBAskDeleteNewDocs;
+ wxCheckBox* m_pCBVerboseLogging;
+ wxCheckBox* m_pCBStartupTips;
+ wxCheckBox* m_pCBUseBackgroundTasks;
+};
+