1b3f79822SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3b3f79822SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4b3f79822SAndrew Rist * or more contributor license agreements. See the NOTICE file 5b3f79822SAndrew Rist * distributed with this work for additional information 6b3f79822SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7b3f79822SAndrew Rist * to you under the Apache License, Version 2.0 (the 8b3f79822SAndrew Rist * "License"); you may not use this file except in compliance 9b3f79822SAndrew Rist * with the License. You may obtain a copy of the License at 10b3f79822SAndrew Rist * 11b3f79822SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12b3f79822SAndrew Rist * 13b3f79822SAndrew Rist * Unless required by applicable law or agreed to in writing, 14b3f79822SAndrew Rist * software distributed under the License is distributed on an 15b3f79822SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16b3f79822SAndrew Rist * KIND, either express or implied. See the License for the 17b3f79822SAndrew Rist * specific language governing permissions and limitations 18b3f79822SAndrew Rist * under the License. 19b3f79822SAndrew Rist * 20b3f79822SAndrew Rist *************************************************************/ 21b3f79822SAndrew Rist 22b3f79822SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_sc.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir // INCLUDE --------------------------------------------------------------- 28cdf0e10cSrcweir 29cdf0e10cSrcweir #include <svx/svdundo.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include "undodraw.hxx" 32cdf0e10cSrcweir #include "docsh.hxx" 33cdf0e10cSrcweir #include "tabvwsh.hxx" 34cdf0e10cSrcweir 35cdf0e10cSrcweir 36cdf0e10cSrcweir // ----------------------------------------------------------------------- 37cdf0e10cSrcweir 38cdf0e10cSrcweir TYPEINIT1(ScUndoDraw, SfxUndoAction); 39cdf0e10cSrcweir 40cdf0e10cSrcweir // ----------------------------------------------------------------------- 41cdf0e10cSrcweir ScUndoDraw(SfxUndoAction * pUndo,ScDocShell * pDocSh)42cdf0e10cSrcweirScUndoDraw::ScUndoDraw( SfxUndoAction* pUndo, ScDocShell* pDocSh ) : 43cdf0e10cSrcweir pDrawUndo( pUndo ), 44cdf0e10cSrcweir pDocShell( pDocSh ) 45cdf0e10cSrcweir { 46cdf0e10cSrcweir } 47cdf0e10cSrcweir ~ScUndoDraw()48cdf0e10cSrcweir__EXPORT ScUndoDraw::~ScUndoDraw() 49cdf0e10cSrcweir { 50cdf0e10cSrcweir delete pDrawUndo; 51cdf0e10cSrcweir } 52cdf0e10cSrcweir ForgetDrawUndo()53cdf0e10cSrcweirvoid ScUndoDraw::ForgetDrawUndo() 54cdf0e10cSrcweir { 55cdf0e10cSrcweir pDrawUndo = NULL; // nicht loeschen (Draw-Undo muss dann von aussen gemerkt werden) 56cdf0e10cSrcweir } 57cdf0e10cSrcweir GetComment() const58cdf0e10cSrcweirString __EXPORT ScUndoDraw::GetComment() const 59cdf0e10cSrcweir { 60cdf0e10cSrcweir if (pDrawUndo) 61cdf0e10cSrcweir return pDrawUndo->GetComment(); 62cdf0e10cSrcweir else 63cdf0e10cSrcweir return String(); 64cdf0e10cSrcweir } 65cdf0e10cSrcweir GetRepeatComment(SfxRepeatTarget & rTarget) const66cdf0e10cSrcweirString __EXPORT ScUndoDraw::GetRepeatComment(SfxRepeatTarget& rTarget) const 67cdf0e10cSrcweir { 68cdf0e10cSrcweir if (pDrawUndo) 69cdf0e10cSrcweir return pDrawUndo->GetRepeatComment(rTarget); 70cdf0e10cSrcweir else 71cdf0e10cSrcweir return String(); 72cdf0e10cSrcweir } 73cdf0e10cSrcweir GetId() const74cdf0e10cSrcweirsal_uInt16 __EXPORT ScUndoDraw::GetId() const 75cdf0e10cSrcweir { 76cdf0e10cSrcweir if (pDrawUndo) 77cdf0e10cSrcweir return pDrawUndo->GetId(); 78cdf0e10cSrcweir else 79cdf0e10cSrcweir return 0; 80cdf0e10cSrcweir } 81cdf0e10cSrcweir SetLinkToSfxLinkUndoAction(SfxLinkUndoAction * pSfxLinkUndoAction)82*01300968SArmin Le Grandvoid __EXPORT ScUndoDraw::SetLinkToSfxLinkUndoAction(SfxLinkUndoAction* pSfxLinkUndoAction) 83cdf0e10cSrcweir { 84cdf0e10cSrcweir if (pDrawUndo) 85*01300968SArmin Le Grand pDrawUndo->SetLinkToSfxLinkUndoAction(pSfxLinkUndoAction); 86*01300968SArmin Le Grand else 87*01300968SArmin Le Grand SetLinkToSfxLinkUndoAction(pSfxLinkUndoAction); 88cdf0e10cSrcweir } 89cdf0e10cSrcweir Merge(SfxUndoAction * pNextAction)90cdf0e10cSrcweirsal_Bool __EXPORT ScUndoDraw::Merge( SfxUndoAction* pNextAction ) 91cdf0e10cSrcweir { 92cdf0e10cSrcweir if (pDrawUndo) 93cdf0e10cSrcweir return pDrawUndo->Merge(pNextAction); 94cdf0e10cSrcweir else 95cdf0e10cSrcweir return sal_False; 96cdf0e10cSrcweir } 97cdf0e10cSrcweir UpdateSubShell()98cdf0e10cSrcweirvoid ScUndoDraw::UpdateSubShell() 99cdf0e10cSrcweir { 100cdf0e10cSrcweir // #i26822# remove the draw shell if the selected object has been removed 101cdf0e10cSrcweir ScTabViewShell* pViewShell = pDocShell->GetBestViewShell(); 102cdf0e10cSrcweir if (pViewShell) 103cdf0e10cSrcweir pViewShell->UpdateDrawShell(); 104cdf0e10cSrcweir } 105cdf0e10cSrcweir Undo()106cdf0e10cSrcweirvoid __EXPORT ScUndoDraw::Undo() 107cdf0e10cSrcweir { 108cdf0e10cSrcweir if (pDrawUndo) 109cdf0e10cSrcweir { 110cdf0e10cSrcweir pDrawUndo->Undo(); 111cdf0e10cSrcweir pDocShell->SetDrawModified(); 112cdf0e10cSrcweir UpdateSubShell(); 113cdf0e10cSrcweir } 114cdf0e10cSrcweir } 115cdf0e10cSrcweir Redo()116cdf0e10cSrcweirvoid __EXPORT ScUndoDraw::Redo() 117cdf0e10cSrcweir { 118cdf0e10cSrcweir if (pDrawUndo) 119cdf0e10cSrcweir { 120cdf0e10cSrcweir pDrawUndo->Redo(); 121cdf0e10cSrcweir pDocShell->SetDrawModified(); 122cdf0e10cSrcweir UpdateSubShell(); 123cdf0e10cSrcweir } 124cdf0e10cSrcweir } 125cdf0e10cSrcweir Repeat(SfxRepeatTarget & rTarget)126cdf0e10cSrcweirvoid __EXPORT ScUndoDraw::Repeat(SfxRepeatTarget& rTarget) 127cdf0e10cSrcweir { 128cdf0e10cSrcweir if (pDrawUndo) 129cdf0e10cSrcweir pDrawUndo->Repeat(rTarget); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir CanRepeat(SfxRepeatTarget & rTarget) const132cdf0e10cSrcweirsal_Bool __EXPORT ScUndoDraw::CanRepeat(SfxRepeatTarget& rTarget) const 133cdf0e10cSrcweir { 134cdf0e10cSrcweir if (pDrawUndo) 135cdf0e10cSrcweir return pDrawUndo->CanRepeat(rTarget); 136cdf0e10cSrcweir else 137cdf0e10cSrcweir return sal_False; 138cdf0e10cSrcweir } 139cdf0e10cSrcweir 140cdf0e10cSrcweir 141cdf0e10cSrcweir 142