19#include "kivio_common.h"
20#include "kivio_connector_point.h"
21#include "kivio_connector_target.h"
22#include "kivio_stencil.h"
24KivioConnectorPoint::KivioConnectorPoint()
32KivioConnectorPoint::KivioConnectorPoint( KivioStencil *pParent,
bool conn )
40KivioConnectorPoint::~KivioConnectorPoint()
44 m_pTarget->removeConnectorPointFromList(
this );
60void KivioConnectorPoint::setTarget( KivioConnectorTarget *pTarget )
62 if( m_connectable ==
false )
69 m_pTarget->removeConnectorPointFromList(
this );
75 m_pos.setX(pTarget->x());
76 m_pos.setY(pTarget->y());
78 m_pTarget->addConnectorPointToList(
this );
91void KivioConnectorPoint::setX(
double newX,
bool updateStencil )
93 double oldX = m_pos.x();
96 if( updateStencil && m_pStencil )
97 m_pStencil->updateConnectorPoints(
this, oldX, m_pos.y());
110void KivioConnectorPoint::setY(
double newY,
bool updateStencil )
112 double oldY = m_pos.y();
115 if( updateStencil && m_pStencil )
116 m_pStencil->updateConnectorPoints(
this, m_pos.x(), oldY);
130 void KivioConnectorPoint::setPosition(
double newX,
double newY,
bool updateStencil )
132 double oldX = m_pos.x();
133 double oldY = m_pos.y();
135 m_pos.setCoords(newX, newY);
137 if( updateStencil && m_pStencil )
138 m_pStencil->updateConnectorPoints(
this, oldX, oldY);
151void KivioConnectorPoint::disconnect(
bool removeFromTargetList )
155 if( removeFromTargetList ==
true )
156 m_pTarget->removeConnectorPointFromList(
this);
172bool KivioConnectorPoint::loadXML(
const TQDomElement &e )
174 m_pos.setX(XmlReadFloat( e,
"x", 1.0f ));
175 m_pos.setY(XmlReadFloat( e,
"y", 1.0f ));
176 m_targetId = XmlReadInt( e,
"targetId", -1 );
177 m_connectable = (bool)XmlReadInt( e,
"connectable", (
int)true );
192TQDomElement KivioConnectorPoint::saveXML( TQDomDocument &doc )
194 TQDomElement e = doc.createElement(
"KivioConnectorPoint");
196 XmlWriteFloat( e,
"x", m_pos.x() );
197 XmlWriteFloat( e,
"y", m_pos.y() );
198 XmlWriteInt( e,
"connectable", (
int)m_connectable );
200 if( m_targetId != -1 )
201 XmlWriteInt( e,
"targetId", m_targetId );
206void KivioConnectorPoint::moveBy(
double _x,
double _y,
bool updateStencil )
208 m_pos += KoPoint(_x, _y);
210 if( updateStencil && m_pStencil )
211 m_pStencil->updateConnectorPoints(
this, _x, _y);
214bool KivioConnectorPoint::isConnected()
216 return (m_pTarget != 0L);