kivio_1d_stencil.h
1#ifndef _KIVIO_1D_STENCIL_H
2#define _KIVIO_1D_STENCIL_H
3
4#ifdef HAVE_CONFIG_H
5#include <config.h>
6#endif
7
8#include <tqdom.h>
9#include <tqptrlist.h>
10
11#include <koffice_export.h>
12
13#include "kivio_stencil.h"
14#include "kivio_text_style.h"
15
16class KivioArrowHead;
17class KivioConnectorPoint;
18class KivioCustomDragData;
19class KivioFillStyle;
20class KivioLineStyle;
21class KivioIntraStencilData;
22class KivioStencil;
23
24
25class KIVIO_EXPORT Kivio1DStencil : public KivioStencil
26{
27protected:
28 TQPtrList <KivioConnectorPoint> *m_pConnectorPoints;
29
30 KivioConnectorPoint *m_pStart, *m_pEnd;
31 KivioConnectorPoint *m_pLeft, *m_pRight;
32 KivioConnectorPoint *m_pTextConn;
33
34 double m_connectorWidth;
35 bool m_needsWidth;
36 bool m_needsText;
37
38 KivioFillStyle *m_pFillStyle;
39 KivioLineStyle *m_pLineStyle;
40 KivioTextStyle *m_pTextStyle;
41
42 // Utility routines
43 bool boolAllTrue( bool *, int );
44 bool boolContainsFalse( bool *, int );
45
46 virtual TQDomElement createRootElement( TQDomDocument & );
47
48 virtual bool saveCustom( TQDomElement &, TQDomDocument & );
49 TQDomElement saveConnectors( TQDomDocument &doc );
50 TQDomElement saveProperties( TQDomDocument &doc );
51
52 virtual bool loadCustom( const TQDomElement & );
53 bool loadConnectors( const TQDomElement & );
54 bool loadProperties( const TQDomElement & );
55
56 // For easier duplication
57 void copyBasicInto( Kivio1DStencil * );
58 void drawText( KivioIntraStencilData * );
59
60public:
61 Kivio1DStencil();
62 virtual ~Kivio1DStencil();
63
64 virtual bool connected();
65
66 // fg color functions
67 virtual void setFGColor( TQColor c );
68 virtual TQColor fgColor();
69
70
71 // bg color functions
72 virtual void setBGColor( TQColor c );
73 virtual TQColor bgColor();
74
75 virtual void setText( const TQString & t ) { m_pTextStyle->setText(t); }
76 virtual TQString text() { return m_pTextStyle->text(); }
77
78 virtual void setTextColor( TQColor c ) { m_pTextStyle->setColor(c); }
79 virtual TQColor textColor() { return m_pTextStyle->color(); }
80
81 virtual TQFont textFont() { return m_pTextStyle->font(); }
82 virtual void setTextFont( const TQFont &f ) { m_pTextStyle->setFont(f); }
83
84 virtual int hTextAlign() { return m_pTextStyle->hTextAlign(); }
85 virtual int vTextAlign() { return m_pTextStyle->vTextAlign(); }
86
87 virtual void setHTextAlign(int i) { m_pTextStyle->setHTextAlign(i); }
88 virtual void setVTextAlign(int i) { m_pTextStyle->setVTextAlign(i); }
89
90
91 // line width functions
92 virtual void setLineWidth( double f );
93 virtual double lineWidth();
94
95 virtual void setLinePattern(int p);
96 virtual int linePattern();
97
98 virtual void setFillPattern(int p);
99 virtual int fillPattern();
100
101 // position functions
102 virtual void setX( double );
103 virtual void setY( double );
104 virtual void setPosition( double, double );
105
106
107 // required for connector tool
108 virtual void setStartPoint( double, double );
109 virtual void setEndPoint( double, double );
110
111
112 // painting functions
113 virtual void paint( KivioIntraStencilData * );
114 virtual void paintOutline( KivioIntraStencilData * );
115 virtual void paintConnectorTargets( KivioIntraStencilData * );
116 virtual void paintSelectionHandles( KivioIntraStencilData * );
117
118
119 // collision detection
120 virtual KivioCollisionType checkForCollision( KoPoint *, double );
121
122
123 // custom dragging
124 virtual void customDrag( KivioCustomDragData * );
125
126
127 // geometry management
128 virtual void updateGeometry();
129 virtual void updateConnectorPoints( KivioConnectorPoint *, double, double );
130
131
132 // file i/o routines
133 virtual bool loadXML( const TQDomElement & );
134 virtual TQDomElement saveXML( TQDomDocument & );
135
136
137 // duplication routines
138 virtual KivioStencil* duplicate();
139
140
141 // connection search routines
142 virtual void searchForConnections( KivioPage * );
143 virtual void searchForConnections( KivioPage *pPage, double threshold );
144
145
146 // returns which resize handles are valid
147 virtual int resizeHandlePositions();
148
149 virtual void disconnectFromTargets();
150 virtual KivioLineStyle lineStyle();
151 virtual void setLineStyle(KivioLineStyle ls);
152
153 virtual void setCustomIDPoint(int customID, const KoPoint& point, KivioPage* page);
154 virtual KoPoint customIDPoint(int customID);
155};
156
157
158#endif