summaryrefslogtreecommitdiff
path: root/editeng/inc/editeng/tstpitem.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/inc/editeng/tstpitem.hxx')
-rw-r--r--editeng/inc/editeng/tstpitem.hxx185
1 files changed, 185 insertions, 0 deletions
diff --git a/editeng/inc/editeng/tstpitem.hxx b/editeng/inc/editeng/tstpitem.hxx
new file mode 100644
index 000000000000..887258c20f4f
--- /dev/null
+++ b/editeng/inc/editeng/tstpitem.hxx
@@ -0,0 +1,185 @@
+/*************************************************************************
+ *
+ * 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 _SVX_TSPTITEM_HXX
+#define _SVX_TSPTITEM_HXX
+
+// include ---------------------------------------------------------------
+
+#include <svl/poolitem.hxx>
+#include <editeng/svxenum.hxx>
+#include <editeng/editengdllapi.h>
+
+// class SvxTabStop ------------------------------------------------------
+
+#define SVX_TAB_DEFCOUNT 10
+#define SVX_TAB_DEFDIST 1134 // 2cm in twips
+#define SVX_TAB_NOTFOUND USHRT_MAX
+#define cDfltDecimalChar (sal_Unicode(0x00)) // aus IntlWrapper besorgen
+#define cDfltFillChar (sal_Unicode(' '))
+
+class EDITENG_DLLPUBLIC SvxTabStop
+{
+private:
+ long nTabPos;
+
+ SvxTabAdjust eAdjustment;
+ mutable sal_Unicode m_cDecimal;
+ sal_Unicode cFill;
+
+ EDITENG_DLLPRIVATE friend SvStream& operator<<( SvStream&, SvxTabStop& );
+
+ void fillDecimal() const;
+
+public:
+ SvxTabStop();
+#if (_MSC_VER < 1300)
+ SvxTabStop( const long nPos,
+ const SvxTabAdjust eAdjst = SVX_TAB_ADJUST_LEFT,
+ const sal_Unicode cDec = cDfltDecimalChar,
+ const sal_Unicode cFil = cDfltFillChar );
+#else
+ SvxTabStop::SvxTabStop( const long nPos,
+ const SvxTabAdjust eAdjst = SVX_TAB_ADJUST_LEFT,
+ const sal_Unicode cDec = cDfltDecimalChar,
+ const sal_Unicode cFil = cDfltFillChar );
+#endif
+
+ long& GetTabPos() { return nTabPos; }
+ long GetTabPos() const { return nTabPos; }
+
+ SvxTabAdjust& GetAdjustment() { return eAdjustment; }
+ SvxTabAdjust GetAdjustment() const { return eAdjustment; }
+
+ sal_Unicode& GetDecimal() { fillDecimal(); return m_cDecimal; }
+ sal_Unicode GetDecimal() const { fillDecimal(); return m_cDecimal; }
+
+ sal_Unicode& GetFill() { return cFill; }
+ sal_Unicode GetFill() const { return cFill; }
+
+ String GetValueString() const;
+
+ // das "alte" operator==()
+ BOOL IsEqual( const SvxTabStop& rTS ) const
+ {
+ return ( nTabPos == rTS.nTabPos &&
+ eAdjustment == rTS.eAdjustment &&
+ m_cDecimal == rTS.m_cDecimal &&
+ cFill == rTS.cFill );
+ }
+
+ // Fuer das SortedArray:
+ BOOL operator==( const SvxTabStop& rTS ) const
+ { return nTabPos == rTS.nTabPos; }
+ BOOL operator <( const SvxTabStop& rTS ) const
+ { return nTabPos < rTS.nTabPos; }
+
+ SvxTabStop& operator=( const SvxTabStop& rTS )
+ {
+ nTabPos = rTS.nTabPos;
+ eAdjustment = rTS.eAdjustment;
+ m_cDecimal = rTS.m_cDecimal;
+ cFill = rTS.cFill;
+ return *this;
+ }
+};
+
+// class SvxTabStopItem --------------------------------------------------
+
+SV_DECL_VARARR_SORT_VISIBILITY( SvxTabStopArr, SvxTabStop, SVX_TAB_DEFCOUNT, 1, EDITENG_DLLPUBLIC )
+
+/*
+[Beschreibung]
+Dieses Item beschreibt eine Liste von TabStops.
+*/
+
+class EDITENG_DLLPUBLIC SvxTabStopItem : public SfxPoolItem, private SvxTabStopArr
+{
+//friend class SvxTabStopObject_Impl;
+
+public:
+ TYPEINFO();
+
+ SvxTabStopItem( USHORT nWhich );
+ SvxTabStopItem( const USHORT nTabs,
+ const USHORT nDist,
+ const SvxTabAdjust eAdjst /*= SVX_TAB_ADJUST_DEFAULT*/,
+ USHORT nWhich );
+ SvxTabStopItem( const SvxTabStopItem& rTSI );
+
+ // Liefert Index-Position des Tabs zurueck oder TAB_NOTFOUND
+ USHORT GetPos( const SvxTabStop& rTab ) const;
+
+ // Liefert Index-Position des Tabs an nPos zurueck oder TAB_NOTFOUND
+ USHORT GetPos( const long nPos ) const;
+
+ // entprivatisiert:
+ USHORT Count() const { return SvxTabStopArr::Count(); }
+ BOOL Insert( const SvxTabStop& rTab );
+ void Insert( const SvxTabStopItem* pTabs, USHORT nStart = 0,
+ USHORT nEnd = USHRT_MAX );
+ void Remove( SvxTabStop& rTab )
+ { SvxTabStopArr::Remove( rTab ); }
+ void Remove( const USHORT nPos, const USHORT nLen = 1 )
+ { SvxTabStopArr::Remove( nPos, nLen ); }
+
+ // Zuweisungsoperator, Gleichheitsoperator (vorsicht: teuer!)
+ SvxTabStopItem& operator=( const SvxTabStopItem& rTSI );
+
+ // this is already included in SfxPoolItem declaration
+ //int operator!=( const SvxTabStopItem& rTSI ) const
+ // { return !( operator==( rTSI ) ); }
+
+ // SortedArrays liefern nur Stackobjekte zurueck!
+ const SvxTabStop& operator[]( const USHORT nPos ) const
+ {
+ DBG_ASSERT( GetStart() &&
+ nPos < Count(), "op[]" );
+ return *( GetStart() + nPos );
+ }
+ const SvxTabStop* GetStart() const
+ { return SvxTabStopArr::GetData(); }
+
+ // "pure virtual Methoden" vom SfxPoolItem
+ virtual int operator==( const SfxPoolItem& ) const;
+ virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
+ virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
+
+ virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
+ SfxMapUnit eCoreMetric,
+ SfxMapUnit ePresMetric,
+ String &rText, const IntlWrapper * = 0 ) const;
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual SfxPoolItem* Create( SvStream&, USHORT ) const;
+ virtual SvStream& Store( SvStream& , USHORT nItemVersion ) const;
+
+ using SvxTabStopArr::Insert;
+ using SvxTabStopArr::Remove;
+};
+
+#endif
+