summaryrefslogtreecommitdiff
path: root/sc/source/ui/drawfunc/fudraw.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-09-08 12:54:02 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-09-08 12:54:02 +0000
commite81825567bc32664d13c0b2a3f9d507e255522e0 (patch)
tree747596bbfb9401c7baf4989a6eed8750bf3144e0 /sc/source/ui/drawfunc/fudraw.cxx
parentb796663692a33604197e1e8c4a7b198b485a21fc (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.cxx68
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)
{