kivio
kivio_arrowhead.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KIVIO_ARROWHEAD_H
00020 #define KIVIO_ARROWHEAD_H
00021
00022 #ifdef HAVE_CONFIG_H
00023 #include <config.h>
00024 #endif
00025
00026 #include <qcolor.h>
00027 #include <qdom.h>
00028 #include <koffice_export.h>
00029 #define KIVIO_CUT_LENGTH -1.0f
00030 #define KIVIO_CUT_HALF_LENGTH -2.0f
00031
00032 class KivioPainter;
00033 class KoZoomHandler;
00034
00035 typedef enum {
00036 kahtNone=0,
00037 kahtArrowLine,
00038 kahtArrowTriangleSolid,
00039 kahtArrowTriangleHollow,
00040 kahtDoubleTriangleSolid,
00041 kahtDoubleTriangleHollow,
00042 kahtForwardSlash,
00043 kahtBackSlash,
00044 kahtPipe,
00045 kahtMidForwardSlash,
00046 kahtMidBackSlash,
00047 kahtMidPipe,
00048 kahtDiamondSolid,
00049 kahtDiamondHollow,
00050 kahtCrowFoot,
00051 kahtFork,
00052 kahtCrowFootPipe
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 } KivioArrowHeadType;
00073
00074
00075 typedef struct KivioArrowHeadData KivioArrowHeadData;
00076 struct KivioArrowHeadData
00077 {
00078 float x, y;
00079 float vecX, vecY;
00080 KoZoomHandler* zoomHandler;
00081
00082 KivioPainter* painter;
00083 };
00084
00085
00086 class KIVIO_EXPORT KivioArrowHead
00087 {
00088 protected:
00092 float m_cut;
00093
00097 float m_w, m_l;
00098
00102 int m_type;
00103
00104
00105 void paintArrowLine( KivioArrowHeadData * );
00106 void paintArrowTriangle( KivioArrowHeadData *, bool );
00107 void paintDoubleTriangle( KivioArrowHeadData *, bool );
00108 void paintForwardSlash( KivioArrowHeadData * );
00109 void paintBackSlash( KivioArrowHeadData * );
00110 void paintPipe( KivioArrowHeadData * );
00111 void paintDiamond( KivioArrowHeadData *, bool );
00112 void paintCircle( KivioArrowHeadData *, bool );
00113 void paintCrowFoot( KivioArrowHeadData * );
00114 void paintFork( KivioArrowHeadData * );
00115 void paintCrowFootPipe( KivioArrowHeadData * );
00116 void paintMidForwardSlash( KivioArrowHeadData * );
00117 void paintMidBackSlash( KivioArrowHeadData * );
00118 void paintMidPipe( KivioArrowHeadData * );
00119
00120 public:
00121 KivioArrowHead();
00122 virtual ~KivioArrowHead();
00123
00124 void setType( int );
00125 inline int type() { return m_type; }
00126
00127 float cut();
00128
00129 void setWidth( float f ) { m_w = f; }
00130 void setLength( float f ) { m_l = f; }
00131
00132 void setSize( float f1, float f2 ) { m_w=f1; m_l=f2; }
00133
00134 inline float width() { return m_w; }
00135 inline float length() { return m_l; }
00136
00137 void paint( KivioPainter *, float, float, float, float, KoZoomHandler* zoomHandler );
00138
00139 bool loadXML( const QDomElement & );
00140 QDomElement saveXML( QDomDocument & );
00141 };
00142
00143 #endif
00144
|