778 lines
23 KiB
C++
778 lines
23 KiB
C++
/*************************************************************************
|
|
*
|
|
* $RCSfile: edtdd.cxx,v $
|
|
*
|
|
* $Revision: 1.4 $
|
|
*
|
|
* last change: $Author: jp $ $Date: 2001-05-07 14:49:00 $
|
|
*
|
|
* The Contents of this file are made available subject to the terms of
|
|
* either of the following licenses
|
|
*
|
|
* - GNU Lesser General Public License Version 2.1
|
|
* - Sun Industry Standards Source License Version 1.1
|
|
*
|
|
* Sun Microsystems Inc., October, 2000
|
|
*
|
|
* GNU Lesser General Public License Version 2.1
|
|
* =============================================
|
|
* Copyright 2000 by Sun Microsystems, Inc.
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*
|
|
*
|
|
* Sun Industry Standards Source License Version 1.1
|
|
* =================================================
|
|
* The contents of this file are subject to the Sun Industry Standards
|
|
* Source License Version 1.1 (the "License"); You may not use this file
|
|
* except in compliance with the License. You may obtain a copy of the
|
|
* License at http://www.openoffice.org/license.html.
|
|
*
|
|
* Software provided under this License is provided on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
|
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
|
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
|
* See the License for the specific provisions governing your rights and
|
|
* obligations concerning the Software.
|
|
*
|
|
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
|
|
*
|
|
* Copyright: 2000 by Sun Microsystems, Inc.
|
|
*
|
|
* All Rights Reserved.
|
|
*
|
|
* Contributor(s): _______________________________________
|
|
*
|
|
*
|
|
************************************************************************/
|
|
#ifdef PRECOMPILED
|
|
#include "ui_pch.hxx"
|
|
#endif
|
|
|
|
#pragma hdrstop
|
|
|
|
#ifndef _HINTIDS_HXX
|
|
#include <hintids.hxx>
|
|
#endif
|
|
|
|
|
|
#ifndef _SVDVIEW_HXX //autogen
|
|
#include <svx/svdview.hxx>
|
|
#endif
|
|
#ifndef _OUTLINER_HXX //autogen
|
|
#include <svx/outliner.hxx>
|
|
#endif
|
|
#ifndef _SVDVMARK_HXX //autogen
|
|
#include <svx/svdvmark.hxx>
|
|
#endif
|
|
#ifndef _SVDOBJ_HXX //autogen
|
|
#include <svx/svdobj.hxx>
|
|
#endif
|
|
#ifndef _SOT_EXCHANGE_HXX //autogen
|
|
#include <sot/exchange.hxx>
|
|
#endif
|
|
#ifndef _OFF_APP_HXX //autogen
|
|
#include <offmgr/app.hxx>
|
|
#endif
|
|
#ifndef _SOT_FORMATS_HXX //autogen
|
|
#include <sot/formats.hxx>
|
|
#endif
|
|
|
|
|
|
#ifndef _FMTURL_HXX //autogen
|
|
#include <fmturl.hxx>
|
|
#endif
|
|
#ifndef _FRMFMT_HXX
|
|
#include <frmfmt.hxx>
|
|
#endif
|
|
#ifndef _WRTSH_HXX
|
|
#include <wrtsh.hxx>
|
|
#endif
|
|
#ifndef _EDTWIN_HXX
|
|
#include <edtwin.hxx>
|
|
#endif
|
|
#ifndef _VIEW_HXX
|
|
#include <view.hxx>
|
|
#endif
|
|
#ifndef _VIEWOPT_HXX
|
|
#include <viewopt.hxx>
|
|
#endif
|
|
#ifndef _SWDTFLVR_HXX
|
|
#include <swdtflvr.hxx>
|
|
#endif
|
|
#ifndef _SWMODULE_HXX
|
|
#include <swmodule.hxx>
|
|
#endif
|
|
#ifndef _DOCSH_HXX
|
|
#include <docsh.hxx>
|
|
#endif
|
|
#ifndef _SWWDOCSH_HXX //autogen
|
|
#include <wdocsh.hxx>
|
|
#endif
|
|
#ifndef _SWUNDO_HXX
|
|
#include <swundo.hxx>
|
|
#endif
|
|
|
|
|
|
extern BOOL bNoInterrupt;
|
|
extern BOOL bFrmDrag;
|
|
extern BOOL bDDTimerStarted;
|
|
|
|
BOOL bExecuteDrag = FALSE;
|
|
|
|
void SwEditWin::StartDDTimer()
|
|
{
|
|
aTimer.SetTimeoutHdl(LINK(this, SwEditWin, DDHandler));
|
|
aTimer.SetTimeout(480);
|
|
aTimer.Start();
|
|
bDDTimerStarted = TRUE;
|
|
}
|
|
|
|
|
|
void SwEditWin::StopDDTimer(SwWrtShell *pSh, const Point &rPt)
|
|
{
|
|
aTimer.Stop();
|
|
bDDTimerStarted = FALSE;
|
|
if(!pSh->IsSelFrmMode())
|
|
(pSh->*pSh->fnSetCrsr)(&rPt,FALSE);
|
|
aTimer.SetTimeoutHdl(LINK(this,SwEditWin, TimerHandler));
|
|
}
|
|
|
|
void SwEditWin::StartDrag( sal_Int8 nAction, const Point& rPosPixel )
|
|
{
|
|
SwWrtShell &rSh = rView.GetWrtShell();
|
|
//!! if( rSh.GetDrawView() &&
|
|
//!! rSh.GetDrawView()->StartDrag( nAction, rPosPixel, this) )
|
|
//!! {
|
|
//!! rView.GetViewFrame()->GetBindings().InvalidateAll(FALSE);
|
|
//!! return; // Event von der SdrView ausgewertet
|
|
//!! }
|
|
|
|
if ( !pApplyTempl && !rSh.IsDrawCreate() && !IsDrawAction())
|
|
{
|
|
BOOL bStart = FALSE, bDelSelect = FALSE;
|
|
SdrObject *pObj = NULL;
|
|
Point aDocPos( PixelToLogic( rPosPixel ) );
|
|
if ( !rSh.IsInSelect() && rSh.ChgCurrPam( aDocPos, TRUE, TRUE))
|
|
//Wir sind nicht beim Selektieren und stehen auf einer
|
|
//Selektion
|
|
bStart = TRUE;
|
|
else if ( !bFrmDrag && rSh.IsSelFrmMode() &&
|
|
rSh.IsInsideSelectedObj( aDocPos ) )
|
|
//Wir sind nicht am internen Draggen und stehen auf
|
|
//einem Objekt (Rahmen, Zeichenobjekt)
|
|
bStart = TRUE;
|
|
else if( !bFrmDrag && rView.GetDocShell()->IsReadOnly() &&
|
|
OBJCNT_NONE != rSh.GetObjCntType( aDocPos, pObj ))
|
|
{
|
|
rSh.LockPaint();
|
|
if( rSh.SelectObj( aDocPos, FALSE, FALSE, pObj ))
|
|
bStart = bDelSelect = TRUE;
|
|
else
|
|
rSh.UnlockPaint();
|
|
}
|
|
else
|
|
{
|
|
SwContentAtPos aSwContentAtPos( SwContentAtPos::SW_INETATTR );
|
|
bStart = rSh.GetContentAtPos( aDocPos,
|
|
aSwContentAtPos,
|
|
FALSE );
|
|
}
|
|
|
|
if ( bStart && !bIsInDrag )
|
|
{
|
|
bMBPressed = FALSE;
|
|
ReleaseMouse();
|
|
bFrmDrag = FALSE;
|
|
bExecuteDrag = TRUE;
|
|
SwEditWin::nDDStartPosY = aDocPos.Y();
|
|
SwEditWin::nDDStartPosX = aDocPos.X();
|
|
aMovePos = aDocPos;
|
|
StartExecuteDrag();
|
|
if( bDelSelect )
|
|
{
|
|
rSh.UnSelectFrm();
|
|
rSh.UnlockPaint();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void SwEditWin::StartExecuteDrag()
|
|
{
|
|
if( !bExecuteDrag || bIsInDrag )
|
|
return;
|
|
|
|
bIsInDrag = TRUE;
|
|
|
|
SwTransferable* pTransfer = new SwTransferable( rView.GetWrtShell() );
|
|
::com::sun::star::uno::Reference<
|
|
::com::sun::star::datatransfer::XTransferable > xRef( pTransfer );
|
|
|
|
pTransfer->StartDrag( this, aMovePos );
|
|
}
|
|
|
|
void SwEditWin::DragFinished()
|
|
{
|
|
aTimer.SetTimeoutHdl( LINK(this,SwEditWin, TimerHandler) );
|
|
bIsInDrag = FALSE;
|
|
}
|
|
|
|
|
|
void SwEditWin::DropCleanup()
|
|
{
|
|
SwWrtShell &rSh = rView.GetWrtShell();
|
|
|
|
// Stati zuruecksetzen
|
|
bNoInterrupt = FALSE;
|
|
if ( bOldIdleSet )
|
|
{
|
|
((SwViewOption*)rSh.GetViewOptions())->SetIdle( bOldIdle );
|
|
bOldIdleSet = FALSE;
|
|
}
|
|
if ( pUserMarker )
|
|
CleanupDropUserMarker();
|
|
else
|
|
rSh.UnSetVisCrsr();
|
|
|
|
}
|
|
|
|
void SwEditWin::CleanupDropUserMarker()
|
|
{
|
|
if ( pUserMarker )
|
|
{
|
|
delete pUserMarker, pUserMarker = 0;
|
|
pUserMarkerObj = 0;
|
|
}
|
|
}
|
|
|
|
|
|
//Messehack (MA,MBA)
|
|
void lcl_SelectShellForDrop( SwView &rView )
|
|
{
|
|
if ( !rView.GetCurShell() )
|
|
rView.SelectShell();
|
|
}
|
|
|
|
sal_Int8 SwEditWin::ExecuteDrop( const ExecuteDropEvent& rEvt )
|
|
{
|
|
::lcl_SelectShellForDrop( GetView() );
|
|
DropCleanup();
|
|
sal_Int8 nRet = DND_ACTION_NONE;
|
|
|
|
//Ein Drop auf eine offene OutlinerView geht uns nichts an (siehe auch QueryDrop)
|
|
SwWrtShell &rSh = rView.GetWrtShell();
|
|
const Point aDocPt( PixelToLogic( rEvt.maPosPixel ));
|
|
SdrObject *pObj = 0;
|
|
OutlinerView* pOLV;
|
|
rSh.GetObjCntType( aDocPt, pObj );
|
|
|
|
if( pObj && 0 != ( pOLV = rSh.GetDrawView()->GetTextEditOutlinerView() ))
|
|
{
|
|
Rectangle aRect( pOLV->GetOutputArea() );
|
|
aRect.Union( pObj->GetLogicRect() );
|
|
const Point aPos = pOLV->GetWindow()->PixelToLogic(rEvt.maPosPixel);
|
|
if ( aRect.IsInside(aPos) )
|
|
{
|
|
rSh.StartAllAction();
|
|
//!! sal_Int8 nRet = DND_ACTION_NONE/*pOLV->ExecuteDrop( rEvt )*/;
|
|
rSh.EndAllAction();
|
|
return nRet;
|
|
}
|
|
}
|
|
|
|
TransferableDataHelper aData( rEvt.maDropEvent.Transferable );
|
|
nRet = rEvt.mnAction;
|
|
if( !SwTransferable::PasteData( aData, rSh, nDropAction, nDropFormat,
|
|
nDropDestination, FALSE, &aDocPt, nRet ))
|
|
//!! nRet = OFF_APP()->ExecuteDrop( rEvt );
|
|
nRet = DND_ACTION_NONE;
|
|
else if ( SW_MOD()->pDragDrop )
|
|
//Bei internem D&D nicht mehr aufraeumen!
|
|
SW_MOD()->pDragDrop->SetCleanUp( FALSE );
|
|
|
|
return nRet;
|
|
}
|
|
|
|
|
|
|
|
sal_Int8 SwEditWin::AcceptDrop( const AcceptDropEvent& rEvt )
|
|
{
|
|
if( rEvt.mbLeaving )
|
|
{
|
|
DropCleanup();
|
|
return rEvt.mnAction;
|
|
}
|
|
|
|
if( rView.GetDocShell()->IsReadOnly() )
|
|
return DND_ACTION_NONE;
|
|
|
|
SwWrtShell &rSh = rView.GetWrtShell();
|
|
|
|
//Ein bischen scrollen?
|
|
Point aPixPt( rEvt.maPosPixel );
|
|
Point aPoint;
|
|
Rectangle aWin( aPoint, GetOutputSizePixel() );
|
|
Rectangle aWin2( aWin );
|
|
aWin.Left() += 10;
|
|
aWin.Top() += 10;
|
|
aWin.Right() -= 10;
|
|
aWin.Bottom()-= 10;
|
|
|
|
if ( !aWin.IsInside( aPixPt ) )
|
|
{
|
|
if ( !bOldIdleSet )
|
|
{
|
|
bOldIdle = rSh.GetViewOptions()->IsIdle();
|
|
((SwViewOption *)rSh.GetViewOptions())->SetIdle(FALSE);
|
|
bOldIdleSet = TRUE;
|
|
}
|
|
CleanupDropUserMarker();
|
|
|
|
aWin2.Left() += 5;
|
|
aWin2.Top() += 5;
|
|
aWin2.Right() -= 5;
|
|
aWin2.Bottom()-= 5;
|
|
|
|
long x = 0;
|
|
if ( aPixPt.Y() < aWin2.Top() )
|
|
x = aPixPt.Y() = -5;
|
|
else if ( aPixPt.Y() > aWin2.Bottom() )
|
|
x = aPixPt.Y() += 10;
|
|
if ( aPixPt.X() < aWin2.Left() )
|
|
x = aPixPt.X() = -5;
|
|
else if ( aPixPt.X() > aWin2.Right() )
|
|
x = aPixPt.X() += 10;
|
|
Point aDocPt( PixelToLogic( aPixPt ) );
|
|
aDocPt = rSh.GetCntntPos( aDocPt, x > 0 );
|
|
rSh.SwCrsrShell::SetVisCrsr( aDocPt );
|
|
return TRUE;
|
|
}
|
|
|
|
if ( bOldIdleSet )
|
|
{
|
|
((SwViewOption *)rSh.GetViewOptions())->SetIdle( bOldIdle );
|
|
bOldIdleSet = FALSE;
|
|
}
|
|
|
|
//Drop auf Selektion ist nicht statthaft.
|
|
//JP 19.01.99: Drop in geschuetzte Bereiche ist nicht statthaft
|
|
const Point aDocPt( PixelToLogic( aPixPt ) );
|
|
if( rSh.ChgCurrPam( aDocPt ) || rSh.IsOverReadOnlyPos( aDocPt ) )
|
|
return DND_ACTION_NONE;
|
|
|
|
//Auf was wollen wir denn gerade droppen?
|
|
nDropDestination = 0;
|
|
|
|
BOOL bDropCursor = TRUE; //UserMarker oder DropCursor anzeigen.
|
|
|
|
SdrObject *pObj = NULL;
|
|
const ObjCntType eType = rSh.GetObjCntType( aDocPt, pObj );
|
|
|
|
//Drop auf OutlinerView (TextEdit im Drawing) soll diese selbst entscheiden!
|
|
if ( pObj )
|
|
{
|
|
OutlinerView* pOLV = rSh.GetDrawView()->GetTextEditOutlinerView();
|
|
if ( pOLV )
|
|
{
|
|
Rectangle aRect( pOLV->GetOutputArea() );
|
|
aRect.Union( pObj->GetLogicRect() );
|
|
const Point aPos = pOLV->GetWindow()->PixelToLogic(aPixPt);
|
|
if( aRect.IsInside( aPos ) )
|
|
//!! return pOLV->AcceptDrop( rEvt );
|
|
return rEvt.mnAction;
|
|
}
|
|
}
|
|
|
|
//Sonst etwas aus der DrawingEngine getroffen?
|
|
if ( OBJCNT_NONE != eType )
|
|
{
|
|
switch ( eType )
|
|
{
|
|
case OBJCNT_GRF:
|
|
{
|
|
BOOL bLink,
|
|
bIMap = 0 != rSh.GetFmtFromObj( aDocPt )->GetURL().GetMap();
|
|
String aDummy;
|
|
rSh.GetGrfAtPos( aDocPt, aDummy, bLink );
|
|
if ( bLink && bIMap )
|
|
nDropDestination = EXCHG_DEST_DOC_LNKD_GRAPH_W_IMAP;
|
|
else if ( bLink )
|
|
nDropDestination = EXCHG_DEST_DOC_LNKD_GRAPHOBJ;
|
|
else if ( bIMap )
|
|
nDropDestination = EXCHG_DEST_DOC_GRAPH_W_IMAP;
|
|
else
|
|
nDropDestination = EXCHG_DEST_DOC_GRAPHOBJ;
|
|
}
|
|
break;
|
|
case OBJCNT_FLY:
|
|
if( rSh.GetView().GetDocShell()->ISA(SwWebDocShell) )
|
|
nDropDestination = EXCHG_DEST_DOC_TEXTFRAME_WEB;
|
|
else
|
|
nDropDestination = EXCHG_DEST_DOC_TEXTFRAME;
|
|
break;
|
|
case OBJCNT_OLE: nDropDestination = EXCHG_DEST_DOC_OLEOBJ; break;
|
|
case OBJCNT_CONTROL: /* no Action avail */
|
|
case OBJCNT_SIMPLE: nDropDestination = EXCHG_DEST_DOC_DRAWOBJ; break;
|
|
case OBJCNT_URLBUTTON: nDropDestination = EXCHG_DEST_DOC_URLBUTTON; break;
|
|
case OBJCNT_GROUPOBJ: nDropDestination = EXCHG_DEST_DOC_GROUPOBJ; break;
|
|
|
|
default: ASSERT( !this, "new ObjectType?" );
|
|
}
|
|
}
|
|
if ( !nDropDestination )
|
|
{
|
|
/*
|
|
JP 13.07.98: Bug 52637: es wird ein URL-Feld erkannt also werden nur die
|
|
Inhalte zugelassen. Das ist aber bestimmt nicht das
|
|
gewollte.
|
|
SwContentAtPos aCntntAtPos( SwContentAtPos::SW_INETATTR );
|
|
if ( rSh.GetContentAtPos( aDocPt, aCntntAtPos, FALSE ) )
|
|
nDropDestination = EXCHG_DEST_DOC_URLFIELD;
|
|
else
|
|
*/
|
|
if( rSh.GetView().GetDocShell()->ISA(SwWebDocShell) )
|
|
nDropDestination = EXCHG_DEST_SWDOC_FREE_AREA_WEB;
|
|
else
|
|
nDropDestination = EXCHG_DEST_SWDOC_FREE_AREA;
|
|
}
|
|
else
|
|
bDropCursor = FALSE;
|
|
|
|
USHORT nEventAction;
|
|
sal_Int8 nUserOpt = rEvt.mnAction;
|
|
|
|
nDropAction = SotExchange::GetExchangeAction(
|
|
GetDataFlavorExVector(),
|
|
nDropDestination,
|
|
rEvt.mnAction,
|
|
//!! rEvt.GetSourceOptions(),
|
|
nUserOpt, nDropFormat, nEventAction );
|
|
|
|
if( EXCHG_INOUT_ACTION_NONE != nDropAction )
|
|
{
|
|
//Bei den default Aktionen wollen wir noch ein bischen mitreden.
|
|
SwModule *pMod = SW_MOD();
|
|
if( pMod->pDragDrop )
|
|
{
|
|
BOOL bCleanup = FALSE;
|
|
//Zeichenobjekte in Kopf-/Fusszeilen sind nicht erlaubt
|
|
SwWrtShell *pSrcSh = pMod->pDragDrop->GetShell();
|
|
if( (pSrcSh->GetSelFrmType() == FRMTYPE_DRAWOBJ) &&
|
|
(rSh.GetFrmType( &aDocPt, FALSE ) & (FRMTYPE_HEADER|FRMTYPE_FOOTER)) )
|
|
{
|
|
bCleanup = TRUE;
|
|
}
|
|
// keine positionsgeschuetzten Objecte verschieben!
|
|
else if( DND_ACTION_MOVE == rEvt.mnAction &&
|
|
pSrcSh->IsSelObjProtected( FLYPROTECT_POS ) )
|
|
{
|
|
bCleanup = TRUE;
|
|
}
|
|
//!! else if( rEvt.IsDefaultAction() )
|
|
//!! {
|
|
//!! // JP 13.08.98: internes Drag&Drop: bei gleichem Doc ein Move
|
|
//!! // ansonten ein Copy - Task 54974
|
|
//!! nEventAction = pSrcSh->GetDoc() == rSh.GetDoc()
|
|
//!! ? DND_ACTION_MOVE
|
|
//!! : DND_ACTION_COPY;
|
|
//!! }
|
|
if ( bCleanup )
|
|
{
|
|
CleanupDropUserMarker();
|
|
rSh.UnSetVisCrsr();
|
|
return DND_ACTION_NONE;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//D&D von ausserhalb des SW soll per default ein Copy sein.
|
|
if( EXCHG_IN_ACTION_DEFAULT == nEventAction &&
|
|
DND_ACTION_MOVE == rEvt.mnAction )
|
|
nEventAction = DND_ACTION_COPY;
|
|
|
|
if( (SOT_FORMATSTR_ID_SBA_FIELDDATAEXCHANGE == nDropFormat &&
|
|
EXCHG_IN_ACTION_LINK != nDropAction) ||
|
|
SOT_FORMATSTR_ID_SBA_CTRLDATAEXCHANGE == nDropFormat )
|
|
{
|
|
SdrMarkView* pMView = PTR_CAST( SdrMarkView, rSh.GetDrawView() );
|
|
if( pMView && !pMView->IsDesignMode() )
|
|
return DND_ACTION_NONE;
|
|
}
|
|
}
|
|
|
|
if ( EXCHG_IN_ACTION_DEFAULT != nEventAction )
|
|
nUserOpt = nEventAction;
|
|
|
|
if ( bDropCursor )
|
|
{
|
|
CleanupDropUserMarker();
|
|
rSh.SwCrsrShell::SetVisCrsr( aDocPt );
|
|
}
|
|
else
|
|
{
|
|
rSh.UnSetVisCrsr();
|
|
if ( !pUserMarker )
|
|
pUserMarker = new SdrViewUserMarker( rSh.GetDrawView() );
|
|
if ( pUserMarkerObj != pObj )
|
|
{
|
|
pUserMarkerObj = pObj;
|
|
pUserMarker->SetXPolyPolygon( pUserMarkerObj,
|
|
rSh.GetDrawView()->GetPageView(
|
|
rSh.GetDrawView()->GetModel()->GetPage(0)));
|
|
pUserMarker->Show();
|
|
}
|
|
}
|
|
return nUserOpt;
|
|
}
|
|
|
|
CleanupDropUserMarker();
|
|
rSh.UnSetVisCrsr();
|
|
//!! return OFF_APP()->AcceptDrop( rEvt );
|
|
return DND_ACTION_NONE;
|
|
}
|
|
|
|
|
|
IMPL_LINK( SwEditWin, DDHandler, Timer *, EMPTYARG )
|
|
{
|
|
bDDTimerStarted = FALSE;
|
|
aTimer.Stop();
|
|
aTimer.SetTimeout(240);
|
|
bMBPressed = FALSE;
|
|
ReleaseMouse();
|
|
bFrmDrag = FALSE;
|
|
|
|
if ( rView.GetViewFrame() && rView.GetViewFrame()->GetFrame() &&
|
|
!rView.GetViewFrame()->GetFrame()->TransferForReplaceInProgress() )
|
|
{
|
|
bExecuteDrag = TRUE;
|
|
StartExecuteDrag();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
/*------------------------------------------------------------------------
|
|
|
|
$Log: not supported by cvs2svn $
|
|
Revision 1.3 2001/03/23 15:55:45 jp
|
|
use new Drag&Drop / Clipboard API
|
|
|
|
Revision 1.2 2001/02/02 17:45:49 jp
|
|
SwDataExchange interfaces renamed
|
|
|
|
Revision 1.1.1.1 2000/09/18 17:14:35 hr
|
|
initial import
|
|
|
|
Revision 1.174 2000/09/18 16:05:23 willem.vandorp
|
|
OpenOffice header added.
|
|
|
|
Revision 1.173 1999/05/11 19:50:40 JP
|
|
Task #66127#: Methoden rund ums Lineal verbessert und Schnittstellen veraendert/erweitert
|
|
|
|
|
|
Rev 1.172 11 May 1999 21:50:40 JP
|
|
Task #66127#: Methoden rund ums Lineal verbessert und Schnittstellen veraendert/erweitert
|
|
|
|
Rev 1.171 25 Jan 1999 16:11:42 JP
|
|
Bug #61109#: QueryDrop - DropModifier nicht ueberbuegeln
|
|
|
|
Rev 1.170 19 Jan 1999 22:57:28 JP
|
|
Task #58677#: Crsr in Readonly Bereichen zulassen
|
|
|
|
Rev 1.169 11 Dec 1998 11:46:02 JP
|
|
Task #58217#: WebDocShell als D&D Ziel erkennen
|
|
|
|
Rev 1.168 27 Nov 1998 14:50:42 AMA
|
|
Fix #59951#59825#: Unterscheiden zwischen Rahmen-,Seiten- und Bereichsspalten
|
|
|
|
Rev 1.167 17 Nov 1998 22:17:06 JP
|
|
Task #59398#: ClipboardId Umstellungen
|
|
|
|
Rev 1.166 12 Nov 1998 13:31:08 JP
|
|
Task #59398# Umstellung von SotFormatStringId
|
|
|
|
Rev 1.165 02 Sep 1998 12:10:46 MA
|
|
#55895# ctrldataexchange
|
|
|
|
Rev 1.164 13 Aug 1998 14:20:14 JP
|
|
Bug #54974# QueryDrop - bei DefaultAction per internem Format im eigenen Doc immer move, sonst copy
|
|
|
|
Rev 1.163 16 Jul 1998 19:21:22 JP
|
|
Bug #53113# DatenbankControls nur im DesignModus einfuegen
|
|
|
|
Rev 1.162 08 Jul 1998 14:17:32 JP
|
|
das richtige define fuer supd benutzen
|
|
|
|
Rev 1.161 08 Jul 1998 12:24:36 JP
|
|
neues Drag&Drop ab Version 5.0
|
|
|
|
Rev 1.160 04 Jul 1998 16:06:24 JP
|
|
Umstellung auf Tabelle weiergemacht
|
|
|
|
Rev 1.159 27 Jun 1998 18:44:00 JP
|
|
Umstellung auf Tabelle weitergemacht
|
|
|
|
Rev 1.158 25 Jun 1998 14:12:50 JP
|
|
SvDataObject -> SotObject
|
|
|
|
Rev 1.157 16 Jun 1998 17:14:42 OM
|
|
#51085# Draw-Objekte nicht auf die Wiese droppen
|
|
|
|
Rev 1.156 16 Jun 1998 16:35:44 OM
|
|
#51085# Draw-Objekte nicht auf die Wiese droppen
|
|
|
|
Rev 1.155 09 Jun 1998 15:31:32 OM
|
|
VC-Controls entfernt
|
|
|
|
Rev 1.154 27 Apr 1998 21:15:26 JP
|
|
Bug #49842#: Drop - bei Grafiken den FileNamen in eine URL wandeln
|
|
|
|
Rev 1.153 31 Mar 1998 17:30:22 MA
|
|
erstmal abgebrochen, neues DD
|
|
|
|
Rev 1.152 26 Mar 1998 18:02:54 MA
|
|
ein paar vorb. D&D
|
|
|
|
Rev 1.151 20 Feb 1998 16:18:20 MA
|
|
headerfiles gewandert
|
|
|
|
Rev 1.150 19 Feb 1998 08:53:20 OK
|
|
NEW: include mieclip.hxx
|
|
|
|
Rev 1.149 07 Jan 1998 18:46:26 MIB
|
|
5.0 Fileformat
|
|
|
|
Rev 1.148 28 Nov 1997 18:02:26 MA
|
|
includes
|
|
|
|
Rev 1.147 25 Nov 1997 10:33:00 MA
|
|
includes
|
|
|
|
Rev 1.146 22 Oct 1997 16:04:52 OM
|
|
Farbendrop
|
|
|
|
Rev 1.145 17 Oct 1997 13:24:02 JP
|
|
neu: MSE40-HTML-Format erkennen/lesen
|
|
|
|
Rev 1.144 15 Oct 1997 14:03:44 OS
|
|
lcl_SelectShellForDrop - SelectShell() nur bei Bedarf rufen #44690#
|
|
|
|
Rev 1.143 17 Sep 1997 11:26:04 MA
|
|
#43801# precedence nicht beachtet
|
|
|
|
Rev 1.142 17 Sep 1997 09:57:22 OS
|
|
Nummer 3: pSdrView pruefen!
|
|
|
|
Rev 1.141 10 Sep 1997 10:50:08 JP
|
|
neu: Undo fuers kopieren von Tabellen & in Tabellen
|
|
|
|
Rev 1.140 08 Sep 1997 11:02:36 MA
|
|
includes
|
|
|
|
Rev 1.139 05 Sep 1997 13:10:48 OM
|
|
#42027# D&D auf DrawText-Objekte
|
|
|
|
Rev 1.138 02 Sep 1997 13:20:48 OS
|
|
includes
|
|
|
|
Rev 1.137 01 Sep 1997 13:15:38 OS
|
|
DLL-Umstellung
|
|
|
|
Rev 1.136 28 Aug 1997 10:29:56 JP
|
|
Bug #42430#: Drop - bei INetAttr. den SourceCursor auf das Attribut setzen
|
|
|
|
Rev 1.135 15 Aug 1997 12:09:54 OS
|
|
chartar/frmatr/txtatr aufgeteilt
|
|
|
|
Rev 1.134 11 Aug 1997 20:06:16 HJS
|
|
includes
|
|
|
|
Rev 1.133 11 Aug 1997 10:08:40 MH
|
|
chg: header
|
|
|
|
Rev 1.132 17 Jul 1997 19:06:32 MA
|
|
#41801# File zur absoluten URL verarbeiten
|
|
|
|
Rev 1.131 19 Jun 1997 11:38:52 MA
|
|
#40833# Drop_Link, sdw nicht einfuegen bei sw/web
|
|
|
|
Rev 1.130 09 Jun 1997 20:08:48 JP
|
|
SwFilterNms/SwFilterNm entfernt
|
|
|
|
Rev 1.129 29 May 1997 14:31:14 MA
|
|
fix: Grafik nur verknuepft fuer WebDocShell
|
|
|
|
Rev 1.128 16 May 1997 15:07:42 MH
|
|
add: defines wg. CLOOKS
|
|
|
|
Rev 1.127 25 Apr 1997 13:00:46 MA
|
|
#39306# ggf. den UserMarker loeschen
|
|
|
|
Rev 1.126 14 Apr 1997 17:25:00 MH
|
|
add: header
|
|
|
|
Rev 1.125 10 Apr 1997 16:05:18 TRI
|
|
includes
|
|
|
|
Rev 1.124 08 Apr 1997 10:31:46 OM
|
|
Fehlende Includes
|
|
|
|
Rev 1.123 08 Apr 1997 09:55:34 NF
|
|
includes...
|
|
|
|
Rev 1.122 21 Mar 1997 13:53:18 MA
|
|
#36900# D&D offset beseitigt
|
|
|
|
Rev 1.121 16 Mar 1997 13:44:16 MA
|
|
fix: Kein D&D wenn der Frame schon klinisch tot ist
|
|
|
|
Rev 1.120 07 Mar 1997 09:47:24 MA
|
|
Neue D&D Moeglichkeiten, Handling verbessert
|
|
|
|
Rev 1.119 23 Feb 1997 22:03:10 MA
|
|
fix: Drop von Grafik auf Grafik reanimiert
|
|
|
|
Rev 1.118 07 Feb 1997 12:05:44 OS
|
|
Navigator benutzt eigenes Drag-Format
|
|
|
|
Rev 1.117 05 Feb 1997 19:13:18 JP
|
|
ExcuteDrag: Modus der WrtShell setzen, wenn Flys selektiert sind
|
|
|
|
Rev 1.116 19 Dec 1996 16:12:18 MA
|
|
fix: Crsr wieder umschalten
|
|
|
|
Rev 1.115 28 Nov 1996 14:20:06 MA
|
|
fix: Drop per Link auch bei einem File
|
|
|
|
Rev 1.114 20 Nov 1996 16:58:42 MA
|
|
#33444# QueryDrop, Pos fuer Objekte anpassen
|
|
|
|
Rev 1.113 18 Oct 1996 16:57:56 MA
|
|
Messehack: eine hoffentlich kurzlebige Freundschaft
|
|
|
|
Rev 1.112 15 Oct 1996 12:14:20 MA
|
|
new: Drawing per Clipboard
|
|
|
|
Rev 1.111 02 Oct 1996 13:50:52 JP
|
|
StartExecuteDrag: aus ReadOnly-Docs darf nur kopiert werden!
|
|
|
|
Rev 1.110 16 Sep 1996 14:00:58 JP
|
|
Drop: INetBookmark am URL-Button setzen
|
|
|
|
-------------------------------------------------------------------------*/
|
|
|