Control.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GUI_CONTROL_H
00025 #define GUI_CONTROL_H
00026
00027
00028
00029 #include <QObject>
00030 #include <bitset>
00031 #include <stack>
00032
00033 #include <Gui/TaskView/TaskDialog.h>
00034
00035 namespace App
00036 {
00037 class DocumentObject;
00038 class Document;
00039 }
00040
00041 namespace Gui
00042 {
00043 namespace TaskView
00044 {
00045 class TaskDialog;
00046 class TaskView;
00047 }
00048
00049
00052 class GuiExport ControlSingleton : public QObject
00053 {
00054 Q_OBJECT
00055
00056 public:
00057 static ControlSingleton& instance(void);
00058 static void destruct (void);
00059
00064
00065 void showDialog(Gui::TaskView::TaskDialog *dlg);
00066 Gui::TaskView::TaskDialog* activeDialog() const;
00067 void closeDialog();
00069
00073 Gui::TaskView::TaskView* taskPanel() const;
00074 void showTaskView();
00076
00077 bool isAllowedAlterDocument(void) const;
00078 bool isAllowedAlterView(void) const;
00079 bool isAllowedAlterSelection(void) const;
00080
00081 private Q_SLOTS:
00083 void closedDialog();
00084
00085 private:
00086 struct status {
00087 std::bitset<32> StatusBits;
00088 } CurrentStatus;
00089
00090 std::stack<status> StatusStack;
00091
00092 Gui::TaskView::TaskDialog *ActiveDialog;
00093
00094 private:
00096 ControlSingleton();
00098 virtual ~ControlSingleton();
00099
00100 static ControlSingleton* _pcSingleton;
00101 };
00102
00104 inline ControlSingleton& Control(void)
00105 {
00106 return ControlSingleton::instance();
00107 }
00108
00109 }
00110
00111 #endif // GUI_CONTROL_H