Salome HOME
IPAL BugID9021, added a call of a dialog box for closing the active study, a new...
[modules/gui.git] / src / STD / STD_Application.h
1 #ifndef STD_APPLICATION_H
2 #define STD_APPLICATION_H
3
4 #include "STD.h"
5
6 #include <SUIT_Application.h>
7
8 #include <SUIT_Desktop.h>
9 #include <SUIT_ViewManager.h>
10
11 #include <qmap.h>
12 #include <qptrlist.h>
13
14 class QToolBar;
15 class QtxAction;
16 class QPopupMenu;
17 class SUIT_Operation;
18 class SUIT_ViewWindow;
19 class SUIT_ToolWindow;
20
21 typedef QPtrList<SUIT_ViewManager> ViewManagerList;
22
23 #if defined WIN32
24 #pragma warning( disable: 4251 )
25 #endif
26
27 class STD_EXPORT STD_Application : public SUIT_Application
28 {
29   Q_OBJECT
30
31 public:
32   STD_Application();
33   virtual ~STD_Application();
34
35   virtual QString       applicationName() const;
36
37   virtual bool          isPossibleToClose();
38   virtual bool          useFile( const QString& );
39
40   virtual void          createEmptyStudy();
41
42   void                  setEditEnabled( const bool );
43   bool                  isEditEnabled() const { return myEditEnabled; }
44
45   void                  clearViewManagers();
46   virtual void          addViewManager( SUIT_ViewManager* );
47   virtual void          removeViewManager( SUIT_ViewManager* );
48
49   SUIT_ViewManager*     activeViewManager() const;
50   SUIT_ViewManager*     viewManager( const QString& ) const;
51
52   bool                  containsViewManager( SUIT_ViewManager* ) const;
53
54   ViewManagerList       viewManagers() const;
55   void                  viewManagers( ViewManagerList& ) const;
56   void                  viewManagers( const QString&, ViewManagerList& ) const;
57
58   virtual QString       getFileFilter() const { return QString::null; }
59   virtual QString       getFileName( bool open, const QString& initial, const QString& filters, 
60                                      const QString& caption, QWidget* parent );
61   QString               getDirectory( const QString& initial, const QString& caption, QWidget* parent );
62
63   virtual void          start();
64
65   virtual void          contextMenuPopup( const QString&, QPopupMenu*, QString& ) {}
66
67 signals:
68   void                  viewManagerAdded( SUIT_ViewManager* );
69   void                  viewManagerRemoved( SUIT_ViewManager* );
70   void                  viewManagerActivated( SUIT_ViewManager* );
71
72 public slots:
73   virtual void          onNewDoc();
74   virtual void          onCloseDoc();
75   virtual void          onSaveDoc();
76   virtual bool          onSaveAsDoc();
77
78   virtual void          onOpenDoc();
79   virtual bool          onOpenDoc( const QString& );
80
81   //virtual void          onLoadDoc();
82   virtual bool          onLoadDoc( const QString& );
83
84   virtual void          onExit();
85
86   virtual void          onCopy();
87   virtual void          onPaste();
88
89   virtual void          onViewStatusBar( bool );
90
91   virtual void          onHelpAbout();
92
93   virtual void          onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
94   virtual void          onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
95
96 private slots:
97   virtual void          onViewManagerActivated( SUIT_ViewManager* );
98
99 protected:
100   enum {  FileNewId, FileOpenId, FileCloseId, FileSaveId, FileSaveAsId,
101           FileExitId, EditCutId, EditCopyId, EditPasteId, ViewStatusBarId,
102           NewWindowId, HelpAboutId, ViewWindowsId, FileLoadId, UserID };
103  
104 protected:
105   virtual void          createActions();
106   virtual void          updateDesktopTitle();
107   virtual void          updateCommandsStatus();
108
109   virtual void          beforeCloseDoc( SUIT_Study* theDoc );
110   virtual void          afterCloseDoc();
111
112   virtual void          setActiveViewManager( SUIT_ViewManager* );
113
114 private:
115   ViewManagerList       myViewMgrs;
116   SUIT_ViewManager*     myActiveViewMgr;
117
118 private:
119   bool                  myEditEnabled;
120 };
121
122 #if defined WIN32
123 #pragma warning( default: 4251 )
124 #endif
125
126 #endif