20#ifndef KIVIOKIVIOPOLYLINECONNECTOR_H
21#define KIVIOKIVIOPOLYLINECONNECTOR_H
23#include <tqvaluelist.h>
28#include "kivio_1d_stencil.h"
29#include "kivio_arrowhead.h"
30#include <koffice_export.h>
31class KivioIntraStencilData;
32class KivioCustomDragData;
36 class KIVIO_EXPORT PolyLineConnector :
public Kivio1DStencil
40 virtual ~PolyLineConnector();
42 virtual KivioStencil* duplicate();
44 virtual bool loadCustom(
const TQDomElement& e);
45 virtual bool saveCustom(TQDomElement& e, TQDomDocument& doc);
47 virtual KivioCollisionType checkForCollision(KoPoint* p,
double threshold);
49 virtual void paint(KivioIntraStencilData* data);
50 virtual void paintOutline(KivioIntraStencilData* data);
51 virtual void paintSelectionHandles(KivioIntraStencilData* data);
57 void addPoint(
const KoPoint& p);
59 void removePoint(
unsigned int index);
61 void removeLastPoint();
63 unsigned int pointCount()
const {
return m_points.count(); }
71 void movePoint(
unsigned int index,
double xOffset,
double yOffset);
73 void movePointTo(
unsigned int index,
const KoPoint& p);
75 void moveLastPointTo(
const KoPoint& p);
77 virtual void customDrag(KivioCustomDragData* data);
78 virtual void move(
double xOffset,
double yOffset);
80 virtual void setX(
double x);
82 virtual void setY(
double y);
83 virtual double w() {
return 0; }
84 virtual double h() {
return 0; }
85 virtual KoRect rect();
86 virtual bool isInRect(
const KoRect& rect);
87 virtual void setCustomIDPoint(
int customID,
const KoPoint& point, KivioPage* page);
88 virtual KoPoint customIDPoint(
int customID);
91 virtual void updateConnectorPoints(KivioConnectorPoint* cp,
double ,
double );
94 virtual void setStartAHType(
int i) { m_startArrow->setType(i); }
95 virtual int startAHType() {
return m_startArrow->type(); }
97 virtual void setStartAHWidth(
double f) { m_startArrow->setWidth(f); }
98 virtual double startAHWidth() {
return m_startArrow->width(); }
100 virtual void setStartAHLength(
double f) { m_startArrow->setLength(f); }
101 virtual double startAHLength() {
return m_startArrow->length(); }
103 virtual void setEndAHType(
int i) { m_endArrow->setType(i); }
104 virtual int endAHType() {
return m_endArrow->type(); }
106 virtual void setEndAHWidth(
double f) { m_endArrow->setWidth(f); }
107 virtual double endAHWidth() {
return m_endArrow->width(); }
109 virtual void setEndAHLength(
double f) { m_endArrow->setLength(f); }
110 virtual double endAHLength() {
return m_endArrow->length(); }
113 void checkForConnection(KivioConnectorPoint* cp, KivioPage* page);
115 bool loadArrowHeads(
const TQDomElement& e);
116 TQDomElement saveArrowHeads(TQDomDocument& doc);
119 KivioArrowHead* m_startArrow;
120 KivioArrowHead* m_endArrow;
122 TQValueList<KoPoint> m_points;