BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
AxesItems.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/AxesItems.h
6 //! @brief Defines various axis items
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_AXESITEMS_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_AXESITEMS_H
17 
19 #include <memory>
20 
21 class IAxis;
22 
23 class BA_CORE_API_ BasicAxisItem : public SessionItem {
24 public:
25  static const QString P_IS_VISIBLE;
26  static const QString P_NBINS;
27  static const QString P_MIN_DEG;
28  static const QString P_MAX_DEG;
29  static const QString P_TITLE;
30  static const QString P_TITLE_IS_VISIBLE;
31 
32  explicit BasicAxisItem(const QString& type = "BasicAxis");
33  virtual ~BasicAxisItem();
34 
35  int binCount() const;
36  void setBinCount(int value);
37 
38  double lowerBound() const;
39  void setLowerBound(double value);
40 
41  double upperBound() const;
42  void setUpperBound(double value);
43 
44  QString title() const;
45  void setTitle(const QString& title);
46 
47  virtual std::unique_ptr<IAxis> createAxis(double scale) const;
48 
49 protected:
50  void register_basic_properties();
51 };
52 
53 class BA_CORE_API_ AmplitudeAxisItem : public BasicAxisItem {
54 public:
55  static const QString P_IS_LOGSCALE;
56  static const QString P_LOCK_MIN_MAX;
58 
59  bool isLogScale() const;
60  void setLogScale(bool value);
61 
62 private:
63  void setMinMaxEditor(const QString& editorType);
64 };
65 
66 #endif // BORNAGAIN_GUI_COREGUI_MODELS_AXESITEMS_H
Defines class SessionItem.
static const QString P_IS_LOGSCALE
Definition: AxesItems.h:55
static const QString P_LOCK_MIN_MAX
Definition: AxesItems.h:56
static const QString P_NBINS
Definition: AxesItems.h:26
static const QString P_MAX_DEG
Definition: AxesItems.h:28
static const QString P_TITLE
Definition: AxesItems.h:29
static const QString P_IS_VISIBLE
Definition: AxesItems.h:25
static const QString P_TITLE_IS_VISIBLE
Definition: AxesItems.h:30
static const QString P_MIN_DEG
Definition: AxesItems.h:27
virtual ~BasicAxisItem()
Interface for one-dimensional axes.
Definition: IAxis.h:25
std::unique_ptr< IAxis > createAxis(std::istream &input_stream)
Creates axis of certain type from input stream.