#include "AbstractInterface.h"
#include "ConnectedInterface.h"
+int AbstractBoxItem::NoLock = 0;
+int AbstractBoxItem::Position = 1;
+int AbstractBoxItem::Dimension = 2;
+int AbstractBoxItem::Interfaces = 4;
+int AbstractBoxItem::Names = 8;
-AbstractBoxItem:: AbstractBoxItem(AbstractBlock *_refBlock, Dispatcher *_dispatcher, Parameters *_params, QGraphicsItem *parent) : QGraphicsItem(parent) {
+AbstractBoxItem::AbstractBoxItem(AbstractBlock *_refBlock, Dispatcher *_dispatcher, Parameters *_params, int _lock, QGraphicsItem *parent) : QGraphicsItem(parent) {
dispatcher = _dispatcher;
params = _params;
refBlock = _refBlock;
+ lock = _lock;
QFontMetrics fmId(params->defaultBlockFont);
nameWidth = fmId.width(refBlock->getName());
nameHeight = fmId.height();
selected = false;
currentInterface = NULL;
+ visible = true;
rstClkVisible = false;
wishboneVisible = false;
// NOTE : initInterfaces() is only called in subclasses
}
-AbstractBoxItem::AbstractBoxItem(Dispatcher *_dispatcher, Parameters *_params, QGraphicsItem* parent) : QGraphicsItem(parent) {
+AbstractBoxItem::AbstractBoxItem(Dispatcher *_dispatcher, Parameters *_params, int _lock, QGraphicsItem* parent) : QGraphicsItem(parent) {
dispatcher = _dispatcher;
- params = _params;
+ params = _params;
refBlock = NULL;
+ lock = _lock;
nameWidth = 0;
nameHeight = 0;
nameMargin = 10;
selected = false;
currentInterface = NULL;
+ visible = true;
rstClkVisible = false;
wishboneVisible = false;
return false;
}
-bool AbstractBoxItem::isSourceItem() {
+bool AbstractBoxItem::isStimuliItem() {
return false;
}
nameHeight = fmId.height();
}
-void AbstractBoxItem::initInterfaceItems() {
+void AbstractBoxItem::createInterfaceItems(Parameters::Direction posInputs, Parameters::Direction posOutputs, Parameters::Direction posBidirs) {
/* TO DO : creating all needed InterfaceItem, with by default, input at west and output at east */
int orientation = Parameters::West;
if (inter->getPurpose() != AbstractInterface::Control) {
InterfaceItem *item;
if(inter->getDirection() == AbstractInterface::Input){
- orientation = Parameters::West;
+ orientation = posInputs;
} else if(inter->getDirection() == AbstractInterface::Output){
- orientation = Parameters::East;
+ orientation = posOutputs;
} else if(inter->getDirection() == AbstractInterface::InOut){
- orientation = Parameters::North;
+ orientation = posBidirs;
}
item = new InterfaceItem(0.0 , orientation, (ConnectedInterface *)inter, this, params);
interfaces.append(item);
*/
bool AbstractBoxItem::isInterfaces(int orientation) const {
foreach(InterfaceItem* inter, interfaces) {
- if (inter->getOrientation() == orientation) return true;
+ if ((inter->visible) && (inter->getOrientation() == orientation)) return true;
}
return false;
}