OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
Dialog.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
10#include "OTGui/DialogCfg.h"
13
14// Qt header
15#include <QtWidgets/qdialog.h>
16
17namespace ot {
18
19 class OT_WIDGETS_API_EXPORT Dialog : public QDialog, public ot::QWidgetInterface {
20 Q_OBJECT
22 public:
28 Cancel
29 };
30
31 enum ShowFlag {
32 DefaultShow = 0 << 0,
33 CenterOnParent = 1 << 0,
34 FitOnScreen = 1 << 1,
35 IdealFit = CenterOnParent | FitOnScreen
36 };
38
39 enum class DialogState {
40 NoState = 0 << 0,
41 MousePressed = 1 << 0,
42 Closing = 1 << 1
43 };
45
46 Dialog(QWidget* _parent = (QWidget*)nullptr);
47 Dialog(const DialogCfg& _config, QWidget* _parent = (QWidget*)nullptr);
48 virtual ~Dialog();
49
51 virtual QWidget* getQWidget(void) override { return this; };
52 virtual const QWidget* getQWidget(void) const override { return this; };
53
55 DialogResult showDialog(const ShowFlags& _showFlags = ShowFlags(IdealFit));
56
57 // ###########################################################################################################################################################################################################################################################################################################################
58
59 // Setter / Getter
60
61 void setDialogFlag(DialogCfg::DialogFlag _flag, bool _active = true) { m_flags.setFlag(_flag, _active); };
62 void setDialogFlags(DialogCfg::DialogFlags _flags) { m_flags = _flags; };
63 DialogCfg::DialogFlags dialogFlags(void) const { return m_flags; };
64
65 DialogResult dialogResult(void) const { return m_result; };
66
67 void setDialogName(const std::string& _name) { m_dialogName = _name; };
68 const std::string& dialogName(void) const { return m_dialogName; };
69
70 const DialogStateFlags& getDialogState(void) const { return m_state; };
71
72 // ###########################################################################################################################################################################################################################################################################################################################
73
74 // Public slots
75
76 public Q_SLOTS:
77 void close(DialogResult _result);
78 void closeOk(void);
79 void closeYes(void);
80 void closeNo(void);
81 void closeRetry(void);
82 void closeCancel(void);
83
84 // ###########################################################################################################################################################################################################################################################################################################################
85
86 // Protected
87
88 protected:
89 virtual void keyPressEvent(QKeyEvent* _event) override;
90 virtual void mousePressEvent(QMouseEvent* _event) override;
91 virtual void mouseMoveEvent(QMouseEvent* _event) override;
92 virtual void mouseReleaseEvent(QMouseEvent* _event) override;
93 virtual void closeEvent(QCloseEvent* _event) override;
94
95 virtual bool mayCloseDialogWindow(void) const { return true; };
96
97 private:
98 DialogStateFlags m_state;
99 QPoint m_lastMousePos;
101 DialogResult m_result;
102 std::string m_dialogName;
103 };
104}
105
#define OT_ADD_FLAG_FUNCTIONS(___enumName)
Will add the default bitwise operations for the provided private 32/64 bit bitfield....
Definition Flags.h:129
This file contains defines that may be used simplyfy class creation.
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
void close(int _exitCode)
Definition main.cpp:178
Definition DialogCfg.h:22
DialogFlag
Definition DialogCfg.h:24
Definition Dialog.h:19
DialogResult dialogResult(void) const
Definition Dialog.h:65
DialogResult
Definition Dialog.h:23
@ Retry
Definition Dialog.h:27
@ No
Definition Dialog.h:26
@ Ok
Definition Dialog.h:24
@ Yes
Definition Dialog.h:25
const DialogStateFlags & getDialogState(void) const
Definition Dialog.h:70
Flags< DialogState > DialogStateFlags
Definition Dialog.h:44
virtual bool mayCloseDialogWindow(void) const
Definition Dialog.h:95
virtual const QWidget * getQWidget(void) const override
Definition Dialog.h:52
void setDialogFlags(DialogCfg::DialogFlags _flags)
Definition Dialog.h:62
void setDialogFlag(DialogCfg::DialogFlag _flag, bool _active=true)
Definition Dialog.h:61
const std::string & dialogName(void) const
Definition Dialog.h:68
void setDialogName(const std::string &_name)
Definition Dialog.h:67
virtual QWidget * getQWidget(void) override
Returns a pointer to the root widget of this object.
Definition Dialog.h:51
ShowFlag
Definition Dialog.h:31
Flags< ShowFlag > ShowFlags
Definition Dialog.h:37
DialogState
Definition Dialog.h:39
DialogCfg::DialogFlags dialogFlags(void) const
Definition Dialog.h:63
The Flags class is a wrapper around a enum that allows bitwise operations (flags)....
Definition Flags.h:214
Definition QWidgetInterface.h:18
Definition Connector.h:8