1 // File: LightApp_Module.h
2 // Created: 6/20/2005 16:25:06 AM
4 // Copyright (C) CEA 2005
6 #ifndef LIGHTAPP_MODULE_H
7 #define LIGHTAPP_MODULE_H
10 #include <CAM_Module.h>
12 class LightApp_Application;
13 class LightApp_Preferences;
14 class LightApp_Selection;
15 class LightApp_Operation;
16 class LightApp_SwitchOp;
17 class LightApp_ShowHideOp;
18 class LightApp_Displayer;
21 class SUIT_DataObject;
23 class CAM_Application;
31 Class : LightApp_Module
32 Description : Base class for all light modules
35 class LIGHTAPP_EXPORT LightApp_Module : public CAM_Module
40 LightApp_Module( const QString& );
41 virtual ~LightApp_Module();
43 virtual void initialize( CAM_Application* );
44 virtual void windows( QMap<int, int>& ) const;
45 virtual void viewManagers( QStringList& ) const;
47 virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& );
49 virtual void createPreferences();
51 LightApp_Application* getApp() const;
53 virtual void update( const int );
54 // Update viewer or/and object browser etc. in accordance with update flags
55 // ( see SalomeApp_UpdateFlags enumeration ). Derived modules can redefine this method
56 // for their own purposes
58 virtual void updateObjBrowser( bool = true, SUIT_DataObject* = 0 );
59 // Update object bropwser ( for updating model or whole object browser use update() method
62 virtual void selectionChanged();
63 virtual void preferencesChanged( const QString&, const QString& );
65 virtual void studyActivated() {};
67 virtual LightApp_Displayer* displayer();
70 virtual bool activateModule( SUIT_Study* );
71 virtual bool deactivateModule( SUIT_Study* );
76 virtual void onModelSaved();
77 virtual void onModelOpened();
78 virtual void onModelClosed();
80 virtual void onOperationStopped( SUIT_Operation* );
81 virtual void onOperationDestroyed();
82 virtual void onShowHide();
85 virtual QtxPopupMgr* popupMgr();
86 LightApp_Preferences* preferences() const;
88 virtual CAM_DataModel* createDataModel();
89 virtual LightApp_Selection* createSelection() const;
91 int addPreference( const QString& label );
92 int addPreference( const QString& label, const int pId, const int = -1,
93 const QString& section = QString::null,
94 const QString& param = QString::null );
95 QVariant preferenceProperty( const int, const QString& ) const;
96 void setPreferenceProperty( const int, const QString&, const QVariant& );
98 /*! Module stores operations in map. This method starts operation by id.
99 * If operation isn't in map, then it will be created by createOperation method
100 * and will be inserted to map
102 void startOperation( const int );
103 /*! Create operation by its id. You must not call this method, it will be called automatically
104 * by startOperation. Please redefine this method in current module
106 virtual LightApp_Operation* createOperation( const int ) const;
108 virtual void updateControls();
111 typedef QMap<int,LightApp_Operation*> MapOfOperation;
114 QtxPopupMgr* myPopupMgr;
115 MapOfOperation myOperations;
116 LightApp_SwitchOp* mySwitchOp;
119 int myDisplay, myErase, myDisplayOnly, myEraseAll;