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) { return this; }
52
54 DialogResult showDialog(const ShowFlags& _showFlags = ShowFlags(IdealFit));
55
56 // ###########################################################################################################################################################################################################################################################################################################################
57
58 // Setter / Getter
59
60 void setDialogFlag(DialogCfg::DialogFlag _flag, bool _active = true) { m_flags.setFlag(_flag, _active); };
61 void setDialogFlags(DialogCfg::DialogFlags _flags) { m_flags = _flags; };
62 DialogCfg::DialogFlags dialogFlags(void) const { return m_flags; };
63
64 DialogResult dialogResult(void) const { return m_result; };
65
66 void setDialogName(const std::string& _name) { m_dialogName = _name; };
67 const std::string& dialogName(void) const { return m_dialogName; };
68
69 const DialogStateFlags& getDialogState(void) const { return m_state; };
70
71 // ###########################################################################################################################################################################################################################################################################################################################
72
73 // Public slots
74
75 public Q_SLOTS:
76 void close(DialogResult _result);
77 void closeOk(void);
78 void closeYes(void);
79 void closeNo(void);
80 void closeRetry(void);
81 void closeCancel(void);
82
83 // ###########################################################################################################################################################################################################################################################################################################################
84
85 // Protected
86
87 protected:
88 virtual void keyPressEvent(QKeyEvent* _event) override;
89 virtual void mousePressEvent(QMouseEvent* _event) override;
90 virtual void mouseMoveEvent(QMouseEvent* _event) override;
91 virtual void mouseReleaseEvent(QMouseEvent* _event) override;
92 virtual void closeEvent(QCloseEvent* _event) override;
93
94 virtual bool mayCloseDialogWindow(void) const { return true; };
95
96 private:
97 DialogStateFlags m_state;
98 QPoint m_lastMousePos;
100 DialogResult m_result;
101 std::string m_dialogName;
102 };
103}
104
#define OT_ADD_FLAG_FUNCTIONS(___enumName)
Will add the default bitwise operations for the provided 32 bit bitfield. Use this at the bottom of t...
Definition Flags.h:60
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
Definition DialogCfg.h:22
DialogFlag
Definition DialogCfg.h:24
Definition Dialog.h:19
DialogResult dialogResult(void) const
Definition Dialog.h:64
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:69
Flags< DialogState > DialogStateFlags
Definition Dialog.h:44
virtual bool mayCloseDialogWindow(void) const
Definition Dialog.h:94
void setDialogFlags(DialogCfg::DialogFlags _flags)
Definition Dialog.h:61
void setDialogFlag(DialogCfg::DialogFlag _flag, bool _active=true)
Definition Dialog.h:60
const std::string & dialogName(void) const
Definition Dialog.h:67
void setDialogName(const std::string &_name)
Definition Dialog.h:66
virtual QWidget * getQWidget(void)
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:62
This class is used to manage flags. Don't forget to add OT_ADD_FLAG_FUNCTIONS and the bottom of your ...
Definition Flags.h:91
Definition QWidgetInterface.h:18
Definition Connector.h:8