LibreOffice Module sw (master)  1
edtdd.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <hintids.hxx>
21 
22 #include <svx/svdview.hxx>
23 #include <editeng/outliner.hxx>
24 #include <svx/svdobj.hxx>
25 #include <sot/exchange.hxx>
26 #include <sot/formats.hxx>
27 #include <sfx2/bindings.hxx>
28 #include <vcl/commandevent.hxx>
29 
30 #include <sfx2/viewfrm.hxx>
31 #include <fmturl.hxx>
32 #include <frmfmt.hxx>
33 #include <wrtsh.hxx>
34 #include <edtdd.hxx>
35 #include <edtwin.hxx>
36 #include <view.hxx>
37 #include <viewopt.hxx>
38 #include <swdtflvr.hxx>
39 #include <swmodule.hxx>
40 #include <docsh.hxx>
41 #include <wdocsh.hxx>
42 #include <swundo.hxx>
43 
44 using namespace ::com::sun::star;
45 
46 // no include "dbgoutsw.hxx" here!!!!!!
47 
48 bool g_bExecuteDrag = false;
49 
51 {
52  m_aTimer.SetInvokeHandler(LINK(this, SwEditWin, DDHandler));
53  m_aTimer.SetTimeout(480);
54  m_aTimer.Start();
55  g_bDDTimerStarted = true;
56 }
57 
58 void SwEditWin::StopDDTimer(SwWrtShell *pSh, const Point &rPt)
59 {
60  m_aTimer.Stop();
61  g_bDDTimerStarted = false;
62  if(!pSh->IsSelFrameMode())
63  pSh->CallSetCursor(&rPt, false);
64  m_aTimer.SetInvokeHandler(LINK(this,SwEditWin, TimerHandler));
65 }
66 
67 void SwEditWin::StartDrag( sal_Int8 /*nAction*/, const Point& rPosPixel )
68 {
70  if( rSh.GetDrawView() )
71  {
72  CommandEvent aDragEvent( rPosPixel, CommandEventId::StartDrag, true );
73  if( rSh.GetDrawView()->Command( aDragEvent, this ) )
74  {
76  return; // Event evaluated by SdrView
77  }
78  }
79 
80  if ( !m_pApplyTempl && !rSh.IsDrawCreate() && !IsDrawAction())
81  {
82  bool bStart = false, bDelSelect = false;
83  SdrObject *pObj = nullptr;
84  Point aDocPos( PixelToLogic( rPosPixel ) );
85  if ( !rSh.IsInSelect() && rSh.TestCurrPam( aDocPos, true))
86  //We are not selecting and aren't at a selection
87  bStart = true;
88  else if ( !g_bFrameDrag && rSh.IsSelFrameMode() &&
89  rSh.IsInsideSelectedObj( aDocPos ) &&
90  nullptr == m_pAnchorMarker)
91  {
92  //We are not dragging internally and are not at an
93  //object (frame, draw object)
94 
95  // #i106131# *and* AnchorDrag is *not* active: When active,
96  // entering global drag mode will destroy the AnchorHdl but
97  // keep the now invalid ptr in place, next access will crash.
98  // It is indeed wrong to enter drag mode when AnchorDrag is
99  // already active
100  bStart = true;
101  }
102  else if( !g_bFrameDrag && m_rView.GetDocShell()->IsReadOnly() &&
103  OBJCNT_NONE != rSh.GetObjCntType( aDocPos, pObj ))
104  {
105  rSh.LockPaint();
106  if( rSh.SelectObj( aDocPos, 0, pObj ))
107  bStart = bDelSelect = true;
108  else
109  rSh.UnlockPaint();
110  }
111  else
112  {
113  SwContentAtPos aSwContentAtPos( IsAttrAtPos::InetAttr );
114  bStart = rSh.GetContentAtPos( aDocPos,
115  aSwContentAtPos );
116  }
117 
118  if ( bStart && !m_bIsInDrag )
119  {
120  m_bMBPressed = false;
121  ReleaseMouse();
122  g_bFrameDrag = false;
123  g_bExecuteDrag = true;
124  SwEditWin::m_nDDStartPosY = aDocPos.Y();
125  SwEditWin::m_nDDStartPosX = aDocPos.X();
126  m_aMovePos = aDocPos;
128  if( bDelSelect )
129  {
130  rSh.UnSelectFrame();
131  rSh.UnlockPaint();
132  }
133  }
134  }
135 }
136 
138 {
139  if( !g_bExecuteDrag || m_bIsInDrag )
140  return;
141 
142  m_bIsInDrag = true;
143 
145 
146  pTransfer->StartDrag( this, m_aMovePos );
147 }
148 
150 {
151  DropCleanup();
152  m_aTimer.SetInvokeHandler( LINK(this,SwEditWin, TimerHandler) );
153  m_bIsInDrag = false;
154 }
155 
157 {
158  SwWrtShell &rSh = m_rView.GetWrtShell();
159 
160  // reset statuses
161  g_bNoInterrupt = false;
162  if ( m_bOldIdleSet )
163  {
165  m_bOldIdleSet = false;
166  }
167  if ( m_pUserMarker )
169  else
170  rSh.UnSetVisibleCursor();
171 
172 }
173 
175 {
176  if ( m_pUserMarker )
177  {
178  m_pUserMarker.reset();
179  m_pUserMarkerObj = nullptr;
180  }
181 }
182 
183 //exhibition hack (MA,MBA)
185 {
186  if ( !GetCurShell() )
187  SelectShell();
188 }
189 
191 {
193  DropCleanup();
194  sal_Int8 nRet = DND_ACTION_NONE;
195 
196  //A Drop to an open OutlinerView doesn't concern us (also see QueryDrop)
197  SwWrtShell &rSh = m_rView.GetWrtShell();
198  const Point aDocPt( PixelToLogic( rEvt.maPosPixel ));
199  SdrObject *pObj = nullptr;
200  OutlinerView* pOLV;
201  rSh.GetObjCntType( aDocPt, pObj );
202 
203  if( pObj && nullptr != ( pOLV = rSh.GetDrawView()->GetTextEditOutlinerView() ))
204  {
205  tools::Rectangle aRect( pOLV->GetOutputArea() );
206  aRect.Union( pObj->GetLogicRect() );
207  const Point aPos = pOLV->GetWindow()->PixelToLogic(rEvt.maPosPixel);
208  if ( aRect.IsInside(aPos) )
209  {
210  rSh.StartAllAction();
211  rSh.EndAllAction();
212  return nRet;
213  }
214  }
215 
216  // There's a special treatment for file lists with a single
217  // element, that depends on the actual content of the
218  // Transferable to be accessible. Since the transferable
219  // may only be accessed after the drop has been accepted
220  // (according to KA due to Java D&D), we'll have to
221  // reevaluate the drop action once more _with_ the
222  // Transferable.
223  sal_uInt8 nEventAction;
224  sal_Int8 nUserOpt = rEvt.mbDefault ? EXCHG_IN_ACTION_DEFAULT
225  : rEvt.mnAction;
226  SotExchangeActionFlags nActionFlags;
230  rEvt.mnAction,
231  nUserOpt, m_nDropFormat, nEventAction, SotClipboardFormatId::NONE,
232  &rEvt.maDropEvent.Transferable,
233  &nActionFlags );
234 
235  TransferableDataHelper aData( rEvt.maDropEvent.Transferable );
236  nRet = rEvt.mnAction;
237  if( !SwTransferable::PasteData( aData, rSh, m_nDropAction, nActionFlags, m_nDropFormat,
238  m_nDropDestination, false, rEvt.mbDefault, &aDocPt, nRet))
239  nRet = DND_ACTION_NONE;
240  else if ( SW_MOD()->m_pDragDrop )
241  //Don't clean up anymore at internal D&D!
242  SW_MOD()->m_pDragDrop->SetCleanUp( false );
243 
244  return nRet;
245 }
246 
248 {
249  SwWrtShell &rSh = m_rView.GetWrtShell();
250  const Point aDocPt( PixelToLogic( rPixPnt ) );
251  if( rSh.TestCurrPam( aDocPt )
252  || rSh.IsOverReadOnlyPos( aDocPt )
253  || rSh.DocPtInsideInputField( aDocPt ) )
254  return SotExchangeDest::NONE;
255 
256  SdrObject *pObj = nullptr;
257  const ObjCntType eType = rSh.GetObjCntType( aDocPt, pObj );
258 
259  //Drop to OutlinerView (TextEdit in Drawing) should decide it on its own!
260  if( pObj )
261  {
263  if ( pOLV )
264  {
265  tools::Rectangle aRect( pOLV->GetOutputArea() );
266  aRect.Union( pObj->GetLogicRect() );
267  const Point aPos = pOLV->GetWindow()->PixelToLogic( rPixPnt );
268  if( aRect.IsInside( aPos ) )
269  return SotExchangeDest::NONE;
270  }
271  }
272 
273  //What do we want to drop on now?
274  SotExchangeDest nDropDestination = SotExchangeDest::NONE;
275 
276  //Did anything else arrive from the DrawingEngine?
277  if( OBJCNT_NONE != eType )
278  {
279  switch ( eType )
280  {
281  case OBJCNT_GRF:
282  {
283  bool bLink,
284  bIMap = nullptr != rSh.GetFormatFromObj( aDocPt )->GetURL().GetMap();
285  OUString aDummy;
286  rSh.GetGrfAtPos( aDocPt, aDummy, bLink );
287  if ( bLink && bIMap )
288  nDropDestination = SotExchangeDest::DOC_LNKD_GRAPH_W_IMAP;
289  else if ( bLink )
290  nDropDestination = SotExchangeDest::DOC_LNKD_GRAPHOBJ;
291  else if ( bIMap )
292  nDropDestination = SotExchangeDest::DOC_GRAPH_W_IMAP;
293  else
294  nDropDestination = SotExchangeDest::DOC_GRAPHOBJ;
295  }
296  break;
297  case OBJCNT_FLY:
298  if( dynamic_cast< const SwWebDocShell *>( rSh.GetView().GetDocShell() ) != nullptr )
299  nDropDestination = SotExchangeDest::DOC_TEXTFRAME_WEB;
300  else
301  nDropDestination = SotExchangeDest::DOC_TEXTFRAME;
302  break;
303  case OBJCNT_OLE: nDropDestination = SotExchangeDest::DOC_OLEOBJ; break;
304  case OBJCNT_CONTROL: /* no Action avail */
305  case OBJCNT_SIMPLE: nDropDestination = SotExchangeDest::DOC_DRAWOBJ; break;
306  case OBJCNT_URLBUTTON: nDropDestination = SotExchangeDest::DOC_URLBUTTON; break;
307  case OBJCNT_GROUPOBJ: nDropDestination = SotExchangeDest::DOC_GROUPOBJ; break;
308 
309  default: OSL_ENSURE( false, "new ObjectType?" );
310  }
311  }
312  if ( !bool(nDropDestination) )
313  {
314  if( dynamic_cast< const SwWebDocShell *>( rSh.GetView().GetDocShell() ) != nullptr )
315  nDropDestination = SotExchangeDest::SWDOC_FREE_AREA_WEB;
316  else
317  nDropDestination = SotExchangeDest::SWDOC_FREE_AREA;
318  }
319  if( ppObj )
320  *ppObj = pObj;
321  return nDropDestination;
322 }
323 
325 {
326  if( rEvt.mbLeaving )
327  {
328  DropCleanup();
329  return rEvt.mnAction;
330  }
331 
332  if( m_rView.GetDocShell()->IsReadOnly() )
333  return DND_ACTION_NONE;
334 
335  SwWrtShell &rSh = m_rView.GetWrtShell();
336 
337  Point aPixPt( rEvt.maPosPixel );
338 
339  // If the cursor is near the inner boundary
340  // we attempt to scroll towards the desired direction.
342  const int nMargin = 10;
343  aWin.AdjustLeft(nMargin );
344  aWin.AdjustTop(nMargin );
345  aWin.AdjustRight( -nMargin );
346  aWin.AdjustBottom( -nMargin );
347  if(!aWin.IsInside(aPixPt)) {
348  static sal_uInt64 last_tick = 0;
349  sal_uInt64 current_tick = tools::Time::GetSystemTicks();
350  if((current_tick-last_tick) > 500) {
351  last_tick = current_tick;
352  if(!m_bOldIdleSet) {
353  m_bOldIdle = rSh.GetViewOptions()->IsIdle();
354  rSh.GetViewOptions()->SetIdle(false);
355  m_bOldIdleSet = true;
356  }
358  if(aPixPt.X() > aWin.Right()) aPixPt.AdjustX(nMargin );
359  if(aPixPt.X() < aWin.Left()) aPixPt.AdjustX( -nMargin );
360  if(aPixPt.Y() > aWin.Bottom()) aPixPt.AdjustY(nMargin );
361  if(aPixPt.Y() < aWin.Top()) aPixPt.AdjustY( -nMargin );
362  Point aDocPt(PixelToLogic(aPixPt));
363  SwRect rect(aDocPt,Size(1,1));
364  rSh.MakeVisible(rect);
365  }
366  }
367 
368  if(m_bOldIdleSet) {
370  m_bOldIdleSet = false;
371  }
372 
373  SdrObject *pObj = nullptr;
374  m_nDropDestination = GetDropDestination( aPixPt, &pObj );
375  if( !bool(m_nDropDestination) )
376  return DND_ACTION_NONE;
377 
378  sal_uInt8 nEventAction;
379  sal_Int8 nUserOpt = rEvt.mbDefault ? EXCHG_IN_ACTION_DEFAULT
380  : rEvt.mnAction;
381 
385  rEvt.mnAction,
386  nUserOpt, m_nDropFormat, nEventAction );
387 
389  {
390  const Point aDocPt( PixelToLogic( aPixPt ) );
391 
392  //With the default action we still want to have a say.
393  SwModule *pMod = SW_MOD();
394  if( pMod->m_pDragDrop )
395  {
396  bool bCleanup = false;
397  //Drawing objects in Headers/Footers are not allowed
398 
399  SwWrtShell *pSrcSh = pMod->m_pDragDrop->GetShell();
400  if( (pSrcSh->GetSelFrameType() == FrameTypeFlags::DRAWOBJ) &&
401  pSrcSh->IsSelContainsControl() &&
402  (rSh.GetFrameType( &aDocPt, false ) & (FrameTypeFlags::HEADER|FrameTypeFlags::FOOTER)) )
403  {
404  bCleanup = true;
405  }
406  // don't more position protected objects!
407  else if( DND_ACTION_MOVE == rEvt.mnAction &&
409  {
410  bCleanup = true;
411  }
412  else if( rEvt.mbDefault )
413  {
414  // internal Drag&Drop: within same Doc a Move
415  // otherwise a Copy - Task 54974
416  nEventAction = pSrcSh->GetDoc() == rSh.GetDoc()
418  : DND_ACTION_COPY;
419  }
420  if ( bCleanup )
421  {
423  rSh.UnSetVisibleCursor();
424  return DND_ACTION_NONE;
425  }
426  }
427  else
428  {
429  //D&D from outside of SW should be a Copy per default.
430  if( EXCHG_IN_ACTION_DEFAULT == nEventAction &&
431  DND_ACTION_MOVE == rEvt.mnAction )
432  nEventAction = DND_ACTION_COPY;
433 
434  if( (SotClipboardFormatId::SBA_FIELDDATAEXCHANGE == m_nDropFormat &&
436  SotClipboardFormatId::SBA_CTRLDATAEXCHANGE == m_nDropFormat )
437  {
438  SdrMarkView* pMView = rSh.GetDrawView();
439  if( pMView && !pMView->IsDesignMode() )
440  return DND_ACTION_NONE;
441  }
442  }
443 
444  if ( EXCHG_IN_ACTION_DEFAULT != nEventAction )
445  nUserOpt = static_cast<sal_Int8>(nEventAction);
446 
447  // show DropCursor or UserMarker ?
448  if( SotExchangeDest::SWDOC_FREE_AREA_WEB == m_nDropDestination ||
449  SotExchangeDest::SWDOC_FREE_AREA == m_nDropDestination )
450  {
453  if(rSh.GetContentAtPos(aDocPt, aCont))
454  rSh.SwCursorShell::SetVisibleCursor( aDocPt );
455  }
456  else
457  {
458  rSh.UnSetVisibleCursor();
459 
460  if ( m_pUserMarkerObj != pObj )
461  {
463  m_pUserMarkerObj = pObj;
464 
465  if(m_pUserMarkerObj)
466  {
468  }
469  }
470  }
471  return nUserOpt;
472  }
473 
475  rSh.UnSetVisibleCursor();
476  return DND_ACTION_NONE;
477 }
478 
479 IMPL_LINK_NOARG(SwEditWin, DDHandler, Timer *, void)
480 {
481  g_bDDTimerStarted = false;
482  m_aTimer.Stop();
483  m_aTimer.SetTimeout(240);
484  m_bMBPressed = false;
485  ReleaseMouse();
486  g_bFrameDrag = false;
487 
488  if ( m_rView.GetViewFrame() )
489  {
490  g_bExecuteDrag = true;
491  StartExecuteDrag();
492  }
493 }
494 
495 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SfxViewFrame * GetViewFrame() const
SwWrtShell * GetShell()
Definition: swdtflvr.hxx:202
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
SdrView * GetDrawView()
Definition: vnew.cxx:376
void StartDDTimer()
Definition: edtdd.cxx:50
#define DND_ACTION_COPY
long AdjustX(long nHorzMove)
bool g_bExecuteDrag
Definition: edtdd.cxx:48
signed char sal_Int8
const Graphic * GetGrfAtPos(const Point &rDocPos, OUString &rName, bool &rbLink) const
Deliver graphic in rName besides graphic name.
Definition: fefly1.cxx:1547
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
Definition: edtdd.cxx:324
const SwView & GetView() const
Definition: edtwin.hxx:240
static sal_uInt8 GetExchangeAction(const DataFlavorExVector &rDataFlavorExVector, SotExchangeDest nDestination, sal_uInt16 nSourceOptions, sal_uInt8 nUserAction, SotClipboardFormatId &rFormat, sal_uInt8 &rDefaultAction, SotClipboardFormatId nOnlyTestFormat=SotClipboardFormatId::NONE, const css::uno::Reference< css::datatransfer::XTransferable > *pxTransferable=nullptr, SotExchangeActionFlags *pActionFlags=nullptr)
tools::Rectangle const & GetOutputArea() const
long AdjustLeft(long nHorzMoveDelta)
AutoTimer m_aTimer
Definition: edtwin.hxx:76
bool IsDesignMode() const
SdrObject * m_pUserMarkerObj
Definition: edtwin.hxx:94
bool IsInsideSelectedObj(const Point &rPt)
returns enum values
Definition: feshview.cxx:1285
ObjCntType
Definition: fesh.hxx:120
SotExchangeDest
Of course Writer needs its own rectangles.
Definition: swrect.hxx:34
void EndAllAction()
Definition: edws.cxx:96
Point m_aMovePos
Definition: edtwin.hxx:83
SfxShell * GetCurShell()
Definition: view.hxx:561
static long m_nDDStartPosY
Definition: edtwin.hxx:65
std::unique_ptr< SdrDropMarkerOverlay > m_pUserMarker
Definition: edtwin.hxx:93
SwWrtShell & GetWrtShell() const
Definition: view.hxx:400
long AdjustBottom(long nVertMoveDelta)
void StartExecuteDrag()
Definition: edtdd.cxx:137
#define DND_ACTION_MOVE
SotExchangeDest GetDropDestination(const Point &rPixPnt, SdrObject **ppObj=nullptr)
Definition: edtdd.cxx:247
#define EXCHG_IN_ACTION_DEFAULT
Used by the UI to modify the document model.
Definition: wrtsh.hxx:86
static long m_nDDStartPosX
Definition: edtwin.hxx:64
std::unique_ptr< SwAnchorMarker > m_pAnchorMarker
Definition: edtwin.hxx:91
sal_uInt8 m_nDropAction
Definition: edtwin.hxx:103
long Right() const
const SwView & GetView() const
Definition: wrtsh.hxx:424
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
Definition: edtdd.cxx:190
virtual void SelectShell()
Definition: view.cxx:260
#define EXCHG_INOUT_ACTION_NONE
const DataFlavorExVector & GetDataFlavorExVector() const
#define DND_ACTION_NONE
SwDoc * GetDoc() const
Definition: viewsh.hxx:284
long Top() const
std::unique_ptr< SwApplyTemplate > m_pApplyTempl
Definition: edtwin.hxx:90
void MakeVisible(const SwRect &)
Definition: viewsh.cxx:577
IMPL_LINK_NOARG(SwEditWin, DDHandler, Timer *, void)
Definition: edtdd.cxx:479
SotClipboardFormatId m_nDropFormat
Definition: edtwin.hxx:102
#define SW_MOD()
Definition: swmodule.hxx:255
bool m_bOldIdle
Definition: edtwin.hxx:109
long AdjustY(long nVertMove)
bool IsOverReadOnlyPos(const Point &rPt) const
Definition: crsrsh.cxx:2604
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
Definition: edtwin.hxx:59
SotExchangeActionFlags
bool IsSelContainsControl() const
check whether selected frame contains a control; companion method to GetSelFrameType, used for preventing drag&drop of controls into header
Definition: feshview.cxx:642
SfxBindings & GetBindings()
void CleanupDropUserMarker()
Definition: edtdd.cxx:174
bool IsIdle() const
Definition: viewopt.hxx:201
static bool PasteData(TransferableDataHelper &rData, SwWrtShell &rSh, sal_uInt8 nAction, SotExchangeActionFlags nActionFlags, SotClipboardFormatId nFormat, SotExchangeDest nDestination, bool bIsPasteFormat, bool bIsDefault, const Point *pDDPos=nullptr, sal_Int8 nDropAction=0, bool bPasteSelection=false, RndStdIds nAnchorType=RndStdIds::FLY_AT_PARA, SwPasteContext *pContext=nullptr)
Definition: swdtflvr.cxx:1360
SotExchangeDest m_nDropDestination
Definition: edtwin.hxx:104
const SwFormatURL & GetURL(bool=true) const
Definition: fmturl.hxx:78
long Bottom() const
virtual void Start() override
const OutlinerView * GetTextEditOutlinerView() const
bool IsInside(const Point &rPOINT) const
void LockPaint()
Definition: viewsh.hxx:604
Size GetOutputSizePixel() const
GUIDCNamePair const aData
void DragFinished()
Definition: edtdd.cxx:149
DocumentType const eType
void SetTimeout(sal_uInt64 nTimeoutMs)
bool IsInSelect() const
Definition: wrtsh.hxx:134
long X() const
FlyProtectFlags IsSelObjProtected(FlyProtectFlags eType) const
Which Protection is set at selected object?
Definition: feshview.cxx:2613
SwDocShell * GetDocShell()
Definition: view.cxx:1115
bool IsReadOnly() const
void DropCleanup()
Definition: edtdd.cxx:156
Point PixelToLogic(const Point &rDevicePt) const
const ImageMap * GetMap() const
Definition: fmturl.hxx:68
void ReleaseMouse()
bool DocPtInsideInputField(const Point &rDocPt) const
Definition: crstrvl.cxx:963
const SwFrameFormat * GetFormatFromObj(const Point &rPt, SwRect **pRectToFill=nullptr) const
Definition: fefly1.cxx:1585
long AdjustRight(long nHorzMoveDelta)
void Stop()
bool TestCurrPam(const Point &rPt, bool bTstHit=false)
Search in the selected area for a Selection that covers the given point.
Definition: crsrsh.cxx:979
tools::Rectangle & Union(const tools::Rectangle &rRect)
unsigned char sal_uInt8
bool m_bMBPressed
Definition: edtwin.hxx:109
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:426
bool m_bIsInDrag
Definition: edtwin.hxx:109
void SetIdle(bool b) const
Definition: viewopt.hxx:208
virtual bool Command(const CommandEvent &rCEvt, vcl::Window *pWin) override
bool g_bDDTimerStarted
Definition: edtwin.cxx:184
vcl::Window * GetWindow() const
long AdjustTop(long nVertMoveDelta)
void UnSelectFrame()
Definition: select.cxx:327
void SetInvokeHandler(const Link< Timer *, void > &rLink)
bool SelectObj(const Point &rSelPt, sal_uInt8 nFlag=0, SdrObject *pObj=nullptr)
If an object as been given, exactly this object is selected (instead of searching over position)...
Definition: feshview.cxx:185
static sal_uInt64 GetSystemTicks()
long Left() const
SwView & m_rView
Definition: edtwin.hxx:98
void StopDDTimer(SwWrtShell *, const Point &)
Definition: edtdd.cxx:58
void UnSetVisibleCursor()
Definition: crsrsh.hxx:910
#define EXCHG_IN_ACTION_LINK
bool m_bOldIdleSet
Definition: edtwin.hxx:109
void InvalidateAll(bool bWithMsg)
bool g_bNoInterrupt
Definition: swmodule.cxx:138
long CallSetCursor(const Point *pPt, bool bProp)
Definition: wrtsh.hxx:113
bool IsDrawAction()
Definition: edtwin.hxx:204
virtual const tools::Rectangle & GetLogicRect() const
SwTransferable * m_pDragDrop
Definition: swmodule.hxx:128
void SelectShellForDrop()
Definition: edtdd.cxx:184
bool GetContentAtPos(const Point &rPt, SwContentAtPos &rContentAtPos, bool bSetCursor=false, SwRect *pFieldRect=nullptr)
Definition: crstrvl.cxx:1268
static ObjCntType GetObjCntType(const SdrObject &rObj)
Definition: fefly1.cxx:1632
bool g_bFrameDrag
Definition: edtwin.cxx:181
sal_Int8 mnAction
void StartAllAction()
For all views of this document.
Definition: edws.cxx:85
bool IsDrawCreate() const
Definition: feshview.cxx:2148
FrameTypeFlags GetFrameType(const Point *pPt, bool bStopAtFly) const
For return values see above FrameType.
Definition: fews.cxx:238
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
Definition: edtdd.cxx:67
long Y() const
void UnlockPaint(bool bVirDev=false)
Definition: viewsh.hxx:609
bool IsSelFrameMode() const
Definition: wrtsh.hxx:166
FrameTypeFlags GetSelFrameType() const
Definition: feshview.cxx:609