Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished VHDL gen. (but have to test further
[blast.git] / Parameters.h
index 27dc08f93dcca70912b766c69cec707cdf642eca..9b4ee1bc64d7cf04a6b5b46c4017a09d01c2f07b 100644 (file)
@@ -16,6 +16,7 @@ class ReferenceBlock;
 class GroupBlock;\r
 class FunctionalBlock;\r
 class GroupScene;\r
+class AbstractBoxItem;\r
 class GroupItem;\r
 class BoxItem;\r
 class InterfaceItem;\r
@@ -23,6 +24,7 @@ class Graph;
 class GroupWidget;\r
 \r
 #include "BlockImplementation.h"\r
+#include "ExternalResource.h"\r
 \r
 #include "Exception.h"\r
 class Exception;\r
@@ -77,15 +79,25 @@ public :
   inline void setCursorState(CursorState state) { cursorState = state; }\r
   inline void setDispatcher(Dispatcher* _dispatcher) { dispatcher = _dispatcher;}\r
 \r
+  // testers\r
+\r
+  // others\r
+  static QString normalizeName(const QString& name);\r
+  QList<ExternalResource*> searchResourceByName(const QString& name);\r
+\r
   /***************************************************\r
     attributes that are general to the application\r
   ***************************************************/  \r
   BlockLibraryTree* categoryTree;\r
   QList<QString> refPathes;\r
   QList<QString> implPathes;\r
+  QList<QString> sourcePathes;\r
   QList<ReferenceBlock*> availableBlocks;\r
   QList<BlockImplementation*> availableImplementations;\r
+  QList<ExternalResource*> availableResources;\r
 \r
+  ReferenceBlock* delayRef;\r
+  BlockImplementation* delayImpl;  \r
 \r
   QString refLib;\r
   QString implLib;\r
@@ -108,8 +120,10 @@ public :
   QString defaultIfaceFontName;\r
   int defaultIfaceFontSize;\r
   int connGapLength;\r
-  QPainterPath inArrow;\r
-  QPainterPath outArrow;\r
+  QPainterPath dataArrowIn;\r
+  QPainterPath dataArrowOut;\r
+  QPainterPath clkrstArrow;\r
+\r
 \r
   /***************************************************\r
    attributes that are specific for the current project\r
@@ -120,11 +134,16 @@ public :
   EditState editState; // takes values from EDIT_STATE_XXX\r
   bool unsaveModif;\r
   bool isRstClkShown;\r
+  QMap<FunctionalBlock*, BoxItem*> blockToItem; // allow to retrieve a box item from a functionnal block\r
+  QString projectPath;\r
+  QString projectName;\r
+  QString projectFile; // equals to projectPath/projectName.xml\r
 \r
   Graph* createGraph();\r
   void destroyGraph();\r
   inline Graph* getGraph() { return graph; }  \r
   ReferenceBlock* getReferenceBlock(int idCategory, int idBlock); // get the reference block from its category and index\r
+  ReferenceBlock* getHiddenReferenceBlock(QString blockName); // get a hidden block by name, i.e. in category 100\r
   FunctionalBlock* duplicateFunctionalBlock(FunctionalBlock* block); // adding a copy of a functional block to current group\r
 \r
 \r
@@ -137,11 +156,14 @@ public :
   void loadReferencesFromXml() throw(Exception);\r
   void loadReferencesFromLib() throw(Exception);\r
   void saveReferencesToLib() throw(Exception);\r
+  void createDelayBlock();\r
 \r
   void loadImplementationsFromXml() throw(Exception);\r
   void loadImplementationsFromLib() throw(Exception);\r
   void saveImplementationsToLib() throw(Exception);\r
 \r
+  void loadSources() throw(Exception);\r
+\r
   void addAvailableBlock(ReferenceBlock *block);  \r
   void parametersValidation();\r
   void connectionsValidation();\r
@@ -153,10 +175,12 @@ public :
   ReferenceBlock* searchBlockByXml(QString xmlName);\r
   ReferenceBlock* searchBlockByMd5(QString sumMd5);\r
 \r
+  BoxItem* searchFunctionalBlock(AbstractBlock* block);\r
+\r
   void save(QString confFile);\r
 \r
 \r
-  QString projectPath;\r
+\r
 \r
 private:\r
   Graph* graph; // the graph model of blocks\r
@@ -169,6 +193,7 @@ private:
 \r
   GroupScene* searchSceneById(int id, GroupScene* scene);\r
   BoxItem* searchBlockItemById(int id, GroupScene* scene);\r
+  BoxItem* searchFunctionalBlockRecur(AbstractBlock* block, GroupScene* scene);\r
   GroupItem* searchGroupItemById(int id, GroupScene* scene);\r
   InterfaceItem* searchInterfaceItemById(int id, GroupScene *scene);\r
 \r