#include "SUPERVGUI_CanvasNode.h"
#include "SUPERVGUI_CanvasPort.h"
#include "SUPERVGUI_Canvas.h"
+#include "SUPERVGUI_CanvasCellNodePrs.h"
+
+#include "SUIT_ResourceMgr.h"
//#define CHECKTIME
//=====================================================================
// Node presentation
//=====================================================================
-SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs(QCanvas* theCanvas,
- SUPERVGUI_CanvasNode* theNode):
+SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs( SUIT_ResourceMgr* mgr, QCanvas* theCanvas,
+ SUPERVGUI_CanvasNode* theNode,
+ bool theCellPrs):
QCanvasPolygonalItem(theCanvas),
- myNode(theNode)
+ myNode(theNode),
+ myMgr( mgr )
{
Trace("SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs");
myWidth = LABEL_WIDTH;
myLabelVisible = true;
myPortVisible = true;
+ myCellPrs = theCellPrs;
- myColor = MAIN_BACK;
+ myColor = mgr->colorValue( "SUPERVGraph", "NodeBody", DEF_MAIN_BACK );
- // create in/out connection points prs
- myPointIn = new SUPERVGUI_CanvasHookPrs(theCanvas, this, true);
- myPointOut = new SUPERVGUI_CanvasHookPrs(theCanvas, this, false);
+ if (!myCellPrs) {
+ // create in/out connection points prs
+ myPointIn = new SUPERVGUI_CanvasHookPrs(theCanvas, this, true);
+ myPointOut = new SUPERVGUI_CanvasHookPrs(theCanvas, this, false);
- setZ(0);
- setState(myNode->getEngine()->State());
- updatePorts();
+ setZ(0);
+ setState(myNode->getEngine()->State());
+ updatePorts();
+ }
}
SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs()
{
- Trace("SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs");
- if (myPointIn) delete myPointIn;
- if (myPointOut) delete myPointOut;
- hide();
+ if ( !myCellPrs ) {
+ if ( myPointIn ) {
+ delete myPointIn;
+ myPointIn = 0;
+ }
+ if ( myPointOut ) {
+ delete myPointOut;
+ myPointOut = 0;
+ }
+ }
}
int SUPERVGUI_CanvasNodePrs::rtti() const
}
}
- myPointIn->moveBy(dx, dy);
- myPointOut->moveBy(dx, dy);
+ if (!myCellPrs) {
+ myPointIn->moveBy(dx, dy);
+ myPointOut->moveBy(dx, dy);
+ }
}
void SUPERVGUI_CanvasNodePrs::setZ(double z)
myLabelVisible = b;
updatePorts();
- if (!isPortVisible()) updatePoints();
+ if (!isPortVisible() && !myCellPrs) updatePoints();
if (aDisp) {
show();
myPortVisible = b;
if (b) {
- myPointIn->hide();
- myPointOut->hide();
+ if (!myCellPrs) {
+ myPointIn->hide();
+ myPointOut->hide();
+ }
updateGates();
}
else {
- updatePoints();
-
- myPointIn->show();
- myPointOut->show();
+ if (!myCellPrs) {
+ updatePoints();
+
+ myPointIn->show();
+ myPointOut->show();
+ }
}
const QObjectList* list = myNode->children();
int flags = theHAlign | Qt::AlignVCenter;
QRect r(theRect.x() + TEXT_MARGIN, theRect.y(),
theRect.width() - 2*TEXT_MARGIN, theRect.height());
- thePainter.drawText(r, flags, theText);
+
+ QWMatrix aMat = thePainter.worldMatrix();
+ if (aMat.m11() != 1.0) {
+ // for scaled picture only
+ QRect r1 = aMat.mapRect(r);
+ QFont saved = thePainter.font();
+ QFont f(saved);
+ if (f.pointSize() == -1) {
+ f.setPixelSize((int)(f.pixelSize()*aMat.m11()));
+ }
+ else {
+ f.setPointSize((int)(f.pointSize()*aMat.m11()));
+ }
+ thePainter.save();
+ QWMatrix m;
+ thePainter.setWorldMatrix(m);
+ thePainter.setFont(f);
+ thePainter.drawText(r1, flags, theText);
+ thePainter.setFont(saved);
+ thePainter.restore();
+ }
+ else {
+ thePainter.drawText(r, flags, theText);
+ }
}
void SUPERVGUI_CanvasNodePrs::draw(QPainter& thePainter)
void SUPERVGUI_CanvasNodePrs::drawTitle(QPainter& thePainter)
{
QBrush saved = thePainter.brush();
- QBrush br(MAIN_TITLE);
+ QBrush br( myMgr->colorValue( "SUPERVGraph", "Title", DEF_MAIN_TITLE ) );
thePainter.setBrush(br);
drawTitleShape(thePainter);
thePainter.setBrush(saved);
QRect r = getGateRect();
// r.setHeight(r.height()+1);
thePainter.drawRect(r);
- int x0 = (r.left() + r.right())/2;
+ //int x0 = (r.left() + r.right())/2;
// thePainter.drawLine(x0, r.top(), x0, r.bottom());
const QObjectList* list = myNode->children();
myStatusColor = red;
break;
+ case SUPERV::LoadingState:
+ myStatus = "Loading";
+ myStatusColor = QColor(56,255,56);
+ break;
+
default:
myStatus = "No Status";
- myStatusColor = MAIN_BACK;
+ myStatusColor = myMgr->colorValue( "SUPERVGraph", "NodeBody", DEF_MAIN_BACK );
break;
}
SUPERVGUI_CanvasHookPrs::~SUPERVGUI_CanvasHookPrs()
{
hide();
- if (myLine) {
+ if ( myLine ) {
delete myLine;
myLine = 0;
}
QObject* SUPERVGUI_CanvasHookPrs::getObject() const
{
QObject* anObj = 0;
- if (myNodePrs)
+ if ( myNodePrs )
anObj = myNodePrs->getNode();
- else if (myPortPrs)
+ else if ( myPortPrs )
anObj = myPortPrs->getPort();
return anObj;
}