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

Private GIT Repository
moved vhdl gen. into block
[blast.git] / BoxItem.cpp
index c473e6f70060a91d81ad889bde201e6552c1dc29..4471c86e8bf3544e7ae37d0dc24dd4eeb9c32c57 100644 (file)
@@ -280,6 +280,15 @@ void BoxItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
       }
       break;
     }
+    case Title:
+      cout << "abnormal case while resizing block" << endl;
+      break;
+    case BorderWest:
+      cout << "abnormal case while resizing block" << endl;
+      break;
+    case BorderNorth:
+      cout << "abnormal case while resizing block" << endl;
+      break;
     case NoBorder:
       cout << "abnormal case while resizing block" << endl;
       break;
@@ -505,6 +514,9 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   QAction* showWishboneIface = NULL;
   QAction* showParameters = NULL;
   QAction* showPatterns = NULL;
+  QAction* showModifier = NULL;
+  QAction* removeModifier = NULL;
+  QAction* generateVHDL = NULL;
 
   InterfaceItem* ifaceItem = getInterfaceItemFromCursor(event->pos().x(), event->pos().y());
   // menu for interface
@@ -551,9 +563,25 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
         }
       }      
     }
-    if ((iface->getAssociatedIface() != NULL) && (iface->getDirection() == AbstractInterface::Output)) {
-      showPatterns = menu.addAction("Show patterns");
+    if (iface->getAssociatedIface() != NULL) {
+      if (iface->getDirection() == AbstractInterface::Output) {
+        showPatterns = menu.addAction("Show output pattern");
+      }
+      else if (iface->getDirection() == AbstractInterface::Input) {
+        showPatterns = menu.addAction("Show input pattern");
+      }
+    }    
+
+    if (iface->getAssociatedIface() != NULL) {
+      ConnectedInterface* assoIface = AI_TO_CON(iface->getAssociatedIface());
+      if (assoIface->getInputModifier() != NULL) {
+        removeModifier = menu.addAction("Remove input modifier");
+      }
+      if (assoIface->getInputModifier() != NULL) {
+        showModifier = menu.addAction("Show input modifier parameters");
+      }
     }
+
   }
   // menu for blocks (group or func)
   else {
@@ -579,6 +607,7 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
       showWishboneIface->setChecked(wishboneVisible);
     }
     removeAction = menu.addAction("Remove");
+    generateVHDL = menu.addAction("Generate VHDL");
   }
 
   QAction* selectedAction = NULL;
@@ -634,6 +663,16 @@ void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
   else if(selectedAction == showPatterns) {    
     dispatcher->showPatterns(ifaceItem);
   }
+  else if(selectedAction == removeModifier) {
+    dispatcher->removeModifier(ifaceItem);
+  }
+  else if(selectedAction == showModifier) {
+    dispatcher->showModifier(ifaceItem);
+  }
+  else if(selectedAction == generateVHDL) {
+    dispatcher->generateBlockVHDL(this);
+  }
+
 }
 
 void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
@@ -694,6 +733,7 @@ void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
   */
   functionalBlock->setName(name);
   setRefBlock(functionalBlock);
+  params->blockToItem.insert(functionalBlock,this);
 
   setPos(posX,posY);
   setDimension(dimX,dimY);