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

Private GIT Repository
correct relative positionning of source/group
[blast.git] / AbstractBoxItem.h
index ed3e1ee74060ae0f0c696304d5068ae900cc220a..fe08535f65b38d5cdc9020b29410c765d1e2ef0e 100644 (file)
@@ -51,15 +51,16 @@ public:
 
   // testers
   virtual bool isBoxItem();
 
   // testers
   virtual bool isBoxItem();
-  virtual bool isGroupItem();  
+  virtual bool isGroupItem();
+  virtual bool isSourceItem();
   inline bool isSelected() { return selected; }
   inline bool isRstClkVisible(){ return rstClkVisible;}
   inline bool isWishboneVisible(){ return wishboneVisible;}
   bool isInterfaces(int orientation) const;
 
   // others
   inline bool isSelected() { return selected; }
   inline bool isRstClkVisible(){ return rstClkVisible;}
   inline bool isWishboneVisible(){ return wishboneVisible;}
   bool isInterfaces(int orientation) const;
 
   // others
-
-  virtual void interfaceRenamed() = 0;
+  QRectF boundingRectInScene();
+  virtual void nameChanged() = 0; // called when an interface or box name have changed
   void addInterface(InterfaceItem* i, bool resetPosition = false);
   void removeInterface(InterfaceItem* i);
   void resetInterfacesPosition();
   void addInterface(InterfaceItem* i, bool resetPosition = false);
   void removeInterface(InterfaceItem* i);
   void resetInterfacesPosition();
@@ -116,13 +117,13 @@ protected:
   int nameHeight; // the height of the name in Arial 10
   int nameMargin; // the margin around each side of the name
   int ifaceMargin; // the margin around each side of interfaces' name
   int nameHeight; // the height of the name in Arial 10
   int nameMargin; // the margin around each side of the name
   int ifaceMargin; // the margin around each side of interfaces' name
-  QPointF originPoint; // the left-top point that is the origin of the bounding box
+  QPointF originPoint; // the left-top point that is the origin of the bounding box, in the item coordinates
 
   bool selected;
   bool rstClkVisible; //! true if clock/reset interfaces are visible
   bool wishboneVisible; //! true if wishbone interfaces are visible
 
 
   bool selected;
   bool rstClkVisible; //! true if clock/reset interfaces are visible
   bool wishboneVisible; //! true if wishbone interfaces are visible
 
-  QPointF currentPosition; // the start point for resize
+  QPointF currentPosition; // the start point for resize, i.e. the position of the lef-top corner of the box, in the scene coordinates
 
   virtual void updateMinimumSize() = 0; // modify the minimum size
   virtual bool updateGeometry(ChangeType type) = 0; // modify the originPoint and the total dimension
 
   virtual void updateMinimumSize() = 0; // modify the minimum size
   virtual bool updateGeometry(ChangeType type) = 0; // modify the originPoint and the total dimension
@@ -131,7 +132,8 @@ protected:
   /* pure virtual method inherited from QGraphicsItem :
     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) =0;
     virtual QRectF boundingRect() const =0;
   /* pure virtual method inherited from QGraphicsItem :
     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) =0;
     virtual QRectF boundingRect() const =0;
-  */
+  */   
+  
   void initInterfaces();
   int nbInterfacesByOrientation(int orientation);
 };
   void initInterfaces();
   int nbInterfacesByOrientation(int orientation);
 };