/*************************************************************************** * Copyright (C) 2005 by David Saxton * * david@bluehaze.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #include "canvasitemparts.h" #include "circuitdocument.h" #include "ecsubcircuit.h" #include "node.h" #include "libraryitem.h" #include "subcircuits.h" #include #include #include Item* ECSubcircuit::construct( ItemDocument *itemDocument, bool newItem, const char *id ) { return new ECSubcircuit( (ICNDocument*)itemDocument, newItem, id ); } LibraryItem* ECSubcircuit::libraryItem() { return new LibraryItem( TQString("ec/subcircuit"), TQString(), TQString(), TQString(), LibraryItem::lit_subcircuit, ECSubcircuit::construct ); } ECSubcircuit::ECSubcircuit( ICNDocument *icnDocument, bool newItem, const char *id ) : Component( icnDocument, newItem, (id) ? id : "subcircuit" ) { m_name = i18n("Subcircuit"); createProperty( "id", Variant::Type::Int ); property("id")->setMinValue(1); property("id")->setMaxValue(1<<15); property("id")->setValue(1); property("id")->setHidden(true); } ECSubcircuit::~ECSubcircuit() { } void ECSubcircuit::removeItem() { emit subcircuitDeleted(); Component::removeItem(); } void ECSubcircuit::setNumExtCon( unsigned numExtCon ) { m_conNames.resize(numExtCon); // Remove old pins const NodeMap::iterator nodeMapEnd = m_nodeMap.end(); for ( NodeMap::iterator it = m_nodeMap.begin(); it != nodeMapEnd; ++it ) { p_icnDocument->appendDeleteList( p_icnDocument->nodeWithID(it.data().id) ); } p_icnDocument->flushDeleteList(); m_nodeMap.clear(); TQStringList pins; for ( unsigned i=0; i m_conNames.size() ) return; m_conNames[numId] = name; } void ECSubcircuit::doneSCInit() { TQStringList pins; for ( unsigned i = 0; i < m_conNames.size(); ++i ) pins << m_conNames[i]; initDIPSymbol( pins, 80 ); } void ECSubcircuit::drawShape( TQPainter &p ) { Component::drawShape(p); } #include "ecsubcircuit.moc"