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

Private GIT Repository
finished testbench generation
[blast.git] / BoxItem.h
index c8a942e8590a9f8c6ad6566a0516706f28dce73a..ee4070a71163f762a99f79dfec667d41c87052e2 100644 (file)
--- a/BoxItem.h
+++ b/BoxItem.h
@@ -30,17 +30,25 @@ using namespace Qt;
 class BoxItem : public AbstractBoxItem {
 
 public:
 class BoxItem : public AbstractBoxItem {
 
 public:
-  BoxItem(AbstractBlock *_refBlock, Dispatcher *_dispatcher, Parameters *_params, GroupItem* parent) throw(Exception);
-  BoxItem(Dispatcher *_dispatcher, Parameters *_params, GroupItem* parent) throw(Exception);
+
+  enum Position { Free = 0, Left , Right, Top, Bottom, TopLeft, BottomLeft, TopRight, BottomRight }; // if not Free, glue the box to the desired border
+  enum SpanType { NoSpan = 0, HSpan = 1, VSpan = 2 };
+
+  BoxItem(AbstractBlock *_refBlock, Dispatcher *_dispatcher, Parameters *_params, GroupItem* parent, int _lock = NoLock, SpanType _span = NoSpan, Position _position = Free) throw(Exception);
+  BoxItem(Dispatcher *_dispatcher, Parameters *_params, GroupItem* parent, int _lock = NoLock, SpanType _span = NoSpan, Position _position = Free) throw(Exception);
   ~BoxItem();
 
   void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);  
 
   // getters
   inline GroupItem *getChildGroupItem() { return childGroupItem; }
   ~BoxItem();
 
   void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);  
 
   // getters
   inline GroupItem *getChildGroupItem() { return childGroupItem; }
+  inline Position getPosition() { return position; }
+  inline SpanType getSpan() { return span; }
 
   // setters
   inline void setChildGroupItem(GroupItem* item) { childGroupItem = item; }
 
   // setters
   inline void setChildGroupItem(GroupItem* item) { childGroupItem = item; }
+  inline void setPosition(Position _position) { position = _position; }
+  inline void setSpan(SpanType _span) { span = _span; }
 
   // testers
   bool isBoxItem();
 
   // testers
   bool isBoxItem();
@@ -51,11 +59,14 @@ public:
   void loadFunctional(QDomElement funcElement) throw(Exception);
   void save(QXmlStreamWriter& writer);
 
   void loadFunctional(QDomElement funcElement) throw(Exception);
   void save(QXmlStreamWriter& writer);
 
-protected:
-
   void updateMinimumSize(); // modify the minimum size
   bool updateGeometry(ChangeType type); // modify the originPoint and the total dimension
 
   void updateMinimumSize(); // modify the minimum size
   bool updateGeometry(ChangeType type); // modify the originPoint and the total dimension
 
+protected:
+
+  SpanType span;
+  Position position;
+
   void mousePressEvent(QGraphicsSceneMouseEvent *event);
   void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
   void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
   void mousePressEvent(QGraphicsSceneMouseEvent *event);
   void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
   void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
@@ -65,9 +76,9 @@ protected:
 private:
 
   /* NOTE :
 private:
 
   /* NOTE :
-   A BlockItem is always graphically within a GroupItem, inside the same scene.   
+   A BoxItem is always graphically within a GroupItem, inside the same scene.
 
 
-   A BlockItem may also be the graphical view of a GroupBlock. In this case, there exists a child scene
+   A BoxItem may also be the graphical view of a GroupBlock. In this case, there exists a child scene
    containing a GroupItem. insideGroup atribute refers to this GroupItem and thus, may be NULL if the current
    blockItem represents a functional block
    */
    containing a GroupItem. insideGroup atribute refers to this GroupItem and thus, may be NULL if the current
    blockItem represents a functional block
    */