summaryrefslogtreecommitdiff
path: root/basic/source/app/brkpnts.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basic/source/app/brkpnts.cxx')
-rw-r--r--basic/source/app/brkpnts.cxx386
1 files changed, 0 insertions, 386 deletions
diff --git a/basic/source/app/brkpnts.cxx b/basic/source/app/brkpnts.cxx
deleted file mode 100644
index 98c39bc145..0000000000
--- a/basic/source/app/brkpnts.cxx
+++ /dev/null
@@ -1,386 +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_basic.hxx"
-#include <basic/sbx.hxx>
-#include <basic/sbmod.hxx>
-#include <basic/sbstar.hxx>
-#include <basic/sbmeth.hxx>
-#include <vcl/image.hxx>
-#include <svtools/textdata.hxx>
-#include <tools/config.hxx>
-#include <vcl/gradient.hxx>
-
-#include <basic/ttstrhlp.hxx>
-
-#include <rtl/strbuf.hxx>
-
-#include "brkpnts.hxx"
-#include "basic.hrc"
-#include "resids.hrc"
-#include "basrid.hxx"
-
-struct Breakpoint
-{
- sal_uInt32 nLine;
- Breakpoint( sal_uInt32 nL ) { nLine = nL; }
-};
-
-ImageList* BreakpointWindow::pImages = NULL;
-
-BreakpointWindow::BreakpointWindow( Window *pParent )
-: Window( pParent )
-, nCurYOffset( 0 )
-, nMarkerPos( MARKER_NOMARKER )
-, pModule( NULL )
-, bErrorMarker( sal_False )
-{
- if ( !pImages )
- pImages = new ImageList( SttResId( RID_IMGLST_LAYOUT ) );
-
- Gradient aGradient( GRADIENT_AXIAL, Color( 185, 182, 215 ), Color( 250, 245, 255 ) );
- aGradient.SetAngle(900);
- SetBackground( aGradient );
- Show();
-}
-
-
-void BreakpointWindow::Reset()
-{
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- delete BreakpointList[ i ];
- BreakpointList.clear();
-
- pModule->ClearAllBP();
-}
-
-void BreakpointWindow::SetModule( SbModule *pMod )
-{
- pModule = pMod;
- sal_uInt16 i;
- for ( i=0 ; i < pModule->GetBPCount() ; i++ )
- {
- InsertBreakpoint( pModule->GetBP( i ) );
- }
- SetBPsInModule();
-}
-
-
-void BreakpointWindow::SetBPsInModule()
-{
- pModule->ClearAllBP();
-
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBrk = BreakpointList[ i ];
- pModule->SetBP( (sal_uInt16)pBrk->nLine );
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( (sal_uInt16)pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" );
-#endif
- }
- for ( sal_uInt16 nMethod = 0; nMethod < pModule->GetMethods()->Count(); nMethod++ )
- {
- SbMethod* pMethod = (SbMethod*)pModule->GetMethods()->Get( nMethod );
- DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
- pMethod->SetDebugFlags( pMethod->GetDebugFlags() | SbDEBUG_BREAK );
- }
-}
-
-
-void BreakpointWindow::InsertBreakpoint( sal_uInt32 nLine )
-{
- Breakpoint* pNewBrk = new Breakpoint( nLine );
-
- for ( ::std::vector< Breakpoint* >::iterator i = BreakpointList.begin();
- i < BreakpointList.end();
- ++ i
- )
- {
- Breakpoint* pBrk = *i;
- if ( nLine <= pBrk->nLine )
- {
- if ( nLine != pBrk->nLine )
- BreakpointList.insert( i, pNewBrk );
- else
- delete pNewBrk;
- pNewBrk = NULL;
- break;
- }
- }
-
- // No insert position found => LIST_APPEND
- if ( pNewBrk )
- BreakpointList.push_back( pNewBrk );
-
- Invalidate();
-
- if ( pModule->SetBP( nLine ) )
- {
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" );
-#endif
- if ( StarBASIC::IsRunning() )
- {
- for ( sal_uInt16 nMethod = 0; nMethod < pModule->GetMethods()->Count(); nMethod++ )
- {
- SbMethod* pMethod = (SbMethod*)pModule->GetMethods()->Get( nMethod );
- DBG_ASSERT( pMethod, "Methode nicht gefunden! (NULL)" );
- pMethod->SetDebugFlags( pMethod->GetDebugFlags() | SbDEBUG_BREAK );
- }
- }
- }
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( nLine ), "Brechpunkt wurde nicht gesetzt" );
-#endif
-}
-
-
-Breakpoint* BreakpointWindow::FindBreakpoint( sal_uInt32 nLine )
-{
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBP = BreakpointList[ i ];
- if ( pBP->nLine == nLine )
- return pBP;
- }
- return NULL;
-}
-
-
-void BreakpointWindow::AdjustBreakpoints( sal_uInt32 nLine, bool bInserted )
-{
- if ( nLine == 0 ) //TODO: nLine == TEXT_PARA_ALL+1
- return;
-
- for ( size_t i = 0; i < BreakpointList.size(); )
- {
- Breakpoint* pBrk = BreakpointList[ i ];
- bool bDelBrk = false;
-
- if ( pBrk->nLine == nLine )
- {
- if ( bInserted )
- pBrk->nLine++;
- else
- bDelBrk = true;
- }
- else if ( pBrk->nLine > nLine )
- {
- if ( bInserted )
- pBrk->nLine++;
- else
- pBrk->nLine--;
- }
- if ( bDelBrk )
- {
- delete pBrk;
- ::std::vector< Breakpoint* >::iterator it = BreakpointList.begin();
- ::std::advance( it, i );
- BreakpointList.erase( it );
- }
- else
- {
- ++i;
- }
- }
-
- Invalidate();
-}
-
-
-void BreakpointWindow::LoadBreakpoints( String aFilename )
-{
- Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
-
- aConfig.SetGroup("Breakpoints");
-
- ByteString aBreakpoints;
- aBreakpoints = aConfig.ReadKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ) );
-
- xub_StrLen i;
-
- for ( i = 0 ; i < aBreakpoints.GetTokenCount( ';' ) ; i++ )
- {
- InsertBreakpoint( (sal_uInt16)aBreakpoints.GetToken( i, ';' ).ToInt32() );
- }
-}
-
-
-void BreakpointWindow::SaveBreakpoints( String aFilename )
-{
- rtl::OStringBuffer aBreakpoints;
-
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBrk = BreakpointList[ i ];
- if (aBreakpoints.getLength())
- aBreakpoints.append(';');
- aBreakpoints.append(static_cast<sal_Int32>(pBrk->nLine));
- }
-
- Config aConfig(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
-
- aConfig.SetGroup("Breakpoints");
-
- if (aBreakpoints.getLength())
- aConfig.WriteKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ), aBreakpoints.makeStringAndClear() );
- else
- aConfig.DeleteKey( ByteString( aFilename, RTL_TEXTENCODING_UTF8 ) );
-}
-
-
-void BreakpointWindow::Paint( const Rectangle& )
-{
- Size aOutSz( GetOutputSize() );
- long nLineHeight = GetTextHeight();
-
- Image aBrk( pImages->GetImage( IMGID_BRKENABLED ) );
- Size aBmpSz( aBrk.GetSizePixel() );
- aBmpSz = PixelToLogic( aBmpSz );
- Point aBmpOff( 0, 0 );
- aBmpOff.X() = ( aOutSz.Width() - aBmpSz.Width() ) / 2;
- aBmpOff.Y() = ( nLineHeight - aBmpSz.Height() ) / 2;
-
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBrk = BreakpointList[ i ];
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT( !pModule->IsCompiled() || pModule->IsBP( pBrk->nLine ), "Brechpunkt wurde nicht gesetzt" );
-#endif
- sal_Int32 nLine = pBrk->nLine-1;
- sal_Int32 nY = nLine*nLineHeight - nCurYOffset;
- DrawImage( Point( 0, nY ) + aBmpOff, aBrk );
- }
- ShowMarker( sal_True );
-}
-
-
-Breakpoint* BreakpointWindow::FindBreakpoint( const Point& rMousePos )
-{
- sal_Int32 nLineHeight = GetTextHeight();
- sal_Int32 nYPos = rMousePos.Y() + nCurYOffset;
-
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBrk = BreakpointList[ i ];
- sal_Int32 nLine = pBrk->nLine-1;
- sal_Int32 nY = nLine * nLineHeight;
- if ( ( nYPos > nY ) && ( nYPos < ( nY + nLineHeight ) ) )
- return pBrk;
- }
- return NULL;
-}
-
-
-void BreakpointWindow::ToggleBreakpoint( sal_uInt32 nLine )
-{
- bool Removed = false;
- for ( size_t i = 0, n = BreakpointList.size(); i < n; ++i )
- {
- Breakpoint* pBP = BreakpointList[ i ];
- if ( pBP->nLine == nLine ) // remove
- {
- pModule->ClearBP( nLine );
- delete pBP;
- ::std::vector< Breakpoint* >::iterator it = BreakpointList.begin();
- ::std::advance( it, i );
- BreakpointList.erase( it );
- Removed = true;
- break;
- }
- }
-
- if ( !Removed ) // create one
- InsertBreakpoint( nLine );
-
- Invalidate();
-}
-
-void BreakpointWindow::ShowMarker( bool bShow )
-{
- if ( nMarkerPos == MARKER_NOMARKER )
- return;
-
- Size aOutSz( GetOutputSize() );
- long nLineHeight = GetTextHeight();
-
- Image aMarker;
- if ( bErrorMarker )
- aMarker = pImages->GetImage( IMGID_ERRORMARKER );
- else
- aMarker = pImages->GetImage( IMGID_STEPMARKER );
-
- Size aMarkerSz( aMarker.GetSizePixel() );
- aMarkerSz = PixelToLogic( aMarkerSz );
- Point aMarkerOff( 0, 0 );
- aMarkerOff.X() = ( aOutSz.Width() - aMarkerSz.Width() ) / 2;
- aMarkerOff.Y() = ( nLineHeight - aMarkerSz.Height() ) / 2;
-
- sal_uIntPtr nY = nMarkerPos*nLineHeight - nCurYOffset;
- Point aPos( 0, nY );
- aPos += aMarkerOff;
- if ( bShow )
- DrawImage( aPos, aMarker );
- else
- Invalidate( Rectangle( aPos, aMarkerSz ) );
-}
-
-
-void BreakpointWindow::MouseButtonDown( const MouseEvent& rMEvt )
-{
- if ( rMEvt.GetClicks() == 2 )
- {
- Point aMousePos( PixelToLogic( rMEvt.GetPosPixel() ) );
- long nLineHeight = GetTextHeight();
- long nYPos = aMousePos.Y() + nCurYOffset;
- long nLine = nYPos / nLineHeight + 1;
- ToggleBreakpoint( sal::static_int_cast< sal_uInt16 >(nLine) );
- Invalidate();
- }
-}
-
-
-void BreakpointWindow::SetMarkerPos( sal_uInt32 nLine, bool bError )
-{
- ShowMarker( false ); // Remove old one
- nMarkerPos = nLine;
- bErrorMarker = bError;
- ShowMarker( true ); // Draw new one
- Update();
-}
-
-
-void BreakpointWindow::Scroll( long nHorzScroll, long nVertScroll, sal_uInt16 nFlags )
-{
- (void) nFlags; /* avoid warning about unused parameter */
- nCurYOffset -= nVertScroll;
- Window::Scroll( nHorzScroll, nVertScroll );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */