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 <svx/svdview.hxx>
21#include <editeng/outliner.hxx>
22#include <svx/svdobj.hxx>
23#include <sot/exchange.hxx>
24#include <sot/formats.hxx>
25#include <sfx2/bindings.hxx>
26#include <vcl/commandevent.hxx>
27#include <osl/diagnose.h>
28
29#include <sfx2/viewfrm.hxx>
30#include <fmturl.hxx>
31#include <frmfmt.hxx>
32#include <wrtsh.hxx>
33#include <edtdd.hxx>
34#include <edtwin.hxx>
35#include <view.hxx>
36#include <viewopt.hxx>
37#include <swdtflvr.hxx>
38#include <swmodule.hxx>
39#include <docsh.hxx>
40#include <wdocsh.hxx>
41
42using namespace ::com::sun::star;
43
44// no include "dbgoutsw.hxx" here!!!!!!
45
46bool g_bExecuteDrag = false;
47
49{
50 m_aTimer.SetInvokeHandler(LINK(this, SwEditWin, DDHandler));
53 g_bDDTimerStarted = true;
54}
55
56void SwEditWin::StopDDTimer(SwWrtShell *pSh, const Point &rPt)
57{
58 m_aTimer.Stop();
59 g_bDDTimerStarted = false;
60 if(!pSh->IsSelFrameMode())
61 pSh->CallSetCursor(&rPt, false);
62 m_aTimer.SetInvokeHandler(LINK(this,SwEditWin, TimerHandler));
63}
64
65void SwEditWin::StartDrag( sal_Int8 /*nAction*/, const Point& rPosPixel )
66{
68 return;
69
71 if( rSh.GetDrawView() )
72 {
73 CommandEvent aDragEvent( rPosPixel, CommandEventId::StartDrag, true );
74 if( rSh.GetDrawView()->Command( aDragEvent, this ) )
75 {
77 return; // Event evaluated by SdrView
78 }
79 }
80
81 if ( m_pApplyTempl || rSh.IsDrawCreate() || IsDrawAction())
82 return;
83
84 bool bStart = false, bDelSelect = false;
85 SdrObject *pObj = nullptr;
86 Point aDocPos( PixelToLogic( rPosPixel ) );
87 const bool bInSelect = rSh.IsInSelect();
88 if (!bInSelect && rSh.TestCurrPam(aDocPos, true))
89 //We are not selecting and aren't at a selection
90 bStart = true;
91 else if ( !g_bFrameDrag && rSh.IsSelFrameMode() &&
92 rSh.IsInsideSelectedObj( aDocPos ) &&
93 nullptr == m_pAnchorMarker)
94 {
95 //We are not dragging internally and are not at an
96 //object (frame, draw object)
97
98 // #i106131# *and* AnchorDrag is *not* active: When active,
99 // entering global drag mode will destroy the AnchorHdl but
100 // keep the now invalid ptr in place, next access will crash.
101 // It is indeed wrong to enter drag mode when AnchorDrag is
102 // already active
103 bStart = true;
104 }
105 else if( !g_bFrameDrag && m_rView.GetDocShell()->IsReadOnly() &&
106 OBJCNT_NONE != rSh.GetObjCntType( aDocPos, pObj ))
107 {
108 rSh.LockPaint();
109 if( rSh.SelectObj( aDocPos, 0, pObj ))
110 bStart = bDelSelect = true;
111 else
112 rSh.UnlockPaint();
113 }
114 else if (!bInSelect)// tdf#116384 only drag hyperlink if user's not currently setting the selection
115 {
116 SwContentAtPos aSwContentAtPos( IsAttrAtPos::InetAttr );
117 bStart = rSh.GetContentAtPos( aDocPos,
118 aSwContentAtPos );
119 }
120
121 if ( !bStart || m_bIsInDrag )
122 return;
123
124 m_bMBPressed = false;
125 ReleaseMouse();
126 g_bFrameDrag = false;
127 g_bExecuteDrag = true;
128 SwEditWin::s_nDDStartPosY = aDocPos.Y();
129 SwEditWin::s_nDDStartPosX = aDocPos.X();
130 m_aMovePos = aDocPos;
132 if( bDelSelect )
133 {
134 rSh.UnSelectFrame();
135 rSh.UnlockPaint();
136 }
137}
138
140{
142 return;
143
144 m_bIsInDrag = true;
145
147
148 pTransfer->StartDrag( this, m_aMovePos );
149}
150
152{
153 DropCleanup();
154 m_aTimer.SetInvokeHandler( LINK(this,SwEditWin, TimerHandler) );
155 m_bIsInDrag = false;
156}
157
159{
161
162 // reset statuses
163 g_bNoInterrupt = false;
164 if ( m_bOldIdleSet )
165 {
167 m_bOldIdleSet = false;
168 }
169 if ( m_pUserMarker )
171 else
172 rSh.UnSetVisibleCursor();
173
174}
175
177{
178 if ( m_pUserMarker )
179 {
180 m_pUserMarker.reset();
181 m_pUserMarkerObj = nullptr;
182 }
183}
184
185//exhibition hack (MA,MBA)
187{
188 if ( !GetCurShell() )
189 SelectShell();
190}
191
193{
195 DropCleanup();
197
198 //A Drop to an open OutlinerView doesn't concern us (also see QueryDrop)
200 const Point aDocPt( PixelToLogic( rEvt.maPosPixel ));
201 SdrObject *pObj = nullptr;
202 OutlinerView* pOLV;
203 rSh.GetObjCntType( aDocPt, pObj );
204
205 if( pObj && nullptr != ( pOLV = rSh.GetDrawView()->GetTextEditOutlinerView() ))
206 {
207 tools::Rectangle aRect( pOLV->GetOutputArea() );
208 aRect.Union( pObj->GetLogicRect() );
209 const Point aPos = pOLV->GetWindow()->PixelToLogic(rEvt.maPosPixel);
210 if ( aRect.Contains(aPos) )
211 {
212 rSh.StartAllAction();
213 rSh.EndAllAction();
214 return nRet;
215 }
216 }
217
218 // There's a special treatment for file lists with a single
219 // element, that depends on the actual content of the
220 // Transferable to be accessible. Since the transferable
221 // may only be accessed after the drop has been accepted
222 // (according to KA due to Java D&D), we'll have to
223 // reevaluate the drop action once more _with_ the
224 // Transferable.
225 sal_uInt8 nEventAction;
227 : rEvt.mnAction;
228 SotExchangeActionFlags nActionFlags;
232 rEvt.mnAction,
233 nUserOpt, m_nDropFormat, nEventAction, SotClipboardFormatId::NONE,
234 &rEvt.maDropEvent.Transferable,
235 &nActionFlags );
236
237 TransferableDataHelper aData( rEvt.maDropEvent.Transferable );
238 nRet = rEvt.mnAction;
240 m_nDropDestination, false, rEvt.mbDefault, &aDocPt, nRet))
241 nRet = DND_ACTION_NONE;
242 else if ( SW_MOD()->m_pDragDrop )
243 //Don't clean up anymore at internal D&D!
244 SW_MOD()->m_pDragDrop->SetCleanUp( false );
245
246 return nRet;
247}
248
250{
252 const Point aDocPt( PixelToLogic( rPixPnt ) );
253 if( rSh.TestCurrPam( aDocPt )
254 || rSh.IsOverReadOnlyPos( aDocPt )
255 || rSh.DocPtInsideInputField( aDocPt ) )
256 return SotExchangeDest::NONE;
257
258 SdrObject *pObj = nullptr;
259 const ObjCntType eType = rSh.GetObjCntType( aDocPt, pObj );
260
261 //Drop to OutlinerView (TextEdit in Drawing) should decide it on its own!
262 if( pObj )
263 {
265 if ( pOLV )
266 {
267 tools::Rectangle aRect( pOLV->GetOutputArea() );
268 aRect.Union( pObj->GetLogicRect() );
269 const Point aPos = pOLV->GetWindow()->PixelToLogic( rPixPnt );
270 if( aRect.Contains( aPos ) )
271 return SotExchangeDest::NONE;
272 }
273 }
274
275 //What do we want to drop on now?
276 SotExchangeDest nDropDestination = SotExchangeDest::NONE;
277
278 //Did anything else arrive from the DrawingEngine?
279 if( OBJCNT_NONE != eType )
280 {
281 switch ( eType )
282 {
283 case OBJCNT_GRF:
284 {
285 bool bLink,
286 bIMap = nullptr != rSh.GetFormatFromObj( aDocPt )->GetURL().GetMap();
287 OUString aDummy;
288 rSh.GetGrfAtPos( aDocPt, aDummy, bLink );
289 if ( bLink && bIMap )
290 nDropDestination = SotExchangeDest::DOC_LNKD_GRAPH_W_IMAP;
291 else if ( bLink )
292 nDropDestination = SotExchangeDest::DOC_LNKD_GRAPHOBJ;
293 else if ( bIMap )
294 nDropDestination = SotExchangeDest::DOC_GRAPH_W_IMAP;
295 else
296 nDropDestination = SotExchangeDest::DOC_GRAPHOBJ;
297 }
298 break;
299 case OBJCNT_FLY:
300 if( dynamic_cast< const SwWebDocShell *>( rSh.GetView().GetDocShell() ) != nullptr )
301 nDropDestination = SotExchangeDest::DOC_TEXTFRAME_WEB;
302 else
303 nDropDestination = SotExchangeDest::DOC_TEXTFRAME;
304 break;
305 case OBJCNT_OLE: nDropDestination = SotExchangeDest::DOC_OLEOBJ; break;
306 case OBJCNT_CONTROL: /* no Action avail */
307 case OBJCNT_SIMPLE: nDropDestination = SotExchangeDest::DOC_DRAWOBJ; break;
308 case OBJCNT_URLBUTTON: nDropDestination = SotExchangeDest::DOC_URLBUTTON; break;
309 case OBJCNT_GROUPOBJ: nDropDestination = SotExchangeDest::DOC_GROUPOBJ; break;
310
311 default: OSL_ENSURE( false, "new ObjectType?" );
312 }
313 }
314 if ( nDropDestination == SotExchangeDest::NONE )
315 {
316 if( dynamic_cast< const SwWebDocShell *>( rSh.GetView().GetDocShell() ) != nullptr )
317 nDropDestination = SotExchangeDest::SWDOC_FREE_AREA_WEB;
318 else
319 nDropDestination = SotExchangeDest::SWDOC_FREE_AREA;
320 }
321 if( ppObj )
322 *ppObj = pObj;
323 return nDropDestination;
324}
325
327{
328 if( rEvt.mbLeaving )
329 {
330 DropCleanup();
331 return rEvt.mnAction;
332 }
333
335 return DND_ACTION_NONE;
336
338
339 Point aPixPt( rEvt.maPosPixel );
340
341 // If the cursor is near the inner boundary
342 // we attempt to scroll towards the desired direction.
344 const int nMargin = 10;
345 aWin.AdjustLeft(nMargin );
346 aWin.AdjustTop(nMargin );
347 aWin.AdjustRight( -nMargin );
348 aWin.AdjustBottom( -nMargin );
349 if(!aWin.Contains(aPixPt)) {
350 static sal_uInt64 last_tick = 0;
351 sal_uInt64 current_tick = tools::Time::GetSystemTicks();
352 if((current_tick-last_tick) > 500) {
353 last_tick = current_tick;
354 if(!m_bOldIdleSet) {
356 rSh.GetViewOptions()->SetIdle(false);
357 m_bOldIdleSet = true;
358 }
360 if(aPixPt.X() > aWin.Right()) aPixPt.AdjustX(nMargin );
361 if(aPixPt.X() < aWin.Left()) aPixPt.AdjustX( -nMargin );
362 if(aPixPt.Y() > aWin.Bottom()) aPixPt.AdjustY(nMargin );
363 if(aPixPt.Y() < aWin.Top()) aPixPt.AdjustY( -nMargin );
364 Point aDocPt(PixelToLogic(aPixPt));
365 SwRect rect(aDocPt,Size(1,1));
366 rSh.MakeVisible(rect);
367 }
368 }
369
370 if(m_bOldIdleSet) {
372 m_bOldIdleSet = false;
373 }
374
375 SdrObject *pObj = nullptr;
376 m_nDropDestination = GetDropDestination( aPixPt, &pObj );
377 if( m_nDropDestination == SotExchangeDest::NONE )
378 return DND_ACTION_NONE;
379
380 sal_uInt8 nEventAction;
382 : rEvt.mnAction;
383
387 rEvt.mnAction,
388 nUserOpt, m_nDropFormat, nEventAction );
389
391 {
392 const Point aDocPt( PixelToLogic( aPixPt ) );
393
394 //With the default action we still want to have a say.
395 SwModule *pMod = SW_MOD();
396 if( pMod->m_pDragDrop )
397 {
398 bool bCleanup = false;
399 //Drawing objects in Headers/Footers are not allowed
400
401 SwWrtShell *pSrcSh = pMod->m_pDragDrop->GetShell();
402 if( (pSrcSh->GetSelFrameType() == FrameTypeFlags::DRAWOBJ) &&
403 pSrcSh->IsSelContainsControl() &&
405 {
406 bCleanup = true;
407 }
408 // don't more position protected objects!
409 else if( DND_ACTION_MOVE == rEvt.mnAction &&
411 {
412 bCleanup = true;
413 }
414 else if( rEvt.mbDefault )
415 {
416 // internal Drag&Drop: within same Doc a Move
417 // otherwise a Copy - Task 54974
418 nEventAction = pSrcSh->GetDoc() == rSh.GetDoc()
421 }
422 if ( bCleanup )
423 {
425 rSh.UnSetVisibleCursor();
426 return DND_ACTION_NONE;
427 }
428 }
429 else
430 {
431 //D&D from outside of SW should be a Copy per default.
432 if( EXCHG_IN_ACTION_DEFAULT == nEventAction &&
433 DND_ACTION_MOVE == rEvt.mnAction )
434 nEventAction = DND_ACTION_COPY;
435
436 if( (SotClipboardFormatId::SBA_FIELDDATAEXCHANGE == m_nDropFormat &&
438 SotClipboardFormatId::SBA_CTRLDATAEXCHANGE == m_nDropFormat )
439 {
440 SdrMarkView* pMView = rSh.GetDrawView();
441 if( pMView && !pMView->IsDesignMode() )
442 return DND_ACTION_NONE;
443 }
444 }
445
446 if ( EXCHG_IN_ACTION_DEFAULT != nEventAction )
447 nUserOpt = static_cast<sal_Int8>(nEventAction);
448
449 // show DropCursor or UserMarker ?
450 if( SotExchangeDest::SWDOC_FREE_AREA_WEB == m_nDropDestination ||
451 SotExchangeDest::SWDOC_FREE_AREA == m_nDropDestination )
452 {
455 if(rSh.GetContentAtPos(aDocPt, aCont))
456 rSh.SwCursorShell::SetVisibleCursor( aDocPt );
457 }
458 else
459 {
460 rSh.UnSetVisibleCursor();
461
462 if ( m_pUserMarkerObj != pObj )
463 {
465 m_pUserMarkerObj = pObj;
466
468 {
470 }
471 }
472 }
473 return nUserOpt;
474 }
475
477 rSh.UnSetVisibleCursor();
478 return DND_ACTION_NONE;
479}
480
481IMPL_LINK_NOARG(SwEditWin, DDHandler, Timer *, void)
482{
483 g_bDDTimerStarted = false;
484 m_aTimer.Stop();
485 m_aTimer.SetTimeout(240);
486 m_bMBPressed = false;
487 ReleaseMouse();
488 g_bFrameDrag = false;
489
490 if ( m_rView.GetViewFrame() )
491 {
492 g_bExecuteDrag = true;
493 StartExecuteDrag();
494 }
495}
496
497/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const DataFlavorExVector & GetDataFlavorExVector() const
vcl::Window * GetWindow() const
tools::Rectangle const & GetOutputArea() const
bool IsDesignMode() const
const OutlinerView * GetTextEditOutlinerView() const
virtual const tools::Rectangle & GetLogicRect() const
virtual bool Command(const CommandEvent &rCEvt, vcl::Window *pWin) override
void InvalidateAll(bool bWithMsg)
bool isContentExtractionLocked() const
bool IsReadOnly() const
SfxBindings & GetBindings()
SfxViewFrame * GetViewFrame() const
virtual SfxObjectShell * GetObjectShell() override
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)
bool IsOverReadOnlyPos(const Point &rPt) const
Definition: crsrsh.cxx:2739
bool TestCurrPam(const Point &rPt, bool bTstHit=false)
Search in the selected area for a Selection that covers the given point.
Definition: crsrsh.cxx:991
bool DocPtInsideInputField(const Point &rDocPt) const
Definition: crstrvl.cxx:999
bool GetContentAtPos(const Point &rPt, SwContentAtPos &rContentAtPos, bool bSetCursor=false, SwRect *pFieldRect=nullptr)
Definition: crstrvl.cxx:1302
void UnSetVisibleCursor()
Definition: crsrsh.hxx:934
void StartAllAction()
For all views of this document.
Definition: edws.cxx:86
void EndAllAction()
Definition: edws.cxx:97
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
Definition: edtwin.hxx:61
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
Definition: edtdd.cxx:65
static tools::Long s_nDDStartPosY
Definition: edtwin.hxx:65
AutoTimer m_aTimer
Definition: edtwin.hxx:76
std::unique_ptr< SdrDropMarkerOverlay > m_pUserMarker
Definition: edtwin.hxx:93
SwView & m_rView
Definition: edtwin.hxx:98
static tools::Long s_nDDStartPosX
Definition: edtwin.hxx:64
SotClipboardFormatId m_nDropFormat
Definition: edtwin.hxx:102
void StartExecuteDrag()
Definition: edtdd.cxx:139
bool IsDrawAction() const
Definition: edtwin.hxx:209
bool m_bMBPressed
Definition: edtwin.hxx:109
SotExchangeDest GetDropDestination(const Point &rPixPnt, SdrObject **ppObj=nullptr)
Definition: edtdd.cxx:249
bool m_bIsInDrag
Definition: edtwin.hxx:113
SotExchangeDest m_nDropDestination
Definition: edtwin.hxx:104
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
Definition: edtdd.cxx:192
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
Definition: edtdd.cxx:326
void CleanupDropUserMarker()
Definition: edtdd.cxx:176
const SwView & GetView() const
Definition: edtwin.hxx:245
bool m_bOldIdleSet
Definition: edtwin.hxx:115
void DragFinished()
Definition: edtdd.cxx:151
void DropCleanup()
Definition: edtdd.cxx:158
bool m_bOldIdle
Definition: edtwin.hxx:114
SdrObject * m_pUserMarkerObj
Definition: edtwin.hxx:94
void StartDDTimer()
Definition: edtdd.cxx:48
std::unique_ptr< SwAnchorMarker > m_pAnchorMarker
Definition: edtwin.hxx:91
void StopDDTimer(SwWrtShell *, const Point &)
Definition: edtdd.cxx:56
Point m_aMovePos
Definition: edtwin.hxx:83
sal_uInt8 m_nDropAction
Definition: edtwin.hxx:103
std::unique_ptr< SwApplyTemplate > m_pApplyTempl
Definition: edtwin.hxx:90
const Graphic * GetGrfAtPos(const Point &rDocPos, OUString &rName, bool &rbLink) const
Deliver graphic in rName besides graphic name.
Definition: fefly1.cxx:1582
FrameTypeFlags GetFrameType(const Point *pPt, bool bStopAtFly) const
For return values see above FrameType.
Definition: fews.cxx:237
FlyProtectFlags IsSelObjProtected(FlyProtectFlags eType) const
Which Protection is set at selected object?
Definition: feshview.cxx:2701
FrameTypeFlags GetSelFrameType() const
Definition: feshview.cxx:606
const SwFrameFormat * GetFormatFromObj(const Point &rPt, SwRect **pRectToFill=nullptr) const
Definition: fefly1.cxx:1620
bool IsSelContainsControl() const
check whether selected frame contains a control; companion method to GetSelFrameType,...
Definition: feshview.cxx:639
bool IsDrawCreate() const
Definition: feshview.cxx:2228
static ObjCntType GetObjCntType(const SdrObject &rObj)
Definition: fefly1.cxx:1667
bool SelectObj(const Point &rSelPt, sal_uInt8 nFlag=0, SdrObject *pObj=nullptr)
If an object has been given, exactly this object is selected (instead of searching over position).
Definition: feshview.cxx:177
bool IsInsideSelectedObj(const Point &rPt)
returns enum values
Definition: feshview.cxx:1363
const ImageMap * GetMap() const
Definition: fmturl.hxx:68
const SwFormatURL & GetURL(bool=true) const
Definition: fmturl.hxx:78
SwTransferable * m_pDragDrop
Definition: swmodule.hxx:128
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
SwWrtShell * GetShell()
Definition: swdtflvr.hxx:224
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, bool bIgnoreComments=false, SwPasteContext *pContext=nullptr, PasteTableType nPaste=PasteTableType::PASTE_DEFAULT)
Definition: swdtflvr.cxx:1687
void SetIdle(bool b) const
Definition: viewopt.hxx:283
bool IsIdle() const
Definition: viewopt.hxx:276
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:433
void UnlockPaint(bool bVirDev=false)
Definition: viewsh.hxx:619
void LockPaint()
Definition: viewsh.hxx:614
SwDoc * GetDoc() const
Definition: viewsh.hxx:290
void MakeVisible(const SwRect &)
Definition: viewsh.cxx:637
SdrView * GetDrawView()
Definition: vnew.cxx:373
SfxShell * GetCurShell()
Definition: view.hxx:578
SwWrtShell & GetWrtShell() const
Definition: view.hxx:416
virtual void SelectShell()
Definition: view.cxx:252
void SelectShellForDrop()
Definition: edtdd.cxx:186
SwDocShell * GetDocShell()
Definition: view.cxx:1160
Used by the UI to modify the document model.
Definition: wrtsh.hxx:97
bool IsSelFrameMode() const
Definition: wrtsh.hxx:177
tools::Long CallSetCursor(const Point *pPt, bool bProp)
Definition: wrtsh.hxx:123
bool IsInSelect() const
Definition: wrtsh.hxx:144
void UnSelectFrame()
Definition: select.cxx:323
const SwView & GetView() const
Definition: wrtsh.hxx:438
void Stop()
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
bool Contains(const Point &rPOINT) const
constexpr tools::Long Top() const
constexpr tools::Long Right() const
tools::Long AdjustTop(tools::Long nVertMoveDelta)
tools::Long AdjustRight(tools::Long nHorzMoveDelta)
tools::Rectangle & Union(const tools::Rectangle &rRect)
tools::Long AdjustBottom(tools::Long nVertMoveDelta)
tools::Long AdjustLeft(tools::Long nHorzMoveDelta)
constexpr tools::Long Left() const
constexpr tools::Long Bottom() const
static sal_uInt64 GetSystemTicks()
void ReleaseMouse()
Point PixelToLogic(const Point &rDevicePt) const
Size GetOutputSizePixel() const
bool g_bExecuteDrag
Definition: edtdd.cxx:46
IMPL_LINK_NOARG(SwEditWin, DDHandler, Timer *, void)
Definition: edtdd.cxx:481
bool g_bDDTimerStarted
Definition: edtwin.cxx:176
bool g_bFrameDrag
Definition: edtwin.cxx:173
#define EXCHG_IN_ACTION_LINK
#define EXCHG_INOUT_ACTION_NONE
SotExchangeActionFlags
SotExchangeDest
#define EXCHG_IN_ACTION_DEFAULT
ObjCntType
Definition: fesh.hxx:122
@ OBJCNT_FLY
Definition: fesh.hxx:124
@ OBJCNT_NONE
Definition: fesh.hxx:123
@ OBJCNT_CONTROL
Definition: fesh.hxx:128
@ OBJCNT_URLBUTTON
Definition: fesh.hxx:129
@ OBJCNT_GROUPOBJ
Definition: fesh.hxx:131
@ OBJCNT_GRF
Definition: fesh.hxx:125
@ OBJCNT_OLE
Definition: fesh.hxx:126
@ OBJCNT_SIMPLE
Definition: fesh.hxx:127
DocumentType eType
constexpr OUStringLiteral aData
Definition: ww8scan.hxx:48
sal_Int8 mnAction
const css::datatransfer::dnd::DropTargetDropEvent maDropEvent
bool g_bNoInterrupt
Definition: swmodule.cxx:115
#define SW_MOD()
Definition: swmodule.hxx:256
#define DND_ACTION_MOVE
#define DND_ACTION_COPY
#define DND_ACTION_NONE
unsigned char sal_uInt8
signed char sal_Int8