19#include "kivio_common.h"
20#include "kivio_connector_point.h"
21#include "kivio_connector_target.h"
22#include "kivio_point.h"
23#include "kivio_stencil.h"
24#include "kivio_intra_stencil_data.h"
28KivioConnectorTarget::KivioConnectorTarget()
31 m_position.setX( 0.0f );
32 m_position.setY( 0.0f );
33 m_pConnectors =
new TQPtrList<KivioConnectorPoint>;
34 m_pConnectors->setAutoDelete(
false);
36 m_xOffset = m_yOffset = 0;
39KivioConnectorTarget::KivioConnectorTarget(
double x,
double y)
43 m_pConnectors =
new TQPtrList<KivioConnectorPoint>;
44 m_pConnectors->setAutoDelete(
false);
47 m_xOffset = m_yOffset = 0;
50KivioConnectorTarget::KivioConnectorTarget(
double x,
double y,
double xOffset,
double yOffset)
54 m_pConnectors =
new TQPtrList<KivioConnectorPoint>;
55 m_pConnectors->setAutoDelete(
false);
58 setOffsets(xOffset, yOffset);
67KivioConnectorTarget *KivioConnectorTarget::duplicate()
69 KivioConnectorTarget *pTarget =
new KivioConnectorTarget( m_position.x(), m_position.y(), m_xOffset, m_yOffset );
81KivioConnectorTarget::~KivioConnectorTarget()
84 KivioConnectorPoint *point;
88 point = m_pConnectors->first();
89 point = m_pConnectors->take();
93 kdDebug(43000) <<
"KivioConnectorTarget:: -> diconnecting" << endl;
98 point->disconnect(
false );
100 point = m_pConnectors->take();
103 delete m_pConnectors;
104 m_pConnectors = NULL;
112bool KivioConnectorTarget::loadXML(
const TQDomElement &e )
114 if( e.tagName().compare(
"KivioConnectorTarget" ) != 0 )
116 kdDebug(43000) <<
"Attempted to load KivioConnectorTarget from non-KivioConnectorTarget element" << endl;
120 m_position.setX(XmlReadFloat( e,
"x", 1.0f ));
121 m_position.setY(XmlReadFloat( e,
"y", 1.0f ));
123 m_id = XmlReadInt( e,
"id", -1 );
132TQDomElement KivioConnectorTarget::saveXML( TQDomDocument &doc )
136 e = doc.createElement(
"KivioConnectorTarget");
138 XmlWriteFloat( e,
"x", m_position.x() );
139 XmlWriteFloat( e,
"y", m_position.y() );
142 XmlWriteInt( e,
"id", m_id );
151void KivioConnectorTarget::addConnectorPointToList( KivioConnectorPoint *p )
154 m_pConnectors->append(p);
166bool KivioConnectorTarget::removeConnectorPointFromList( KivioConnectorPoint *p )
172 return m_pConnectors->remove(p);
179void KivioConnectorTarget::setX(
float _x )
183 KivioConnectorPoint *pPoint = m_pConnectors->first();
186 pPoint->setX( _x,
true );
188 pPoint = m_pConnectors->next();
197void KivioConnectorTarget::setY(
float _y )
201 KivioConnectorPoint *pPoint = m_pConnectors->first();
204 pPoint->setY( _y,
true );
206 pPoint = m_pConnectors->next();
215void KivioConnectorTarget::setPosition(
float _x,
float _y )
217 m_position.setX( _x );
218 m_position.setY( _y );
220 KivioConnectorPoint *pPoint = m_pConnectors->first();
223 pPoint->setPosition( _x, _y,
true );
225 pPoint = m_pConnectors->next();
233void KivioConnectorTarget::paintOutline( KivioIntraStencilData *pData )
235 KivioConnectorPoint *pPoint;
236 KivioStencil *pStencil;
238 pPoint = m_pConnectors->first();
241 pStencil = pPoint->stencil();
244 pStencil->paintOutline( pData );
246 pPoint = m_pConnectors->next();
254bool KivioConnectorTarget::hasConnections()
256 KivioConnectorPoint *pPoint = m_pConnectors->first();
268void KivioConnectorTarget::setId(
int i )
270 KivioConnectorPoint *pPoint = m_pConnectors->first();
275 pPoint->setTargetId( i );
277 pPoint = m_pConnectors->next();
281void KivioConnectorTarget::setOffsets(
double x,
double y)