Salome HOME
Merge branch 'master' of newgeom:newgeom.git
[modules/shaper.git] / src / XGUI / XGUI_SalomeConnector.h
1 #ifndef XGUI_SALOMECONNECTOR_H
2 #define XGUI_SALOMECONNECTOR_H
3
4 #include "XGUI.h"
5
6 #include <QString>
7 #include <QStringList>
8
9 class QMainWindow;
10 class XGUI_SalomeViewer;
11
12 /**
13  * An interface which provides a connection of XGUI functionality 
14  * with functionality of SALOME module interface.
15  */
16 class XGUI_EXPORT XGUI_SalomeConnector
17 {
18  public:
19   //! Creates a feature (command) in SALOME desktop
20   //! \param theWBName - a workbench name
21   //! \param theId - an id of the feature
22   //! \param theTitle - a menu item string
23   //! \param theTip - a tooltip string (help)
24   //! \param theIcon - icon
25   //! \param isCheckable - is checkable or not
26   //! \param theKeys - hot keys
27   //! returns created action
28   virtual QAction* addFeature(const QString& theWBName, const QString& theId,
29                               const QString& theTitle, const QString& theTip, const QIcon& theIcon,
30                               const QKeySequence& theKeys, bool isCheckable) = 0;
31
32   //! Creates a command in Edit menu of SALOME desktop
33   //! \param theId - an id of the feature
34   //! \param theTitle - a menu item string
35   //! \param theTip - a tooltip string (help)
36   //! \param theIcon - icon
37   //! \param isCheckable - is checkable or not
38   //! \param theKeys - hot keys
39   //! returns created action
40   virtual QAction* addEditCommand(const QString& theId, const QString& theTitle,
41                                   const QString& theTip, const QIcon& theIcon,
42                                   const QKeySequence& theKeys, bool isCheckable) = 0;
43
44   //! Insert separator into Edit menu of SALOME desktop
45   virtual void addEditMenuSeparator() = 0;
46
47   //! Returns desktop window of SALOME
48   virtual QMainWindow* desktop() const = 0;
49
50   //! Returns command string Id by QAction instance
51   virtual QString commandId(const QAction* theCmd) const = 0;
52
53   //! Returns QAction instance by command string Id
54   virtual QAction* command(const QString& theId) const = 0;
55
56   //! Returns list of defined actions (just by NewGeom module)
57   virtual QList<QAction*> commandList() const = 0;
58
59   //! Returns list of Ids of defined actions (just by NewGeom module)
60   virtual QStringList commandIdList() const = 0;
61
62   //! Set nested actions dependent on command Id
63   //! \param theId - the command ID
64   //! \param theActions - the list of nested actions
65   virtual void setNestedActions(const QString& theId, const QStringList& theActions) = 0;
66
67   //! Returns list of nested actions according to the given command ID
68   virtual QStringList nestedActions(const QString& theId) const = 0;
69
70   //! Returns interface to Salome viewer
71   virtual XGUI_SalomeViewer* viewer() const = 0;
72
73   virtual void createPreferences() = 0;
74 };
75
76 #endif