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

Private GIT Repository
moved clocks list to graph
[blast.git] / InterfaceItem.cpp
index ff5f5c6142d204d6b18b4b5d7df9d839c981beef..02b04ac6aa3db045d593bab291c265bc715b301e 100644 (file)
@@ -11,7 +11,7 @@ InterfaceItem::InterfaceItem(double _position,
                              int _orientation,
                              ConnectedInterface *_refInter,
                              AbstractBoxItem* _owner,
                              int _orientation,
                              ConnectedInterface *_refInter,
                              AbstractBoxItem* _owner,
-                             Parameters* _params) {
+                             Parameters* _params, bool forceVisible) {
   positionRatio = _position;
   orientation = _orientation;
   refInter = _refInter;
   positionRatio = _position;
   orientation = _orientation;
   refInter = _refInter;
@@ -24,7 +24,7 @@ InterfaceItem::InterfaceItem(double _position,
   nameWidth = fmName.width(refInter->getName());
   nameHeight = fmName.height();
   // by default, only data interface are visible
   nameWidth = fmName.width(refInter->getName());
   nameHeight = fmName.height();
   // by default, only data interface are visible
-  if (refInter->getPurpose() == AbstractInterface::Data) {
+  if ((forceVisible) || (refInter->getPurpose() == AbstractInterface::Data)) {
     visible = true;
   }
   else {
     visible = true;
   }
   else {
@@ -98,7 +98,7 @@ void InterfaceItem::paint(QPainter *painter) {
       if(owner->isBoxItem()) {
         painter->setPen(QPen(Qt::black,1));
       }
       if(owner->isBoxItem()) {
         painter->setPen(QPen(Qt::black,1));
       }
-      else if(owner->isSourceItem()) {
+      else if(owner->isStimuliItem()) {
         painter->setPen(QPen(Qt::darkCyan,1));
       }
     }
         painter->setPen(QPen(Qt::darkCyan,1));
       }
     }
@@ -118,16 +118,29 @@ void InterfaceItem::paint(QPainter *painter) {
     }
 
     // draw arrows
     }
 
     // draw arrows
-    if(refInter->getDirection() == AbstractInterface::Input) {
-      painter->drawPath(params->inArrow);
+    if ( (refInter->getPurpose() == AbstractInterface::Clock) || (refInter->getPurpose() == AbstractInterface::Reset)) {
+      painter->drawPath(params->clkrstArrow);
+    }
+    else if(refInter->getDirection() == AbstractInterface::Input) {
+      painter->drawPath(params->dataArrowIn);
     }
     else if(refInter->getDirection() == AbstractInterface::Output) {
     }
     else if(refInter->getDirection() == AbstractInterface::Output) {
-      painter->drawPath(params->outArrow);
+      painter->drawPath(params->dataArrowOut);
     } else if(refInter->getDirection() == AbstractInterface::InOut) {
     } else if(refInter->getDirection() == AbstractInterface::InOut) {
-      painter->drawPath(params->inArrow);
-      painter->drawPath(params->outArrow);
+      painter->drawPath(params->dataArrowIn);
+      painter->drawPath(params->dataArrowOut);
+    }
+
+    // paint modifier box if needed
+    ConnectedInterface* connIface = AI_TO_CON(refInter->getAssociatedIface());
+    if ((connIface != NULL) && (connIface->getInputModifier() != NULL)) {
+      painter->save();
+      painter->translate(params->arrowWidth+params->arrowLineLength,0);
+      painter->drawRect(0,-5,10,10);
+      painter->restore();
     }
 
     }
 
+
     // draw names
     if(selected) {
       painter->setPen(QPen(Qt::red,2));
     // draw names
     if(selected) {
       painter->setPen(QPen(Qt::red,2));
@@ -152,7 +165,7 @@ void InterfaceItem::paint(QPainter *painter) {
       if(owner->isGroupItem()){
         painter->drawText(-(w+params->arrowWidth+params->arrowLineLength),-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
       }
       if(owner->isGroupItem()){
         painter->drawText(-(w+params->arrowWidth+params->arrowLineLength),-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
       }
-      else if((owner->isBoxItem()) || (owner->isSourceItem())){
+      else if((owner->isBoxItem()) || (owner->isStimuliItem())){
         painter->drawText(0,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
       }
     }
         painter->drawText(0,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
       }
     }
@@ -161,10 +174,12 @@ void InterfaceItem::paint(QPainter *painter) {
       if(owner->isGroupItem()) {
         painter->drawText(params->arrowWidth+params->arrowLineLength,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
       }
       if(owner->isGroupItem()) {
         painter->drawText(params->arrowWidth+params->arrowLineLength,-h/2,w,h,Qt::AlignRight | Qt::TextWordWrap, refInter->getName());
       }
-      else if((owner->isBoxItem()) || (owner->isSourceItem())){     
+      else if((owner->isBoxItem()) || (owner->isStimuliItem())){     
         painter->drawText(-w,-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
       }
         painter->drawText(-w,-h/2,w,h,Qt::AlignLeft | Qt::TextWordWrap, refInter->getName());
       }
-    }    
+    }
+
+
 
     painter->restore();
   }
 
     painter->restore();
   }
@@ -257,7 +272,7 @@ void InterfaceItem::addConnectionItem(ConnectionItem* item) {
 }
 
 void InterfaceItem::removeConnectionItem(ConnectionItem* item) {
 }
 
 void InterfaceItem::removeConnectionItem(ConnectionItem* item) {
-  connections.removeOne(item);
+  connections.removeAll(item);
 }
 
 QDataStream &operator <<(QDataStream &out, InterfaceItem *i) {
 }
 
 QDataStream &operator <<(QDataStream &out, InterfaceItem *i) {