1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_svx.hxx" 26 #include <svx/e3dundo.hxx> 27 #include <svx/svdmodel.hxx> 28 #include <editeng/outlobj.hxx> 29 #include <svx/view3d.hxx> 30 #include <svx/scene3d.hxx> 31 #include <svx/e3dsceneupdater.hxx> 32 33 /************************************************************************/ 34 35 TYPEINIT1(E3dUndoAction, SfxUndoAction); 36 37 /************************************************************************\ 38 |* 39 |* Destruktor der Basisklasse 40 |* 41 \************************************************************************/ 42 E3dUndoAction::~E3dUndoAction () 43 { 44 } 45 46 /************************************************************************\ 47 |* 48 |* Repeat gibt es nicht 49 |* 50 \************************************************************************/ 51 sal_Bool E3dUndoAction::CanRepeat(SfxRepeatTarget&) const 52 { 53 return sal_False; 54 } 55 56 /************************************************************************/ 57 58 TYPEINIT1(E3dRotateUndoAction, E3dUndoAction); 59 60 /************************************************************************ 61 62 E3dRotateUndoAction 63 64 ************************************************************************/ 65 66 /************************************************************************\ 67 |* 68 |* Undodestruktor fuer 3D-Rotation 69 |* 70 \************************************************************************/ 71 E3dRotateUndoAction::~E3dRotateUndoAction () 72 { 73 } 74 75 /************************************************************************\ 76 |* 77 |* Undo fuer 3D-Rotation ueber die Rotationsmatrizen 78 |* 79 \************************************************************************/ 80 void E3dRotateUndoAction::Undo () 81 { 82 E3DModifySceneSnapRectUpdater aUpdater(pMy3DObj); 83 pMy3DObj->SetTransform(aMyOldRotation); 84 } 85 86 /************************************************************************\ 87 |* 88 |* Undo fuer 3D-Rotation ueber die Rotationsmatrizen 89 |* 90 \************************************************************************/ 91 void E3dRotateUndoAction::Redo () 92 { 93 E3DModifySceneSnapRectUpdater aUpdater(pMy3DObj); 94 pMy3DObj->SetTransform(aMyNewRotation); 95 } 96 97 /************************************************************************* 98 |* 99 |* E3dAttributesUndoAction 100 |* 101 \************************************************************************/ 102 103 TYPEINIT1(E3dAttributesUndoAction, SdrUndoAction); 104 105 /************************************************************************* 106 |* 107 |* Konstruktor 108 |* 109 \************************************************************************/ 110 E3dAttributesUndoAction::E3dAttributesUndoAction( SdrModel &rModel, 111 E3dView* p3dView, 112 E3dObject* pInObject, 113 const SfxItemSet& rNewSet, 114 const SfxItemSet& rOldSet, 115 sal_Bool bUseSubObj) 116 : SdrUndoAction( rModel ), 117 pObject ( pInObject ), 118 pView ( p3dView ), 119 bUseSubObjects(bUseSubObj), 120 aNewSet ( rNewSet ), 121 aOldSet ( rOldSet ) 122 { 123 } 124 125 /************************************************************************* 126 |* 127 |* Destruktor 128 |* 129 \************************************************************************/ 130 E3dAttributesUndoAction::~E3dAttributesUndoAction() 131 { 132 } 133 134 /************************************************************************* 135 |* 136 |* Undo() 137 |* Implementiert ueber Set3DAttributes(), um die Attribute nur an einer 138 |* Stelle pflegen zu muessen! 139 |* 140 \************************************************************************/ 141 void E3dAttributesUndoAction::Undo() 142 { 143 E3DModifySceneSnapRectUpdater aUpdater(pObject); 144 pObject->SetMergedItemSetAndBroadcast(aOldSet); 145 } 146 147 /************************************************************************* 148 |* 149 |* Redo() 150 |* 151 \************************************************************************/ 152 void E3dAttributesUndoAction::Redo() 153 { 154 E3DModifySceneSnapRectUpdater aUpdater(pObject); 155 pObject->SetMergedItemSetAndBroadcast(aNewSet); 156 } 157 158 /************************************************************************* 159 |* 160 |* Mehrfaches Undo nicht moeglich 161 |* 162 \************************************************************************/ 163 sal_Bool E3dAttributesUndoAction::CanRepeat(SfxRepeatTarget& /*rView*/) const 164 { 165 return sal_False; 166 } 167 168 /************************************************************************* 169 |* 170 |* Mehrfaches Undo nicht moeglich 171 |* 172 \************************************************************************/ 173 void E3dAttributesUndoAction::Repeat() 174 { 175 } 176 177