]> AND Private Git Repository - blast.git/blobdiff - AbstractBoxItem.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
adding xsd files to master
[blast.git] / AbstractBoxItem.h
index 6eeb46c011f04b5d313df596c58338a5da850bd3..98cec586cb3f35e73dd0777200f72f988e95736b 100644 (file)
@@ -22,6 +22,7 @@ public:
   enum ChangeType { Resize = 0, InterfaceMove };
 
   AbstractBoxItem(AbstractBlock *_refBlock, Dispatcher *_dispatcher, Parameters *_params, QGraphicsItem* parent = Q_NULLPTR);
+  AbstractBoxItem(Dispatcher *_dispatcher, Parameters *_params, QGraphicsItem* parent = Q_NULLPTR);
 
   virtual ~AbstractBoxItem();
 
@@ -40,7 +41,8 @@ public:
   inline QPointF getOriginPoint() { return originPoint; }
 
   // setters
-  inline void setId(int id){ this->id = id; }
+  void setRefBlock(AbstractBlock* _refBlock);
+  inline void setId(int _id){ id = _id; }
   inline void setSelected(bool _selected) { selected = _selected; }  
   inline void setRstClkVisible(bool b){ rstClkVisible = b;}
   void setDimension(int x, int y);
@@ -58,7 +60,28 @@ public:
   void addInterface(InterfaceItem* i, bool resetPosition = false);
   void removeInterface(InterfaceItem* i);
   void resetInterfacesPosition();
-  void deplaceInterface(QPointF pos);
+  /*!
+   * \brief moveInterfaceTo
+   * \param pos the new position (in scene) of the interface
+   *
+   * This method is called when user moves an InterfaceItem.
+   * see BoxItem::mouseMoveEvent() and GroupItem::mouseMoveEvent()
+   */
+  void moveInterfaceTo(QPointF pos);
+  /*!
+   * \brief updateInterfacesAndConnections
+   *
+   * This method allows to recompute the absolute position of the interfaces of this box
+   * taking into account their relative position (see positionRatio atribute) in the width/height
+   * of the box border they are located on. It allows update the shape of all ConnectionItem
+   * connected to this box.
+   *
+   * CAUTION: this method supposes that before its call, a call to prepareGeometryChange() hase been
+   * done for the BoxItem that owns this InterfaceItem, so that the scene will readraw automatically
+   * the BoxItem. For the connections, the call to prepareGeometryChange() is done within setPath()
+   * that is called in this method. Thus, there is no need to call update() after the termination of
+   * this method.
+   */
   void updateInterfacesAndConnections();
 
   InterfaceItem *searchInterfaceByName(QString name);