30#include <KoPictureCollection.h>
31#include <tqvaluelist.h>
34#include <KoPageLayoutDia.h>
35#include <KoParagLayout.h>
36#include <KoTextCommand.h>
40#include <tqvaluevector.h>
41#include "KPrBackground.h"
42#include "KPrVariableCollection.h"
54class KoCustomVariable;
56class KPrPolylineObject;
57class KPrFieldVariable;
62class KPrShadowCmd :
public KNamedCommand
68 ShadowDirection shadowDirection;
72 KPrShadowCmd(
const TQString &_name, TQPtrList<ShadowValues> &_oldShadow, ShadowValues _newShadow,
73 TQPtrList<KPrObject> &_objects, KPrDocument *_doc );
76 virtual void execute();
77 virtual void unexecute();
81 TQPtrList<ShadowValues> oldShadow;
82 TQPtrList<KPrObject> objects;
83 ShadowValues newShadow;
87class KPrSetOptionsCmd :
public KNamedCommand
90 KPrSetOptionsCmd(
const TQString &_name, TQValueList<KoPoint> &_diffs, TQPtrList<KPrObject> &_objects,
91 double _rastX,
double _rastY,
double _orastX,
double _orastY,
92 const TQColor &_txtBackCol,
const TQColor &_otxtBackCol, KPrDocument *_doc );
95 virtual void execute();
96 virtual void unexecute();
100 TQValueList<KoPoint> diffs;
101 TQPtrList<KPrObject> objects;
111class KPrSetBackCmd :
public KNamedCommand
114 KPrSetBackCmd(
const TQString &name,
const KPrBackGround::Settings &settings,
115 const KPrBackGround::Settings &oldSettings,
116 bool useMasterBackground,
117 bool takeGlobal, KPrDocument *doc, KPrPage *page );
119 virtual void execute();
120 virtual void unexecute();
124 KPrBackGround::Settings m_settings;
125 KPrBackGround::Settings m_oldSettings;
126 bool m_useMasterBackground;
127 bool m_oldUseMasterBackground;
133class KPrRotateCmd :
public KNamedCommand
141 KPrRotateCmd(
const TQString &_name,
float newAngle, TQPtrList<KPrObject> &objects,
142 KPrDocument *doc,
bool addAngle =
false );
145 virtual void execute();
146 virtual void unexecute();
150 TQPtrList<RotateValues> m_oldAngles;
151 TQPtrList<KPrObject> m_objects;
158class KPrResizeCmd :
public KNamedCommand
161 KPrResizeCmd(
const TQString &_name,
const KoPoint &_m_diff,
const KoSize &_r_diff,
162 KPrObject *_object, KPrDocument *_doc );
165 virtual void execute();
166 virtual void unexecute();
177class KPrChgPixCmd :
public KNamedCommand
180 KPrChgPixCmd(
const TQString &_name, KPrPixmapObject *_oldObject, KPrPixmapObject *_newObject,
181 KPrDocument *_doc, KPrPage *_page );
184 virtual void execute();
185 virtual void unexecute();
189 KPrPixmapObject *oldObject, *newObject;
194class KPrDeleteCmd :
public KNamedCommand
197 KPrDeleteCmd(
const TQString &_name, TQPtrList<KPrObject> &_objects, KPrDocument *_doc,
201 virtual void execute();
202 virtual void unexecute();
205 TQPtrList<KPrObject> m_oldObjectList;
206 TQPtrList<KPrObject> m_objectsToDelete;
211class KPrEffectCmd :
public KNamedCommand
214 struct EffectStruct {
215 int appearStep, disappearStep;
219 EffectSpeed m_appearSpeed;
220 EffectSpeed m_disappearSpeed;
222 int appearTimer, disappearTimer;
223 bool appearSoundEffect, disappearSoundEffect;
224 TQString a_fileName, d_fileName;
227 KPrEffectCmd(
const TQString &_name,
const TQPtrList<KPrObject> &_objs,
228 const TQValueList<EffectStruct> &_oldEffects, EffectStruct _newEffect );
231 virtual void execute();
232 virtual void unexecute();
236 TQValueList<EffectStruct> oldEffects;
237 EffectStruct newEffect;
238 TQPtrList<KPrObject> objs;
241class KPrGroupObjCmd :
public KNamedCommand
244 KPrGroupObjCmd(
const TQString &_name,
245 const TQPtrList<KPrObject> &_objects,
246 KPrDocument *_doc, KPrPage *_page );
249 virtual void execute();
250 virtual void unexecute();
254 TQPtrList<KPrObject> m_objectsToGroup;
255 TQPtrList<KPrObject> m_oldObjectList;
257 KPrGroupObject *m_groupObject;
262class UnGroupObjCmd :
public KNamedCommand
265 UnGroupObjCmd(
const TQString &_name,
266 KPrGroupObject *grpObj_,
267 KPrDocument *_doc, KPrPage *_page );
270 virtual void execute();
271 virtual void unexecute();
275 TQPtrList<KPrObject> m_groupedObjects;
276 KPrGroupObject *m_groupObject;
282class KPrInsertCmd :
public KNamedCommand
285 KPrInsertCmd(
const TQString &name,
const TQValueList<KPrObject *> objects, KPrDocument *doc, KPrPage *page );
286 KPrInsertCmd(
const TQString &name, KPrObject *
object, KPrDocument *doc, KPrPage *page );
289 virtual void execute();
290 virtual void unexecute();
293 TQValueList<KPrObject *> m_objects;
300class KPrLowerRaiseCmd :
public KNamedCommand
303 KPrLowerRaiseCmd(
const TQString &_name,
const TQPtrList<KPrObject>& _oldList,
304 const TQPtrList<KPrObject>& _newList,
305 KPrDocument *_doc, KPrPage *_page );
308 virtual void execute();
309 virtual void unexecute();
313 TQPtrList<KPrObject> oldList, newList;
318class KPrMoveByCmd :
public KNamedCommand
321 KPrMoveByCmd(
const TQString &_name,
const KoPoint &_diff, TQPtrList<KPrObject> &_objects,
322 KPrDocument *_doc, KPrPage *_page );
325 virtual void execute();
326 virtual void unexecute();
331 TQPtrList<KPrObject> objects;
339class KPrAlignCmd :
public KNamedCommand
342 KPrAlignCmd(
const TQString &_name, TQPtrList<KPrObject> &_objects, AlignType _at, KPrDocument *_doc );
345 virtual void execute();
346 virtual void unexecute();
349 TQPtrList<KoPoint> diffs;
350 TQPtrList<KPrObject> objects;
355class KoPenCmd :
public KNamedCommand
359 Pen( KoPen p, LineEnd lb, LineEnd le )
366 LineEnd lineBegin, lineEnd;
368 Pen &operator=(
const Pen &_pen ) {
370 lineBegin = _pen.lineBegin;
371 lineEnd = _pen.lineEnd;
377 enum PenConfigChange {
383 All = BeginLine | EndLine | Color | Width | Style
386 KoPenCmd(
const TQString &_name, TQPtrList<KPrObject> &_objects, Pen _newPen,
387 KPrDocument *_doc, KPrPage *_page,
int _flags = All);
390 virtual void execute();
391 virtual void unexecute();
394 void addObjects(
const TQPtrList<KPrObject> &_objects );
395 void applyPen( KPrObject *
object, Pen *tmpPen );
399 TQPtrList<Pen> oldPen;
400 TQPtrList<KPrObject> objects;
405class KPrBrushCmd :
public KNamedCommand
410 Brush( TQBrush _brush, TQColor _gColor1, TQColor _gColor2,
411 BCType _gType, FillType _fillType,
bool _unbalanced,
412 int _xfactor,
int _yfactor )
414 , gColor1( _gColor1 )
415 , gColor2( _gColor2 )
417 , fillType( _fillType )
418 , unbalanced( _unbalanced )
419 , xfactor( _xfactor )
420 , yfactor( _yfactor )
429 int xfactor, yfactor;
431 Brush &operator=(
const Brush &_brush ) {
432 brush = _brush.brush;
433 gColor1 = _brush.gColor1;
434 gColor2 = _brush.gColor2;
435 gType = _brush.gType;
436 fillType = _brush.fillType;
437 unbalanced = _brush.unbalanced;
438 xfactor = _brush.xfactor;
439 yfactor = _brush.yfactor;
445 enum BrushConfigChange {
448 BrushGradientSelect = 4,
452 GradientBalanced = 64,
453 GradientXFactor = 128,
454 GradientYFactor = 256,
455 All = BrushColor | BrushStyle | BrushGradientSelect | GradientColor1 | GradientColor2 | GradientType | GradientBalanced | GradientXFactor | GradientYFactor
458 KPrBrushCmd(
const TQString &_name, TQPtrList<KPrObject> &_objects, Brush _newBrush,
459 KPrDocument *_doc, KPrPage *_page,
int _flags = All );
462 virtual void execute();
463 virtual void unexecute();
466 void addObjects(
const TQPtrList<KPrObject> &_objects );
467 void applyBrush( KPr2DObject *
object, Brush *tmpBrush );
470 TQPtrList<Brush> oldBrush;
471 TQPtrList<KPr2DObject> objects;
477class KPrPgConfCmd :
public KNamedCommand
480 KPrPgConfCmd(
const TQString &_name,
bool _manualSwitch,
bool _infiniteLoop,
481 bool _showEndOfPresentationSlide,
bool _showPresentationDuration, TQPen _pen,
482 TQValueList<bool> _selectedSlides,
const TQString & _presentationName,
483 bool _oldManualSwitch,
bool _oldInfiniteLoop,
484 bool _oldShowEndOfPresentationSlide,
bool _oldShowPresentationDuration, TQPen _oldPen,
485 TQValueList<bool> _oldSelectedSlides,
const TQString & _oldPresentationName,
488 virtual void execute();
489 virtual void unexecute();
492 bool manualSwitch, oldManualSwitch;
493 bool infiniteLoop, oldInfiniteLoop;
494 bool showEndOfPresentationSlide, oldShowEndOfPresentationSlide;
495 bool showPresentationDuration, oldShowPresentationDuration;
497 TQValueList<bool> selectedSlides, oldSelectedSlides;
498 TQString oldPresentationName, presentationName;
503class KPrTransEffectCmd :
public KCommand
506 struct PageEffectSettings {
507 PageEffect pageEffect;
508 EffectSpeed effectSpeed;
510 TQString soundFileName;
513 void applyTo( KPrPage * );
516 KPrTransEffectCmd( TQValueVector<PageEffectSettings> oldSettings,
517 PageEffectSettings newSettings,
518 KPrPage* page, KPrDocument* doc );
520 virtual void execute();
521 virtual void unexecute();
522 virtual TQString name()
const;
525 void exec( KPrPage* page );
526 void unexec( KPrPage* page );
528 TQValueVector<PageEffectSettings> m_oldSettings;
529 PageEffectSettings m_newSettings;
534class KPrPgLayoutCmd :
public KNamedCommand
537 KPrPgLayoutCmd(
const TQString &_name, KoPageLayout _layout, KoPageLayout _oldLayout,
538 KoUnit::Unit _oldUnit, KoUnit::Unit _unit,KPrDocument *_doc );
540 virtual void execute();
541 virtual void unexecute();
545 KoPageLayout layout, oldLayout;
546 KoUnit::Unit unit, oldUnit;
549class KPrPieValueCmd :
public KNamedCommand
555 int pieAngle, pieLength;
559 enum PieConfigChange {
563 All = Type | Angle | Length
566 KPrPieValueCmd(
const TQString &name, PieValues newValues,
567 TQPtrList<KPrObject> &objects, KPrDocument *doc,
568 KPrPage *page,
int flags = All );
569 KPrPieValueCmd(
const TQString &_name, TQPtrList<PieValues> &_oldValues, PieValues _newValues,
570 TQPtrList<KPrObject> &_objects, KPrDocument *_doc, KPrPage *_page,
int _flags = All );
573 virtual void execute();
574 virtual void unexecute();
577 void addObjects(
const TQPtrList<KPrObject> &objects );
581 TQPtrList<PieValues> m_oldValues;
582 TQPtrList<KPrObject> m_objects;
583 PieValues m_newValues;
587class KPrPolygonSettingCmd :
public KNamedCommand
590 struct PolygonSettings
592 bool checkConcavePolygon;
598 enum PolygonConfigChange {
602 All = ConcaveConvex | Corners | Sharpness
605 KPrPolygonSettingCmd(
const TQString &name, PolygonSettings newSettings,
606 TQPtrList<KPrObject> &objects, KPrDocument *doc,
607 KPrPage *page,
int flags = All );
608 ~KPrPolygonSettingCmd();
610 virtual void execute();
611 virtual void unexecute();
614 void addObjects(
const TQPtrList<KPrObject> &objects );
618 TQPtrList<PolygonSettings> m_oldSettings;
619 TQPtrList<KPrObject> m_objects;
620 PolygonSettings m_newSettings;
624class KPrPictureSettingCmd :
public KNamedCommand
627 struct PictureSettings
629 PictureMirrorType mirrorType;
636 enum PictureConfigChange {
642 All = MirrorType | Depth | SwapRGB | Grayscal | Bright
645 KPrPictureSettingCmd(
const TQString &name, PictureSettings newSettings,
646 TQPtrList<KPrObject> &objects, KPrDocument *doc,
647 KPrPage *page,
int flags = All );
648 KPrPictureSettingCmd(
const TQString &_name, TQPtrList<PictureSettings> &_oldSettings,
649 PictureSettings _newSettings, TQPtrList<KPrObject> &_objects,
650 KPrDocument *_doc,
int flags = All );
651 ~KPrPictureSettingCmd();
653 virtual void execute();
654 virtual void unexecute();
657 void addObjects(
const TQPtrList<KPrObject> &_objects );
660 TQPtrList<PictureSettings> m_oldValues;
661 TQPtrList<KPrObject> m_objects;
662 PictureSettings m_newSettings;
667class KPrImageEffectCmd :
public KNamedCommand
670 struct ImageEffectSettings
678 KPrImageEffectCmd(
const TQString &_name, TQPtrList<ImageEffectSettings> &_oldSettings,
679 ImageEffectSettings _newSettings, TQPtrList<KPrObject> &_objects,
681 ~KPrImageEffectCmd();
683 virtual void execute();
684 virtual void unexecute();
688 TQPtrList<ImageEffectSettings> oldSettings;
689 TQPtrList<KPrObject> objects;
690 ImageEffectSettings newSettings;
695class KPrRectValueCmd :
public KNamedCommand
704 enum RectangleConfigChange {
710 KPrRectValueCmd(
const TQString &_name, TQPtrList<RectValues> &_oldValues, RectValues _newValues,
711 TQPtrList<KPrObject> &_objects, KPrDocument *_doc, KPrPage *_page,
int _flags = All );
712 KPrRectValueCmd(
const TQString &_name, TQPtrList<KPrObject> &_objects, RectValues _newValues,
713 KPrDocument *_doc, KPrPage *_page,
int _flags = All );
716 virtual void execute();
717 virtual void unexecute();
720 void addObjects(
const TQPtrList<KPrObject> &_objects );
724 TQPtrList<RectValues> m_oldValues;
725 TQPtrList<KPrObject> m_objects;
726 RectValues m_newValues;
730class KPrDeletePageCmd :
public KNamedCommand
733 KPrDeletePageCmd(
const TQString &name,
int pageNum, KPrDocument *doc );
736 virtual void execute();
737 virtual void unexecute();
745class KPrInsertPageCmd :
public KNamedCommand
748 KPrInsertPageCmd(
const TQString &name,
int currentPageNum, InsertPos pos,
749 KPrPage *page, KPrDocument *doc );
752 virtual void execute();
753 virtual void unexecute();
757 int m_currentPageNum;
761class KPrMovePageCmd :
public KNamedCommand
764 KPrMovePageCmd(
const TQString &_name,
int from,
int to, KPrDocument *_doc );
767 virtual void execute();
768 virtual void unexecute();
778class KPrOasisPasteTextCommand :
public KoTextDocCommand
781 KPrOasisPasteTextCommand( KoTextDocument *d,
int parag,
int idx,
782 const TQByteArray &data );
783 KoTextCursor *execute( KoTextCursor *c );
784 KoTextCursor *unexecute( KoTextCursor *c );
792 KoParagLayout* m_oldParagLayout;
798class KPrChangeStartingPageCommand :
public KNamedCommand
801 KPrChangeStartingPageCommand(
const TQString &name, KPrDocument *_doc,
802 int _oldStartingPage,
int _newStartingPage);
803 ~KPrChangeStartingPageCommand(){}
816class KPrChangeVariableSettingsCommand :
public KNamedCommand
819 enum VariableProperties { VS_DISPLAYLINK, VS_UNDERLINELINK, VS_DISPLAYCOMMENT, VS_DISPLAYFIELDCODE};
820 KPrChangeVariableSettingsCommand(
const TQString &name, KPrDocument *_doc,
bool _oldValue,
821 bool _newValue, VariableProperties _type);
822 ~KPrChangeVariableSettingsCommand(){}
827 void changeValue(
bool b );
829 VariableProperties type;
837class KPrChangeTitlePageNameCommand :
public KNamedCommand
840 KPrChangeTitlePageNameCommand(
const TQString &name, KPrDocument *_doc,
const TQString &_oldPageName,
841 const TQString &_newPageName, KPrPage *_page);
842 ~KPrChangeTitlePageNameCommand(){}
848 TQString oldPageName;
849 TQString newPageName;
853class KPrChangeCustomVariableValue :
public KNamedCommand
856 KPrChangeCustomVariableValue(
const TQString &name, KPrDocument *_doc,
const TQString & _oldValue,
857 const TQString & _newValue, KoCustomVariable *var);
865 KoCustomVariable *m_var;
868class KPrChangeLinkVariable :
public KNamedCommand
871 KPrChangeLinkVariable(
const TQString &name, KPrDocument *_doc,
const TQString & _oldHref,
872 const TQString & _newHref,
const TQString & _oldLink,
const TQString &_newLink, KoLinkVariable *var);
873 ~KPrChangeLinkVariable(){};
882 KoLinkVariable *m_var;
886class KPrNameObjectCommand :
public KNamedCommand
889 KPrNameObjectCommand(
const TQString &_name,
const TQString &_objectName, KPrObject *_obj, KPrDocument *_doc );
890 ~KPrNameObjectCommand();
894 TQString oldObjectName, newObjectName;
900class KPrDisplayObjectFromMasterPage :
public KNamedCommand
903 KPrDisplayObjectFromMasterPage(
const TQString &name, KPrDocument *_doc, KPrPage *_page,
bool _newValue);
904 ~KPrDisplayObjectFromMasterPage(){};
913class KPrDisplayBackgroundPage :
public KNamedCommand
916 KPrDisplayBackgroundPage(
const TQString &name, KPrDocument *_doc, KPrPage *_page,
bool _newValue);
917 ~KPrDisplayBackgroundPage(){};
926class KPrHideShowHeaderFooter :
public KNamedCommand
929 KPrHideShowHeaderFooter(
const TQString &name, KPrDocument *_doc, KPrPage *_page,
bool _newValue,KPrTextObject *_textObject);
930 ~KPrHideShowHeaderFooter(){};
936 KPrTextObject *m_textObject;
940class KPrFlipObjectCommand :
public KNamedCommand
943 KPrFlipObjectCommand(
const TQString &name, KPrDocument *_doc,
bool _horizontal ,
944 TQPtrList<KPrObject> &_objects );
945 ~KPrFlipObjectCommand();
951 TQPtrList<KPrObject> objects;
956class KPrGeometryPropertiesCommand :
public KNamedCommand
959 enum KgpType { ProtectSize, KeepRatio};
960 KPrGeometryPropertiesCommand(
const TQString &name, TQPtrList<KPrObject> &objects,
961 bool newValue, KgpType type, KPrDocument *_doc );
962 KPrGeometryPropertiesCommand(
const TQString &name, TQValueList<bool> &lst, TQPtrList<KPrObject> &objects,
963 bool newValue, KgpType type, KPrDocument *_doc );
964 ~KPrGeometryPropertiesCommand();
966 virtual void execute();
967 virtual void unexecute();
970 TQValueList<bool> m_oldValue;
971 TQPtrList<KPrObject> m_objects;
977class KPrProtectContentCommand :
public KNamedCommand
980 KPrProtectContentCommand(
const TQString &name, TQPtrList<KPrObject> &objects,
981 bool protectContent, KPrDocument *doc );
982 KPrProtectContentCommand(
const TQString &name,
bool protectContent,
983 KPrTextObject *obj, KPrDocument *doc );
985 ~KPrProtectContentCommand();
986 virtual void execute();
987 virtual void unexecute();
990 void addObjects(
const TQPtrList<KPrObject> &objects );
992 TQPtrList<KPrTextObject> m_objects;
993 bool m_protectContent;
994 TQValueList<bool> m_oldValues;
998class KPrCloseObjectCommand :
public KNamedCommand
1001 KPrCloseObjectCommand(
const TQString &name, TQPtrList<KPrObject> objects, KPrDocument *doc );
1003 ~KPrCloseObjectCommand();
1004 virtual void execute();
1005 virtual void unexecute();
1008 void closeObject(
bool close);
1010 TQPtrList<KPrObject> m_openObjects;
1011 TQPtrList<KPrObject> m_closedObjects;
1012 KPrDocument * m_doc;
1016struct MarginsStruct {
1018 MarginsStruct( KPrTextObject *obj );
1019 MarginsStruct(
double _left,
double top,
double right,
double bottom );
1021 double bottomMargin;
1026class KPrChangeMarginCommand :
public KNamedCommand
1029 KPrChangeMarginCommand(
const TQString &name, TQPtrList<KPrObject> &objects, MarginsStruct newMargins,
1030 KPrDocument *doc, KPrPage *page );
1031 ~KPrChangeMarginCommand();
1033 virtual void execute();
1034 virtual void unexecute();
1036 void addObjects(
const TQPtrList<KPrObject> &objects );
1037 TQPtrList<MarginsStruct> m_oldMargins;
1038 TQPtrList<KPrTextObject> m_objects;
1039 MarginsStruct m_newMargins;
1045class KPrChangeVerticalAlignmentCommand :
public KNamedCommand
1048 KPrChangeVerticalAlignmentCommand(
const TQString &name, KPrTextObject *_obj, VerticalAlignmentType _oldAlign,
1049 VerticalAlignmentType _newAlign, KPrDocument *_doc);
1050 ~KPrChangeVerticalAlignmentCommand() {}
1052 virtual void execute();
1053 virtual void unexecute();
1055 KPrTextObject *m_obj;
1056 VerticalAlignmentType m_oldAlign;
1057 VerticalAlignmentType m_newAlign;
1063class KPrChangeTabStopValueCommand :
public KNamedCommand
1066 KPrChangeTabStopValueCommand(
const TQString &name,
double _oldValue,
double _newValue, KPrDocument *_doc);
1068 ~KPrChangeTabStopValueCommand() {}
1070 virtual void execute();
1071 virtual void unexecute();
1078class KPrChangeVariableNoteText :
public KNamedCommand
1081 KPrChangeVariableNoteText(
const TQString &name, KPrDocument *_doc,
const TQString &_oldValue,
const TQString &_newValue, KoNoteVariable *var);
1082 ~KPrChangeVariableNoteText();
1089 KoNoteVariable *m_var;
"current page number" and "number of pages" variables