Salome HOME
debug IPAL9411: redefine virtual methods createEmptyStudy and activateModule
[modules/gui.git] / src / CAM / CAM_Application.h
1 #ifndef CAM_APPLICATION_H
2 #define CAM_APPLICATION_H
3
4 #include "STD_Application.h"
5
6 #include "CAM_Module.h"
7
8 #include <qptrlist.h>
9
10 class QPopupMenu;
11
12 #ifdef WIN32
13 #pragma warning( disable:4251 )
14 #endif
15
16 class CAM_EXPORT CAM_Application : public STD_Application  
17 {
18   Q_OBJECT
19
20 public:
21   typedef QPtrList<CAM_Module>         ModuleList;
22   typedef QPtrListIterator<CAM_Module> ModuleListIterator;
23
24 public:
25   CAM_Application( const bool = true );
26   virtual ~CAM_Application();
27
28   virtual void        start();
29
30   CAM_Module*         activeModule() const;
31   CAM_Module*         module(  const QString& ) const;
32
33   ModuleListIterator  modules() const;
34   void                modules( ModuleList& ) const;
35   void                modules( QStringList&, const bool loaded = true ) const;
36
37   virtual void        addModule( CAM_Module* );
38
39   virtual void        loadModules();
40   virtual CAM_Module* loadModule( const QString& );
41
42   virtual bool        activateModule( const QString& );
43
44   virtual void        contextMenuPopup( const QString&, QPopupMenu*, QString& );
45
46   QString             moduleName( const QString& ) const;
47   QString             moduleTitle( const QString& ) const;
48
49   virtual void        createEmptyStudy();
50
51 protected:
52   virtual SUIT_Study* createNewStudy();
53   virtual void        updateCommandsStatus();
54
55   virtual void        moduleAdded( CAM_Module* );
56   virtual void        beforeCloseDoc( SUIT_Study* );
57   virtual bool        activateModule( CAM_Module* = 0 );
58
59   virtual void        setActiveStudy( SUIT_Study* );
60
61   QString             moduleLibrary( const QString&, const bool = true ) const;
62
63 private:
64   void                readModuleList();
65
66 private:
67   typedef struct { QString name, title, internal; } ModuleInfo;
68   typedef QValueList<ModuleInfo>                    ModuleInfoList;
69
70 private:
71   CAM_Module*         myModule;
72   ModuleList          myModules;
73   ModuleInfoList      myInfoList;
74   bool                            myAutoLoad;
75 };
76
77 #ifdef WIN32
78 #pragma warning( default:4251 )
79 #endif
80
81 #endif