kivio
kivio_1d_stencil.h00001 #ifndef _KIVIO_1D_STENCIL_H
00002 #define _KIVIO_1D_STENCIL_H
00003
00004 #ifdef HAVE_CONFIG_H
00005 #include <config.h>
00006 #endif
00007
00008 #include <qdom.h>
00009 #include <qptrlist.h>
00010
00011 #include <koffice_export.h>
00012
00013 #include "kivio_stencil.h"
00014 #include "kivio_text_style.h"
00015
00016 class KivioArrowHead;
00017 class KivioConnectorPoint;
00018 class KivioCustomDragData;
00019 class KivioFillStyle;
00020 class KivioLineStyle;
00021 class KivioIntraStencilData;
00022 class KivioStencil;
00023
00024
00025 class KIVIO_EXPORT Kivio1DStencil : public KivioStencil
00026 {
00027 protected:
00028 QPtrList <KivioConnectorPoint> *m_pConnectorPoints;
00029
00030 KivioConnectorPoint *m_pStart, *m_pEnd;
00031 KivioConnectorPoint *m_pLeft, *m_pRight;
00032 KivioConnectorPoint *m_pTextConn;
00033
00034 double m_connectorWidth;
00035 bool m_needsWidth;
00036 bool m_needsText;
00037
00038 KivioFillStyle *m_pFillStyle;
00039 KivioLineStyle *m_pLineStyle;
00040 KivioTextStyle *m_pTextStyle;
00041
00042
00043 bool boolAllTrue( bool *, int );
00044 bool boolContainsFalse( bool *, int );
00045
00046 virtual QDomElement createRootElement( QDomDocument & );
00047
00048 virtual bool saveCustom( QDomElement &, QDomDocument & );
00049 QDomElement saveConnectors( QDomDocument &doc );
00050 QDomElement saveProperties( QDomDocument &doc );
00051
00052 virtual bool loadCustom( const QDomElement & );
00053 bool loadConnectors( const QDomElement & );
00054 bool loadProperties( const QDomElement & );
00055
00056
00057 void copyBasicInto( Kivio1DStencil * );
00058 void drawText( KivioIntraStencilData * );
00059
00060 public:
00061 Kivio1DStencil();
00062 virtual ~Kivio1DStencil();
00063
00064 virtual bool connected();
00065
00066
00067 virtual void setFGColor( QColor c );
00068 virtual QColor fgColor();
00069
00070
00071
00072 virtual void setBGColor( QColor c );
00073 virtual QColor bgColor();
00074
00075 virtual void setText( const QString & t ) { m_pTextStyle->setText(t); }
00076 virtual QString text() { return m_pTextStyle->text(); }
00077
00078 virtual void setTextColor( QColor c ) { m_pTextStyle->setColor(c); }
00079 virtual QColor textColor() { return m_pTextStyle->color(); }
00080
00081 virtual QFont textFont() { return m_pTextStyle->font(); }
00082 virtual void setTextFont( const QFont &f ) { m_pTextStyle->setFont(f); }
00083
00084 virtual int hTextAlign() { return m_pTextStyle->hTextAlign(); }
00085 virtual int vTextAlign() { return m_pTextStyle->vTextAlign(); }
00086
00087 virtual void setHTextAlign(int i) { m_pTextStyle->setHTextAlign(i); }
00088 virtual void setVTextAlign(int i) { m_pTextStyle->setVTextAlign(i); }
00089
00090
00091
00092 virtual void setLineWidth( double f );
00093 virtual double lineWidth();
00094
00095 virtual void setLinePattern(int p);
00096 virtual int linePattern();
00097
00098 virtual void setFillPattern(int p);
00099 virtual int fillPattern();
00100
00101
00102 virtual void setX( double );
00103 virtual void setY( double );
00104 virtual void setPosition( double, double );
00105
00106
00107
00108 virtual void setStartPoint( double, double );
00109 virtual void setEndPoint( double, double );
00110
00111
00112
00113 virtual void paint( KivioIntraStencilData * );
00114 virtual void paintOutline( KivioIntraStencilData * );
00115 virtual void paintConnectorTargets( KivioIntraStencilData * );
00116 virtual void paintSelectionHandles( KivioIntraStencilData * );
00117
00118
00119
00120 virtual KivioCollisionType checkForCollision( KoPoint *, double );
00121
00122
00123
00124 virtual void customDrag( KivioCustomDragData * );
00125
00126
00127
00128 virtual void updateGeometry();
00129 virtual void updateConnectorPoints( KivioConnectorPoint *, double, double );
00130
00131
00132
00133 virtual bool loadXML( const QDomElement & );
00134 virtual QDomElement saveXML( QDomDocument & );
00135
00136
00137
00138 virtual KivioStencil* duplicate();
00139
00140
00141
00142 virtual void searchForConnections( KivioPage * );
00143 virtual void searchForConnections( KivioPage *pPage, double threshold );
00144
00145
00146
00147 virtual int resizeHandlePositions();
00148
00149 virtual void disconnectFromTargets();
00150 virtual KivioLineStyle lineStyle();
00151 virtual void setLineStyle(KivioLineStyle ls);
00152
00153 virtual void setCustomIDPoint(int customID, const KoPoint& point, KivioPage* page);
00154 virtual KoPoint customIDPoint(int customID);
00155 };
00156
00157
00158 #endif
|