diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-09-08 12:54:02 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-09-08 12:54:02 +0000 |
commit | e81825567bc32664d13c0b2a3f9d507e255522e0 (patch) | |
tree | 747596bbfb9401c7baf4989a6eed8750bf3144e0 /sc/source/ui/drawfunc/fudraw.cxx | |
parent | b796663692a33604197e1e8c4a7b198b485a21fc (diff) |
INTEGRATION: CWS dr12 (1.9.170); FILE MERGED
2004/07/29 08:00:51 sab 1.9.170.3: #i21253#; fix merge problems
2004/07/27 01:59:10 sab 1.9.170.2: RESYNC: (1.9-1.10); FILE MERGED
2004/04/19 17:57:07 jmarmion 1.9.170.1: #i25335,i26291# note sizing and text box enhancements.
Diffstat (limited to 'sc/source/ui/drawfunc/fudraw.cxx')
-rw-r--r-- | sc/source/ui/drawfunc/fudraw.cxx | 68 |
1 files changed, 59 insertions, 9 deletions
diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx index 7eabaf20c..f83b7dd37 100644 --- a/sc/source/ui/drawfunc/fudraw.cxx +++ b/sc/source/ui/drawfunc/fudraw.cxx @@ -2,9 +2,9 @@ * * $RCSfile: fudraw.cxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: rt $ $Date: 2004-07-12 15:28:53 $ + * last change: $Author: hr $ $Date: 2004-09-08 13:54:02 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -74,6 +74,9 @@ #include <svx/svdoole2.hxx> #include <svx/svdouno.hxx> #include <svx/svdview.hxx> +#include <svx/svdocapt.hxx> +#include <svx/svdpage.hxx> +#include <svx/svdundo.hxx> #include <sfx2/dispatch.hxx> #include "sc.hrc" @@ -82,6 +85,7 @@ #include "tabvwsh.hxx" #include "drwlayer.hxx" #include "scresid.hxx" +#include "userdat.hxx" // #97016# #ifndef SC_DOCSHELL_HXX @@ -321,7 +325,7 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) { pView->UnmarkAll(); } - + // Beim Bezier-Editieren ist jetzt wieder das Objekt selektiert if (!pView->AreObjectsMarked()) pViewShell->SetDrawShell( FALSE ); @@ -331,8 +335,41 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) break; case KEY_DELETE: //! ueber Accelerator + { + const SdrMarkList& rNoteMarkList = pView->GetMarkedObjectList(); + if(rNoteMarkList.GetMarkCount() == 1) + { + SdrObject* pObj = rNoteMarkList.GetMark( 0 )->GetObj(); + if ( pObj && pObj->GetLayer() == SC_LAYER_INTERN && pObj->ISA(SdrCaptionObj) ) + + { + ScAddress aTabPos; + ScDrawObjData* pData = ScDrawLayer::GetObjData( pObj ); + if( pData ) + aTabPos = pData->aStt; + ScDocument* pDoc = pViewShell->GetViewData()->GetDocument(); + ScPostIt aNote(pDoc); + pViewShell->SetNote( aTabPos.Col(), aTabPos.Row(), aTabPos.Tab(), aNote ); // with Undo + + ScDrawLayer* pModel = pDoc->GetDrawLayer(); + if (pModel) + { + SdrPage* pPage = pModel->GetPage( aTabPos.Tab() ); + if(pPage) + { + ScViewData* pViewData = pViewShell->GetViewData(); + ScDocShell* pDocSh = pViewData->GetDocShell(); + pDocSh->GetUndoManager()->AddUndoAction( new SdrUndoRemoveObj( *pObj)); + pPage->RemoveObject( pObj->GetOrdNum() ); + } + } + bReturn = TRUE; + break; + } + } pView->DeleteMarked(); bReturn = TRUE; + } break; case KEY_RETURN: @@ -491,6 +528,19 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) // there is a object selected yet if(pView->AreObjectsMarked()) { + + const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); + if(rMarkList.GetMarkCount() == 1) + { + // disable cursor travelling on note objects as the tail connector position + // must not move. + SdrObject* pObj = rMarkList.GetMark( 0 )->GetObj(); + if(pObj && pObj->ISA(SdrCaptionObj) && pObj->GetLayer() == SC_LAYER_INTERN) + { + break; + } + } + long nX = 0; long nY = 0; USHORT nCode = rKEvt.GetKeyCode().GetCode(); @@ -618,7 +668,7 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) pView->MovAction(aEndPoint); pView->EndDragObj(); - + // restore snap if(!bWasNoSnap) ((SdrDragStat&)rDragStat).SetNoSnap(bWasNoSnap); @@ -655,7 +705,7 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) // rescue ID of point with focus sal_uInt16 nPol(pHdl->GetPolyNum()); sal_uInt16 nPnt(pHdl->GetPointNum()); - + if(pView->IsPointMarked(*pHdl)) { if(rKEvt.GetKeyCode().IsShift()) @@ -672,7 +722,7 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) pView->MarkPoint(*pHdl); } - + if(0L == rHdlList.GetFocusHdl()) { // restore point with focus @@ -681,9 +731,9 @@ BOOL __EXPORT FuDraw::KeyInput(const KeyEvent& rKEvt) for(sal_uInt32 a(0); !pNewOne && a < rHdlList.GetHdlCount(); a++) { SdrHdl* pAct = rHdlList.GetHdl(a); - - if(pAct - && pAct->GetKind() == HDL_POLY + + if(pAct + && pAct->GetKind() == HDL_POLY && pAct->GetPolyNum() == nPol && pAct->GetPointNum() == nPnt) { |