diff options
-rw-r--r-- | include/svx/rulritem.hxx | 86 | ||||
-rw-r--r-- | svx/source/dialog/rulritem.cxx | 251 |
2 files changed, 225 insertions, 112 deletions
diff --git a/include/svx/rulritem.hxx b/include/svx/rulritem.hxx index ea901a79e57a..b2c6195a0699 100644 --- a/include/svx/rulritem.hxx +++ b/include/svx/rulritem.hxx @@ -168,64 +168,64 @@ struct SvxColumnDescription class SVX_DLLPUBLIC SvxColumnItem : public SfxPoolItem { - std::vector<SvxColumnDescription> aColumns;// Column array - long nLeft, // Left edge for the table - nRight; // Right edge for the table; for columns always - // equal to the surrounding frame + typedef std::vector<SvxColumnDescription> SvxColumnDescriptionVector; + SvxColumnDescriptionVector aColumns; // Column array + + long nLeft; // Left edge for the table + long nRight; // Right edge for the table; for columns always + // equal to the surrounding frame sal_uInt16 nActColumn; // the current column sal_uInt8 bTable; // table? - sal_uInt8 bOrtho; // evenly spread columns + sal_uInt8 bOrtho; // evenly spread columns protected: - virtual int operator==( const SfxPoolItem& ) const; + virtual int operator==( const SfxPoolItem& ) const; + + virtual OUString GetValueText() const; - virtual OUString GetValueText() const; virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, - SfxMapUnit eCoreMetric, - SfxMapUnit ePresMetric, - OUString &rText, const IntlWrapper * = 0 ) const; + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + OUString &rText, + const IntlWrapper * = 0 ) const; + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); - virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; - virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; - virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); public: TYPEINFO(); // right edge of the surrounding frame // nLeft, nRight each the distance to the surrounding frame - SvxColumnItem(sal_uInt16 nAct = 0); // columns - SvxColumnItem(sal_uInt16 nActCol, - sal_uInt16 nLeft, sal_uInt16 nRight = 0); // Table with borders - SvxColumnItem(const SvxColumnItem &); + SvxColumnItem(sal_uInt16 nAct = 0); + SvxColumnItem(sal_uInt16 nActCol, sal_uInt16 nLeft, sal_uInt16 nRight = 0); // Table with borders + SvxColumnItem(const SvxColumnItem& aItem); ~SvxColumnItem(); const SvxColumnItem &operator=(const SvxColumnItem &); - sal_uInt16 Count() const { return aColumns.size(); } - SvxColumnDescription &operator[](sal_uInt16 i) - { return aColumns[i]; } - const SvxColumnDescription &operator[](sal_uInt16 i) const - { return aColumns[i]; } - void Insert(const SvxColumnDescription &rDesc, sal_uInt16 nPos) { - aColumns.insert(aColumns.begin() + nPos, rDesc); - } - void Append(const SvxColumnDescription &rDesc) { Insert(rDesc, Count()); } - void SetLeft(long left) { nLeft = left; } - void SetRight(long right) { nRight = right; } - void SetActColumn(sal_uInt16 nCol) { nActColumn = nCol; } - - sal_uInt16 GetActColumn() const { return nActColumn; } - sal_Bool IsFirstAct() const { return nActColumn == 0; } - sal_Bool IsLastAct() const { return nActColumn == Count()-1; } - long GetLeft() { return nLeft; } - long GetRight() { return nRight; } - - sal_Bool IsTable() const { return bTable; } - - sal_Bool CalcOrtho() const; - void SetOrtho(sal_Bool bVal) { bOrtho = bVal; } - sal_Bool IsOrtho () const { return sal_False ; } - - sal_Bool IsConsistent() const { return nActColumn < aColumns.size(); } + SvxColumnDescription& operator[](sal_uInt16 index); + const SvxColumnDescription& operator[](sal_uInt16 index) const; + SvxColumnDescription& At(sal_uInt16 index); + SvxColumnDescription& GetActiveColumnDescription(); + + sal_uInt16 Count() const; + void Insert(const SvxColumnDescription& rDesc, sal_uInt16 nPos); + void Append(const SvxColumnDescription& rDesc); + void SetLeft(long aLeft); + void SetRight(long aRight); + void SetActColumn(sal_uInt16 nCol); + sal_uInt16 GetActColumn() const; + sal_uInt16 GetColumnDescription() const; + sal_Bool IsFirstAct() const; + sal_Bool IsLastAct() const; + long GetLeft(); + long GetRight(); + sal_Bool IsTable() const; + sal_Bool CalcOrtho() const; + void SetOrtho(sal_Bool bVal); + sal_Bool IsOrtho () const; + sal_Bool IsConsistent() const; }; // class SvxObjectItem --------------------------------------------------- diff --git a/svx/source/dialog/rulritem.cxx b/svx/source/dialog/rulritem.cxx index 0f01432d9e6e..a49044cceddb 100644 --- a/svx/source/dialog/rulritem.cxx +++ b/svx/source/dialog/rulritem.cxx @@ -438,85 +438,73 @@ int SvxColumnItem::operator==(const SfxPoolItem& rCmp) const //------------------------------------------------------------------------ -OUString SvxColumnItem::GetValueText() const +SvxColumnItem::SvxColumnItem( sal_uInt16 nAct ) : + SfxPoolItem (SID_RULER_BORDERS), + nLeft (0), + nRight (0), + nActColumn (nAct), + bTable (sal_False), + bOrtho (sal_True) + { - return OUString(); } -//------------------------------------------------------------------------ - -SfxItemPresentation SvxColumnItem::GetPresentation -( - SfxItemPresentation /*ePres*/, - SfxMapUnit /*eCoreUnit*/, - SfxMapUnit /*ePresUnit*/, - OUString& /*rText*/, const IntlWrapper * -) const +SvxColumnItem::SvxColumnItem( sal_uInt16 nActCol, sal_uInt16 left, sal_uInt16 right ) : + SfxPoolItem (SID_RULER_BORDERS), + nLeft (left), + nRight (right), + nActColumn (nActCol), + bTable (sal_True), + bOrtho (sal_True) { - return SFX_ITEM_PRESENTATION_NONE; } -//------------------------------------------------------------------------ - -SfxPoolItem* SvxColumnItem::Clone( SfxItemPool * ) const +SvxColumnItem::SvxColumnItem( const SvxColumnItem& rCopy ) : + SfxPoolItem (rCopy), + nLeft (rCopy.nLeft), + nRight (rCopy.nRight), + nActColumn (rCopy.nActColumn), + bTable (rCopy.bTable), + bOrtho (rCopy.bOrtho) { - return new SvxColumnItem(*this); + aColumns.resize(rCopy.aColumns.size()); + std::copy(rCopy.aColumns.begin(), rCopy.aColumns.end(), aColumns.begin()); } -//------------------------------------------------------------------------ - -SvxColumnItem::SvxColumnItem( sal_uInt16 nAct ) : - - SfxPoolItem( SID_RULER_BORDERS ), - - nLeft ( 0 ), - nRight ( 0 ), - nActColumn ( nAct ), - bTable ( sal_False ), - bOrtho (sal_True ) - +SvxColumnItem::~SvxColumnItem() { } -//------------------------------------------------------------------------ - -SvxColumnItem::SvxColumnItem( sal_uInt16 nActCol, sal_uInt16 left, sal_uInt16 right ) : - - SfxPoolItem( SID_RULER_BORDERS ), - - nLeft ( left ), - nRight ( right ), - nActColumn ( nActCol ), - bTable ( sal_True ), - bOrtho ( sal_True ) +OUString SvxColumnItem::GetValueText() const { + return OUString(); } -SvxColumnItem::SvxColumnItem( const SvxColumnItem& rCopy ) : - SfxPoolItem( rCopy ), - nLeft ( rCopy.nLeft ), - nRight ( rCopy.nRight ), - nActColumn( rCopy.nActColumn ), - bTable ( rCopy.bTable ), - bOrtho ( rCopy.bOrtho ) +SfxItemPresentation SvxColumnItem::GetPresentation( + SfxItemPresentation /*ePres*/, + SfxMapUnit /*eCoreUnit*/, + SfxMapUnit /*ePresUnit*/, + OUString& /*rText*/, + const IntlWrapper*) const { - for(size_t i = 0; i < rCopy.Count(); ++i) - aColumns.push_back(rCopy[i]); + return SFX_ITEM_PRESENTATION_NONE; } -SvxColumnItem::~SvxColumnItem() +SfxPoolItem* SvxColumnItem::Clone(SfxItemPool* /*pPool*/) const { + return new SvxColumnItem(*this); } -const SvxColumnItem &SvxColumnItem::operator=(const SvxColumnItem &rCopy) +const SvxColumnItem& SvxColumnItem::operator=(const SvxColumnItem& rCopy) { nLeft = rCopy.nLeft; nRight = rCopy.nRight; bTable = rCopy.bTable; nActColumn = rCopy.nActColumn; - aColumns.clear(); - for(size_t i = 0; i < rCopy.Count(); ++i) - aColumns.push_back(rCopy[i]); + aColumns.resize(rCopy.aColumns.size()); + + std::copy(rCopy.aColumns.begin(), rCopy.aColumns.end(), aColumns.begin()); + return *this; } @@ -536,23 +524,31 @@ sal_Bool SvxColumnItem::CalcOrtho() const return sal_True; } -//------------------------------------------------------------------------ - bool SvxColumnItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const { nMemberId &= ~CONVERT_TWIPS; switch ( nMemberId ) { case MID_COLUMNARRAY: - { return false; - } - case MID_RIGHT: rVal <<= nRight; break; - case MID_LEFT: rVal <<= nLeft; break; - case MID_ORTHO: rVal <<= (sal_Bool) bOrtho; break; - case MID_ACTUAL: rVal <<= (sal_Int32) nActColumn; break; - case MID_TABLE: rVal <<= (sal_Bool) bTable; break; - default: OSL_FAIL("Wrong MemberId!"); return sal_False; + case MID_RIGHT: + rVal <<= nRight; + break; + case MID_LEFT: + rVal <<= nLeft; + break; + case MID_ORTHO: + rVal <<= (sal_Bool) bOrtho; + break; + case MID_ACTUAL: + rVal <<= (sal_Int32) nActColumn; + break; + case MID_TABLE: + rVal <<= (sal_Bool) bTable; + break; + default: + OSL_FAIL("Wrong MemberId!"); + return sal_False; } return true; @@ -568,17 +564,134 @@ bool SvxColumnItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nM { return false; } - case MID_RIGHT: rVal >>= nRight; break; - case MID_LEFT: rVal >>= nLeft; break; - case MID_ORTHO: rVal >>= nVal; bOrtho = (sal_Bool) nVal; break; - case MID_ACTUAL: rVal >>= nVal; nActColumn = (sal_uInt16) nVal; break; - case MID_TABLE: rVal >>= nVal; bTable = (sal_Bool) nVal; break; - default: OSL_FAIL("Wrong MemberId!"); return sal_False; + case MID_RIGHT: + rVal >>= nRight; + break; + case MID_LEFT: + rVal >>= nLeft; + break; + case MID_ORTHO: + rVal >>= nVal; + bOrtho = (sal_Bool) nVal; + break; + case MID_ACTUAL: + rVal >>= nVal; + nActColumn = (sal_uInt16) nVal; + break; + case MID_TABLE: + rVal >>= nVal; + bTable = (sal_Bool) nVal; + break; + default: + OSL_FAIL("Wrong MemberId!"); + return sal_False; } return true; } +sal_uInt16 SvxColumnItem::Count() const +{ + return aColumns.size(); +} + +SvxColumnDescription& SvxColumnItem::At(sal_uInt16 index) +{ + return aColumns[index]; +} + +SvxColumnDescription& SvxColumnItem::GetActiveColumnDescription() +{ + return aColumns[GetActColumn()]; +} + +SvxColumnDescription& SvxColumnItem::operator[](sal_uInt16 index) +{ + return aColumns[index]; +} + +const SvxColumnDescription& SvxColumnItem::operator[](sal_uInt16 index) const +{ + return aColumns[index]; +} + +void SvxColumnItem::Insert(const SvxColumnDescription &rDesc, sal_uInt16 nPos) +{ + aColumns.insert(aColumns.begin() + nPos, rDesc); +} + +void SvxColumnItem::Append(const SvxColumnDescription &rDesc) +{ + Insert(rDesc, Count()); +} + +void SvxColumnItem::SetLeft(long left) +{ + nLeft = left; +} + +void SvxColumnItem::SetRight(long right) +{ + nRight = right; +} + +void SvxColumnItem::SetActColumn(sal_uInt16 nCol) +{ + nActColumn = nCol; +} + +sal_uInt16 SvxColumnItem::GetActColumn() const +{ + return nActColumn; +} + +sal_uInt16 SvxColumnItem::GetColumnDescription() const +{ + return nActColumn; +} + +sal_Bool SvxColumnItem::IsFirstAct() const +{ + return nActColumn == 0; +} + +sal_Bool SvxColumnItem::IsLastAct() const +{ + return nActColumn == Count() - 1; +} + +long SvxColumnItem::GetLeft() +{ + return nLeft; +} + +long SvxColumnItem::GetRight() +{ + return nRight; +} + +sal_Bool SvxColumnItem::IsTable() const +{ + return bTable; +} + +sal_Bool SvxColumnItem::CalcOrtho() const; + +void SvxColumnItem::SetOrtho(sal_Bool bVal) +{ + bOrtho = bVal; +} + +sal_Bool SvxColumnItem::IsOrtho () const +{ + return sal_False; +} + +sal_Bool SvxColumnItem::IsConsistent() const +{ + return nActColumn < aColumns.size(); +} + //------------------------------------------------------------------------ int SvxObjectItem::operator==( const SfxPoolItem& rCmp ) const |