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

Private GIT Repository
finalized analysis with clkconvert + started testbench gen.
[blast.git] / InterfaceItem.cpp
index 18397f33cd0564239b9003e980bbec8d47630b22..7ee68c628f967731aafc5b4e5f27f961ba89a908 100644 (file)
@@ -4,6 +4,7 @@
 #include "GroupInterface.h"
 #include "FunctionalInterface.h"
 #include "BoxItem.h"
+#include "ReferenceInterface.h"
 
 int InterfaceItem::counter = 0;
 
@@ -11,7 +12,7 @@ InterfaceItem::InterfaceItem(double _position,
                              int _orientation,
                              ConnectedInterface *_refInter,
                              AbstractBoxItem* _owner,
-                             Parameters* _params) {
+                             Parameters* _params, bool forceVisible) {
   positionRatio = _position;
   orientation = _orientation;
   refInter = _refInter;
@@ -24,7 +25,7 @@ InterfaceItem::InterfaceItem(double _position,
   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 {
@@ -45,6 +46,15 @@ QString InterfaceItem::getName() {
   return refInter->getName();
 }
 
+QString InterfaceItem::getReferenceName() {
+  if (!refInter->isFunctionalInterface()) {
+    return "no_refname_for_groupiface";
+  }
+  FunctionalInterface* iface = AI_TO_FUN(refInter);
+  ReferenceInterface* refIface = iface->getReference();
+  return refIface->getName();
+}
+
 void InterfaceItem::updateName(QString name) {  
   QFontMetrics fmName(params->defaultIfaceFont);
   nameWidth = fmName.width(refInter->getName());
@@ -98,7 +108,7 @@ void InterfaceItem::paint(QPainter *painter) {
       if(owner->isBoxItem()) {
         painter->setPen(QPen(Qt::black,1));
       }
-      else if(owner->isSourceItem()) {
+      else if(owner->isStimuliItem()) {
         painter->setPen(QPen(Qt::darkCyan,1));
       }
     }
@@ -165,7 +175,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());
       }
-      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());
       }
     }
@@ -174,7 +184,7 @@ void InterfaceItem::paint(QPainter *painter) {
       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());
       }
     }