summaryrefslogtreecommitdiff
path: root/basctl/source/dlged/dlgedfunc.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basctl/source/dlged/dlgedfunc.cxx')
-rw-r--r--basctl/source/dlged/dlgedfunc.cxx621
1 files changed, 0 insertions, 621 deletions
diff --git a/basctl/source/dlged/dlgedfunc.cxx b/basctl/source/dlged/dlgedfunc.cxx
deleted file mode 100644
index ad9e38e81..000000000
--- a/basctl/source/dlged/dlgedfunc.cxx
+++ /dev/null
@@ -1,621 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_basctl.hxx"
-#include <vcl/scrbar.hxx>
-#include <svx/svdview.hxx>
-#include "dlgedfunc.hxx"
-#include "dlged.hxx"
-#include "dlgedview.hxx"
-#include <vcl/seleng.hxx>
-
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK_INLINE_START( DlgEdFunc, ScrollTimeout, Timer *, pTimer )
-{
- (void)pTimer;
- Window* pWindow = pParent->GetWindow();
- Point aPos = pWindow->ScreenToOutputPixel( pWindow->GetPointerPosPixel() );
- aPos = pWindow->PixelToLogic( aPos );
- ForceScroll( aPos );
- return 0;
-}
-IMPL_LINK_INLINE_END( DlgEdFunc, ScrollTimeout, Timer *, pTimer )
-
-//----------------------------------------------------------------------------
-
-void DlgEdFunc::ForceScroll( const Point& rPos )
-{
- aScrollTimer.Stop();
-
- Window* pWindow = pParent->GetWindow();
-
- static Point aDefPoint;
- Rectangle aOutRect( aDefPoint, pWindow->GetOutputSizePixel() );
- aOutRect = pWindow->PixelToLogic( aOutRect );
-
- ScrollBar* pHScroll = pParent->GetHScroll();
- ScrollBar* pVScroll = pParent->GetVScroll();
- long nDeltaX = pHScroll->GetLineSize();
- long nDeltaY = pVScroll->GetLineSize();
-
- if( !aOutRect.IsInside( rPos ) )
- {
- if( rPos.X() < aOutRect.Left() )
- nDeltaX = -nDeltaX;
- else
- if( rPos.X() <= aOutRect.Right() )
- nDeltaX = 0;
-
- if( rPos.Y() < aOutRect.Top() )
- nDeltaY = -nDeltaY;
- else
- if( rPos.Y() <= aOutRect.Bottom() )
- nDeltaY = 0;
-
- if( nDeltaX )
- pHScroll->SetThumbPos( pHScroll->GetThumbPos() + nDeltaX );
- if( nDeltaY )
- pVScroll->SetThumbPos( pVScroll->GetThumbPos() + nDeltaY );
-
- if( nDeltaX )
- pParent->DoScroll( pHScroll );
- if( nDeltaY )
- pParent->DoScroll( pVScroll );
- }
-
- aScrollTimer.Start();
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFunc::DlgEdFunc( DlgEditor* pParent_ )
-{
- DlgEdFunc::pParent = pParent_;
- aScrollTimer.SetTimeoutHdl( LINK( this, DlgEdFunc, ScrollTimeout ) );
- aScrollTimer.SetTimeout( SELENG_AUTOREPEAT_INTERVAL );
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFunc::~DlgEdFunc()
-{
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFunc::MouseButtonDown( const MouseEvent& )
-{
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFunc::MouseButtonUp( const MouseEvent& )
-{
- aScrollTimer.Stop();
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFunc::MouseMove( const MouseEvent& )
-{
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFunc::KeyInput( const KeyEvent& rKEvt )
-{
- sal_Bool bReturn = sal_False;
-
- SdrView* pView = pParent->GetView();
- Window* pWindow = pParent->GetWindow();
-
- KeyCode aCode = rKEvt.GetKeyCode();
- sal_uInt16 nCode = aCode.GetCode();
-
- switch ( nCode )
- {
- case KEY_ESCAPE:
- {
- if ( pView->IsAction() )
- {
- pView->BrkAction();
- bReturn = sal_True;
- }
- else if ( pView->AreObjectsMarked() )
- {
- const SdrHdlList& rHdlList = pView->GetHdlList();
- SdrHdl* pHdl = rHdlList.GetFocusHdl();
- if ( pHdl )
- ((SdrHdlList&)rHdlList).ResetFocusHdl();
- else
- pView->UnmarkAll();
-
- bReturn = sal_True;
- }
- }
- break;
- case KEY_TAB:
- {
- if ( !aCode.IsMod1() && !aCode.IsMod2() )
- {
- // mark next object
- if ( !pView->MarkNextObj( !aCode.IsShift() ) )
- {
- // if no next object, mark first/last
- pView->UnmarkAllObj();
- pView->MarkNextObj( !aCode.IsShift() );
- }
-
- if ( pView->AreObjectsMarked() )
- pView->MakeVisible( pView->GetAllMarkedRect(), *pWindow );
-
- bReturn = sal_True;
- }
- else if ( aCode.IsMod1() )
- {
- // selected handle
- const SdrHdlList& rHdlList = pView->GetHdlList();
- ((SdrHdlList&)rHdlList).TravelFocusHdl( !aCode.IsShift() );
-
- // guarantee visibility of focused handle
- SdrHdl* pHdl = rHdlList.GetFocusHdl();
- if ( pHdl )
- {
- Point aHdlPosition( pHdl->GetPos() );
- Rectangle aVisRect( aHdlPosition - Point( 100, 100 ), Size( 200, 200 ) );
- pView->MakeVisible( aVisRect, *pWindow );
- }
-
- bReturn = sal_True;
- }
- }
- break;
- case KEY_UP:
- case KEY_DOWN:
- case KEY_LEFT:
- case KEY_RIGHT:
- {
- long nX = 0;
- long nY = 0;
-
- if ( nCode == KEY_UP )
- {
- // scroll up
- nX = 0;
- nY = -1;
- }
- else if ( nCode == KEY_DOWN )
- {
- // scroll down
- nX = 0;
- nY = 1;
- }
- else if ( nCode == KEY_LEFT )
- {
- // scroll left
- nX = -1;
- nY = 0;
- }
- else if ( nCode == KEY_RIGHT )
- {
- // scroll right
- nX = 1;
- nY = 0;
- }
-
- if ( pView->AreObjectsMarked() && !aCode.IsMod1() )
- {
- if ( aCode.IsMod2() )
- {
- // move in 1 pixel distance
- Size aPixelSize = pWindow ? pWindow->PixelToLogic( Size( 1, 1 ) ) : Size( 100, 100 );
- nX *= aPixelSize.Width();
- nY *= aPixelSize.Height();
- }
- else
- {
- // move in 1 mm distance
- nX *= 100;
- nY *= 100;
- }
-
- const SdrHdlList& rHdlList = pView->GetHdlList();
- SdrHdl* pHdl = rHdlList.GetFocusHdl();
-
- if ( pHdl == 0 )
- {
- // no handle selected
- if ( pView->IsMoveAllowed() )
- {
- // restrict movement to work area
- const Rectangle& rWorkArea = pView->GetWorkArea();
-
- if ( !rWorkArea.IsEmpty() )
- {
- Rectangle aMarkRect( pView->GetMarkedObjRect() );
- aMarkRect.Move( nX, nY );
-
- if ( !rWorkArea.IsInside( aMarkRect ) )
- {
- if ( aMarkRect.Left() < rWorkArea.Left() )
- nX += rWorkArea.Left() - aMarkRect.Left();
-
- if ( aMarkRect.Right() > rWorkArea.Right() )
- nX -= aMarkRect.Right() - rWorkArea.Right();
-
- if ( aMarkRect.Top() < rWorkArea.Top() )
- nY += rWorkArea.Top() - aMarkRect.Top();
-
- if ( aMarkRect.Bottom() > rWorkArea.Bottom() )
- nY -= aMarkRect.Bottom() - rWorkArea.Bottom();
- }
- }
-
- if ( nX != 0 || nY != 0 )
- {
- pView->MoveAllMarked( Size( nX, nY ) );
- pView->MakeVisible( pView->GetAllMarkedRect(), *pWindow );
- }
- }
- }
- else
- {
- // move the handle
- if ( pHdl && ( nX || nY ) )
- {
- Point aStartPoint( pHdl->GetPos() );
- Point aEndPoint( pHdl->GetPos() + Point( nX, nY ) );
- const SdrDragStat& rDragStat = pView->GetDragStat();
-
- // start dragging
- pView->BegDragObj( aStartPoint, 0, pHdl, 0 );
-
- if ( pView->IsDragObj() )
- {
- bool bWasNoSnap = rDragStat.IsNoSnap();
- sal_Bool bWasSnapEnabled = pView->IsSnapEnabled();
-
- // switch snapping off
- if ( !bWasNoSnap )
- ((SdrDragStat&)rDragStat).SetNoSnap( sal_True );
- if ( bWasSnapEnabled )
- pView->SetSnapEnabled( sal_False );
-
- pView->MovAction( aEndPoint );
- pView->EndDragObj();
-
- // restore snap
- if ( !bWasNoSnap )
- ((SdrDragStat&)rDragStat).SetNoSnap( bWasNoSnap );
- if ( bWasSnapEnabled )
- pView->SetSnapEnabled( bWasSnapEnabled );
- }
-
- // make moved handle visible
- Rectangle aVisRect( aEndPoint - Point( 100, 100 ), Size( 200, 200 ) );
- pView->MakeVisible( aVisRect, *pWindow );
- }
- }
- }
- else
- {
- // scroll page
- ScrollBar* pScrollBar = ( nX != 0 ) ? pParent->GetHScroll() : pParent->GetVScroll();
- if ( pScrollBar )
- {
- long nRangeMin = pScrollBar->GetRangeMin();
- long nRangeMax = pScrollBar->GetRangeMax();
- long nThumbPos = pScrollBar->GetThumbPos() + ( ( nX != 0 ) ? nX : nY ) * pScrollBar->GetLineSize();
- if ( nThumbPos < nRangeMin )
- nThumbPos = nRangeMin;
- if ( nThumbPos > nRangeMax )
- nThumbPos = nRangeMax;
- pScrollBar->SetThumbPos( nThumbPos );
- pParent->DoScroll( pScrollBar );
- }
- }
-
- bReturn = sal_True;
- }
- break;
- default:
- {
- }
- break;
- }
-
- if ( bReturn )
- pWindow->ReleaseMouse();
-
- return bReturn;
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFuncInsert::DlgEdFuncInsert( DlgEditor* pParent_ ) :
- DlgEdFunc( pParent_ )
-{
- pParent_->GetView()->SetCreateMode( sal_True );
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFuncInsert::~DlgEdFuncInsert()
-{
- pParent->GetView()->SetEditMode( sal_True );
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncInsert::MouseButtonDown( const MouseEvent& rMEvt )
-{
- if( !rMEvt.IsLeft() )
- return sal_True;
-
- SdrView* pView = pParent->GetView();
- Window* pWindow= pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- Point aPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
- sal_uInt16 nDrgLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
-
- pWindow->CaptureMouse();
-
- if ( rMEvt.IsLeft() && rMEvt.GetClicks() == 1 )
- {
- SdrHdl* pHdl = pView->PickHandle(aPos);
-
- // if selected object was hit, drag object
- if ( pHdl!=NULL || pView->IsMarkedHit(aPos, nHitLog) )
- pView->BegDragObj(aPos, (OutputDevice*) NULL, pHdl, nDrgLog);
- else if ( pView->AreObjectsMarked() )
- pView->UnmarkAll();
-
- // if no action, create object
- if ( !pView->IsAction() )
- pView->BegCreateObj(aPos);
- }
- else if ( rMEvt.IsLeft() && rMEvt.GetClicks() == 2 )
- {
- // if object was hit, show property browser
- if ( pView->IsMarkedHit(aPos, nHitLog) && pParent->GetMode() != DLGED_READONLY )
- pParent->ShowProperties();
- }
-
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncInsert::MouseButtonUp( const MouseEvent& rMEvt )
-{
- DlgEdFunc::MouseButtonUp( rMEvt );
-
- SdrView* pView = pParent->GetView();
- Window* pWindow= pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- pWindow->ReleaseMouse();
-
- // object creation active?
- if ( pView->IsCreateObj() )
- {
- pView->EndCreateObj(SDRCREATE_FORCEEND);
-
- if ( !pView->AreObjectsMarked() )
- {
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
- Point aPos( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
- pView->MarkObj(aPos, nHitLog);
- }
-
- if( pView->AreObjectsMarked() )
- return sal_True;
- else
- return sal_False;
- }
- else
- {
- if ( pView->IsDragObj() )
- pView->EndDragObj( rMEvt.IsMod1() );
- return sal_True;
- }
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncInsert::MouseMove( const MouseEvent& rMEvt )
-{
- SdrView* pView = pParent->GetView();
- Window* pWindow= pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- Point aPos( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
-
- if ( pView->IsAction() )
- {
- ForceScroll(aPos);
- pView->MovAction(aPos);
- }
-
- pWindow->SetPointer( pView->GetPreferedPointer( aPos, pWindow, nHitLog ) );
-
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFuncSelect::DlgEdFuncSelect( DlgEditor* pParent_ ) :
- DlgEdFunc( pParent_ ),
- bMarkAction(sal_False)
-{
-}
-
-//----------------------------------------------------------------------------
-
-DlgEdFuncSelect::~DlgEdFuncSelect()
-{
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncSelect::MouseButtonDown( const MouseEvent& rMEvt )
-{
- // get view from parent
- SdrView* pView = pParent->GetView();
- Window* pWindow = pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- sal_uInt16 nDrgLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
- Point aMDPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
-
- if ( rMEvt.IsLeft() && rMEvt.GetClicks() == 1 )
- {
- SdrHdl* pHdl = pView->PickHandle(aMDPos);
- SdrObject* pObj;
- SdrPageView* pPV;
-
- // hit selected object?
- if ( pHdl!=NULL || pView->IsMarkedHit(aMDPos, nHitLog) )
- {
- pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
- }
- else
- {
- // if not multi selection, unmark all
- if ( !rMEvt.IsShift() )
- pView->UnmarkAll();
- else
- {
- if( pView->PickObj( aMDPos, nHitLog, pObj, pPV ) )
- {
- //if( pObj->ISA( DlgEdForm ) )
- // pView->UnmarkAll();
- //else
- // pParent->UnmarkDialog();
- }
- }
-
- if ( pView->MarkObj(aMDPos, nHitLog) )
- {
- // drag object
- pHdl=pView->PickHandle(aMDPos);
- pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
- }
- else
- {
- // select object
- pView->BegMarkObj(aMDPos);
- bMarkAction = sal_True;
- }
- }
- }
- else if ( rMEvt.IsLeft() && rMEvt.GetClicks() == 2 )
- {
- // if object was hit, show property browser
- if ( pView->IsMarkedHit(aMDPos, nHitLog) && pParent->GetMode() != DLGED_READONLY )
- pParent->ShowProperties();
- }
-
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncSelect::MouseButtonUp( const MouseEvent& rMEvt )
-{
- DlgEdFunc::MouseButtonUp( rMEvt );
-
- // get view from parent
- SdrView* pView = pParent->GetView();
- Window* pWindow= pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
-
- if ( rMEvt.IsLeft() )
- {
- if ( pView->IsDragObj() )
- {
- // object was dragged
- pView->EndDragObj( rMEvt.IsMod1() );
- pView->ForceMarkedToAnotherPage();
- }
- else
- if (pView->IsAction() )
- {
- pView->EndAction();
- }
- }
-
- bMarkAction = sal_False;
-
- pWindow->SetPointer( pView->GetPreferedPointer( aPnt, pWindow, nHitLog ) );
- pWindow->ReleaseMouse();
-
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool DlgEdFuncSelect::MouseMove( const MouseEvent& rMEvt )
-{
- SdrView* pView = pParent->GetView();
- Window* pWindow= pParent->GetWindow();
- pView->SetActualWin( pWindow );
-
- Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
- sal_uInt16 nHitLog = sal_uInt16 ( pWindow->PixelToLogic(Size(3,0)).Width() );
-
- if ( pView->IsAction() )
- {
- Point aPix(rMEvt.GetPosPixel());
- Point aPnt_(pWindow->PixelToLogic(aPix));
-
- ForceScroll(aPnt_);
- pView->MovAction(aPnt_);
- }
-
- pWindow->SetPointer( pView->GetPreferedPointer( aPnt, pWindow, nHitLog ) );
-
- return sal_True;
-}
-
-//----------------------------------------------------------------------------
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */