diff options
author | Kohei Yoshida <kohei.yoshida@gmail.com> | 2012-03-28 12:33:21 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@gmail.com> | 2012-03-28 12:46:33 -0400 |
commit | b35980d9b28f1e3985f94238f7d8c9962f654bd0 (patch) | |
tree | d009ce569c432bf8654c4648741ef8da97823efe /editeng/source/editeng/editdoc.hxx | |
parent | 86a1e6de4fc3af897271bc5f7f04506261d4f286 (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.hxx | 36 |
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 ); |