OpenLexocad  27.1
Message.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <QEvent>
5 #include <QLineEdit>
6 #include <QString>
7 #pragma warning(disable : 4482)
8 #pragma warning(push)
9 #pragma warning(disable : 4100)
10 #include <string>
11 #pragma warning(pop)
12 
13 
14 static const QEvent::Type MessageEventType = QEvent::Type(QEvent::User + 310);
15 
16 namespace Base
17 {
18 class LX_BASE_EXPORT MessageEvent
19 
20 #ifndef SWIG
21  : public QEvent
22 #endif
23 
24 {
25 public:
26  MessageEvent(QString message, void* data) : QEvent(MessageEventType)
27  {
28  _message = message;
29  _data = data;
30  }
31  QString _message;
32  void* _data;
33 };
34 
35 class MessageBase;
36 
37 class LX_BASE_EXPORT MessageInterface
38 {
39 public:
41  {
42  yes = 1,
43  no = 2,
44  cancel = 3
45  };
46 
47  virtual void showMessage(const QString& message) = 0;
48  virtual void postMessage(const QString& message) = 0;
49 
50  virtual void showMessageBoxInformation(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false) = 0;
51  virtual void showMessageBoxWarning(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false) = 0;
52  virtual void showMessageBoxError(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false) = 0;
53  virtual bool showMessageBoxQuestionYesNo(const QString& title,
54  const QString& text,
55  standard_button defaultChoice = yes,
56  QWidget* parent = NULL) = 0;
57  virtual standard_button showMessageBoxQuestionYesNoCancel(const QString& title,
58  const QString& text,
59  standard_button defaultChoice = yes,
60  QWidget* parent = NULL) = 0;
61  virtual int showMessageBoxQuestion(const QString& title,
62  const QString& text,
63  const QString& text_1,
64  const QString& text_2,
65  const QString& text_3,
66  QWidget* parent = NULL) = 0;
67 
68  virtual void setMessageReciever(MessageInterface* member) = 0;
69  virtual MessageInterface* getMessageReciever() = 0;
70  virtual void setPostMessageReciever(QObject* postMessagereceiver) = 0;
71  virtual void debugMessage(const QString& id, const QString& text) = 0;
72 
73  virtual double getDoubleDialog(const QString& title,
74  const QString& label,
75  double value = 0,
76  double min = -2147483647,
77  double max = 2147483647,
78  int decimals = 1,
79  bool* ok = 0) = 0;
80  virtual int getIntDialog(const QString& title,
81  const QString& label,
82  int value = 0,
83  int min = -2147483647,
84  int max = 2147483647,
85  int step = 1,
86  bool* ok = 0) = 0;
87  virtual QString getTextDialog(const QString& title,
88  const QString& label,
89  QLineEdit::EchoMode mode = QLineEdit::Normal,
90  const QString& text = QString(),
91  bool* ok = 0) = 0;
92  virtual QString getItem(const QString& title,
93  const QString& label,
94  const QStringList& items,
95  int current = 0,
96  bool editable = true,
97  bool* ok = 0) = 0;
98 
99 protected:
100  MessageInterface* _member = 0;
101  QObject* _postMessagereceiver = 0;
102 };
103 
104 class LX_BASE_EXPORT MessageBase : public MessageInterface
105 {
106 public:
107  static MessageBase& instance(void);
108 
109  virtual void showMessage(const QString& message);
110 
111  virtual void showMessageBoxInformation(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false);
112  virtual void showMessageBoxWarning(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false);
113  virtual void showMessageBoxError(const QString& title, const QString& text, QWidget* parent = nullptr, bool silent = false);
114  virtual bool showMessageBoxQuestionYesNo(const QString& title, const QString& text, standard_button defaultChoice = yes, QWidget* parent = NULL);
115  virtual standard_button showMessageBoxQuestionYesNoCancel(const QString& title,
116  const QString& text,
117  standard_button defaultChoice = yes,
118  QWidget* parent = NULL);
119  virtual int showMessageBoxQuestion(const QString& title,
120  const QString& text,
121  const QString& text_1,
122  const QString& text_2,
123  const QString& text_3,
124  QWidget* parent = NULL);
125 
126  virtual void debugMessage(const QString& id, const QString& text);
127  virtual void setMessageReciever(MessageInterface* member);
128  virtual MessageInterface* getMessageReciever();
129  virtual void setPostMessageReciever(QObject* postMessagereceiver);
130  virtual void postMessage(const QString& message);
131 
132  virtual double getDoubleDialog(const QString& title,
133  const QString& label,
134  double value = 0,
135  double min = -2147483647,
136  double max = 2147483647,
137  int decimals = 1,
138  bool* ok = 0);
139  virtual int
140  getIntDialog(const QString& title, const QString& label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool* ok = 0);
141  virtual QString getTextDialog(const QString& title,
142  const QString& label,
143  QLineEdit::EchoMode mode = QLineEdit::Normal,
144  const QString& text = QString(),
145  bool* ok = 0);
146  virtual QString getItem(const QString& title,
147  const QString& label,
148  const QStringList& items,
149  int current = 0,
150  bool editable = true,
151  bool* ok = 0);
152 
153  virtual ~MessageBase(void);
154 private:
155  MessageBase(void);
156 
157 
158  static std::unique_ptr<MessageBase> _instance;
159 };
160 
161 inline LX_BASE_EXPORT Base::MessageBase& Message(void)
162 {
164 }
165 
166 } // namespace Base
void * _data
Definition: Message.h:32
static MessageBase & instance(void)
MessageEvent(QString message, void *data)
Definition: Message.h:26
Definition: Message.h:104
Definition: Message.h:18
LX_OPENLXUI_EXPORT Core::StringResult getTextDialog(const Base::String &label, const Base::String &initialValue=L"", const int &mode=0)
LX_BASE_EXPORT Base::MessageBase & Message(void)
Definition: Message.h:161
standard_button
Definition: Message.h:40
Definition: Message.h:37
Definition: AbstractXMLReader.h:5
LX_OPENLXUI_EXPORT Core::DoubleResult getDoubleDialog(const Base::String &label, const double &initialValue=0, const int &decimals=1, const double &minValue=-DBL_MAX, const double &maxValue=DBL_MAX)
QString _message
Definition: Message.h:31
LX_OPENLXUI_EXPORT Core::IntegerResult getIntDialog(const Base::String &label, const int &initialValue=0, const int &step=1, const int &minValue=-INT_MAX, const int &maxValue=INT_MAX)