karbon
vtransformcmd.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __VTRANSFORMCMD_H__
00022 #define __VTRANSFORMCMD_H__
00023
00024 #include <qvaluevector.h>
00025 #include "vcommand.h"
00026 #include "vgroup.h"
00027 #include <koffice_export.h>
00028
00029
00030
00031 class QWMatrix;
00032 class VPath;
00033 class VSubpath;
00034 class VSegment;
00035 class VSelection;
00036
00037
00038 class KARBONCOMMAND_EXPORT VTransformCmd : public VCommand
00039 {
00040 public:
00041 VTransformCmd( VDocument *doc, const QWMatrix& mat, bool duplicate = false );
00042 virtual ~VTransformCmd();
00043
00044 virtual void execute();
00045 virtual void unexecute();
00046
00047 virtual void visitVPath( VPath& composite );
00048 virtual void visitVSubpath( VSubpath& path );
00049 virtual void visitVText( VText& text );
00050 virtual void visitVImage( VImage& img );
00051 virtual void visitVObject( VObject& object );
00052
00053 void setMatrix( const QWMatrix& m )
00054 {
00055 m_mat = m;
00056 }
00057
00058 protected:
00059 VTransformCmd( VDocument *doc, const QString& name, const QString& icon, bool duplicate = false );
00060
00061 VSelection* m_selection;
00062 VObjectList m_duplicates;
00063
00064 QWMatrix m_mat;
00065
00066 bool m_duplicate;
00067 };
00068
00069
00070 class KARBONCOMMAND_EXPORT VTranslateCmd : public VTransformCmd
00071 {
00072 public:
00073 VTranslateCmd( VDocument *doc, double d1, double d2, bool duplicate = false );
00074 };
00075
00076
00077 class KARBONCOMMAND_EXPORT VScaleCmd : public VTransformCmd
00078 {
00079 public:
00080 VScaleCmd( VDocument *doc, const KoPoint& p, double s1, double s2, bool duplicate = false );
00081 };
00082
00083
00084 class KARBONCOMMAND_EXPORT VShearCmd : public VTransformCmd
00085 {
00086 public:
00087 VShearCmd( VDocument *doc, const KoPoint& p, double s1, double s2, bool duplicate = false );
00088 };
00089
00090
00091 class KARBONCOMMAND_EXPORT VRotateCmd : public VTransformCmd
00092 {
00093 public:
00094 VRotateCmd( VDocument *doc, const KoPoint& p, double angle, bool duplicate = false );
00095 };
00096
00097 class KARBONCOMMAND_EXPORT VTranslateBezierCmd : public VCommand
00098 {
00099 public:
00100 VTranslateBezierCmd( VDocument *doc, VSegment *segment, double d1, double d2, bool firstControl );
00101 virtual ~VTranslateBezierCmd();
00102
00103 virtual void execute();
00104 virtual void unexecute();
00105
00106 virtual void visitVSubpath( VSubpath& path );
00107
00108 protected:
00109 QWMatrix m_mat;
00110 VSegment *m_segment;
00111 VSegment *m_segmenttwo;
00112 bool m_firstControl;
00113 VSubpath *m_subpath;
00114 };
00115
00116 class KARBONCOMMAND_EXPORT VTranslatePointCmd : public VCommand
00117 {
00118 public:
00119 VTranslatePointCmd( VDocument *doc, double d1, double d2 );
00120 virtual ~VTranslatePointCmd();
00121
00122 virtual void execute();
00123 virtual void unexecute();
00124
00125 virtual void visitVSubpath( VSubpath& path );
00126
00127 protected:
00128 void translatePoints();
00129
00130 QWMatrix m_mat;
00131 QMap<VSegment*, QValueVector<int> > m_segPnts;
00132 VObjectList m_subpaths;
00133 };
00134
00135 #endif
00136
|