MNE-CPP  beta 1.0
pluginscene.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef PLUGINSCENE_H
37 #define PLUGINSCENE_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "pluginitem.h"
45 
48 
49 //*************************************************************************************************************
50 //=============================================================================================================
51 // Qt INCLUDES
52 //=============================================================================================================
53 
54 #include <QGraphicsScene>
55 
56 
57 //*************************************************************************************************************
58 //=============================================================================================================
59 // FORWARD DECLARATIONS
60 //=============================================================================================================
61 
62 class QGraphicsSceneMouseEvent;
63 class QMenu;
64 class QPointF;
65 class QGraphicsLineItem;
66 class QColor;
67 class QAction;
68 
69 
70 //*************************************************************************************************************
71 //=============================================================================================================
72 // DEFINE NAMESPACE MNEX
73 //=============================================================================================================
74 
75 namespace MNEX
76 {
77 
78 //*************************************************************************************************************
79 //=============================================================================================================
80 // FORWARD DECLARATIONS
81 //=============================================================================================================
82 
83 class PluginGui;
84 
85 
86 
87 
88 class PluginScene : public QGraphicsScene
89 {
90  Q_OBJECT
91 public:
92  typedef QSharedPointer<PluginScene> SPtr;
93  typedef QSharedPointer<const PluginScene> ConstSPtr;
95  enum Mode { InsertPluginItem, InsertLine, MovePluginItem};
96 
97  explicit PluginScene(QMenu *pMenuPluginItem, PluginGui *pPluginGui);
98 
99  ~PluginScene();
100 
101  //=========================================================================================================
107  void insertItem(const QPointF& pos);
108 
109  //=========================================================================================================
118  bool insertPlugin(QAction* pActionPluginItem, IPlugin::SPtr &pAddedPlugin);
119 
120  inline void setMode(Mode mode);
121  inline void setActionPluginItem(QAction* pAction);
122 
123 signals:
124  void itemInserted(PluginItem *item);
125 
126 protected:
127  void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent);
128  void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent);
129  void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent);
130 
131 private:
132 // bool isItemChange(int type);
133 
134  PluginGui* m_pPluginGui;
136  //Current info
137  Mode m_mode;
138  QAction* m_pActionPluginItem;
140  QMenu *m_pMenuPluginItem;
142  bool leftButtonDown;
143  QPointF startPoint;
144  QGraphicsLineItem *line;
145  QColor m_qColorLine;
146 };
147 
148 //*************************************************************************************************************
149 //=============================================================================================================
150 // INLINE DEFINITIONS
151 //=============================================================================================================
152 
153 void PluginScene::setMode(Mode mode)
154 {
155  m_mode = mode;
156 }
157 
158 
159 //*************************************************************************************************************
160 
161 void PluginScene::setActionPluginItem(QAction* pAction)
162 {
163  m_pActionPluginItem = pAction;
164 }
165 
166 
167 } //NAMESPACE
168 
169 #endif // PLUGINSCENE_H
Contains declaration of PluginSceneManager class.
Contains the declaration of the PluginManager class.
void insertItem(const QPointF &pos)
Definition: pluginscene.cpp:85
QSharedPointer< IPlugin > SPtr
Definition: IPlugin.h:108
bool insertPlugin(QAction *pActionPluginItem, IPlugin::SPtr &pAddedPlugin)
Definition: arrow.h:75
PluginItem class declaration.
QSharedPointer< PluginScene > SPtr
Definition: pluginscene.h:92
QSharedPointer< const PluginScene > ConstSPtr
Definition: pluginscene.h:93