Salome HOME
Implimentation of the Config XML Reader
[modules/shaper.git] / src / XGUI / XGUI_Interfaces.h
1
2 #ifndef XGUI_Interfaces_H
3 #define XGUI_Interfaces_H
4
5 #include <QString>
6 #include <QIcon>
7 #include <QKeySequence>
8
9
10 class IFeatureMenu
11 {
12 public:
13     virtual bool enabled() const = 0;
14     virtual void enable() = 0;
15     virtual void disable() = 0;
16     virtual QString getId() const = 0;
17     virtual void connectTo(const QObject* theResiver, const char* theSlot) = 0;
18 };
19
20
21 class IMenuGroup
22 {
23 public:
24     virtual IFeatureMenu* addFeature(const QString& theId, 
25                                      const QString& theTitle, 
26                                      const QString& theTip, 
27                                      const QIcon& theIcon, 
28                                      const QKeySequence& theKeys = QKeySequence()) = 0;
29 };
30
31
32 class IWorkbench
33 {
34 public:
35     virtual IMenuGroup* addGroup(const QString& theName = "") = 0;
36     virtual IMenuGroup* findGroup(const QString& theName) = 0;
37 };
38
39
40 class IWorkshop
41 {
42 public:
43     virtual IWorkbench* addWorkbench(const QString& theName) = 0;
44 };
45
46
47 class IModule
48 {
49 public:
50     virtual void createFeatures() = 0;
51 };
52
53
54 //! This function must return a new module instance.
55 extern "C"
56 {
57    typedef IModule* (*CREATE_FUNC)(IWorkshop*);
58 }
59
60 #define CREATE_MODULE "createModule"
61
62
63 #endif