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 SUIT_ViewManager;
24 class CAM_Application;
32 Class : LightApp_Module
33 Description : Base class for all light modules
36 class LIGHTAPP_EXPORT LightApp_Module : public CAM_Module
41 LightApp_Module( const QString& );
42 virtual ~LightApp_Module();
44 virtual void initialize( CAM_Application* );
45 virtual void windows( QMap<int, int>& ) const;
46 virtual void viewManagers( QStringList& ) const;
48 virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& );
50 virtual void createPreferences();
52 LightApp_Application* getApp() const;
54 virtual void update( const int );
55 // Update viewer or/and object browser etc. in accordance with update flags
56 // ( see SalomeApp_UpdateFlags enumeration ). Derived modules can redefine this method
57 // for their own purposes
59 virtual void updateObjBrowser( bool = true, SUIT_DataObject* = 0 );
60 // Update object bropwser ( for updating model or whole object browser use update() method
63 virtual void selectionChanged();
64 virtual void preferencesChanged( const QString&, const QString& );
66 virtual void studyActivated() {};
68 virtual LightApp_Displayer* displayer();
71 virtual bool activateModule( SUIT_Study* );
72 virtual bool deactivateModule( SUIT_Study* );
77 virtual void onModelSaved();
78 virtual void onModelOpened();
79 virtual void onModelClosed();
81 virtual void onOperationStopped( SUIT_Operation* );
82 virtual void onOperationDestroyed();
83 virtual void onShowHide();
84 virtual void onViewManagerAdded( SUIT_ViewManager* );
85 virtual void onViewManagerRemoved( SUIT_ViewManager* );
88 virtual QtxPopupMgr* popupMgr();
89 LightApp_Preferences* preferences() const;
91 virtual CAM_DataModel* createDataModel();
92 virtual LightApp_Selection* createSelection() const;
94 int addPreference( const QString& label );
95 int addPreference( const QString& label, const int pId, const int = -1,
96 const QString& section = QString::null,
97 const QString& param = QString::null );
98 QVariant preferenceProperty( const int, const QString& ) const;
99 void setPreferenceProperty( const int, const QString&, const QVariant& );
101 /*! Module stores operations in map. This method starts operation by id.
102 * If operation isn't in map, then it will be created by createOperation method
103 * and will be inserted to map
105 void startOperation( const int );
106 /*! Create operation by its id. You must not call this method, it will be called automatically
107 * by startOperation. Please redefine this method in current module
109 virtual LightApp_Operation* createOperation( const int ) const;
111 virtual void updateControls();
114 typedef QMap<int,LightApp_Operation*> MapOfOperation;
117 QtxPopupMgr* myPopupMgr;
118 MapOfOperation myOperations;
119 LightApp_SwitchOp* mySwitchOp;
122 int myDisplay, myErase, myDisplayOnly, myEraseAll;