summaryrefslogtreecommitdiff
path: root/basctl/source
diff options
context:
space:
mode:
authorAugust Sodora <augsod@gmail.com>2011-12-04 22:01:35 -0500
committerAugust Sodora <augsod@gmail.com>2011-12-04 22:02:03 -0500
commitf81a7438409ee9cede09b0395d8af0943220a4ea (patch)
tree5e6cbd9f1be93355bd9951debecb7e5080f92e3e /basctl/source
parente7b6c4ac5fc38a05571201b92b81b163348602b5 (diff)
Refactor BreakPoint
Diffstat (limited to 'basctl/source')
-rw-r--r--basctl/source/basicide/baside2.hxx1
-rw-r--r--basctl/source/basicide/baside2b.cxx2
-rw-r--r--basctl/source/basicide/bastypes.cxx121
-rw-r--r--basctl/source/basicide/breakpoint.cxx179
-rw-r--r--basctl/source/basicide/breakpoint.hxx79
-rw-r--r--basctl/source/basicide/brkdlg.cxx15
-rw-r--r--basctl/source/inc/bastypes.hxx57
7 files changed, 266 insertions, 188 deletions
diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx
index 119aa6044ec5..e9378ab30a78 100644
--- a/basctl/source/basicide/baside2.hxx
+++ b/basctl/source/basicide/baside2.hxx
@@ -51,6 +51,7 @@ class SvxSearchItem;
#include <sfx2/progress.hxx>
#include <svtools/syntaxhighlight.hxx>
+#include "breakpoint.hxx"
#include "linenumberwindow.hxx"
DBG_NAMEEX( ModulWindow )
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 4ad4eea2dca2..dfef3853e02a 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -26,14 +26,12 @@
*
************************************************************************/
-
#define _BASIC_TEXTPORTIONS
#include "helpid.hrc"
#include "baside2.hrc"
#include "baside2.hxx"
-#include "basobj.hxx"
#include "brkdlg.hxx"
#include "iderdll.hxx"
#include "iderdll2.hxx"
diff --git a/basctl/source/basicide/bastypes.cxx b/basctl/source/basicide/bastypes.cxx
index 2ced84170073..21dfce98eb6d 100644
--- a/basctl/source/basicide/bastypes.cxx
+++ b/basctl/source/basicide/bastypes.cxx
@@ -252,127 +252,6 @@ Window* IDEBaseWindow::GetLayoutWindow()
return NULL;
}
-BreakPointList::BreakPointList()
-{}
-
-BreakPointList::BreakPointList(BreakPointList const & rList)
-{
- for (size_t i = 0; i < rList.size(); ++i)
- maBreakPoints.push_back( new BreakPoint(*rList.at( i ) ) );
-}
-
-BreakPointList::~BreakPointList()
-{
- reset();
-}
-
-void BreakPointList::reset()
-{
- for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
- delete maBreakPoints[ i ];
- maBreakPoints.clear();
-}
-
-void BreakPointList::transfer(BreakPointList & rList)
-{
- reset();
- for (size_t i = 0; i < rList.size(); ++i)
- maBreakPoints.push_back( rList.at( i ) );
- rList.clear();
-}
-
-void BreakPointList::InsertSorted( BreakPoint* pNewBrk )
-{
- for ( vector< BreakPoint* >::iterator i = maBreakPoints.begin(); i < maBreakPoints.end(); ++i )
- {
- if ( pNewBrk->nLine <= (*i)->nLine )
- {
- DBG_ASSERT( ( (*i)->nLine != pNewBrk->nLine ) || pNewBrk->bTemp, "BreakPoint existiert schon!" );
- maBreakPoints.insert( i, pNewBrk );
- return;
- }
- }
- // no insert position found => LIST_APPEND
- maBreakPoints.push_back( pNewBrk );
-}
-
-void BreakPointList::SetBreakPointsInBasic( SbModule* pModule )
-{
- pModule->ClearAllBP();
-
- for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
- {
- BreakPoint* pBrk = maBreakPoints[ i ];
- if ( pBrk->bEnabled )
- pModule->SetBP( (sal_uInt16)pBrk->nLine );
- }
-}
-
-BreakPoint* BreakPointList::FindBreakPoint( size_t nLine )
-{
- for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
- {
- BreakPoint* pBrk = maBreakPoints[ i ];
- if ( pBrk->nLine == nLine )
- return pBrk;
- }
- return NULL;
-}
-
-void BreakPointList::AdjustBreakPoints( size_t nLine, bool bInserted )
-{
- for ( size_t i = 0; i < maBreakPoints.size(); )
- {
- BreakPoint* pBrk = maBreakPoints[ 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 remove( pBrk );
- }
- else
- {
- ++i;
- }
- }
-}
-
-void BreakPointList::ResetHitCount()
-{
- for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
- {
- BreakPoint* pBrk = maBreakPoints[ i ];
- pBrk->nHitCount = 0;
- }
-}
-
-BreakPoint* BreakPointList::remove( BreakPoint* ptr )
-{
- for ( vector< BreakPoint* >::iterator i = maBreakPoints.begin(); i < maBreakPoints.end(); ++i )
- {
- if ( ptr == *i )
- {
- maBreakPoints.erase( i );
- return ptr;
- }
- }
- return NULL;
-}
-
void IDEBaseWindow::Deactivating()
{
}
diff --git a/basctl/source/basicide/breakpoint.cxx b/basctl/source/basicide/breakpoint.cxx
new file mode 100644
index 000000000000..b76317438b2a
--- /dev/null
+++ b/basctl/source/basicide/breakpoint.cxx
@@ -0,0 +1,179 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#include "breakpoint.hxx"
+
+#include <basic/sbmod.hxx>
+#include <tools/debug.hxx>
+
+BreakPointList::BreakPointList()
+{}
+
+BreakPointList::BreakPointList(BreakPointList const & rList)
+{
+ for (size_t i = 0; i < rList.size(); ++i)
+ maBreakPoints.push_back( new BreakPoint(*rList.at( i ) ) );
+}
+
+BreakPointList::~BreakPointList()
+{
+ reset();
+}
+
+void BreakPointList::reset()
+{
+ for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
+ delete maBreakPoints[ i ];
+ maBreakPoints.clear();
+}
+
+void BreakPointList::transfer(BreakPointList & rList)
+{
+ reset();
+ for (size_t i = 0; i < rList.size(); ++i)
+ maBreakPoints.push_back( rList.at( i ) );
+ rList.clear();
+}
+
+void BreakPointList::InsertSorted(BreakPoint* pNewBrk)
+{
+ for ( ::std::vector< BreakPoint* >::iterator i = maBreakPoints.begin(); i < maBreakPoints.end(); ++i )
+ {
+ if ( pNewBrk->nLine <= (*i)->nLine )
+ {
+ DBG_ASSERT( ( (*i)->nLine != pNewBrk->nLine ) || pNewBrk->bTemp, "BreakPoint existiert schon!" );
+ maBreakPoints.insert( i, pNewBrk );
+ return;
+ }
+ }
+ // no insert position found => LIST_APPEND
+ maBreakPoints.push_back( pNewBrk );
+}
+
+void BreakPointList::SetBreakPointsInBasic(SbModule* pModule)
+{
+ pModule->ClearAllBP();
+
+ for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
+ {
+ BreakPoint* pBrk = maBreakPoints[ i ];
+ if ( pBrk->bEnabled )
+ pModule->SetBP( (sal_uInt16)pBrk->nLine );
+ }
+}
+
+BreakPoint* BreakPointList::FindBreakPoint(size_t nLine)
+{
+ for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
+ {
+ BreakPoint* pBrk = maBreakPoints[ i ];
+ if ( pBrk->nLine == nLine )
+ return pBrk;
+ }
+ return NULL;
+}
+
+void BreakPointList::AdjustBreakPoints(size_t nLine, bool bInserted)
+{
+ for ( size_t i = 0; i < maBreakPoints.size(); )
+ {
+ BreakPoint* pBrk = maBreakPoints[ 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 remove( pBrk );
+ }
+ else
+ {
+ ++i;
+ }
+ }
+}
+
+void BreakPointList::ResetHitCount()
+{
+ for ( size_t i = 0, n = maBreakPoints.size(); i < n; ++i )
+ {
+ BreakPoint* pBrk = maBreakPoints[ i ];
+ pBrk->nHitCount = 0;
+ }
+}
+
+BreakPoint* BreakPointList::remove(BreakPoint* ptr)
+{
+ for ( ::std::vector< BreakPoint* >::iterator i = maBreakPoints.begin(); i < maBreakPoints.end(); ++i )
+ {
+ if ( ptr == *i )
+ {
+ maBreakPoints.erase( i );
+ return ptr;
+ }
+ }
+ return NULL;
+}
+
+size_t BreakPointList::size() const
+{
+ return maBreakPoints.size();
+}
+
+BreakPoint* BreakPointList::at(size_t i)
+{
+ return i < maBreakPoints.size() ? maBreakPoints[ i ] : NULL;
+}
+
+const BreakPoint* BreakPointList::at(size_t i) const
+{
+ return i < maBreakPoints.size() ? maBreakPoints[ i ] : NULL;
+}
+
+void BreakPointList::push_back(BreakPoint* item)
+{
+ maBreakPoints.push_back( item );
+}
+
+void BreakPointList::clear()
+{
+ maBreakPoints.clear();
+}
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/basicide/breakpoint.hxx b/basctl/source/basicide/breakpoint.hxx
new file mode 100644
index 000000000000..16cdfa3ce7d0
--- /dev/null
+++ b/basctl/source/basicide/breakpoint.hxx
@@ -0,0 +1,79 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+#ifndef _BREAKPOINT_HXX
+#define _BREAKPOINT_HXX
+
+#include <vector>
+
+class SbModule;
+
+struct BreakPoint
+{
+ bool bEnabled;
+ bool bTemp;
+ size_t nLine;
+ size_t nStopAfter;
+ size_t nHitCount;
+
+ BreakPoint(size_t nL) { nLine = nL; nStopAfter = 0; nHitCount = 0; bEnabled = true; bTemp = false; }
+};
+
+class BreakPointList
+{
+private:
+ void operator =(BreakPointList); // not implemented
+ ::std::vector<BreakPoint*> maBreakPoints;
+
+public:
+ BreakPointList();
+
+ BreakPointList(BreakPointList const & rList);
+
+ ~BreakPointList();
+
+ void reset();
+
+ void transfer(BreakPointList & rList);
+
+ void InsertSorted(BreakPoint* pBrk);
+ BreakPoint* FindBreakPoint(size_t nLine);
+ void AdjustBreakPoints(size_t nLine, bool bInserted);
+ void SetBreakPointsInBasic(SbModule* pModule);
+ void ResetHitCount();
+
+ size_t size() const;
+ BreakPoint* at(size_t i);
+ const BreakPoint* at(size_t i) const;
+ void push_back(BreakPoint* item);
+ void clear();
+ BreakPoint* remove(BreakPoint* ptr);
+};
+
+#endif // _BREAKPOINT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/basicide/brkdlg.cxx b/basctl/source/basicide/brkdlg.cxx
index 5dd4b3a13a92..3365e13897cb 100644
--- a/basctl/source/basicide/brkdlg.cxx
+++ b/basctl/source/basicide/brkdlg.cxx
@@ -26,17 +26,16 @@
*
************************************************************************/
-
-#include <limits>
-
#include <vcl/sound.hxx>
#define _SVX_NOIDERESIDS
-#include <brkdlg.hxx>
-#include <brkdlg.hrc>
-#include <basidesh.hxx>
-#include <basidesh.hrc>
-#include <iderdll.hxx>
+#include "breakpoint.hxx"
+#include "brkdlg.hxx"
+#include "brkdlg.hrc"
+#include "basidesh.hxx"
+#include "basidesh.hrc"
+#include "iderdll.hxx"
+
#include <comphelper/string.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/viewfrm.hxx>
diff --git a/basctl/source/inc/bastypes.hxx b/basctl/source/inc/bastypes.hxx
index e8c89f00a093..fb24a2b55f11 100644
--- a/basctl/source/inc/bastypes.hxx
+++ b/basctl/source/inc/bastypes.hxx
@@ -65,17 +65,6 @@ struct BasicStatus
nBasicFlags(0) { }
};
-struct BreakPoint
-{
- bool bEnabled;
- bool bTemp;
- size_t nLine;
- size_t nStopAfter;
- size_t nHitCount;
-
- BreakPoint( size_t nL ) { nLine = nL; nStopAfter = 0; nHitCount = 0; bEnabled = true; bTemp = false; }
-};
-
class BasicDockingWindow : public DockingWindow
{
Rectangle aFloatingPosAndSize;
@@ -91,52 +80,6 @@ public:
BasicDockingWindow( Window* pParent );
};
-class BreakPointList
-{
-private:
- void operator =(BreakPointList); // not implemented
- ::std::vector< BreakPoint* > maBreakPoints;
-
-public:
- BreakPointList();
-
- BreakPointList(BreakPointList const & rList);
-
- ~BreakPointList();
-
- void reset();
-
- void transfer(BreakPointList & rList);
-
- void InsertSorted( BreakPoint* pBrk );
- BreakPoint* FindBreakPoint( size_t nLine );
- void AdjustBreakPoints( size_t nLine, bool bInserted );
- void SetBreakPointsInBasic( SbModule* pModule );
- void ResetHitCount();
-
- size_t size() const
- {
- return maBreakPoints.size();
- }
- BreakPoint* at( size_t i )
- {
- return i < maBreakPoints.size() ? maBreakPoints[ i ] : NULL;
- }
- const BreakPoint* at( size_t i ) const
- {
- return i < maBreakPoints.size() ? maBreakPoints[ i ] : NULL;
- }
- void push_back( BreakPoint* item )
- {
- maBreakPoints.push_back( item );
- }
- void clear()
- {
- maBreakPoints.clear();
- }
- BreakPoint* remove( BreakPoint* ptr );
-};
-
// helper class for sorting TabBar
class TabBarSortHelper
{