merge the formfield patch from ooo-build
[ooovba.git] / applied_patches / 0022-cws-koheicopyborder-sc.diff
blob2f2e6b2a15575a1364a0973ef22f9ec8862341a4
1 diff --git sc/source/ui/app/inputhdl.cxx sc/source/ui/app/inputhdl.cxx
2 index 85104d0..af14c64 100644
3 --- sc/source/ui/app/inputhdl.cxx
4 +++ sc/source/ui/app/inputhdl.cxx
5 @@ -2055,6 +2055,7 @@ IMPL_LINK( ScInputHandler, ModifyHdl, void *, EMPTYARG )
7 BOOL ScInputHandler::DataChanging( sal_Unicode cTyped, BOOL bFromCommand ) // return TRUE = new view created
9 + pActiveViewSh->GetViewData()->SetPasteMode( SC_PASTE_NONE );
10 bInOwnChange = TRUE; // disable ModifyHdl (reset in DataChanged)
12 if ( eMode == SC_INPUT_NONE )
13 diff --git sc/source/ui/inc/gridwin.hxx sc/source/ui/inc/gridwin.hxx
14 index 4013e1a..4c701ad 100644
15 --- sc/source/ui/inc/gridwin.hxx
16 +++ sc/source/ui/inc/gridwin.hxx
17 @@ -110,6 +110,7 @@ private:
18 // #114409#
19 ::sdr::overlay::OverlayObjectList* mpOOCursors;
20 ::sdr::overlay::OverlayObjectList* mpOOSelection;
21 + ::sdr::overlay::OverlayObjectList* mpOOSelectionBorder;
22 ::sdr::overlay::OverlayObjectList* mpOOAutoFill;
23 ::sdr::overlay::OverlayObjectList* mpOODragRect;
24 ::sdr::overlay::OverlayObjectList* mpOOHeader;
25 @@ -382,6 +383,8 @@ public:
26 void CursorChanged();
27 void DrawLayerCreated();
29 + void DeleteCopySourceOverlay();
30 + void UpdateCopySourceOverlay();
31 void DeleteCursorOverlay();
32 void UpdateCursorOverlay();
33 void DeleteSelectionOverlay();
34 diff --git sc/source/ui/inc/overlayobject.hxx sc/source/ui/inc/overlayobject.hxx
35 new file mode 100644
36 index 0000000..f95129c
37 --- /dev/null
38 +++ sc/source/ui/inc/overlayobject.hxx
39 @@ -0,0 +1,58 @@
40 +/*************************************************************************
41 + *
42 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43 + *
44 + * Copyright 2008 by Sun Microsystems, Inc.
45 + *
46 + * OpenOffice.org - a multi-platform office productivity suite
47 + *
48 + * $RCSfile: gridwin.hxx,v $
49 + * $Revision: 1.30 $
50 + *
51 + * This file is part of OpenOffice.org.
52 + *
53 + * OpenOffice.org is free software: you can redistribute it and/or modify
54 + * it under the terms of the GNU Lesser General Public License version 3
55 + * only, as published by the Free Software Foundation.
56 + *
57 + * OpenOffice.org is distributed in the hope that it will be useful,
58 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
59 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60 + * GNU Lesser General Public License version 3 for more details
61 + * (a copy is included in the LICENSE file that accompanied this code).
62 + *
63 + * You should have received a copy of the GNU Lesser General Public License
64 + * version 3 along with OpenOffice.org. If not, see
65 + * <http://www.openoffice.org/license.html>
66 + * for a copy of the LGPLv3 License.
67 + *
68 + ************************************************************************/
70 +#ifndef __SC_OVERLAYOBJECT_HXX__
71 +#define __SC_OVERLAYOBJECT_HXX__
73 +#include "svx/sdr/overlay/overlayobject.hxx"
75 +class OutputDevice;
76 +class Window;
78 +class ScOverlayDashedBorder : public ::sdr::overlay::OverlayObject
80 +public:
81 + ScOverlayDashedBorder(const ::basegfx::B2DRange& rRange, const Color& rColor, Window* pWin);
82 + virtual ~ScOverlayDashedBorder();
84 + virtual void Trigger(sal_uInt32 nTime);
86 + virtual void stripeDefinitionHasChanged();
88 +protected:
89 + virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
91 +private:
92 + ::basegfx::B2DRange maRange;
93 + Window* mpParent;
94 + bool mbToggle;
95 +};
97 +#endif
98 diff --git sc/source/ui/inc/tabview.hxx sc/source/ui/inc/tabview.hxx
99 index 0e1c5ac..da61d29 100644
100 --- sc/source/ui/inc/tabview.hxx
101 +++ sc/source/ui/inc/tabview.hxx
102 @@ -437,6 +437,7 @@ public:
104 void CreateAnchorHandles(SdrHdlList& rHdl, const ScAddress& rAddress);
106 + void UpdateCopySourceOverlay();
107 void UpdateSelectionOverlay();
108 void UpdateShrinkOverlay();
109 void UpdateAllOverlays();
110 diff --git sc/source/ui/inc/viewdata.hxx sc/source/ui/inc/viewdata.hxx
111 index 72fa6e5..eba3f23 100644
112 --- sc/source/ui/inc/viewdata.hxx
113 +++ sc/source/ui/inc/viewdata.hxx
114 @@ -89,6 +89,13 @@ enum ScMarkType
115 #endif
118 +enum ScPasteFlags
120 + SC_PASTE_NONE = 0, // No flags specified
121 + SC_PASTE_MODE = 1, // Enable paste-mode
122 + SC_PASTE_BORDER = 2, // Show a border around the source cells
125 class ScDocShell;
126 class ScDocument;
127 class ScDBFunc;
128 @@ -213,6 +220,8 @@ private:
129 SCCOL nTabStartCol; // fuer Enter nach Tab
130 ScRange aDelRange; // fuer AutoFill-Loeschen
132 + ScPasteFlags nPasteFlags;
134 ScSplitPos eEditActivePart; // the part that was active when edit mode was started
135 BOOL bEditActive[4]; // aktiv?
136 BOOL bActive; // aktives Fenster ?
137 @@ -302,6 +311,8 @@ public:
138 SCCOL GetFixPosX() const { return pThisTab->nFixPosX; }
139 SCROW GetFixPosY() const { return pThisTab->nFixPosY; }
140 BOOL IsPagebreakMode() const { return bPagebreak; }
141 + bool IsPasteMode() const { return nPasteFlags & SC_PASTE_MODE; }
142 + bool ShowPasteSource() const { return nPasteFlags & SC_PASTE_BORDER; }
144 void SetPosX( ScHSplitPos eWhich, SCCOL nNewPosX );
145 void SetPosY( ScVSplitPos eWhich, SCROW nNewPosY );
146 @@ -316,6 +327,7 @@ public:
147 void SetFixPosX( SCCOL nPos ) { pThisTab->nFixPosX = nPos; }
148 void SetFixPosY( SCROW nPos ) { pThisTab->nFixPosY = nPos; }
149 void SetPagebreakMode( BOOL bSet );
150 + void SetPasteMode ( ScPasteFlags nFlags ) { nPasteFlags = nFlags; }
152 void SetZoomType( SvxZoomType eNew, BOOL bAll );
153 void SetZoom( const Fraction& rNewX, const Fraction& rNewY, BOOL bAll );
154 diff --git sc/source/ui/view/cellsh1.cxx sc/source/ui/view/cellsh1.cxx
155 index 9a40e74..086ff00 100644
156 --- sc/source/ui/view/cellsh1.cxx
157 +++ sc/source/ui/view/cellsh1.cxx
158 @@ -1165,11 +1165,16 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
159 // Clipboard
163 case SID_COPY: // fuer Grafiken in DrawShell
165 - WaitObject aWait( GetViewData()->GetDialogParent() );
166 + ScViewData* pViewData = GetViewData();
167 + WaitObject aWait( pViewData->GetDialogParent() );
168 pTabViewShell->CopyToClip( NULL, FALSE, FALSE, TRUE );
169 rReq.Done();
170 + pViewData->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) );
171 + pTabViewShell->ShowCursor();
172 + pTabViewShell->UpdateCopySourceOverlay();
174 break;
176 @@ -1178,6 +1183,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
177 WaitObject aWait( GetViewData()->GetDialogParent() );
178 pTabViewShell->CutToClip( NULL, TRUE );
179 rReq.Done();
180 + GetViewData()->SetPasteMode( SC_PASTE_MODE );
181 + pTabViewShell->UpdateCopySourceOverlay();
183 break;
185 diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
186 index 42b22a6..5e389ef 100644
187 --- sc/source/ui/view/gridwin.cxx
188 +++ sc/source/ui/view/gridwin.cxx
189 @@ -122,6 +122,9 @@
190 #include "tabprotection.hxx"
191 #include "postit.hxx"
192 #include "dpcontrol.hxx"
193 +#include "clipparam.hxx"
194 +#include "cellsh.hxx"
195 +#include "overlayobject.hxx"
197 #include "drawview.hxx"
198 #include <svx/sdrpagewindow.hxx>
199 @@ -361,6 +364,7 @@ ScGridWindow::ScGridWindow( Window* pParent, ScViewData* pData, ScSplitPos eWhic
200 DragSourceHelper( this ),
201 mpOOCursors( NULL ),
202 mpOOSelection( NULL ),
203 + mpOOSelectionBorder( NULL ),
204 mpOOAutoFill( NULL ),
205 mpOODragRect( NULL ),
206 mpOOHeader( NULL ),
207 @@ -2945,12 +2949,30 @@ void ScGridWindow::SelectForContextMenu( const Point& rPosPixel )
211 +static void ClearSingleSelection( ScViewData* pViewData )
213 + SCCOL nX;
214 + SCROW nY;
215 + ScTransferObj* pTransObj = ScTransferObj::GetOwnClipboard(
216 + pViewData->GetActiveWin() );
217 + if (!pTransObj)
218 + return;
220 + ScDocument* pClipDoc = pTransObj->GetDocument();
221 + pClipDoc->GetClipArea( nX, nY, TRUE );
222 + if (nX == 0 && nY == 0)
224 + ScTabView* pView = pViewData->GetView();
225 + pView->Unmark();
229 void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
231 // #96965# Cursor control for ref input dialog
232 + const KeyCode& rKeyCode = rKEvt.GetKeyCode();
233 if( SC_MOD()->IsRefDialogOpen() )
235 - const KeyCode& rKeyCode = rKEvt.GetKeyCode();
236 if( !rKeyCode.GetModifier() && (rKeyCode.GetCode() == KEY_F2) )
238 SC_MOD()->EndReference();
239 @@ -2965,9 +2987,35 @@ void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
240 return;
243 + else if( rKeyCode.GetCode() == KEY_RETURN && pViewData->IsPasteMode() )
245 + ScTabViewShell* pTabViewShell = pViewData->GetViewShell();
247 + ScCellShell::PasteFromClipboard( pViewData, pTabViewShell, FALSE );
248 + ClearSingleSelection( pViewData );
250 + uno::Reference<datatransfer::clipboard::XClipboard> xSystemClipboard =
251 + TransferableHelper::GetSystemClipboard();
252 + if (xSystemClipboard.is())
254 + xSystemClipboard->setContents(
255 + uno::Reference<datatransfer::XTransferable>(),
256 + uno::Reference<datatransfer::clipboard::XClipboardOwner>());
259 + // hide the border around the copy source
260 + pViewData->SetPasteMode( SC_PASTE_NONE );
261 + UpdateCopySourceOverlay();
262 + return;
264 // wenn semi-Modeless-SfxChildWindow-Dialog oben, keine KeyInputs:
265 else if( !pViewData->IsAnyFillMode() )
267 + if (rKeyCode.GetCode() == KEY_ESCAPE)
269 + pViewData->SetPasteMode( SC_PASTE_NONE );
270 + UpdateCopySourceOverlay();
272 // query for existing note marker before calling ViewShell's keyboard handling
273 // which may remove the marker
274 BOOL bHadKeyMarker = ( pNoteMarker && pNoteMarker->IsByKeyboard() );
275 @@ -5050,6 +5098,7 @@ void ScGridWindow::CursorChanged()
276 void ScGridWindow::ImpCreateOverlayObjects()
278 UpdateCursorOverlay();
279 + UpdateCopySourceOverlay();
280 UpdateSelectionOverlay();
281 UpdateAutoFillOverlay();
282 UpdateDragRectOverlay();
283 @@ -5061,6 +5110,7 @@ void ScGridWindow::ImpCreateOverlayObjects()
284 void ScGridWindow::ImpDestroyOverlayObjects()
286 DeleteCursorOverlay();
287 + DeleteCopySourceOverlay();
288 DeleteSelectionOverlay();
289 DeleteAutoFillOverlay();
290 DeleteDragRectOverlay();
291 @@ -5081,6 +5131,68 @@ void ScGridWindow::DeleteCursorOverlay()
292 DELETEZ( mpOOCursors );
295 +void ScGridWindow::DeleteCopySourceOverlay()
297 + DELETEZ( mpOOSelectionBorder );
300 +void ScGridWindow::UpdateCopySourceOverlay()
302 + MapMode aDrawMode = GetDrawMapMode();
303 + MapMode aOldMode = GetMapMode();
304 + if ( aOldMode != aDrawMode )
305 + SetMapMode( aDrawMode );
307 + DeleteCopySourceOverlay();
309 + if (!pViewData->ShowPasteSource())
310 + return;
311 + ::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
312 + if (!pOverlayManager)
313 + return;
314 + ScTransferObj* pTransObj = ScTransferObj::GetOwnClipboard( pViewData->GetActiveWin() );
315 + if (!pTransObj)
316 + return;
317 + ScDocument* pClipDoc = pTransObj->GetDocument();
318 + if (!pClipDoc)
319 + return;
321 + SCTAB nCurTab = pViewData->GetCurPos().Tab();
323 + ScClipParam& rClipParam = pClipDoc->GetClipParam();
324 + mpOOSelectionBorder = new ::sdr::overlay::OverlayObjectList;
325 + for (ScRange* p = rClipParam.maRanges.First(); p; p = rClipParam.maRanges.Next())
327 + if (p->aStart.Tab() != nCurTab)
328 + continue;
330 + SCCOL nClipStartX = p->aStart.Col();
331 + SCROW nClipStartY = p->aStart.Row();
332 + SCCOL nClipEndX = p->aEnd.Col();
333 + SCROW nClipEndY = p->aEnd.Row();
335 + Point aClipStartScrPos = pViewData->GetScrPos( nClipStartX, nClipStartY, eWhich );
336 + Point aClipEndScrPos = pViewData->GetScrPos( nClipEndX + 1, nClipEndY + 1, eWhich );
337 + aClipStartScrPos -= Point(1, 1);
338 + long nSizeXPix = aClipEndScrPos.X() - aClipStartScrPos.X();
339 + long nSizeYPix = aClipEndScrPos.Y() - aClipStartScrPos.Y();
341 + Rectangle aRect( aClipStartScrPos, Size(nSizeXPix, nSizeYPix) );
344 + Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
346 + Rectangle aLogic = PixelToLogic(aRect, aDrawMode);
347 + ::basegfx::B2DRange aRange(aLogic.Left(), aLogic.Top(), aLogic.Right(), aLogic.Bottom());
348 + ScOverlayDashedBorder* pDashedBorder = new ScOverlayDashedBorder(aRange, aHighlight, this);
349 + pOverlayManager->add(*pDashedBorder);
350 + mpOOSelectionBorder->append(*pDashedBorder);
353 + if ( aOldMode != aDrawMode )
354 + SetMapMode( aOldMode );
357 void ScGridWindow::UpdateCursorOverlay()
359 MapMode aDrawMode = GetDrawMapMode();
360 diff --git sc/source/ui/view/makefile.mk sc/source/ui/view/makefile.mk
361 index 466ab5d..d59f3ea 100644
362 --- sc/source/ui/view/makefile.mk
363 +++ sc/source/ui/view/makefile.mk
364 @@ -98,6 +98,7 @@ SLOFILES = \
365 $(SLO)$/output.obj \
366 $(SLO)$/output2.obj \
367 $(SLO)$/output3.obj \
368 + $(SLO)$/overlayobject.obj \
369 $(SLO)$/gridmerg.obj \
370 $(SLO)$/invmerge.obj \
371 $(SLO)$/select.obj \
372 @@ -152,6 +153,7 @@ EXCEPTIONSFILES= \
373 $(SLO)$/gridwin.obj \
374 $(SLO)$/invmerge.obj \
375 $(SLO)$/output2.obj \
376 + $(SLO)$/overlayobject.obj \
377 $(SLO)$/pfuncache.obj \
378 $(SLO)$/spelldialog.obj \
379 $(SLO)$/cellsh1.obj \
380 diff --git sc/source/ui/view/overlayobject.cxx sc/source/ui/view/overlayobject.cxx
381 new file mode 100644
382 index 0000000..e5ff9a0
383 --- /dev/null
384 +++ sc/source/ui/view/overlayobject.cxx
385 @@ -0,0 +1,104 @@
386 +/*************************************************************************
388 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
389 + *
390 + * Copyright 2008 by Sun Microsystems, Inc.
392 + * OpenOffice.org - a multi-platform office productivity suite
394 + * $RCSfile: gridwin.hxx,v $
395 + * $Revision: 1.30 $
397 + * This file is part of OpenOffice.org.
399 + * OpenOffice.org is free software: you can redistribute it and/or modify
400 + * it under the terms of the GNU Lesser General Public License version 3
401 + * only, as published by the Free Software Foundation.
403 + * OpenOffice.org is distributed in the hope that it will be useful,
404 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
405 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
406 + * GNU Lesser General Public License version 3 for more details
407 + * (a copy is included in the LICENSE file that accompanied this code).
409 + * You should have received a copy of the GNU Lesser General Public License
410 + * version 3 along with OpenOffice.org. If not, see
411 + * <http://www.openoffice.org/license.html>
412 + * for a copy of the LGPLv3 License.
414 + ************************************************************************/
416 +// MARKER(update_precomp.py): autogen include statement, do not remove
417 +#include "precompiled_sc.hxx"
419 +#include "overlayobject.hxx"
420 +#include "vcl/outdev.hxx"
421 +#include "vcl/lineinfo.hxx"
422 +#include "vcl/salbtype.hxx"
423 +#include "vcl/window.hxx"
424 +#include "tools/fract.hxx"
425 +#include "basegfx/range/b2drange.hxx"
426 +#include "basegfx/polygon/b2dpolygon.hxx"
427 +#include "basegfx/polygon/b2dpolygontools.hxx"
428 +#include "svx/sdr/overlay/overlaymanager.hxx"
429 +#include "drawinglayer/primitive2d/baseprimitive2d.hxx"
430 +#include "drawinglayer/primitive2d/polypolygonprimitive2d.hxx"
432 +using ::sdr::overlay::OverlayObject;
433 +using ::sdr::overlay::OverlayManager;
434 +using ::drawinglayer::primitive2d::Primitive2DSequence;
436 +#define DASH_UPDATE_INTERVAL 180 // in msec
438 +ScOverlayDashedBorder::ScOverlayDashedBorder(const ::basegfx::B2DRange& rRange, const Color& rColor, Window* pWin) :
439 + OverlayObject(rColor),
440 + mpParent(pWin),
441 + mbToggle(true)
443 + mbAllowsAnimation = true;
444 + maRange = rRange;
447 +ScOverlayDashedBorder::~ScOverlayDashedBorder()
451 +void ScOverlayDashedBorder::Trigger(sal_uInt32 nTime)
453 + OverlayManager* pMgr = getOverlayManager();
454 + if (pMgr)
456 + SetTime(nTime + DASH_UPDATE_INTERVAL);
457 + mbToggle = !mbToggle;
458 + pMgr->InsertEvent(this);
459 + objectChange();
463 +void ScOverlayDashedBorder::stripeDefinitionHasChanged()
465 + objectChange();
468 +Primitive2DSequence ScOverlayDashedBorder::createOverlayObjectPrimitive2DSequence()
470 + using ::basegfx::B2DPolygon;
471 + using ::basegfx::B2DPolyPolygon;
473 + OverlayManager* pMgr = getOverlayManager();
474 + if (!pMgr)
475 + return Primitive2DSequence();
477 + basegfx::BColor aColorA = pMgr->getStripeColorA().getBColor();
478 + basegfx::BColor aColorB = pMgr->getStripeColorB().getBColor();
479 + if (!mbToggle)
480 + ::std::swap(aColorA, aColorB);
482 + const basegfx::B2DPolygon aPoly = basegfx::tools::createPolygonFromRect(maRange);
483 + B2DPolyPolygon aPolygon(aPoly);
484 + const drawinglayer::primitive2d::Primitive2DReference aReference(
485 + new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
486 + aPolygon, aColorA, aColorB, pMgr->getStripeLengthPixel()));
488 + return drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1);
490 diff --git sc/source/ui/view/tabview2.cxx sc/source/ui/view/tabview2.cxx
491 index efc28d8..216e5f1 100644
492 --- sc/source/ui/view/tabview2.cxx
493 +++ sc/source/ui/view/tabview2.cxx
494 @@ -414,6 +414,13 @@ void ScTabView::MarkCursor( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ,
495 aHdrFunc.SetAnchorFlag( FALSE );
498 +void ScTabView::UpdateCopySourceOverlay()
500 + for (sal_uInt8 i = 0; i < 4; ++i)
501 + if (pGridWin[i] && pGridWin[i]->IsVisible())
502 + pGridWin[i]->UpdateCopySourceOverlay();
505 void ScTabView::UpdateSelectionOverlay()
507 for (USHORT i=0; i<4; i++)
508 diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
509 index ca93f01..daa8a47 100644
510 --- sc/source/ui/view/tabview3.cxx
511 +++ sc/source/ui/view/tabview3.cxx
512 @@ -1817,6 +1817,7 @@ void ScTabView::MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW
514 pGridWin[i]->DeleteCursorOverlay();
515 pGridWin[i]->DeleteAutoFillOverlay();
516 + pGridWin[i]->DeleteCopySourceOverlay();
518 // flush OverlayManager before changing MapMode to text edit
519 pGridWin[i]->flushOverlayManager();
520 diff --git sc/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
521 index d10a48d..6d0c6b4 100644
522 --- sc/source/ui/view/viewdata.cxx
523 +++ sc/source/ui/view/viewdata.cxx
524 @@ -319,6 +319,7 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh )
525 eRefType ( SC_REFTYPE_NONE ),
526 nTabNo ( 0 ),
527 nRefTabNo ( 0 ),
528 + nPasteFlags ( SC_PASTE_NONE ),
529 eEditActivePart( SC_SPLIT_BOTTOMLEFT ),
530 bActive ( TRUE ), //! wie initialisieren?
531 bIsRefMode ( FALSE ),
532 diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
533 index 2842e50..efb3426 100644
534 --- sc/source/ui/view/viewfunc.cxx
535 +++ sc/source/ui/view/viewfunc.cxx
536 @@ -1897,6 +1897,10 @@ void ScViewFunc::DeleteMulti( BOOL bRows, BOOL bRecord )
538 void ScViewFunc::DeleteContents( USHORT nFlags, BOOL bRecord )
540 + ScViewData* pViewData = GetViewData();
541 + pViewData->SetPasteMode( SC_PASTE_NONE );
542 + pViewData->GetViewShell()->UpdateCopySourceOverlay();
544 // nur wegen Matrix nicht editierbar? Attribute trotzdem ok
545 BOOL bOnlyNotBecauseOfMatrix;
546 BOOL bEditable = SelectionEditable( &bOnlyNotBecauseOfMatrix );