summaryrefslogtreecommitdiff
path: root/editeng/source/editeng/editdoc.hxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2012-03-28 12:33:21 -0400
committerKohei Yoshida <kohei.yoshida@gmail.com>2012-03-28 12:46:33 -0400
commitb35980d9b28f1e3985f94238f7d8c9962f654bd0 (patch)
treed009ce569c432bf8654c4648741ef8da97823efe /editeng/source/editeng/editdoc.hxx
parent86a1e6de4fc3af897271bc5f7f04506261d4f286 (diff)
Move away from SV_DECL_PTRARR in CharAttribList.
This is a huge change. I'm sure I broke something somewhere...
Diffstat (limited to 'editeng/source/editeng/editdoc.hxx')
-rw-r--r--editeng/source/editeng/editdoc.hxx36
1 files changed, 22 insertions, 14 deletions
diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index e9b196cc5cea..7ddaa392c2f8 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -208,10 +208,13 @@ public:
// -------------------------------------------------------------------------
class CharAttribList
{
+public:
+ typedef boost::ptr_vector<EditCharAttrib> AttribsType;
+
private:
- CharAttribArray aAttribs;
+ AttribsType aAttribs;
SvxFont aDefFont; // faster than ever from the pool!
- sal_Bool bHasEmptyAttribs;
+ bool bHasEmptyAttribs;
CharAttribList( const CharAttribList& ) {;}
@@ -223,27 +226,32 @@ public:
void RemoveItemsFromPool( SfxItemPool* pItemPool );
EditCharAttrib* FindAttrib( sal_uInt16 nWhich, sal_uInt16 nPos );
- EditCharAttrib* FindNextAttrib( sal_uInt16 nWhich, sal_uInt16 nFromPos ) const;
+ const EditCharAttrib* FindNextAttrib( sal_uInt16 nWhich, sal_uInt16 nFromPos ) const;
EditCharAttrib* FindEmptyAttrib( sal_uInt16 nWhich, sal_uInt16 nPos );
- EditCharAttrib* FindFeature( sal_uInt16 nPos ) const;
+ const EditCharAttrib* FindFeature( sal_uInt16 nPos ) const;
void ResortAttribs();
void OptimizeRanges( SfxItemPool& rItemPool );
- sal_uInt16 Count() { return aAttribs.Count(); }
- void Clear() { aAttribs.Remove( 0, aAttribs.Count()); }
+ size_t Count() const;
+ void Clear();
+
void InsertAttrib( EditCharAttrib* pAttrib );
SvxFont& GetDefFont() { return aDefFont; }
- sal_Bool HasEmptyAttribs() const { return bHasEmptyAttribs; }
- sal_Bool& HasEmptyAttribs() { return bHasEmptyAttribs; }
- sal_Bool HasBoundingAttrib( sal_uInt16 nBound );
- sal_Bool HasAttrib( sal_uInt16 nStartPos, sal_uInt16 nEndPos ) const;
+ bool HasEmptyAttribs() const { return bHasEmptyAttribs; }
+ void SetHasEmptyAttribs(bool b);
+ bool HasBoundingAttrib( sal_uInt16 nBound ) const;
+ bool HasAttrib( sal_uInt16 nStartPos, sal_uInt16 nEndPos ) const;
+
+ AttribsType& GetAttribs();
+ const AttribsType& GetAttribs() const;
+
+ void Remove(const EditCharAttrib* p);
+ void Remove(size_t nPos);
- CharAttribArray& GetAttribs() { return aAttribs; }
- const CharAttribArray& GetAttribs() const { return aAttribs; }
#if OSL_DEBUG_LEVEL > 2
// Debug:
bool DbgCheckAttribs() const;
@@ -788,9 +796,9 @@ inline EditPaM EditDoc::GetEndPaM() const
return EditPaM( pLastNode, pLastNode->Len() );
}
-inline EditCharAttrib* GetAttrib( const CharAttribArray& rAttribs, sal_uInt16 nAttr )
+inline EditCharAttrib* GetAttrib(CharAttribList::AttribsType& rAttribs, size_t nAttr)
{
- return ( nAttr < rAttribs.Count() ) ? rAttribs[nAttr] : 0;
+ return (nAttr < rAttribs.size()) ? &rAttribs[nAttr] : NULL;
}
sal_Bool CheckOrderedList( CharAttribArray& rAttribs, sal_Bool bStart );