summaryrefslogtreecommitdiff
path: root/binfilter/bf_svx/source/items
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_svx/source/items')
-rw-r--r--binfilter/bf_svx/source/items/makefile.mk86
-rw-r--r--binfilter/bf_svx/source/items/svx_algitem.cxx518
-rw-r--r--binfilter/bf_svx/source/items/svx_bulitem.cxx384
-rw-r--r--binfilter/bf_svx/source/items/svx_chrtitem.cxx376
-rw-r--r--binfilter/bf_svx/source/items/svx_clipfmtitem.cxx109
-rw-r--r--binfilter/bf_svx/source/items/svx_drawitem.cxx322
-rw-r--r--binfilter/bf_svx/source/items/svx_e3ditem.cxx155
-rw-r--r--binfilter/bf_svx/source/items/svx_flditem.cxx759
-rw-r--r--binfilter/bf_svx/source/items/svx_frmitems.cxx2882
-rw-r--r--binfilter/bf_svx/source/items/svx_grfitem.cxx175
-rw-r--r--binfilter/bf_svx/source/items/svx_hlnkitem.cxx104
-rw-r--r--binfilter/bf_svx/source/items/svx_numitem.cxx937
-rw-r--r--binfilter/bf_svx/source/items/svx_pageitem.cxx278
-rw-r--r--binfilter/bf_svx/source/items/svx_paperinf.cxx179
-rw-r--r--binfilter/bf_svx/source/items/svx_paraitem.cxx1244
-rw-r--r--binfilter/bf_svx/source/items/svx_postattr.cxx90
-rw-r--r--binfilter/bf_svx/source/items/svx_rotmodit.cxx132
-rw-r--r--binfilter/bf_svx/source/items/svx_svxerr.cxx52
-rw-r--r--binfilter/bf_svx/source/items/svx_svxerr.src246
-rw-r--r--binfilter/bf_svx/source/items/svx_svxfont.cxx429
-rw-r--r--binfilter/bf_svx/source/items/svx_svxitems.src501
-rw-r--r--binfilter/bf_svx/source/items/svx_textitem.cxx2621
-rw-r--r--binfilter/bf_svx/source/items/svx_writingmodeitem.cxx91
-rw-r--r--binfilter/bf_svx/source/items/svx_xmlcnitm.cxx236
-rw-r--r--binfilter/bf_svx/source/items/svx_zoomitem.cxx98
25 files changed, 13004 insertions, 0 deletions
diff --git a/binfilter/bf_svx/source/items/makefile.mk b/binfilter/bf_svx/source/items/makefile.mk
new file mode 100644
index 000000000000..7fd6452ecb55
--- /dev/null
+++ b/binfilter/bf_svx/source/items/makefile.mk
@@ -0,0 +1,86 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
+
+PRJ=..$/..$/..
+BFPRJ=..$/..
+
+PROJECTPCH4DLL=TRUE
+PROJECTPCH=svxpch
+PROJECTPCHSOURCE=$(BFPRJ)$/util$/svx_svxpch
+
+PRJNAME=binfilter
+TARGET=svx_items
+
+NO_HIDS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : $(BFPRJ)$/util$/makefile.pmk
+INC+= -I$(PRJ)$/inc$/bf_svx
+
+# --- Files --------------------------------------------------------
+
+SRS1NAME=svx_svxitems
+SRC1FILES = \
+ svx_svxerr.src \
+ svx_svxitems.src
+
+SLOFILES= \
+ $(SLO)$/svx_writingmodeitem.obj \
+ $(SLO)$/svx_frmitems.obj \
+ $(SLO)$/svx_paraitem.obj \
+ $(SLO)$/svx_textitem.obj \
+ $(SLO)$/svx_postattr.obj \
+ $(SLO)$/svx_flditem.obj \
+ $(SLO)$/svx_hlnkitem.obj \
+ $(SLO)$/svx_svxfont.obj \
+ $(SLO)$/svx_pageitem.obj \
+ $(SLO)$/svx_paperinf.obj \
+ $(SLO)$/svx_drawitem.obj \
+ $(SLO)$/svx_algitem.obj \
+ $(SLO)$/svx_rotmodit.obj \
+ $(SLO)$/svx_svxerr.obj \
+ $(SLO)$/svx_zoomitem.obj \
+ $(SLO)$/svx_chrtitem.obj \
+ $(SLO)$/svx_bulitem.obj \
+ $(SLO)$/svx_e3ditem.obj \
+ $(SLO)$/svx_numitem.obj \
+ $(SLO)$/svx_grfitem.obj \
+ $(SLO)$/svx_clipfmtitem.obj \
+ $(SLO)$/svx_xmlcnitm.obj
+
+EXCEPTIONSFILES= \
+ $(SLO)$/svx_paraitem.obj \
+ $(SLO)$/svx_frmitems.obj \
+ $(SLO)$/svx_numitem.obj\
+ $(SLO)$/svx_xmlcnitm.obj
+
+.INCLUDE : target.mk
+
diff --git a/binfilter/bf_svx/source/items/svx_algitem.cxx b/binfilter/bf_svx/source/items/svx_algitem.cxx
new file mode 100644
index 000000000000..7adbd71dd515
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_algitem.cxx
@@ -0,0 +1,518 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include "svxitems.hrc"
+
+#define ITEMID_HORJUSTIFY 0
+#define ITEMID_VERJUSTIFY 0
+#define ITEMID_ORIENTATION 0
+#define ITEMID_LINEBREAK 0
+#define ITEMID_MARGIN 0
+
+#include <tools/stream.hxx>
+
+#include <com/sun/star/table/CellVertJustify.hpp>
+#include <com/sun/star/table/CellHoriJustify.hpp>
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#include <com/sun/star/table/CellOrientation.hpp>
+
+#include "algitem.hxx"
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+// Konvertierung fuer UNO
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+
+// STATIC DATA -----------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxHorJustifyItem, SfxEnumItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxVerJustifyItem, SfxEnumItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxOrientationItem, SfxEnumItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxMarginItem, SfxPoolItem );
+
+// class SvxHorJustifyItem -----------------------------------------------
+
+/*N*/ SvxHorJustifyItem::SvxHorJustifyItem( const SvxCellHorJustify eJustify,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxEnumItem( nId, eJustify )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+/*N*/ //------------------------------------------------------------------------
+
+/*N*/ bool SvxHorJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case MID_HORJUST_HORJUST:
+/*N*/ {
+/*N*/ table::CellHoriJustify eUno = table::CellHoriJustify_STANDARD;
+/*N*/ switch ( (SvxCellHorJustify)GetValue() )
+/*N*/ {
+/*N*/ case SVX_HOR_JUSTIFY_STANDARD: eUno = table::CellHoriJustify_STANDARD; break;
+/*N*/ case SVX_HOR_JUSTIFY_LEFT: eUno = table::CellHoriJustify_LEFT; break;
+/*N*/ case SVX_HOR_JUSTIFY_CENTER: eUno = table::CellHoriJustify_CENTER; break;
+/*N*/ case SVX_HOR_JUSTIFY_RIGHT: eUno = table::CellHoriJustify_RIGHT; break;
+/*N*/ case SVX_HOR_JUSTIFY_BLOCK: eUno = table::CellHoriJustify_BLOCK; break;
+/*?*/ case SVX_HOR_JUSTIFY_REPEAT: eUno = table::CellHoriJustify_REPEAT; break;
+/*N*/ }
+/*N*/ rVal <<= eUno;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_HORJUST_ADJUST:
+/*N*/ {
+/*N*/ // ParagraphAdjust values, as in SvxAdjustItem
+/*N*/ // (same value for ParaAdjust and ParaLastLineAdjust)
+/*N*/
+/*?*/ sal_Int16 nAdjust = style::ParagraphAdjust_LEFT;
+/*?*/ switch ( (SvxCellHorJustify)GetValue() )
+/*?*/ {
+/*?*/ // ParagraphAdjust_LEFT is used for STANDARD and REPEAT
+/*?*/ case SVX_HOR_JUSTIFY_STANDARD:
+/*?*/ case SVX_HOR_JUSTIFY_REPEAT:
+/*?*/ case SVX_HOR_JUSTIFY_LEFT: nAdjust = style::ParagraphAdjust_LEFT; break;
+/*?*/ case SVX_HOR_JUSTIFY_CENTER: nAdjust = style::ParagraphAdjust_CENTER; break;
+/*?*/ case SVX_HOR_JUSTIFY_RIGHT: nAdjust = style::ParagraphAdjust_RIGHT; break;
+/*?*/ case SVX_HOR_JUSTIFY_BLOCK: nAdjust = style::ParagraphAdjust_BLOCK; break;
+/*?*/ }
+/*?*/ rVal <<= nAdjust; // as sal_Int16
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+/*N*/ bool SvxHorJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case MID_HORJUST_HORJUST:
+/*N*/ {
+/*N*/ table::CellHoriJustify eUno;
+/*N*/ if(!(rVal >>= eUno))
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ eUno = (table::CellHoriJustify)nValue;
+/*N*/ }
+/*N*/ SvxCellHorJustify eSvx = SVX_HOR_JUSTIFY_STANDARD;
+/*N*/ switch (eUno)
+/*N*/ {
+/*N*/ case table::CellHoriJustify_STANDARD: eSvx = SVX_HOR_JUSTIFY_STANDARD; break;
+/*N*/ case table::CellHoriJustify_LEFT: eSvx = SVX_HOR_JUSTIFY_LEFT; break;
+/*N*/ case table::CellHoriJustify_CENTER: eSvx = SVX_HOR_JUSTIFY_CENTER; break;
+/*N*/ case table::CellHoriJustify_RIGHT: eSvx = SVX_HOR_JUSTIFY_RIGHT; break;
+/*N*/ case table::CellHoriJustify_BLOCK: eSvx = SVX_HOR_JUSTIFY_BLOCK; break;
+/*?*/ case table::CellHoriJustify_REPEAT: eSvx = SVX_HOR_JUSTIFY_REPEAT; break;
+/*N*/ }
+/*N*/ SetValue( eSvx );
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_HORJUST_ADJUST:
+/*N*/ {
+/*N*/ // property contains ParagraphAdjust values as sal_Int16
+/*N*/ sal_Int16 nVal;
+/*?*/ if(!(rVal >>= nVal))
+/*?*/ return sal_False;
+/*?*/
+/*?*/ SvxCellHorJustify eSvx = SVX_HOR_JUSTIFY_STANDARD;
+/*?*/ switch (nVal)
+/*?*/ {
+/*?*/ // STRETCH is treated as BLOCK
+/*?*/ case style::ParagraphAdjust_LEFT: eSvx = SVX_HOR_JUSTIFY_LEFT; break;
+/*?*/ case style::ParagraphAdjust_RIGHT: eSvx = SVX_HOR_JUSTIFY_RIGHT; break;
+/*?*/ case style::ParagraphAdjust_STRETCH:
+/*?*/ case style::ParagraphAdjust_BLOCK: eSvx = SVX_HOR_JUSTIFY_BLOCK; break;
+/*?*/ case style::ParagraphAdjust_CENTER: eSvx = SVX_HOR_JUSTIFY_CENTER; break;
+/*?*/ }
+/*?*/ SetValue( eSvx );
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxHorJustifyItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxHorJustifyItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxHorJustifyItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ USHORT nVal;
+/*N*/ rStream >> nVal;
+/*N*/ return new SvxHorJustifyItem( (SvxCellHorJustify)nVal, Which() );
+/*N*/ }
+//------------------------------------------------------------------------
+
+/*?*/ USHORT SvxHorJustifyItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_HOR_JUSTIFY_REPEAT + 1; // letzter Enum-Wert + 1
+/*?*/ }
+
+// class SvxVerJustifyItem -----------------------------------------------
+
+/*N*/ SvxVerJustifyItem::SvxVerJustifyItem( const SvxCellVerJustify eJustify,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxEnumItem( nId, eJustify )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ bool SvxVerJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ table::CellVertJustify eUno = table::CellVertJustify_STANDARD;
+/*N*/ switch ( (SvxCellVerJustify)GetValue() )
+/*N*/ {
+/*N*/ case SVX_VER_JUSTIFY_STANDARD: eUno = table::CellVertJustify_STANDARD; break;
+/*N*/ case SVX_VER_JUSTIFY_TOP: eUno = table::CellVertJustify_TOP; break;
+/*N*/ case SVX_VER_JUSTIFY_CENTER: eUno = table::CellVertJustify_CENTER; break;
+/*N*/ case SVX_VER_JUSTIFY_BOTTOM: eUno = table::CellVertJustify_BOTTOM; break;
+/*N*/ }
+/*N*/ rVal <<= eUno;
+/*N*/ return sal_True;
+/*N*/ }
+
+/*N*/ bool SvxVerJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ table::CellVertJustify eUno;
+/*N*/ if(!(rVal >>= eUno))
+/*N*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ eUno = (table::CellVertJustify)nValue;
+/*N*/ }
+/*N*/
+/*N*/ SvxCellVerJustify eSvx = SVX_VER_JUSTIFY_STANDARD;
+/*N*/ switch (eUno)
+/*N*/ {
+/*N*/ case table::CellVertJustify_STANDARD: eSvx = SVX_VER_JUSTIFY_STANDARD; break;
+/*N*/ case table::CellVertJustify_TOP: eSvx = SVX_VER_JUSTIFY_TOP; break;
+/*N*/ case table::CellVertJustify_CENTER: eSvx = SVX_VER_JUSTIFY_CENTER; break;
+/*N*/ case table::CellVertJustify_BOTTOM: eSvx = SVX_VER_JUSTIFY_BOTTOM; break;
+/*N*/ }
+/*N*/ SetValue( eSvx );
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxVerJustifyItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxVerJustifyItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxVerJustifyItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ USHORT nVal;
+/*N*/ rStream >> nVal;
+/*N*/ return new SvxVerJustifyItem( (SvxCellVerJustify)nVal, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*?*/ USHORT SvxVerJustifyItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_VER_JUSTIFY_BOTTOM + 1; // letzter Enum-Wert + 1
+/*?*/ }
+
+// class SvxOrientationItem ----------------------------------------------
+
+/*N*/ SvxOrientationItem::SvxOrientationItem( const SvxCellOrientation eOrientation,
+/*N*/ const USHORT nId):
+/*N*/ SfxEnumItem( nId, eOrientation )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ bool SvxOrientationItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ table::CellOrientation eUno = table::CellOrientation_STANDARD;
+/*N*/ switch ( (SvxCellOrientation)GetValue() )
+/*N*/ {
+/*N*/ case SVX_ORIENTATION_STANDARD: eUno = table::CellOrientation_STANDARD; break;
+/*N*/ case SVX_ORIENTATION_TOPBOTTOM: eUno = table::CellOrientation_TOPBOTTOM; break;
+/*N*/ case SVX_ORIENTATION_BOTTOMTOP: eUno = table::CellOrientation_BOTTOMTOP; break;
+/*N*/ case SVX_ORIENTATION_STACKED: eUno = table::CellOrientation_STACKED; break;
+/*N*/ }
+/*N*/ rVal <<= eUno;
+/*N*/ return sal_True;
+/*N*/ }
+
+/*N*/ bool SvxOrientationItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ table::CellOrientation eOrient;
+/*N*/ if(!(rVal >>= eOrient))
+/*N*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ eOrient = (table::CellOrientation)nValue;
+/*N*/ }
+/*N*/ SvxCellOrientation eSvx = SVX_ORIENTATION_STANDARD;
+/*N*/ switch (eOrient)
+/*N*/ {
+/*N*/ case table::CellOrientation_STANDARD: eSvx = SVX_ORIENTATION_STANDARD; break;
+/*?*/ case table::CellOrientation_TOPBOTTOM: eSvx = SVX_ORIENTATION_TOPBOTTOM; break;
+/*?*/ case table::CellOrientation_BOTTOMTOP: eSvx = SVX_ORIENTATION_BOTTOMTOP; break;
+/*N*/ case table::CellOrientation_STACKED: eSvx = SVX_ORIENTATION_STACKED; break;
+/*N*/ }
+/*N*/ SetValue( eSvx );
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOrientationItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxOrientationItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOrientationItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ USHORT nVal;
+/*N*/ rStream >> nVal;
+/*N*/ return new SvxOrientationItem( (SvxCellOrientation)nVal, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*?*/ USHORT SvxOrientationItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_ORIENTATION_STACKED + 1; // letzter Enum-Wert + 1
+/*?*/ }
+
+// class SvxMarginItem ---------------------------------------------------
+
+/*N*/ SvxMarginItem::SvxMarginItem( const USHORT nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nLeftMargin ( 20 ),
+/*N*/ nTopMargin ( 20 ),
+/*N*/ nRightMargin ( 20 ),
+/*N*/ nBottomMargin( 20 )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SvxMarginItem::SvxMarginItem( sal_Int16 nLeft,
+/*N*/ sal_Int16 nTop,
+/*N*/ sal_Int16 nRight,
+/*N*/ sal_Int16 nBottom,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nLeftMargin ( nLeft ),
+/*N*/ nTopMargin ( nTop ),
+/*N*/ nRightMargin ( nRight ),
+/*N*/ nBottomMargin( nBottom )
+/*N*/ {
+/*N*/ }
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SvxMarginItem::SvxMarginItem( const SvxMarginItem& rItem ) :
+/*N*/
+/*N*/ SfxPoolItem( rItem.Which() )
+/*N*/ {
+/*N*/ nLeftMargin = rItem.nLeftMargin;
+/*N*/ nTopMargin = rItem.nTopMargin;
+/*N*/ nRightMargin = rItem.nRightMargin;
+/*N*/ nBottomMargin = rItem.nBottomMargin;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+/*N*/ int SvxMarginItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*N*/
+/*N*/ return ( ( nLeftMargin == ( (SvxMarginItem&)rItem ).nLeftMargin ) &&
+/*N*/ ( nTopMargin == ( (SvxMarginItem&)rItem ).nTopMargin ) &&
+/*N*/ ( nRightMargin == ( (SvxMarginItem&)rItem ).nRightMargin ) &&
+/*N*/ ( nBottomMargin == ( (SvxMarginItem&)rItem ).nBottomMargin ) );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxMarginItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxMarginItem(*this);
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxMarginItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ sal_Int16 nLeft;
+/*N*/ sal_Int16 nTop;
+/*N*/ sal_Int16 nRight;
+/*N*/ sal_Int16 nBottom;
+/*N*/ rStream >> nLeft;
+/*N*/ rStream >> nTop;
+/*N*/ rStream >> nRight;
+/*N*/ rStream >> nBottom;
+/*N*/ return new SvxMarginItem( nLeft, nTop, nRight, nBottom, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SvStream& SvxMarginItem::Store( SvStream &rStream, USHORT nItemVersion) const
+/*N*/ {
+/*N*/ rStream << nLeftMargin;
+/*N*/ rStream << nTopMargin;
+/*N*/ rStream << nRightMargin;
+/*N*/ rStream << nBottomMargin;
+/*N*/ return rStream;
+/*N*/ }
+
+
+//------------------------------------------------------------------------
+
+/*N*/ bool SvxMarginItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ // jetzt alles signed
+/*N*/ case MID_MARGIN_L_MARGIN:
+/*N*/ rVal <<= (sal_Int32)( bConvert ? TWIP_TO_MM100(nLeftMargin) : nLeftMargin );
+/*N*/ break;
+/*N*/ case MID_MARGIN_R_MARGIN:
+/*N*/ rVal <<= (sal_Int32)( bConvert ? TWIP_TO_MM100(nRightMargin) : nRightMargin );
+/*N*/ break;
+/*N*/ case MID_MARGIN_UP_MARGIN:
+/*N*/ rVal <<= (sal_Int32)( bConvert ? TWIP_TO_MM100(nTopMargin) : nTopMargin );
+/*N*/ break;
+/*N*/ case MID_MARGIN_LO_MARGIN:
+/*N*/ rVal <<= (sal_Int32)( bConvert ? TWIP_TO_MM100(nBottomMargin) : nBottomMargin );
+/*N*/ break;
+/*N*/ default:
+/*N*/ DBG_ERROR("unknown MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ bool SvxMarginItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = ( ( nMemberId & CONVERT_TWIPS ) != 0 );
+/*N*/ long nMaxVal = bConvert ? TWIP_TO_MM100(SHRT_MAX) : SHRT_MAX; // Members sind sal_Int16
+/*N*/ sal_Int32 nVal;
+/*N*/ if(!(rVal >>= nVal) || (nVal > nMaxVal))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ switch ( nMemberId & ~CONVERT_TWIPS )
+/*N*/ {
+/*N*/ case MID_MARGIN_L_MARGIN:
+/*N*/ nLeftMargin = (sal_Int16)( bConvert ? MM100_TO_TWIP(nVal) : nVal );
+/*N*/ break;
+/*N*/ case MID_MARGIN_R_MARGIN:
+/*N*/ nRightMargin = (sal_Int16)( bConvert ? MM100_TO_TWIP(nVal) : nVal );
+/*N*/ break;
+/*N*/ case MID_MARGIN_UP_MARGIN:
+/*N*/ nTopMargin = (sal_Int16)( bConvert ? MM100_TO_TWIP(nVal) : nVal );
+/*N*/ break;
+/*N*/ case MID_MARGIN_LO_MARGIN:
+/*N*/ nBottomMargin = (sal_Int16)( bConvert ? MM100_TO_TWIP(nVal) : nVal );
+/*N*/ break;
+/*N*/ default:
+/*N*/ DBG_ERROR("unknown MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_bulitem.cxx b/binfilter/bf_svx/source/items/svx_bulitem.cxx
new file mode 100644
index 000000000000..f830d7ae509e
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_bulitem.cxx
@@ -0,0 +1,384 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include <vcl/outdev.hxx>
+
+#define _SVX_BULITEM_CXX
+
+#include "bulitem.hxx"
+
+// #90477#
+#include <tools/tenccvt.hxx>
+namespace binfilter {
+
+#define BULITEM_VERSION ((USHORT)2)
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1(SvxBulletItem,SfxPoolItem);
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBulletItem::StoreFont( SvStream& rStream, const Font& rFont )
+/*N*/ {
+/*N*/ USHORT nTemp;
+/*N*/
+/*N*/ rStream << rFont.GetColor();
+/*N*/ nTemp = (USHORT)rFont.GetFamily(); rStream << nTemp;
+/*N*/
+/*N*/ // #90477# nTemp = (USHORT)GetStoreCharSet( rFont.GetCharSet(), rStream.GetVersion() );
+/*N*/ nTemp = (USHORT)GetSOStoreTextEncoding((rtl_TextEncoding)rFont.GetCharSet(), (sal_uInt16)rStream.GetVersion());
+/*N*/ rStream << nTemp;
+/*N*/
+/*N*/ nTemp = (USHORT)rFont.GetPitch(); rStream << nTemp;
+/*N*/ nTemp = (USHORT)rFont.GetAlign(); rStream << nTemp;
+/*N*/ nTemp = (USHORT)rFont.GetWeight(); rStream << nTemp;
+/*N*/ nTemp = (USHORT)rFont.GetUnderline(); rStream << nTemp;
+/*N*/ nTemp = (USHORT)rFont.GetStrikeout(); rStream << nTemp;
+/*N*/ nTemp = (USHORT)rFont.GetItalic(); rStream << nTemp;
+/*N*/
+/*N*/ // UNICODE: rStream << rFont.GetName();
+/*N*/ rStream.WriteByteString(rFont.GetName());
+/*N*/
+/*N*/ rStream << rFont.IsOutline();
+/*N*/ rStream << rFont.IsShadow();
+/*N*/ rStream << rFont.IsTransparent();
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ Font SvxBulletItem::CreateFont( SvStream& rStream, USHORT nVer )
+/*N*/ {
+/*N*/ Font aFont;
+/*N*/ Color aColor;
+/*N*/ rStream >> aColor; aFont.SetColor( aColor );
+/*N*/ USHORT nTemp;
+/*N*/ rStream >> nTemp; aFont.SetFamily((FontFamily)nTemp);
+/*N*/
+/*N*/ // #90477#
+/*N*/ rStream >> nTemp;
+/*N*/ nTemp = (sal_uInt16)GetSOLoadTextEncoding((rtl_TextEncoding)nTemp, (sal_uInt16)rStream.GetVersion());
+/*N*/ aFont.SetCharSet((rtl_TextEncoding)nTemp);
+/*N*/
+/*N*/ rStream >> nTemp; aFont.SetPitch((FontPitch)nTemp);
+/*N*/ rStream >> nTemp; aFont.SetAlign((FontAlign)nTemp);
+/*N*/ rStream >> nTemp; aFont.SetWeight((FontWeight)nTemp);
+/*N*/ rStream >> nTemp; aFont.SetUnderline((FontUnderline)nTemp);
+/*N*/ rStream >> nTemp; aFont.SetStrikeout((FontStrikeout)nTemp);
+/*N*/ rStream >> nTemp; aFont.SetItalic((FontItalic)nTemp);
+/*N*/
+/*N*/ // UNICODE: rStream >> aName; aFont.SetName( aName );
+/*N*/ String aName;
+/*N*/ rStream.ReadByteString(aName);
+/*N*/ aFont.SetName( aName );
+/*N*/
+/*N*/ if( nVer == 1 )
+/*N*/ {
+/*N*/ long nHeight, nWidth;
+/*?*/ rStream >> nHeight; rStream >> nWidth; Size aSize( nWidth, nHeight );
+/*?*/ aFont.SetSize( aSize );
+/*N*/ }
+/*N*/
+/*N*/ BOOL bTemp;
+/*N*/ rStream >> bTemp; aFont.SetOutline( bTemp );
+/*N*/ rStream >> bTemp; aFont.SetShadow( bTemp );
+/*N*/ rStream >> bTemp; aFont.SetTransparent( bTemp );
+/*N*/ return aFont;
+/*N*/ }
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBulletItem::SvxBulletItem( USHORT nWhich ) : SfxPoolItem( nWhich )
+/*N*/ {
+/*N*/ SetDefaultFont_Impl();
+/*N*/ SetDefaults_Impl();
+/*N*/ nValidMask = 0xFFFF;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBulletItem::SvxBulletItem( SvStream& rStrm, USHORT nWhich ) :
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/ pGraphicObject( NULL )
+/*N*/ {
+/*N*/ rStrm >> nStyle;
+/*N*/
+/*N*/ if( nStyle != BS_BMP )
+/*N*/ aFont = CreateFont( rStrm, BULITEM_VERSION );
+/*N*/ else
+/*N*/ {
+/*N*/ // Sicheres Laden mit Test auf leere Bitmap
+/*?*/ Bitmap aBmp;
+/*?*/ const UINT32 nOldPos = rStrm.Tell();
+/*?*/ // #69345# Errorcode beim Bitmap lesen ignorieren,
+/*?*/ // siehe Kommentar #67581# in SvxBulletItem::Store()
+/*?*/ BOOL bOldError = rStrm.GetError() ? TRUE : FALSE;
+/*?*/ rStrm >> aBmp;
+/*?*/ if ( !bOldError && rStrm.GetError() )
+/*?*/ {
+/*?*/ rStrm.ResetError();
+/*?*/ // #71493# Keine Warnung: Das BulletItem interessiert seit 5.0 im Dateiformat nicht mehr.
+/*?*/ // rStrm.SetError(ERRCODE_CLASS_READ | ERRCODE_SVX_BULLETITEM_NOBULLET | ERRCODE_WARNING_MASK);
+/*?*/ }
+/*?*/
+/*?*/ if( aBmp.IsEmpty() )
+/*?*/ {
+/*?*/ rStrm.Seek( nOldPos );
+/*?*/ nStyle = BS_NONE;
+/*?*/ }
+/*?*/ else
+/*?*/ pGraphicObject = new BfGraphicObject( aBmp );
+/*N*/ }
+/*N*/
+/*N*/ rStrm >> nWidth;
+/*N*/ rStrm >> nStart;
+/*N*/ rStrm >> nJustify;
+/*N*/
+/*N*/ char cTmpSymbol;
+/*N*/ rStrm >> cTmpSymbol;
+/*N*/ cSymbol = ByteString::ConvertToUnicode( cTmpSymbol, aFont.GetCharSet() );
+/*N*/
+/*N*/ rStrm >> nScale;
+/*N*/
+/*N*/ // UNICODE: rStrm >> aPrevText;
+/*N*/ rStrm.ReadByteString(aPrevText);
+/*N*/
+/*N*/ // UNICODE: rStrm >> aFollowText;
+/*N*/ rStrm.ReadByteString(aFollowText);
+/*N*/
+/*N*/ nValidMask = 0xFFFF;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBulletItem::SvxBulletItem( const SvxBulletItem& rItem) : SfxPoolItem( rItem )
+/*N*/ {
+/*N*/ aFont = rItem.aFont;
+/*N*/ pGraphicObject = ( rItem.pGraphicObject ? new BfGraphicObject( *rItem.pGraphicObject ) : NULL );
+/*N*/ aPrevText = rItem.aPrevText;
+/*N*/ aFollowText = rItem.aFollowText;
+/*N*/ nStart = rItem.nStart;
+/*N*/ nStyle = rItem.nStyle;
+/*N*/ nWidth = rItem.nWidth;
+/*N*/ nScale = rItem.nScale;
+/*N*/ cSymbol = rItem.cSymbol;
+/*N*/ nJustify = rItem.nJustify;
+/*N*/ nValidMask = rItem.nValidMask;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBulletItem::~SvxBulletItem()
+/*N*/ {
+/*N*/ if( pGraphicObject )
+/*?*/ delete pGraphicObject;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBulletItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxBulletItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBulletItem::Create( SvStream& rStrm, USHORT nVersion ) const
+/*N*/ {
+/*N*/ return new SvxBulletItem( rStrm, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBulletItem::SetDefaultFont_Impl()
+/*N*/ {
+/*N*/ aFont = OutputDevice::GetDefaultFont( DEFAULTFONT_FIXED, LANGUAGE_SYSTEM, 0 );
+/*N*/ aFont.SetAlign( ALIGN_BOTTOM);
+/*N*/ aFont.SetTransparent( TRUE );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBulletItem::SetDefaults_Impl()
+/*N*/ {
+/*N*/ pGraphicObject = NULL;
+/*N*/ nWidth = 1200; // 1.2cm
+/*N*/ nStart = 1;
+/*N*/ nStyle = BS_123;
+/*N*/ nJustify = BJ_HLEFT | BJ_VCENTER;
+/*N*/ cSymbol = sal_Unicode(' ');
+/*N*/ nScale = 75;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ USHORT SvxBulletItem::GetVersion( USHORT nVersion ) const
+/*N*/ {
+/*N*/ return BULITEM_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxBulletItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT(rItem.ISA(SvxBulletItem),"operator==Types not matching");
+/*N*/ const SvxBulletItem& rBullet = (const SvxBulletItem&)rItem;
+/*N*/ // ValidMask mitvergleichen, da sonst kein Putten in ein AttrSet moeglich,
+/*N*/ // wenn sich das Item nur in der ValidMask von einem existierenden unterscheidet.
+/*N*/ if( nValidMask != rBullet.nValidMask ||
+/*N*/ nStyle != rBullet.nStyle ||
+/*N*/ nScale != rBullet.nScale ||
+/*N*/ nJustify != rBullet.nJustify ||
+/*N*/ nWidth != rBullet.nWidth ||
+/*N*/ nStart != rBullet.nStart ||
+/*N*/ cSymbol != rBullet.cSymbol ||
+/*N*/ aPrevText != rBullet.aPrevText ||
+/*N*/ aFollowText != rBullet.aFollowText )
+/*N*/ return 0;
+/*N*/
+/*N*/ if( ( nStyle != BS_BMP ) && ( aFont != rBullet.aFont ) )
+/*N*/ return 0;
+/*N*/
+/*N*/ if( nStyle == BS_BMP )
+/*N*/ {
+/*?*/ if( ( pGraphicObject && !rBullet.pGraphicObject ) || ( !pGraphicObject && rBullet.pGraphicObject ) )
+/*?*/ return 0;
+/*?*/
+/*?*/ if( ( pGraphicObject && rBullet.pGraphicObject ) &&
+/*?*/ ( ( !(*pGraphicObject == *rBullet.pGraphicObject) ) ||
+/*?*/ ( pGraphicObject->GetPrefSize() != rBullet.pGraphicObject->GetPrefSize() ) ) )
+/*?*/ {
+/*?*/ return 0;
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ return 1;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxBulletItem::Store( SvStream& rStrm, USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ // Korrektur bei leerer Bitmap
+/*N*/ if( ( nStyle == BS_BMP ) &&
+/*N*/ ( !pGraphicObject || ( GRAPHIC_NONE == pGraphicObject->GetType() ) || ( GRAPHIC_DEFAULT == pGraphicObject->GetType() ) ) )
+/*N*/ {
+/*?*/ if( pGraphicObject )
+/*?*/ {
+/*?*/ delete( const_cast< SvxBulletItem* >( this )->pGraphicObject );
+/*?*/ const_cast< SvxBulletItem* >( this )->pGraphicObject = NULL;
+/*?*/ }
+/*?*/
+/*?*/ const_cast< SvxBulletItem* >( this )->nStyle = BS_NONE;
+/*N*/ }
+/*N*/
+/*N*/ rStrm << nStyle;
+/*N*/
+/*N*/ if( nStyle != BS_BMP )
+/*N*/ StoreFont( rStrm, aFont );
+/*N*/ else
+/*N*/ {
+/*?*/ ULONG nStart = rStrm.Tell();
+/*?*/
+/*?*/ // Kleine Vorab-Schaetzung der Groesse...
+/*?*/ USHORT nFac = ( rStrm.GetCompressMode() != COMPRESSMODE_NONE ) ? 3 : 1;
+/*?*/ const Bitmap aBmp( pGraphicObject->GetGraphic().GetBitmap() );
+/*?*/ ULONG nBytes = aBmp.GetSizeBytes();
+/*?*/ if ( nBytes < ULONG(0xFF00*nFac) )
+/*?*/ rStrm << aBmp;
+/*?*/
+/*?*/ ULONG nEnd = rStrm.Tell();
+/*?*/ // #67581# Item darf mit Overhead nicht mehr als 64K schreiben,
+/*?*/ // sonst platzt der SfxMultiRecord
+/*?*/ // Dann lieber auf die Bitmap verzichten, ist nur fuer Outliner
+/*?*/ // und auch nur fuer <= 5.0 wichtig.
+/*?*/ // Beim Einlesen merkt der Stream-Operator der Bitmap, dass dort keine steht.
+/*?*/ // Hiermit funktioniert jetzt der Fall das die grosse Bitmap aus einem anderen
+/*?*/ // Fileformat entstanden ist, welches keine 64K belegt, aber wenn eine
+/*?*/ // Bitmap > 64K verwendet wird, hat das SvxNumBulletItem beim Laden ein Problem,
+/*?*/ // stuerzt aber nicht ab.
+/*?*/
+/*?*/ if ( (nEnd-nStart) > 0xFF00 )
+/*?*/ rStrm.Seek( nStart );
+/*N*/ }
+/*N*/ rStrm << nWidth;
+/*N*/ rStrm << nStart;
+/*N*/ rStrm << nJustify;
+/*N*/ rStrm << (char)ByteString::ConvertFromUnicode( cSymbol, aFont.GetCharSet() );
+/*N*/ rStrm << nScale;
+/*N*/
+/*N*/ // UNICODE: rStrm << aPrevText;
+/*N*/ rStrm.WriteByteString(aPrevText);
+/*N*/
+/*N*/ // UNICODE: rStrm << aFollowText;
+/*N*/ rStrm.WriteByteString(aFollowText);
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_chrtitem.cxx b/binfilter/bf_svx/source/items/svx_chrtitem.cxx
new file mode 100644
index 000000000000..c2ff778f57ed
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_chrtitem.cxx
@@ -0,0 +1,376 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#include <tools/stream.hxx>
+#if defined UNX && !defined LINUX
+#include <wchar.h>
+#endif
+
+#ifdef MAC
+#include <stdlib.h>
+#endif
+
+#include <stdio.h>
+#include <float.h>
+
+#define ITEMID_CHARTSTYLE 0
+#define ITEMID_CHARTDATADESCR 0
+#define ITEMID_CHARTLEGENDPOS 0
+#define ITEMID_CHARTTEXTORDER 0
+#define ITEMID_CHARTTEXTORIENT 0
+#define ITEMID_CHARTKINDERROR 0
+#define ITEMID_CHARTINDICATE 0
+#define ITEMID_DOUBLE 0
+#define ITEMID_CHARTREGRESS 0
+
+#include <bf_svtools/eitem.hxx>
+
+#include "chrtitem.hxx"
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxChartStyleItem, SfxEnumItem);
+/*N*/ TYPEINIT1(SvxChartDataDescrItem, SfxEnumItem);
+/*N*/ TYPEINIT1(SvxChartLegendPosItem, SfxEnumItem);
+/*N*/ TYPEINIT1(SvxChartTextOrderItem, SfxEnumItem);
+/*N*/ TYPEINIT1(SvxChartTextOrientItem, SfxEnumItem);
+/*N*/ TYPEINIT1(SvxDoubleItem, SfxPoolItem);
+
+/*************************************************************************
+|*
+|* SvxChartStyleItem
+|*
+*************************************************************************/
+
+/*N*/ SvxChartStyleItem::SvxChartStyleItem(SvxChartStyle eStyle, USHORT nId) :
+/*N*/ SfxEnumItem(nId, eStyle)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartStyleItem::Clone(SfxItemPool* pPool) const
+/*N*/ {
+/*N*/ return new SvxChartStyleItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+/*************************************************************************
+|*
+|* SvxChartDataDescrItem
+|*
+*************************************************************************/
+
+/*N*/ SvxChartDataDescrItem::SvxChartDataDescrItem(SvxChartDataDescr eDataDescr,
+/*N*/ USHORT nId) :
+/*N*/ SfxEnumItem(nId, eDataDescr)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxChartDataDescrItem::SvxChartDataDescrItem(SvStream& rIn, USHORT nId) :
+/*N*/ SfxEnumItem(nId, rIn)
+/*N*/ {
+/*N*/ }
+
+/*N*/ // -----------------------------------------------------------------------
+/*N*/
+/*N*/ SfxPoolItem* SvxChartDataDescrItem::Clone(SfxItemPool* pPool) const
+/*N*/ {
+/*N*/ return new SvxChartDataDescrItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartDataDescrItem::Create(SvStream& rIn, USHORT nVer) const
+/*N*/ {
+/*N*/ return new SvxChartDataDescrItem(rIn, Which());
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SvxChartLegendPosItem
+|*
+*************************************************************************/
+
+/*N*/ SvxChartLegendPosItem::SvxChartLegendPosItem(SvxChartLegendPos eLegendPos,
+/*N*/ USHORT nId) :
+/*N*/ SfxEnumItem(nId, eLegendPos)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxChartLegendPosItem::SvxChartLegendPosItem(SvStream& rIn, USHORT nId) :
+/*N*/ SfxEnumItem(nId, rIn)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartLegendPosItem::Clone(SfxItemPool* pPool) const
+/*N*/ {
+/*N*/ return new SvxChartLegendPosItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartLegendPosItem::Create(SvStream& rIn, USHORT nVer) const
+/*N*/ {
+/*N*/ return new SvxChartLegendPosItem(rIn, Which());
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SvxChartTextOrderItem
+|*
+*************************************************************************/
+
+/*N*/ SvxChartTextOrderItem::SvxChartTextOrderItem(SvxChartTextOrder eOrder,
+/*N*/ USHORT nId) :
+/*N*/ SfxEnumItem(nId, eOrder)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxChartTextOrderItem::SvxChartTextOrderItem(SvStream& rIn, USHORT nId) :
+/*N*/ SfxEnumItem(nId, rIn)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartTextOrderItem::Clone(SfxItemPool* pPool) const
+/*N*/ {
+/*N*/ return new SvxChartTextOrderItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartTextOrderItem::Create(SvStream& rIn, USHORT nVer) const
+/*N*/ {
+/*N*/ return new SvxChartTextOrderItem(rIn, Which());
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SvxChartTextOrientItem
+|*
+*************************************************************************/
+
+/*N*/ SvxChartTextOrientItem::SvxChartTextOrientItem(SvxChartTextOrient eOrient,
+/*N*/ USHORT nId) :
+/*N*/ SfxEnumItem(nId, eOrient)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxChartTextOrientItem::SvxChartTextOrientItem(SvStream& rIn, USHORT nId) :
+/*N*/ SfxEnumItem(nId, rIn)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartTextOrientItem::Clone(SfxItemPool* pPool) const
+/*N*/ {
+/*N*/ return new SvxChartTextOrientItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxChartTextOrientItem::Create(SvStream& rIn, USHORT nVer) const
+/*N*/ {
+/*N*/ return new SvxChartTextOrientItem(rIn, Which());
+/*N*/ }
+
+/*************************************************************************
+|*
+|* SvxDoubleItem
+|*
+*************************************************************************/
+
+/*N*/ SvxDoubleItem::SvxDoubleItem(double fValue, USHORT nId) :
+/*N*/ SfxPoolItem(nId),
+/*N*/ fVal(fValue)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxDoubleItem::SvxDoubleItem(const SvxDoubleItem& rItem) :
+/*N*/ SfxPoolItem(rItem),
+/*N*/ fVal(rItem.fVal)
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxDoubleItem::operator == (const SfxPoolItem& rItem) const
+/*N*/ {
+/*N*/ return (((SvxDoubleItem&)rItem).fVal == fVal);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxDoubleItem::Clone(SfxItemPool* Pool) const
+/*N*/ {
+/*N*/ return new SvxDoubleItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxDoubleItem::Create(SvStream& rIn, USHORT nVersion) const
+/*N*/ {
+/*N*/ double fVal;
+/*N*/ rIn >> fVal;
+/*N*/ return new SvxDoubleItem(fVal, Which());
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxDoubleItem::Store(SvStream& rOut, USHORT nItemVersion) const
+/*N*/ {
+/*N*/ rOut << fVal;
+/*N*/ return rOut;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+
+
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxDoubleItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ rVal <<= fVal;
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxDoubleItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ return rVal >>= fVal;
+/*N*/ }
+
+
+
+/*************************************************************************
+|*
+|* SvxChartKindErrorItem
+|*
+*************************************************************************/
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*************************************************************************
+|*
+|* SvxChartIndicateItem
+|*
+*************************************************************************/
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*************************************************************************
+|*
+|* SvxChartRegressItem
+|*
+*************************************************************************/
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_clipfmtitem.cxx b/binfilter/bf_svx/source/items/svx_clipfmtitem.cxx
new file mode 100644
index 000000000000..d77890cfae3f
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_clipfmtitem.cxx
@@ -0,0 +1,109 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define _SVSTDARR_ULONGS
+#define _SVSTDARR_STRINGSDTOR
+
+#include <bf_svtools/svstdarr.hxx>
+#include <clipfmtitem.hxx>
+namespace binfilter {
+
+
+
+struct SvxClipboardFmtItem_Impl
+{
+ SvStringsDtor aFmtNms;
+ SvULongs aFmtIds;
+ static String sEmptyStr;
+
+ SvxClipboardFmtItem_Impl() : aFmtNms( 8, 8 ), aFmtIds( 8, 8 ) {}
+ SvxClipboardFmtItem_Impl( const SvxClipboardFmtItem_Impl& );
+};
+
+String SvxClipboardFmtItem_Impl::sEmptyStr;
+
+/*N*/ TYPEINIT1( SvxClipboardFmtItem, SfxPoolItem );
+
+/*N*/ SvxClipboardFmtItem_Impl::SvxClipboardFmtItem_Impl(
+/*N*/ const SvxClipboardFmtItem_Impl& rCpy )
+/*N*/ {
+/*N*/ aFmtIds.Insert( &rCpy.aFmtIds, 0 );
+/*N*/ for( USHORT n = 0, nEnd = rCpy.aFmtNms.Count(); n < nEnd; ++n )
+/*N*/ {
+/*N*/ String* pStr = rCpy.aFmtNms[ n ];
+/*N*/ if( pStr )
+/*N*/ pStr = new String( *pStr );
+/*N*/ aFmtNms.Insert( pStr, n );
+/*N*/ }
+/*N*/ }
+
+/*N*/ SvxClipboardFmtItem::SvxClipboardFmtItem( const SvxClipboardFmtItem& rCpy )
+/*N*/ : SfxPoolItem( rCpy.Which() ),
+/*N*/ pImpl( new SvxClipboardFmtItem_Impl( *rCpy.pImpl ) )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SvxClipboardFmtItem::~SvxClipboardFmtItem()
+/*N*/ {
+/*N*/ delete pImpl;
+/*N*/ }
+
+/*N*/ int SvxClipboardFmtItem::operator==( const SfxPoolItem& rComp ) const
+/*N*/ {
+/*N*/ int nRet = 0;
+/*N*/ const SvxClipboardFmtItem& rCmp = (SvxClipboardFmtItem&)rComp;
+/*N*/ if( rCmp.pImpl->aFmtNms.Count() == pImpl->aFmtNms.Count() )
+/*N*/ {
+/*N*/ nRet = 1;
+/*N*/ const String* pStr1, *pStr2;
+/*N*/ for( USHORT n = 0, nEnd = rCmp.pImpl->aFmtNms.Count(); n < nEnd; ++n )
+/*N*/ {
+/*N*/ if( pImpl->aFmtIds[ n ] != rCmp.pImpl->aFmtIds[ n ] ||
+/*N*/ ( (0 == ( pStr1 = pImpl->aFmtNms[ n ] )) ^
+/*N*/ (0 == ( pStr2 = rCmp.pImpl->aFmtNms[ n ] ) )) ||
+/*N*/ ( pStr1 && *pStr1 != *pStr2 ))
+/*N*/ {
+/*N*/ nRet = 0;
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ return nRet;
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxClipboardFmtItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxClipboardFmtItem( *this );
+/*N*/ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_drawitem.cxx b/binfilter/bf_svx/source/items/svx_drawitem.cxx
new file mode 100644
index 000000000000..41141f0fc612
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_drawitem.cxx
@@ -0,0 +1,322 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include "svxids.hrc"
+
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST
+#define ITEMID_HATCH_LIST SID_HATCH_LIST
+#define ITEMID_BITMAP_LIST SID_BITMAP_LIST
+#define ITEMID_DASH_LIST SID_DASH_LIST
+#define ITEMID_LINEEND_LIST SID_LINEEND_LIST
+
+
+#include <bf_svtools/poolitem.hxx>
+
+#include "drawitem.hxx"
+namespace binfilter {
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxColorTableItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxGradientListItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxHatchListItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxBitmapListItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxDashListItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxLineEndListItem, SfxPoolItem );
+
+//==================================================================
+//
+// SvxColorTableItem
+//
+//==================================================================
+
+/*?*/ SvxColorTableItem::SvxColorTableItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorTableItem::SvxColorTableItem( XColorTable* pTable, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pColorTable( pTable )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorTableItem::SvxColorTableItem( const SvxColorTableItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pColorTable( rItem.pColorTable )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxColorTableItem::operator==( const SfxPoolItem& rItem ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxColorTableItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxColorTableItem( *this );
+/*N*/ }
+
+//==================================================================
+//
+// SvxGradientListItem
+//
+//==================================================================
+
+/*?*/ SvxGradientListItem::SvxGradientListItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxGradientListItem::SvxGradientListItem( XGradientList* pList, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pGradientList( pList )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxGradientListItem::SvxGradientListItem( const SvxGradientListItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pGradientList( rItem.pGradientList )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxGradientListItem::operator==( const SfxPoolItem& rItem ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxGradientListItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxGradientListItem( *this );
+/*N*/ }
+
+//==================================================================
+//
+// SvxHatchListItem
+//
+//==================================================================
+
+/*?*/ SvxHatchListItem::SvxHatchListItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxHatchListItem::SvxHatchListItem( XHatchList* pList, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pHatchList( pList )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxHatchListItem::SvxHatchListItem( const SvxHatchListItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pHatchList( rItem.pHatchList )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxHatchListItem::operator==( const SfxPoolItem& rItem ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxHatchListItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxHatchListItem( *this );
+/*N*/ }
+
+//==================================================================
+//
+// SvxBitmapListItem
+//
+//==================================================================
+
+/*?*/ SvxBitmapListItem::SvxBitmapListItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBitmapListItem::SvxBitmapListItem( XBitmapList* pList, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pBitmapList( pList )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBitmapListItem::SvxBitmapListItem( const SvxBitmapListItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pBitmapList( rItem.pBitmapList )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxBitmapListItem::operator==( const SfxPoolItem& rItem ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBitmapListItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxBitmapListItem( *this );
+/*N*/ }
+
+
+//==================================================================
+//
+// SvxDashListItem
+//
+//==================================================================
+
+/*?*/ SvxDashListItem::SvxDashListItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxDashListItem::SvxDashListItem( XDashList* pList, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pDashList( pList )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxDashListItem::SvxDashListItem( const SvxDashListItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pDashList( rItem.pDashList )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxDashListItem::operator==( const SfxPoolItem& rItem ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxDashListItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxDashListItem( *this );
+/*N*/ }
+
+//==================================================================
+//
+// SvxLineEndListItem
+//
+//==================================================================
+
+/*?*/ SvxLineEndListItem::SvxLineEndListItem()
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxLineEndListItem::SvxLineEndListItem( XLineEndList* pList, sal_uInt16 nW ) :
+/*N*/ SfxPoolItem( nW ),
+/*N*/ pLineEndList( pList )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxLineEndListItem::SvxLineEndListItem( const SvxLineEndListItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pLineEndList( rItem.pLineEndList )
+/*N*/ {
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxLineEndListItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*N*/ return ( ( SvxLineEndListItem& ) rItem).pLineEndList == pLineEndList;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLineEndListItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxLineEndListItem( *this );
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_e3ditem.cxx b/binfilter/bf_svx/source/items/svx_e3ditem.cxx
new file mode 100644
index 000000000000..ec2aea3ccf23
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_e3ditem.cxx
@@ -0,0 +1,155 @@
+/* -*- 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 <com/sun/star/drawing/Direction3D.hpp>
+#include <tools/stream.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include "e3ditem.hxx"
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+// STATIC DATA -----------------------------------------------------------
+
+/*N*/ DBG_NAME(SvxVector3DItem)
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxVector3DItem, SfxPoolItem);
+
+// -----------------------------------------------------------------------
+
+/*?*/ SvxVector3DItem::SvxVector3DItem()
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ DBG_CTOR(SvxVector3DItem, 0);
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxVector3DItem::SvxVector3DItem( USHORT nWhich, const Vector3D& rVal ) :
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/ aVal( rVal )
+/*N*/ {
+/*N*/ DBG_CTOR(SvxVector3DItem, 0);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxVector3DItem::SvxVector3DItem( const SvxVector3DItem& rItem ) :
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ aVal( rItem.aVal )
+/*N*/ {
+/*N*/ DBG_CTOR(SvxVector3DItem, 0);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxVector3DItem::operator==( const SfxPoolItem &rItem ) const
+/*N*/ {
+/*N*/ DBG_CHKTHIS(SvxVector3DItem, 0);
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*N*/ return ((SvxVector3DItem&)rItem).aVal == aVal;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxVector3DItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ DBG_CHKTHIS(SvxVector3DItem, 0);
+/*N*/ return new SvxVector3DItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxVector3DItem::Create(SvStream &rStream, USHORT nVersion) const
+/*N*/ {
+/*N*/ DBG_CHKTHIS(SvxVector3DItem, 0);
+/*N*/ Vector3D aStr;
+/*N*/ rStream >> aStr;
+/*N*/ return new SvxVector3DItem(Which(), aStr);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxVector3DItem::Store(SvStream &rStream, USHORT nItemVersion) const
+/*N*/ {
+/*N*/ DBG_CHKTHIS(SvxVector3DItem, 0);
+/*N*/
+/*N*/ // ## if (nItemVersion)
+/*N*/ rStream << aVal;
+/*N*/
+/*N*/ return rStream;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxVector3DItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ drawing::Direction3D aDirection;
+/*N*/
+/*N*/ // Werte eintragen
+/*N*/ aDirection.DirectionX = aVal.X();
+/*N*/ aDirection.DirectionY = aVal.Y();
+/*N*/ aDirection.DirectionZ = aVal.Z();
+/*N*/
+/*N*/ rVal <<= aDirection;
+/*N*/ return( sal_True );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxVector3DItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ drawing::Direction3D aDirection;
+/*N*/ if(!(rVal >>= aDirection))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ aVal.X() = aDirection.DirectionX;
+/*N*/ aVal.Y() = aDirection.DirectionY;
+/*N*/ aVal.Z() = aDirection.DirectionZ;
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ USHORT SvxVector3DItem::GetVersion (USHORT nFileFormatVersion) const
+/*N*/ {
+/*N*/ return (nFileFormatVersion == SOFFICE_FILEFORMAT_31) ? USHRT_MAX : 0;
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_flditem.cxx b/binfilter/bf_svx/source/items/svx_flditem.cxx
new file mode 100644
index 000000000000..ba88c096d3cd
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_flditem.cxx
@@ -0,0 +1,759 @@
+/* -*- 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 <bf_svtools/zforlist.hxx>
+#include <tools/urlobj.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define _SVX_FLDITEM_CXX
+
+#include <unotools/localfilehelper.hxx>
+
+#define ITEMID_FIELD 0
+
+#include <bf_svtools/poolitem.hxx>
+
+
+#include <bf_svx/itemdata.hxx>
+
+#include "flditem.hxx"
+#include "adritem.hxx"
+
+// #90477#
+#include <tools/tenccvt.hxx>
+#include "bf_so3/staticbaseurl.hxx"
+namespace binfilter {
+
+#define FRAME_MARKER (sal_uInt32)0x21981357
+#define CHARSET_MARKER (FRAME_MARKER+1)
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1( SvxFieldItem, SfxPoolItem );
+
+/*N*/ SV_IMPL_PERSIST1( SvxFieldData, SvPersistBase );
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldData::SvxFieldData()
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldData::~SvxFieldData()
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxFieldData::Clone() const
+/*N*/ {
+/*N*/ return new SvxFieldData;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxFieldData::operator==( const SvxFieldData& rFld ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( Type() == rFld.Type(), "==: Verschiedene Typen" );
+/*N*/ return TRUE; // Basicklasse immer gleich.
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxFieldData::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxFieldData::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+
+/*?*/ MetaAction* SvxFieldData::createBeginComment() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001 return new MetaCommentAction( "FIELD_SEQ_BEGIN" );
+/*?*/ }
+
+/*?*/ MetaAction* SvxFieldData::createEndComment() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP");return NULL;//STRIP001 return new MetaCommentAction( "FIELD_SEQ_END" );
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldItem::SvxFieldItem( SvxFieldData* pFld, const USHORT nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ pField = pFld; // gehoert direkt dem Item
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldItem::SvxFieldItem( const SvxFieldData& rField, const USHORT nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ pField = rField.Clone();
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldItem::SvxFieldItem( const SvxFieldItem& rItem ) :
+/*N*/ SfxPoolItem ( rItem )
+/*N*/ {
+/*N*/ pField = rItem.GetField() ? rItem.GetField()->Clone() : 0;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldItem::~SvxFieldItem()
+/*N*/ {
+/*N*/ delete pField;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFieldItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxFieldItem(*this);
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFieldItem::Create( SvStream& rStrm, USHORT ) const
+/*N*/ {
+/*N*/ SvxFieldData* pData = 0;
+/*N*/ SvPersistStream aPStrm( GetClassManager(), &rStrm );
+/*N*/ aPStrm >> pData;
+/*N*/
+/*N*/ if( aPStrm.IsEof() )
+/*?*/ aPStrm.SetError( SVSTREAM_GENERALERROR );
+/*N*/
+/*N*/ if ( aPStrm.GetError() == ERRCODE_IO_NOFACTORY )
+/*?*/ aPStrm.ResetError(); // Eigentlich einen Code, dass nicht alle Attr gelesen wurden...
+/*N*/
+/*N*/ return new SvxFieldItem( pData, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFieldItem::Store( SvStream& rStrm, USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( pField, "SvxFieldItem::Store: Feld?!" );
+/*N*/ SvPersistStream aPStrm( GetClassManager(), &rStrm );
+/*N*/ // Das ResetError in der obigen Create-Methode gab es in 3.1 noch nicht,
+/*N*/ // deshalb duerfen beim 3.x-Export neuere Items nicht gespeichert werden!
+/*N*/ if ( ( rStrm.GetVersion() <= SOFFICE_FILEFORMAT_31 ) && pField &&
+/*N*/ pField->GetClassId() == 50 /* SdrMeasureField */ )
+/*N*/ {
+/*N*/ // SvxFieldData reicht nicht, weil auch nicht am ClassMgr angemeldet
+/*?*/ SvxURLField aDummyData;
+/*?*/ aPStrm << &aDummyData;
+/*N*/ }
+/*N*/ else
+/*N*/ aPStrm << pField;
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxFieldItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal which or type" );
+/*N*/
+/*N*/ const SvxFieldData* pOtherFld = ((const SvxFieldItem&)rItem).GetField();
+/*N*/ if ( !pField && !pOtherFld )
+/*N*/ return TRUE;
+/*N*/
+/*N*/ if ( ( !pField && pOtherFld ) || ( pField && !pOtherFld ) )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ return ( ( pField->Type() == pOtherFld->Type() )
+/*N*/ && ( *pField == *pOtherFld ) );
+/*N*/ }
+
+// =================================================================
+// Es folgen die Ableitungen von SvxFieldData...
+// =================================================================
+
+/*N*/ SV_IMPL_PERSIST1( SvxDateField, SvxFieldData );
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxDateField::SvxDateField()
+/*N*/ {
+/*N*/ nFixDate = Date().GetDate();
+/*N*/ eType = SVXDATETYPE_VAR;
+/*N*/ eFormat = SVXDATEFORMAT_STDSMALL;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxDateField::SvxDateField( const Date& rDate, SvxDateType eT, SvxDateFormat eF )
+/*N*/ {
+/*N*/ nFixDate = rDate.GetDate();
+/*N*/ eType = eT;
+/*N*/ eFormat = eF;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxDateField::Clone() const
+/*N*/ {
+/*N*/ return new SvxDateField( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxDateField::operator==( const SvxFieldData& rOther ) const
+/*N*/ {
+/*N*/ if ( rOther.Type() != Type() )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ const SvxDateField& rOtherFld = (const SvxDateField&) rOther;
+/*N*/ return ( ( nFixDate == rOtherFld.nFixDate ) &&
+/*N*/ ( eType == rOtherFld.eType ) &&
+/*N*/ ( eFormat == rOtherFld.eFormat ) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxDateField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ USHORT nType, nFormat;
+/*N*/
+/*N*/ rStm >> nFixDate;
+/*N*/ rStm >> nType;
+/*N*/ rStm >> nFormat;
+/*N*/
+/*N*/ eType = (SvxDateType)nType;
+/*N*/ eFormat= (SvxDateFormat)nFormat;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxDateField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ rStm << nFixDate;
+/*N*/ rStm << (USHORT)eType;
+/*N*/ rStm << (USHORT)eFormat;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SV_IMPL_PERSIST1( SvxURLField, SvxFieldData );
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxURLField::SvxURLField()
+/*N*/ {
+/*N*/ eFormat = SVXURLFORMAT_URL;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxURLField::SvxURLField( const XubString& rURL, const XubString& rRepres, SvxURLFormat eFmt )
+/*N*/ : aURL( rURL ), aRepresentation( rRepres )
+/*N*/ {
+/*N*/ eFormat = eFmt;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxURLField::Clone() const
+/*N*/ {
+/*N*/ return new SvxURLField( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxURLField::operator==( const SvxFieldData& rOther ) const
+/*N*/ {
+/*N*/ if ( rOther.Type() != Type() )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ const SvxURLField& rOtherFld = (const SvxURLField&) rOther;
+/*N*/ return ( ( eFormat == rOtherFld.eFormat ) &&
+/*N*/ ( aURL == rOtherFld.aURL ) &&
+/*N*/ ( aRepresentation == rOtherFld.aRepresentation ) &&
+/*N*/ ( aTargetFrame == rOtherFld.aTargetFrame ) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxURLField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ USHORT nFormat;
+/*N*/ sal_uInt32 nFrameMarker, nCharSetMarker;
+/*N*/ long nUlongSize = (long)sizeof(sal_uInt32);
+/*N*/ String aTmpURL;
+/*N*/
+/*N*/ rStm >> nFormat;
+/*N*/
+/*N*/ // UNICODE: rStm >> aTmpURL;
+/*N*/ rStm.ReadByteString(aTmpURL);
+/*N*/
+/*N*/ // UNICODE: rStm >> aRepresentation;
+/*N*/ // read to a temp string first, read text encoding and
+/*N*/ // convert later to stay compatible to fileformat
+/*N*/ ByteString aTempString;
+/*N*/ rtl_TextEncoding aTempEncoding = RTL_TEXTENCODING_MS_1252; // #101493# Init for old documents
+/*N*/ rStm.ReadByteString(aTempString);
+/*N*/
+/*N*/ rStm >> nFrameMarker;
+/*N*/ if ( nFrameMarker == FRAME_MARKER )
+/*N*/ {
+/*N*/ // UNICODE: rStm >> aTargetFrame;
+/*N*/ rStm.ReadByteString(aTargetFrame);
+/*N*/
+/*N*/ rStm >> nCharSetMarker;
+/*N*/ if ( nCharSetMarker == CHARSET_MARKER )
+/*N*/ {
+/*N*/ USHORT nCharSet;
+/*N*/ rStm >> nCharSet;
+/*N*/
+/*N*/ // remember encoding
+/*N*/ aTempEncoding = (rtl_TextEncoding)nCharSet;
+/*N*/ }
+/*N*/ else
+/*?*/ rStm.SeekRel( -nUlongSize );
+/*N*/ }
+/*N*/ else
+/*?*/ rStm.SeekRel( -nUlongSize );
+/*N*/
+/*N*/ // now build representation string due to known encoding
+/*N*/ aRepresentation = String(aTempString, aTempEncoding);
+/*N*/
+/*N*/ eFormat= (SvxURLFormat)nFormat;
+/*N*/
+/*N*/ // Relatives Speichern => Beim laden absolut machen.
+/*N*/ aURL = ::binfilter::StaticBaseUrl::RelToAbs( aTmpURL );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxURLField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ // Relatives Speichern der URL
+/*N*/ String aTmpURL = ::binfilter::StaticBaseUrl::AbsToRel( aURL );
+/*N*/
+/*N*/ rStm << (USHORT)eFormat;
+/*N*/
+/*N*/ // UNICODE: rStm << aTmpURL;
+/*N*/ rStm.WriteByteString(aTmpURL);
+/*N*/
+/*N*/ // UNICODE: rStm << aRepresentation;
+/*N*/ rStm.WriteByteString(aRepresentation);
+/*N*/
+/*N*/ rStm << FRAME_MARKER;
+/*N*/
+/*N*/ // UNICODE: rStm << aTargetFrame;
+/*N*/ rStm.WriteByteString(aTargetFrame);
+/*N*/
+/*N*/ rStm << CHARSET_MARKER;
+/*N*/
+/*N*/ // #90477# rStm << (USHORT)GetStoreCharSet(gsl_getSystemTextEncoding(), rStm.GetVersion());
+/*N*/ rStm << (USHORT)GetSOStoreTextEncoding(gsl_getSystemTextEncoding(), (sal_uInt16)rStm.GetVersion());
+/*N*/ }
+
+
+// =================================================================
+// Die Felder, die aus Calc ausgebaut wurden:
+// =================================================================
+
+/*N*/ SV_IMPL_PERSIST1( SvxPageField, SvxFieldData );
+
+/*N*/ SvxFieldData* __EXPORT SvxPageField::Clone() const
+/*N*/ {
+/*N*/ return new SvxPageField; // leer
+/*N*/ }
+
+/*N*/ int __EXPORT SvxPageField::operator==( const SvxFieldData& rCmp ) const
+/*N*/ {
+/*N*/ return ( rCmp.Type() == TYPE(SvxPageField) );
+/*N*/ }
+
+/*N*/ void __EXPORT SvxPageField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ void __EXPORT SvxPageField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+
+
+/*N*/ SV_IMPL_PERSIST1( SvxPagesField, SvxFieldData );
+
+/*N*/ SvxFieldData* __EXPORT SvxPagesField::Clone() const
+/*N*/ {
+/*N*/ return new SvxPagesField; // leer
+/*N*/ }
+
+/*N*/ int __EXPORT SvxPagesField::operator==( const SvxFieldData& rCmp ) const
+/*N*/ {
+/*N*/ return ( rCmp.Type() == TYPE(SvxPagesField) );
+/*N*/ }
+
+/*N*/ void __EXPORT SvxPagesField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ void __EXPORT SvxPagesField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SV_IMPL_PERSIST1( SvxTimeField, SvxFieldData );
+
+/*N*/ SvxFieldData* __EXPORT SvxTimeField::Clone() const
+/*N*/ {
+/*N*/ return new SvxTimeField; // leer
+/*N*/ }
+
+/*N*/ int __EXPORT SvxTimeField::operator==( const SvxFieldData& rCmp ) const
+/*N*/ {
+/*N*/ return ( rCmp.Type() == TYPE(SvxTimeField) );
+/*N*/ }
+
+/*N*/ void __EXPORT SvxTimeField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ void __EXPORT SvxTimeField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+
+/*N*/ SV_IMPL_PERSIST1( SvxFileField, SvxFieldData );
+
+/*N*/ SvxFieldData* __EXPORT SvxFileField::Clone() const
+/*N*/ {
+/*N*/ return new SvxFileField; // leer
+/*N*/ }
+
+/*N*/ int __EXPORT SvxFileField::operator==( const SvxFieldData& rCmp ) const
+/*N*/ {
+/*N*/ return ( rCmp.Type() == TYPE(SvxFileField) );
+/*N*/ }
+
+/*N*/ void __EXPORT SvxFileField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ void __EXPORT SvxFileField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SV_IMPL_PERSIST1( SvxTableField, SvxFieldData );
+
+/*N*/ SvxFieldData* __EXPORT SvxTableField::Clone() const
+/*N*/ {
+/*N*/ return new SvxTableField; // leer
+/*N*/ }
+
+/*N*/ int __EXPORT SvxTableField::operator==( const SvxFieldData& rCmp ) const
+/*N*/ {
+/*N*/ return ( rCmp.Type() == TYPE(SvxTableField) );
+/*N*/ }
+
+/*N*/ void __EXPORT SvxTableField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+/*N*/ void __EXPORT SvxTableField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ }
+
+//----------------------------------------------------------------------------
+// SvxExtTimeField
+//----------------------------------------------------------------------------
+
+/*N*/ SV_IMPL_PERSIST1( SvxExtTimeField, SvxFieldData );
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxExtTimeField::SvxExtTimeField()
+/*N*/ {
+/*N*/ nFixTime = Time().GetTime();
+/*N*/ eType = SVXTIMETYPE_VAR;
+/*N*/ eFormat = SVXTIMEFORMAT_STANDARD;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxExtTimeField::SvxExtTimeField( const Time& rTime, SvxTimeType eT, SvxTimeFormat eF )
+/*N*/ {
+/*N*/ nFixTime = rTime.GetTime();
+/*N*/ eType = eT;
+/*N*/ eFormat = eF;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxExtTimeField::Clone() const
+/*N*/ {
+/*N*/ return new SvxExtTimeField( *this );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ int SvxExtTimeField::operator==( const SvxFieldData& rOther ) const
+/*N*/ {
+/*N*/ if ( rOther.Type() != Type() )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ const SvxExtTimeField& rOtherFld = (const SvxExtTimeField&) rOther;
+/*N*/ return ( ( nFixTime == rOtherFld.nFixTime ) &&
+/*N*/ ( eType == rOtherFld.eType ) &&
+/*N*/ ( eFormat == rOtherFld.eFormat ) );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxExtTimeField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ USHORT nType, nFormat;
+/*N*/
+/*N*/ rStm >> nFixTime;
+/*N*/ rStm >> nType;
+/*N*/ rStm >> nFormat;
+/*N*/
+/*N*/ eType = (SvxTimeType) nType;
+/*N*/ eFormat= (SvxTimeFormat) nFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxExtTimeField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ rStm << nFixTime;
+/*N*/ rStm << (USHORT) eType;
+/*N*/ rStm << (USHORT) eFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
+// SvxExtFileField
+//----------------------------------------------------------------------------
+
+/*N*/ SV_IMPL_PERSIST1( SvxExtFileField, SvxFieldData );
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxExtFileField::SvxExtFileField()
+/*N*/ {
+/*N*/ eType = SVXFILETYPE_VAR;
+/*N*/ eFormat = SVXFILEFORMAT_FULLPATH;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxExtFileField::SvxExtFileField( const XubString& rStr, SvxFileType eT, SvxFileFormat eF )
+/*N*/ {
+/*N*/ aFile = rStr;
+/*N*/ eType = eT;
+/*N*/ eFormat = eF;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxExtFileField::Clone() const
+/*N*/ {
+/*N*/ return new SvxExtFileField( *this );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ int SvxExtFileField::operator==( const SvxFieldData& rOther ) const
+/*N*/ {
+/*N*/ if ( rOther.Type() != Type() )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ const SvxExtFileField& rOtherFld = (const SvxExtFileField&) rOther;
+/*N*/ return ( ( aFile == rOtherFld.aFile ) &&
+/*N*/ ( eType == rOtherFld.eType ) &&
+/*N*/ ( eFormat == rOtherFld.eFormat ) );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxExtFileField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ USHORT nType, nFormat;
+/*N*/
+/*N*/ // UNICODE: rStm >> aFile;
+/*N*/ rStm.ReadByteString(aFile);
+/*N*/
+/*N*/ rStm >> nType;
+/*N*/ rStm >> nFormat;
+/*N*/
+/*N*/ eType = (SvxFileType) nType;
+/*N*/ eFormat= (SvxFileFormat) nFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxExtFileField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ // UNICODE: rStm << aFile;
+/*N*/ rStm.WriteByteString(aFile);
+/*N*/
+/*N*/ rStm << (USHORT) eType;
+/*N*/ rStm << (USHORT) eFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
+// SvxAuthorField
+//----------------------------------------------------------------------------
+
+/*N*/ SV_IMPL_PERSIST1( SvxAuthorField, SvxFieldData );
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxAuthorField::SvxAuthorField()
+/*N*/ {
+/*N*/ eType = SVXAUTHORTYPE_VAR;
+/*N*/ eFormat = SVXAUTHORFORMAT_FULLNAME;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxAuthorField::SvxAuthorField( const SvxAddressItem& rAdrItem,
+/*N*/ SvxAuthorType eT, SvxAuthorFormat eF )
+/*N*/ {
+/*N*/ aName = rAdrItem.GetName();
+/*N*/ aFirstName = rAdrItem.GetFirstName();
+/*N*/ aShortName = rAdrItem.GetShortName();
+/*N*/ eType = eT;
+/*N*/ eFormat = eF;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ SvxFieldData* SvxAuthorField::Clone() const
+/*N*/ {
+/*N*/ return new SvxAuthorField( *this );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ int SvxAuthorField::operator==( const SvxFieldData& rOther ) const
+/*N*/ {
+/*N*/ if ( rOther.Type() != Type() )
+/*N*/ return FALSE;
+/*N*/
+/*N*/ const SvxAuthorField& rOtherFld = (const SvxAuthorField&) rOther;
+/*N*/ return ( ( aName == rOtherFld.aName ) &&
+/*N*/ ( aFirstName == rOtherFld.aFirstName ) &&
+/*N*/ ( aShortName == rOtherFld.aShortName ) &&
+/*N*/ ( eType == rOtherFld.eType ) &&
+/*N*/ ( eFormat == rOtherFld.eFormat ) );
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxAuthorField::Load( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ USHORT nType, nFormat;
+/*N*/
+/*N*/ // UNICODE: rStm >> aName;
+/*N*/ rStm.ReadByteString(aName);
+/*N*/
+/*N*/ // UNICODE: rStm >> aFirstName;
+/*N*/ rStm.ReadByteString(aFirstName);
+/*N*/
+/*N*/ // UNICODE: rStm >> aShortName;
+/*N*/ rStm.ReadByteString(aShortName);
+/*N*/
+/*N*/ rStm >> nType;
+/*N*/ rStm >> nFormat;
+/*N*/
+/*N*/ eType = (SvxAuthorType) nType;
+/*N*/ eFormat= (SvxAuthorFormat) nFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ void SvxAuthorField::Save( SvPersistStream & rStm )
+/*N*/ {
+/*N*/ // UNICODE: rStm << aName;
+/*N*/ rStm.WriteByteString(aName);
+/*N*/
+/*N*/ // UNICODE: rStm << aFirstName;
+/*N*/ rStm.WriteByteString(aFirstName);
+/*N*/
+/*N*/ // UNICODE: rStm << aShortName;
+/*N*/ rStm.WriteByteString(aShortName);
+/*N*/
+/*N*/ rStm << (USHORT) eType;
+/*N*/ rStm << (USHORT) eFormat;
+/*N*/ }
+
+//----------------------------------------------------------------------------
+
+/*N*/ XubString SvxAuthorField::GetFormatted() const
+/*N*/ {
+/*N*/ XubString aString;
+/*N*/
+/*N*/ switch( eFormat )
+/*N*/ {
+/*N*/ case SVXAUTHORFORMAT_FULLNAME:
+/*N*/ aString = aFirstName;
+/*N*/ aString += sal_Unicode(' ');
+/*N*/ aString += aName;
+/*N*/ break;
+/*N*/
+/*N*/ case SVXAUTHORFORMAT_NAME:
+/*N*/ aString = aName;
+/*N*/ break;
+/*N*/
+/*N*/ case SVXAUTHORFORMAT_FIRSTNAME:
+/*N*/ aString = aFirstName;
+/*N*/ break;
+/*N*/
+/*N*/ case SVXAUTHORFORMAT_SHORTNAME:
+/*N*/ aString = aShortName;
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ return( aString );
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_frmitems.cxx b/binfilter/bf_svx/source/items/svx_frmitems.cxx
new file mode 100644
index 000000000000..4403c1b67645
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_frmitems.cxx
@@ -0,0 +1,2882 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#include <com/sun/star/uno/Any.hxx>
+
+#include <com/sun/star/script/XTypeConverter.hpp>
+
+#include <limits.h>
+#include <comphelper/processfactory.hxx>
+
+#define ITEMID_PAPERBIN 0
+#define ITEMID_SIZE 0
+#define ITEMID_LRSPACE 0
+#define ITEMID_ULSPACE 0
+#define ITEMID_PRINT 0
+#define ITEMID_OPAQUE 0
+#define ITEMID_PROTECT 0
+#define ITEMID_SHADOW 0
+#define ITEMID_BOX 0
+#define ITEMID_BOXINFO 0
+#define ITEMID_FMTBREAK 0
+#define ITEMID_FMTKEEP 0
+#define ITEMID_LINE 0
+#define ITEMID_BRUSH 0
+#define ITEMID_FRAMEDIR 0
+
+#include <bf_goodies/graphicobject.hxx>
+#include <tools/urlobj.hxx>
+#ifndef SVX_LIGHT
+#include <bf_sfx2/docfile.hxx>
+#include <bf_sfx2/objsh.hxx>
+#endif // !SVX_LIGHT
+#include "bf_basic/sbx.hxx"
+#define GLOBALOVERFLOW3
+
+#define _SVX_FRMITEMS_CXX
+
+#include <bf_svtools/memberid.hrc>
+
+#include <bf_svtools/wallitem.hxx>
+#include <bf_svtools/cntwall.hxx>
+
+#include "rtl/ustring.hxx"
+#include <rtl/ustrbuf.hxx>
+
+#include <impgrf.hxx>
+#include "svxids.hrc"
+#include "svxitems.hrc"
+#include "dialogs.hrc"
+
+#include "pbinitem.hxx"
+#include "sizeitem.hxx"
+#include "lrspitem.hxx"
+#include "ulspitem.hxx"
+#include "prntitem.hxx"
+#include "opaqitem.hxx"
+#include "protitem.hxx"
+#include "shaditem.hxx"
+#include "boxitem.hxx"
+#include "brkitem.hxx"
+#include "keepitem.hxx"
+#include "bolnitem.hxx"
+#include "brshitem.hxx"
+#include "frmdiritem.hxx"
+
+#include "itemtype.hxx"
+#include "dialmgr.hxx"
+#include "svxerr.hxx"
+#include "unoprnms.hxx"
+
+#include <com/sun/star/table/BorderLine.hpp>
+#include <com/sun/star/table/CellVertJustify.hpp>
+#include <com/sun/star/table/ShadowLocation.hpp>
+#include <com/sun/star/table/TableBorder.hpp>
+#include <com/sun/star/table/ShadowFormat.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <com/sun/star/table/CellContentType.hpp>
+#include <com/sun/star/table/TableOrientation.hpp>
+#include <com/sun/star/table/CellHoriJustify.hpp>
+#include <com/sun/star/util/SortField.hpp>
+#include <com/sun/star/util/SortFieldType.hpp>
+#include <com/sun/star/table/CellOrientation.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <com/sun/star/style/PageStyleLayout.hpp>
+#include <com/sun/star/style/BreakType.hpp>
+#include <com/sun/star/style/GraphicLocation.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Selection.hpp>
+#include <com/sun/star/awt/Size.hpp>
+#include <com/sun/star/text/WritingMode2.hpp>
+
+#include <comphelper/types.hxx>
+
+#include <unomid.hxx>
+#include <legacysmgr/legacy_binfilters_smgr.hxx> //STRIP002
+
+#include "bf_so3/staticbaseurl.hxx"
+namespace binfilter {
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+
+// Konvertierung fuer UNO
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+
+// STATIC DATA -----------------------------------------------------------
+
+
+/*?*/ inline void SetValueProp( XubString& rStr, const sal_uInt16 nValue,
+/*?*/ const sal_uInt16 nProp )
+/*?*/ {
+/*?*/ if( 100 == nProp )
+/*?*/ rStr += String::CreateFromInt32( nValue );
+/*?*/ else
+/*?*/ ( rStr += String::CreateFromInt32( nProp )) += sal_Unicode('%');
+/*?*/ }
+
+/*?*/ inline void SetValueProp( XubString& rStr, const short nValue,
+/*?*/ const sal_uInt16 nProp )
+/*?*/ {
+/*?*/ if( 100 == nProp )
+/*?*/ rStr += String::CreateFromInt32( nValue );
+/*?*/ else
+/*?*/ ( rStr += String::CreateFromInt32( nProp )) += sal_Unicode('%');
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPaperBinItem, SfxByteItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxSizeItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxLRSpaceItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxULSpaceItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPrintItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxOpaqueItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxProtectItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxBrushItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxShadowItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxBoxItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxBoxInfoItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFmtBreakItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFmtKeepItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxLineItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFrameDirectionItem, SfxUInt16Item);
+
+
+// class SvxPaperBinItem ------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPaperBinItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxPaperBinItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxPaperBinItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPaperBinItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 nBin;
+/*N*/ rStrm >> nBin;
+/*N*/ return new SvxPaperBinItem( Which(), nBin );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// class SvxSizeItem -----------------------------------------------------
+
+/*N*/ SvxSizeItem::SvxSizeItem( const sal_uInt16 nId, const Size& rSize ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ aSize( rSize )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxSizeItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ awt::Size aTmp(aSize.Width(), aSize.Height());
+/*N*/ if( bConvert )
+/*N*/ {
+/*N*/ aTmp.Height = TWIP_TO_MM100(aTmp.Height);
+/*N*/ aTmp.Width = TWIP_TO_MM100(aTmp.Width);
+/*N*/ }
+/*N*/
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_SIZE_SIZE: rVal <<= aTmp; break;
+/*N*/ case MID_SIZE_WIDTH: rVal <<= aTmp.Width; break;
+/*N*/ case MID_SIZE_HEIGHT: rVal <<= aTmp.Height; break;
+/*N*/ default: DBG_ERROR("Wrong MemberId!"); return sal_False;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxSizeItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_SIZE_SIZE:
+/*N*/ {
+/*?*/ awt::Size aTmp;
+/*?*/ if( rVal >>= aTmp )
+/*?*/ {
+/*?*/ if(bConvert)
+/*?*/ {
+/*?*/ aTmp.Height = MM100_TO_TWIP(aTmp.Height);
+/*?*/ aTmp.Width = MM100_TO_TWIP(aTmp.Width);
+/*?*/ }
+/*?*/ aSize = Size( aTmp.Width, aTmp.Height );
+/*?*/ }
+/*?*/ else
+/*?*/ {
+/*?*/ return sal_False;
+/*?*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_SIZE_WIDTH:
+/*N*/ {
+/*N*/ sal_Int32 nVal;
+/*N*/ if(!(rVal >>= nVal ))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ aSize.Width() = bConvert ? MM100_TO_TWIP(nVal) : nVal;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_SIZE_HEIGHT:
+/*N*/ {
+/*N*/ sal_Int32 nVal;
+/*N*/ if(!(rVal >>= nVal))
+/*N*/ return sal_True;
+/*N*/
+/*N*/ aSize.Height() = bConvert ? MM100_TO_TWIP(nVal) : nVal;
+/*N*/ }
+/*N*/ break;
+/*N*/ default: DBG_ERROR("Wrong MemberId!");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxSizeItem::SvxSizeItem( const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxSizeItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( aSize == ( (SvxSizeItem&)rAttr ).GetSize() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxSizeItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxSizeItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxSizeItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << aSize.Width();
+/*N*/ rStrm << aSize.Height();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+/*N*/ SfxPoolItem* SvxSizeItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ long nWidth, nHeight;
+/*N*/ rStrm >> nWidth >> nHeight;
+/*N*/
+/*N*/ SvxSizeItem* pAttr = new SvxSizeItem( Which() );
+/*N*/ pAttr->SetSize(Size(nWidth, nHeight));
+/*N*/
+/*N*/ return pAttr;
+/*N*/ }
+
+// class SvxLRSpaceItem --------------------------------------------------
+
+/*N*/ SvxLRSpaceItem::SvxLRSpaceItem( const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nFirstLineOfst ( 0 ), nPropFirstLineOfst( 100 ),
+/*N*/ nTxtLeft ( 0 ),
+/*N*/ nLeftMargin ( 0 ), nPropLeftMargin( 100 ),
+/*N*/ nRightMargin ( 0 ), nPropRightMargin( 100 ),
+/*N*/ bBulletFI ( 0 ),
+/*N*/ bAutoFirst ( 0 )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxLRSpaceItem::SvxLRSpaceItem( const long nLeft, const long nRight,
+/*N*/ const long nTLeft, const short nOfset,
+/*N*/ const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nFirstLineOfst ( nOfset ), nPropFirstLineOfst( 100 ),
+/*N*/ nTxtLeft ( nTLeft ),
+/*N*/ nLeftMargin ( nLeft ), nPropLeftMargin( 100 ),
+/*N*/ nRightMargin ( nRight ), nPropRightMargin( 100 ),
+/*N*/ bBulletFI ( 0 ),
+/*N*/ bAutoFirst ( 0 )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxLRSpaceItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ // jetzt alles signed
+/*N*/ case MID_L_MARGIN:
+/*N*/ rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nLeftMargin) : nLeftMargin);
+/*N*/ break;
+/*N*/
+/*N*/ case MID_TXT_LMARGIN :
+/*N*/ rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nTxtLeft) : nTxtLeft);
+/*N*/ break;
+/*N*/ case MID_R_MARGIN:
+/*N*/ rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nRightMargin) : nRightMargin);
+/*N*/ break;
+/*N*/ case MID_L_REL_MARGIN:
+/*N*/ rVal <<= (sal_Int16)nPropLeftMargin;
+/*N*/ break;
+/*N*/ case MID_R_REL_MARGIN:
+/*N*/ rVal <<= (sal_Int16)nPropRightMargin;
+/*N*/ break;
+/*N*/
+/*N*/ case MID_FIRST_LINE_INDENT:
+/*N*/ rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nFirstLineOfst) : nFirstLineOfst);
+/*N*/ break;
+/*N*/
+/*N*/ case MID_FIRST_LINE_REL_INDENT:
+/*N*/ rVal <<= (sal_Int16)(nPropFirstLineOfst);
+/*N*/ break;
+/*N*/
+/*N*/ case MID_FIRST_AUTO:
+/*N*/ rVal = Bool2Any(IsAutoFirst());
+/*N*/ break;
+/*N*/
+/*N*/ default:
+/*N*/ bRet = sal_False;
+/*N*/ DBG_ERROR("unknown MemberId");
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxLRSpaceItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Int32 nMaxVal = bConvert ? TWIP_TO_MM100(USHRT_MAX) : USHRT_MAX;
+/*N*/ sal_Int32 nVal;
+/*N*/ if( nMemberId != MID_FIRST_AUTO &&
+/*N*/ nMemberId != MID_L_REL_MARGIN && nMemberId != MID_R_REL_MARGIN)
+/*N*/ if(!(rVal >>= nVal))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_L_MARGIN:
+/*N*/ SetLeft((sal_Int32)bConvert ? MM100_TO_TWIP(nVal) : nVal);
+/*N*/ break;
+/*N*/
+/*N*/ case MID_TXT_LMARGIN :
+/*N*/ SetTxtLeft((sal_Int32)bConvert ? MM100_TO_TWIP(nVal) : nVal);
+/*N*/ break;
+/*N*/
+/*N*/ case MID_R_MARGIN:
+/*N*/ SetRight((sal_Int32) bConvert ? MM100_TO_TWIP(nVal) : nVal);
+/*N*/ break;
+/*N*/ case MID_L_REL_MARGIN:
+/*N*/ case MID_R_REL_MARGIN:
+/*N*/ {
+/*N*/ sal_Int32 nRel;
+/*N*/ if((rVal >>= nRel) && nRel >= 0 && nRel < USHRT_MAX)
+/*N*/ {
+/*N*/ if(MID_L_REL_MARGIN== nMemberId)
+/*N*/ nPropLeftMargin = (USHORT)nRel;
+/*N*/ else
+/*N*/ nPropRightMargin = (USHORT)nRel;
+/*N*/ }
+/*N*/ else
+/*N*/ return FALSE;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FIRST_LINE_INDENT :
+/*N*/ SetTxtFirstLineOfst((short)(bConvert ? MM100_TO_TWIP(nVal) : nVal));
+/*N*/ break;
+/*N*/
+/*N*/ case MID_FIRST_LINE_REL_INDENT:
+/*?*/ SetPropTxtFirstLineOfst ( nVal );
+/*N*/ break;
+/*N*/
+/*N*/ case MID_FIRST_AUTO:
+/*N*/ SetAutoFirst( Any2Bool(rVal) );
+/*N*/ break;
+/*N*/
+/*N*/ default:
+/*N*/ DBG_ERROR("unknown MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+// nLeftMargin und nTxtLeft anpassen.
+
+/*N*/ void SvxLRSpaceItem::AdjustLeft()
+/*N*/ {
+/*N*/ if ( 0 > nFirstLineOfst )
+/*N*/ nLeftMargin = nTxtLeft + nFirstLineOfst;
+/*N*/ else
+/*N*/ nLeftMargin = nTxtLeft;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxLRSpaceItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return (
+/*N*/ nLeftMargin == ((SvxLRSpaceItem&)rAttr).GetLeft() &&
+/*N*/ nRightMargin == ((SvxLRSpaceItem&)rAttr).GetRight() &&
+/*N*/ nFirstLineOfst == ((SvxLRSpaceItem&)rAttr).GetTxtFirstLineOfst() &&
+/*N*/ nPropLeftMargin == ((SvxLRSpaceItem&)rAttr).GetPropLeft() &&
+/*N*/ nPropRightMargin == ((SvxLRSpaceItem&)rAttr).GetPropRight() &&
+/*N*/ nPropFirstLineOfst == ((SvxLRSpaceItem&)rAttr).GetPropTxtFirstLineOfst() &&
+/*N*/ bBulletFI == ((SvxLRSpaceItem&)rAttr).IsBulletFI() &&
+/*N*/ bAutoFirst == ((SvxLRSpaceItem&)rAttr).IsAutoFirst() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLRSpaceItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxLRSpaceItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+// MT: BulletFI: Vor 501 wurde im Outliner das Bullet nicht auf der Position des
+// FI positioniert, deshalb muss in aelteren Dokumenten der FI auf 0 stehen.
+
+#define BULLETLR_MARKER 0x599401FE
+
+/*N*/ SvStream& SvxLRSpaceItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ short nSaveFI = nFirstLineOfst;
+/*N*/ if ( IsBulletFI() )
+/*N*/ ((SvxLRSpaceItem*)this)->SetTxtFirstLineOfst( 0 ); // nLeftMargin wird mitmanipuliert, siehe Create()
+/*N*/
+/*N*/ sal_uInt16 nMargin = 0;
+/*N*/ if( nLeftMargin > 0 )
+/*N*/ nMargin = sal_uInt16( nLeftMargin );
+/*N*/ rStrm << nMargin;
+/*N*/ rStrm << nPropLeftMargin;
+/*N*/ if( nRightMargin > 0 )
+/*N*/ nMargin = sal_uInt16( nRightMargin );
+/*N*/ else
+/*N*/ nMargin = 0;
+/*N*/ rStrm << nMargin;
+/*N*/ rStrm << nPropRightMargin;
+/*N*/ rStrm << nFirstLineOfst;
+/*N*/ rStrm << nPropFirstLineOfst;
+/*N*/ if( nTxtLeft > 0 )
+/*N*/ nMargin = sal_uInt16( nTxtLeft );
+/*N*/ else
+/*N*/ nMargin = 0;
+/*N*/ rStrm << nMargin;
+/*N*/ if( nItemVersion >= LRSPACE_AUTOFIRST_VERSION )
+/*N*/ {
+/*N*/ sal_Int8 nAutoFirst = bAutoFirst ? 1 : 0;
+/*N*/ if( nItemVersion >= LRSPACE_NEGATIVE_VERSION &&
+/*N*/ ( nLeftMargin < 0 || nRightMargin < 0 || nTxtLeft < 0 ) )
+/*N*/ nAutoFirst |= 0x80;
+/*N*/ rStrm << nAutoFirst;
+/*N*/
+/*N*/ if ( IsBulletFI() )
+/*N*/ {
+/*N*/ // Ab 6.0 keine Magicnumber schreiben...
+/*N*/ DBG_ASSERT( rStrm.GetVersion() <= SOFFICE_FILEFORMAT_50, "MT: Fileformat SvxLRSpaceItem aendern!" );
+/*N*/ rStrm << (sal_uInt32) BULLETLR_MARKER;
+/*N*/ rStrm << nSaveFI;
+/*N*/ }
+/*N*/ if( 0x80 & nAutoFirst )
+/*N*/ {
+/*N*/ rStrm << nLeftMargin;
+/*N*/ rStrm << nRightMargin;
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ if ( IsBulletFI() )
+/*N*/ ((SvxLRSpaceItem*)this)->SetTxtFirstLineOfst( nSaveFI );
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLRSpaceItem::Create( SvStream& rStrm, sal_uInt16 nVersion ) const
+/*N*/ {
+/*N*/ sal_uInt16 left, prpleft, right, prpright, prpfirstline, txtleft;
+/*N*/ short firstline;
+/*N*/ sal_Int8 autofirst = 0;
+/*N*/
+/*N*/ if ( nVersion >= LRSPACE_AUTOFIRST_VERSION )
+/*N*/ {
+/*N*/ rStrm >> left >> prpleft >> right >> prpright >> firstline >>
+/*N*/ prpfirstline >> txtleft >> autofirst;
+/*N*/
+/*N*/ sal_uInt32 nPos = rStrm.Tell();
+/*N*/ sal_uInt32 nMarker;
+/*N*/ rStrm >> nMarker;
+/*N*/ if ( nMarker == BULLETLR_MARKER )
+/*N*/ {
+/*N*/ rStrm >> firstline;
+/*N*/ if ( firstline < 0 )
+/*N*/ left += firstline; // s.u.: txtleft = ...
+/*N*/ }
+/*N*/ else
+/*N*/ rStrm.Seek( nPos );
+/*N*/ }
+/*N*/ else if ( nVersion == LRSPACE_TXTLEFT_VERSION )
+/*N*/ {
+/*N*/ rStrm >> left >> prpleft >> right >> prpright >> firstline >>
+/*N*/ prpfirstline >> txtleft;
+/*N*/ }
+/*N*/ else if ( nVersion == LRSPACE_16_VERSION )
+/*N*/ {
+/*N*/ rStrm >> left >> prpleft >> right >> prpright >> firstline >>
+/*N*/ prpfirstline;
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*?*/ sal_Int8 nL, nR, nFL;
+/*?*/ rStrm >> left >> nL >> right >> nR >> firstline >> nFL;
+/*?*/ prpleft = (sal_uInt16)nL;
+/*?*/ prpright = (sal_uInt16)nR;
+/*?*/ prpfirstline = (sal_uInt16)nFL;
+/*N*/ }
+/*N*/
+/*N*/ txtleft = firstline >= 0 ? left : left - firstline;
+/*N*/ SvxLRSpaceItem* pAttr = new SvxLRSpaceItem( Which() );
+/*N*/
+/*N*/ pAttr->nLeftMargin = left;
+/*N*/ pAttr->nPropLeftMargin = prpleft;
+/*N*/ pAttr->nRightMargin = right;
+/*N*/ pAttr->nPropRightMargin = prpright;
+/*N*/ pAttr->nFirstLineOfst = firstline;
+/*N*/ pAttr->nPropFirstLineOfst = prpfirstline;
+/*N*/ pAttr->nTxtLeft = txtleft;
+/*N*/ pAttr->bAutoFirst = autofirst & 0x01;
+/*N*/ if( nVersion >= LRSPACE_NEGATIVE_VERSION && ( autofirst & 0x80 ) )
+/*N*/ {
+/*N*/ sal_Int32 nMargin;
+/*N*/ rStrm >> nMargin;
+/*N*/ pAttr->nLeftMargin = nMargin;
+/*N*/ pAttr->nTxtLeft = firstline >= 0 ? nMargin : nMargin - firstline;
+/*N*/ rStrm >> nMargin;
+/*N*/ pAttr->nRightMargin = nMargin;
+/*N*/ }
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxLRSpaceItem::GetVersion( sal_uInt16 nFileVersion ) const
+/*N*/ {
+/*N*/ return (nFileVersion == SOFFICE_FILEFORMAT_31)
+/*N*/ ? LRSPACE_TXTLEFT_VERSION
+/*N*/ : LRSPACE_NEGATIVE_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// class SvxULSpaceItem --------------------------------------------------
+
+/*N*/ SvxULSpaceItem::SvxULSpaceItem( const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nUpper( 0 ), nPropUpper( 100 ),
+/*N*/ nLower( 0 ), nPropLower( 100 )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxULSpaceItem::SvxULSpaceItem( const sal_uInt16 nUp, const sal_uInt16 nLow,
+/*N*/ const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ nUpper( nUp ), nPropUpper( 100 ),
+/*N*/ nLower( nLow ), nPropLower( 100 )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxULSpaceItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ // jetzt alles signed
+/*N*/ case MID_UP_MARGIN: rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nUpper) : nUpper); break;
+/*N*/ case MID_LO_MARGIN: rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nLower) : nLower); break;
+/*N*/ case MID_UP_REL_MARGIN: rVal <<= (sal_Int16) nPropUpper; break;
+/*N*/ case MID_LO_REL_MARGIN: rVal <<= (sal_Int16) nPropLower; break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxULSpaceItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Int32 nVal;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_UP_MARGIN :
+/*N*/ if(!(rVal >>= nVal) || nVal < 0)
+/*N*/ return sal_False;
+/*N*/ SetUpper((sal_uInt16)bConvert ? MM100_TO_TWIP(nVal) : nVal);
+/*N*/ break;
+/*N*/ case MID_LO_MARGIN :
+/*N*/ if(!(rVal >>= nVal) || nVal < 0)
+/*N*/ return sal_False;
+/*N*/ SetLower((sal_uInt16)bConvert ? MM100_TO_TWIP(nVal) : nVal);
+/*N*/ break;
+/*N*/ case MID_UP_REL_MARGIN:
+/*N*/ case MID_LO_REL_MARGIN:
+/*N*/ {
+/*N*/ sal_Int32 nRel;
+/*?*/ if((rVal >>= nRel) && nRel > 1 )
+/*?*/ {
+/*?*/ if(MID_UP_REL_MARGIN == nMemberId)
+/*?*/ nPropUpper = nRel;
+/*?*/ else
+/*?*/ nPropLower = nRel;
+/*?*/ }
+/*?*/ else
+/*?*/ return FALSE;
+/*?*/ }
+/*?*/ break;
+/*N*/
+/*N*/
+/*N*/ default:
+/*N*/ DBG_ERROR("unknown MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxULSpaceItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( nUpper == ( (SvxULSpaceItem&)rAttr ).nUpper &&
+/*N*/ nLower == ( (SvxULSpaceItem&)rAttr ).nLower &&
+/*N*/ nPropUpper == ( (SvxULSpaceItem&)rAttr ).nPropUpper &&
+/*N*/ nPropLower == ( (SvxULSpaceItem&)rAttr ).nPropLower );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxULSpaceItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxULSpaceItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxULSpaceItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << GetUpper()
+/*N*/ << GetPropUpper()
+/*N*/ << GetLower()
+/*N*/ << GetPropLower();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxULSpaceItem::Create( SvStream& rStrm, sal_uInt16 nVersion ) const
+/*N*/ {
+/*N*/ sal_uInt16 upper, lower, nPL = 0, nPU = 0;
+/*N*/
+/*N*/ if ( nVersion == ULSPACE_16_VERSION )
+/*N*/ rStrm >> upper >> nPU >> lower >> nPL;
+/*N*/ else
+/*N*/ {
+/*?*/ sal_Int8 nU, nL;
+/*?*/ rStrm >> upper >> nU >> lower >> nL;
+/*?*/ nPL = (sal_uInt16)nL;
+/*?*/ nPU = (sal_uInt16)nU;
+/*N*/ }
+/*N*/
+/*N*/ SvxULSpaceItem* pAttr = new SvxULSpaceItem( Which() );
+/*N*/ pAttr->SetUpperValue( upper );
+/*N*/ pAttr->SetLowerValue( lower );
+/*N*/ pAttr->SetPropUpper( nPU );
+/*N*/ pAttr->SetPropLower( nPL );
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxULSpaceItem::GetVersion( sal_uInt16 nFileVersion ) const
+/*N*/ {
+/*N*/ return ULSPACE_16_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+// class SvxPrintItem ----------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPrintItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxPrintItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxPrintItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPrintItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 bIsPrint;
+/*N*/ rStrm >> bIsPrint;
+/*N*/ return new SvxPrintItem( Which(), sal_Bool( bIsPrint != 0 ) );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxOpaqueItem ---------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOpaqueItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxOpaqueItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxOpaqueItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOpaqueItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 bIsOpaque;
+/*N*/ rStrm >> bIsOpaque;
+/*N*/ return new SvxOpaqueItem( Which(), sal_Bool( bIsOpaque != 0 ) );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxProtectItem --------------------------------------------------
+
+/*N*/ int SvxProtectItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( bCntnt == ( (SvxProtectItem&)rAttr ).bCntnt &&
+/*N*/ bSize == ( (SvxProtectItem&)rAttr ).bSize &&
+/*N*/ bPos == ( (SvxProtectItem&)rAttr ).bPos );
+/*N*/ }
+
+/*-----------------16.03.98 12:42-------------------
+--------------------------------------------------*/
+/*N*/ bool SvxProtectItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bValue;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_PROTECT_CONTENT : bValue = bCntnt; break;
+/*N*/ case MID_PROTECT_SIZE : bValue = bSize; break;
+/*N*/ case MID_PROTECT_POSITION: bValue = bPos; break;
+/*N*/ default:
+/*N*/ DBG_ERROR("falsche MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/
+/*N*/ rVal = Bool2Any( bValue );
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------16.03.98 12:42-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxProtectItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bVal( Any2Bool(rVal) );
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_PROTECT_CONTENT : bCntnt = bVal; break;
+/*N*/ case MID_PROTECT_SIZE : bSize = bVal; break;
+/*N*/ case MID_PROTECT_POSITION: bPos = bVal; break;
+/*N*/ default:
+/*N*/ DBG_ERROR("falsche MemberId");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxProtectItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxProtectItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxProtectItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ sal_Int8 cProt = 0;
+/*N*/ if( IsPosProtected() ) cProt |= 0x01;
+/*N*/ if( IsSizeProtected() ) cProt |= 0x02;
+/*N*/ if( IsCntntProtected() ) cProt |= 0x04;
+/*N*/ rStrm << (sal_Int8) cProt;
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxProtectItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 cFlags;
+/*N*/ rStrm >> cFlags;
+/*N*/ SvxProtectItem* pAttr = new SvxProtectItem( Which() );
+/*N*/ pAttr->SetPosProtect( sal_Bool( ( cFlags & 0x01 ) != 0 ) );
+/*N*/ pAttr->SetSizeProtect( sal_Bool( ( cFlags & 0x02 ) != 0 ) );
+/*N*/ pAttr->SetCntntProtect( sal_Bool( ( cFlags & 0x04 ) != 0 ) );
+/*N*/ return pAttr;
+/*N*/ }
+
+// class SvxShadowItem ---------------------------------------------------
+
+/*N*/ SvxShadowItem::SvxShadowItem( const USHORT nId,
+/*N*/ const Color *pColor, const USHORT nW,
+/*N*/ const SvxShadowLocation eLoc ) :
+/*N*/ SfxEnumItemInterface( nId ),
+/*N*/ aShadowColor(COL_GRAY),
+/*N*/ nWidth ( nW ),
+/*N*/ eLocation ( eLoc )
+/*N*/ {
+/*N*/ if ( pColor )
+/*N*/ aShadowColor = *pColor;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxShadowItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ table::ShadowFormat aShadow;
+/*N*/ table::ShadowLocation eSet = table::ShadowLocation_NONE;
+/*N*/ switch( eLocation )
+/*N*/ {
+/*N*/ case SVX_SHADOW_TOPLEFT : eSet = table::ShadowLocation_TOP_LEFT ; break;
+/*N*/ case SVX_SHADOW_TOPRIGHT : eSet = table::ShadowLocation_TOP_RIGHT ; break;
+/*N*/ case SVX_SHADOW_BOTTOMLEFT : eSet = table::ShadowLocation_BOTTOM_LEFT ; break;
+/*N*/ case SVX_SHADOW_BOTTOMRIGHT: eSet = table::ShadowLocation_BOTTOM_RIGHT; break;
+/*N*/ }
+/*N*/ aShadow.Location = eSet;
+/*N*/ aShadow.ShadowWidth = bConvert ? TWIP_TO_MM100(nWidth) : nWidth;
+/*N*/ aShadow.IsTransparent = aShadowColor.GetTransparency() > 0;
+/*N*/ aShadow.Color = aShadowColor.GetRGBColor();
+/*N*/
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*?*/ case MID_LOCATION: rVal <<= aShadow.Location; break;
+/*?*/ case MID_WIDTH: rVal <<= aShadow.ShadowWidth; break;
+/*?*/ case MID_TRANSPARENT: rVal <<= aShadow.IsTransparent; break;
+/*?*/ case MID_BG_COLOR: rVal <<= aShadow.Color; break;
+/*N*/ case 0: rVal <<= aShadow; break;
+/*N*/ default: DBG_ERROR("Wrong MemberId!"); return sal_False;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxShadowItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ table::ShadowFormat aShadow;
+/*N*/ uno::Any aAny;
+/*N*/ bool bRet = QueryValue( aAny, bConvert ? CONVERT_TWIPS : 0 ) && ( aAny >>= aShadow );
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case MID_LOCATION:
+/*N*/ {
+/*?*/ bRet = (rVal >>= aShadow.Location);
+/*?*/ if ( !bRet )
+/*?*/ {
+/*?*/ sal_Int16 nVal;
+/*?*/ bRet = (rVal >>= nVal);
+/*?*/ aShadow.Location = (table::ShadowLocation) nVal;
+/*?*/ }
+/*?*/
+/*?*/ break;
+/*N*/ }
+/*N*/
+/*N*/ case MID_WIDTH: rVal >>= aShadow.ShadowWidth; break;
+/*?*/ case MID_TRANSPARENT: rVal >>= aShadow.IsTransparent; break;
+/*?*/ case MID_BG_COLOR: rVal >>= aShadow.Color; break;
+/*N*/ case 0: rVal >>= aShadow; break;
+/*N*/ default: DBG_ERROR("Wrong MemberId!"); return sal_False;
+/*N*/ }
+/*N*/
+/*N*/ if ( bRet )
+/*N*/ {
+/*N*/ SvxShadowLocation eSet = SVX_SHADOW_NONE;
+/*N*/ switch( aShadow.Location )
+/*N*/ {
+/*N*/ case table::ShadowLocation_TOP_LEFT : eLocation = SVX_SHADOW_TOPLEFT; break;
+/*N*/ case table::ShadowLocation_TOP_RIGHT : eLocation = SVX_SHADOW_TOPRIGHT; break;
+/*N*/ case table::ShadowLocation_BOTTOM_LEFT : eLocation = SVX_SHADOW_BOTTOMLEFT ; break;
+/*N*/ case table::ShadowLocation_BOTTOM_RIGHT: eLocation = SVX_SHADOW_BOTTOMRIGHT; break;
+/*N*/ }
+/*N*/
+/*N*/ nWidth = bConvert ? MM100_TO_TWIP(aShadow.ShadowWidth) : aShadow.ShadowWidth;
+/*N*/ Color aSet(aShadow.Color);
+/*N*/ aSet.SetTransparency(aShadow.IsTransparent ? 0xff : 0);
+/*N*/ aShadowColor = aSet;
+/*N*/ }
+/*N*/
+/*N*/ return bRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxShadowItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( ( aShadowColor == ( (SvxShadowItem&)rAttr ).aShadowColor ) &&
+/*N*/ ( nWidth == ( (SvxShadowItem&)rAttr ).GetWidth() ) &&
+/*N*/ ( eLocation == ( (SvxShadowItem&)rAttr ).GetLocation() ) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxShadowItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxShadowItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxShadowItem::CalcShadowSpace( sal_uInt16 nShadow ) const
+/*N*/ {
+/*N*/ sal_uInt16 nSpace = 0;
+/*N*/
+/*N*/ switch ( nShadow )
+/*N*/ {
+/*N*/ case SHADOW_TOP:
+/*N*/ if ( eLocation == SVX_SHADOW_TOPLEFT ||
+/*N*/ eLocation == SVX_SHADOW_TOPRIGHT )
+/*N*/ nSpace = nWidth;
+/*N*/ break;
+/*N*/
+/*N*/ case SHADOW_BOTTOM:
+/*N*/ if ( eLocation == SVX_SHADOW_BOTTOMLEFT ||
+/*N*/ eLocation == SVX_SHADOW_BOTTOMRIGHT )
+/*N*/ nSpace = nWidth;
+/*N*/ break;
+/*N*/
+/*N*/ case SHADOW_LEFT:
+/*N*/ if ( eLocation == SVX_SHADOW_TOPLEFT ||
+/*N*/ eLocation == SVX_SHADOW_BOTTOMLEFT )
+/*N*/ nSpace = nWidth;
+/*N*/ break;
+/*N*/
+/*N*/ case SHADOW_RIGHT:
+/*N*/ if ( eLocation == SVX_SHADOW_TOPRIGHT ||
+/*N*/ eLocation == SVX_SHADOW_BOTTOMRIGHT )
+/*N*/ nSpace = nWidth;
+/*N*/ break;
+/*N*/
+/*N*/ default:
+/*N*/ DBG_ERROR( "wrong shadow" );
+/*N*/ }
+/*N*/ return nSpace;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxShadowItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8) GetLocation()
+/*N*/ << (sal_uInt16) GetWidth()
+/*N*/ << (sal_Bool)(aShadowColor.GetTransparency() > 0)
+/*N*/ << GetColor()
+/*N*/ << GetColor()
+/*N*/ << (sal_Int8)(aShadowColor.GetTransparency() > 0 ? 0 : 1); //BRUSH_NULL : BRUSH_SOLID
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxShadowItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 cLoc;
+/*N*/ sal_uInt16 nWidth;
+/*N*/ sal_Bool bTrans;
+/*N*/ Color aColor;
+/*N*/ Color aFillColor;
+/*N*/ sal_Int8 nStyle;
+/*N*/ rStrm >> cLoc >> nWidth
+/*N*/ >> bTrans >> aColor >> aFillColor >> nStyle;
+/*N*/ aColor.SetTransparency(bTrans ? 0xff : 0);
+/*N*/ return new SvxShadowItem( Which(), &aColor, nWidth, (SvxShadowLocation)cLoc );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxShadowItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_SHADOW_END; // SVX_SHADOW_BOTTOMRIGHT + 1
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxShadowItem::GetEnumValue() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return GetLocation();
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ void SvxShadowItem::SetEnumValue( sal_uInt16 nVal )
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 SetLocation( (const SvxShadowLocation)nVal );
+/*?*/ }
+
+// class SvxBorderLine --------------------------------------------------
+
+/*N*/ SvxBorderLine::SvxBorderLine( const Color *pCol, sal_uInt16 nOut, sal_uInt16 nIn,
+/*N*/ sal_uInt16 nDist ) :
+/*N*/
+/*N*/ nOutWidth( nOut ),
+/*N*/ nInWidth ( nIn ),
+/*N*/ nDistance( nDist )
+/*N*/
+/*N*/ {
+/*N*/ if ( pCol )
+/*N*/ aColor = *pCol;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_Bool SvxBorderLine::operator==( const SvxBorderLine& rCmp ) const
+/*N*/ {
+/*N*/ return ( ( aColor == rCmp.GetColor() ) &&
+/*N*/ ( nInWidth == rCmp.GetInWidth() ) &&
+/*N*/ ( nOutWidth == rCmp.GetOutWidth() ) &&
+/*N*/ ( nDistance == rCmp.GetDistance() ) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+// class SvxBoxItem ------------------------------------------------------
+
+/*N*/ SvxBoxItem::SvxBoxItem( const SvxBoxItem& rCpy ) :
+/*N*/
+/*N*/ SfxPoolItem ( rCpy ),
+/*N*/ nTopDist ( rCpy.nTopDist ),
+/*N*/ nBottomDist ( rCpy.nBottomDist ),
+/*N*/ nLeftDist ( rCpy.nLeftDist ),
+/*N*/ nRightDist ( rCpy.nRightDist )
+/*N*/
+/*N*/ {
+/*N*/ pTop = rCpy.GetTop() ? new SvxBorderLine( *rCpy.GetTop() ) : 0;
+/*N*/ pBottom = rCpy.GetBottom() ? new SvxBorderLine( *rCpy.GetBottom() ) : 0;
+/*N*/ pLeft = rCpy.GetLeft() ? new SvxBorderLine( *rCpy.GetLeft() ) : 0;
+/*N*/ pRight = rCpy.GetRight() ? new SvxBorderLine( *rCpy.GetRight() ) : 0;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBoxItem::SvxBoxItem( const sal_uInt16 nId ) :
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ pTop ( 0 ),
+/*N*/ pBottom ( 0 ),
+/*N*/ pLeft ( 0 ),
+/*N*/ pRight ( 0 ),
+/*N*/ nTopDist ( 0 ),
+/*N*/ nBottomDist ( 0 ),
+/*N*/ nLeftDist ( 0 ),
+/*N*/ nRightDist ( 0 )
+/*N*/
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBoxItem::~SvxBoxItem()
+/*N*/ {
+/*N*/ delete pTop;
+/*N*/ delete pBottom;
+/*N*/ delete pLeft;
+/*N*/ delete pRight;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBoxItem& SvxBoxItem::operator=( const SvxBoxItem& rBox )
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return *this;//STRIP001
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ inline sal_Bool CmpBrdLn( const SvxBorderLine* pBrd1, const SvxBorderLine* pBrd2 )
+/*?*/ {
+/*?*/ sal_Bool bRet;
+/*?*/ if( 0 != pBrd1 ? 0 == pBrd2 : 0 != pBrd2 )
+/*?*/ bRet = sal_False;
+/*?*/ else
+/*?*/ if( !pBrd1 )
+/*?*/ bRet = sal_True;
+/*?*/ else
+/*?*/ bRet = (*pBrd1 == *pBrd2);
+/*?*/ return bRet;
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxBoxItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return (
+/*N*/ ( nTopDist == ( (SvxBoxItem&)rAttr ).nTopDist ) &&
+/*N*/ ( nBottomDist == ( (SvxBoxItem&)rAttr ).nBottomDist ) &&
+/*N*/ ( nLeftDist == ( (SvxBoxItem&)rAttr ).nLeftDist ) &&
+/*N*/ ( nRightDist == ( (SvxBoxItem&)rAttr ).nRightDist ) &&
+/*N*/ CmpBrdLn( pTop, ( (SvxBoxItem&)rAttr ).GetTop() ) &&
+/*N*/ CmpBrdLn( pBottom, ( (SvxBoxItem&)rAttr ).GetBottom() ) &&
+/*N*/ CmpBrdLn( pLeft, ( (SvxBoxItem&)rAttr ).GetLeft() ) &&
+/*N*/ CmpBrdLn( pRight, ( (SvxBoxItem&)rAttr ).GetRight() ) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ table::BorderLine lcl_SvxLineToLine(const SvxBorderLine* pLine, sal_Bool bConvert)
+/*N*/ {
+/*N*/ table::BorderLine aLine;
+/*N*/ if(pLine)
+/*N*/ {
+/*N*/ aLine.Color = pLine->GetColor().GetColor() ;
+/*N*/ aLine.InnerLineWidth = bConvert ? TWIP_TO_MM100(pLine->GetInWidth() ): pLine->GetInWidth() ;
+/*N*/ aLine.OuterLineWidth = bConvert ? TWIP_TO_MM100(pLine->GetOutWidth()): pLine->GetOutWidth() ;
+/*N*/ aLine.LineDistance = bConvert ? TWIP_TO_MM100(pLine->GetDistance()): pLine->GetDistance() ;
+/*N*/ }
+/*N*/ else
+/*N*/ aLine.Color = aLine.InnerLineWidth = aLine.OuterLineWidth = aLine.LineDistance = 0;
+/*N*/ return aLine;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxBoxItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ table::BorderLine aRetLine;
+/*N*/ sal_uInt16 nDist;
+/*N*/ sal_Bool bDistMember = sal_False;
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bSerialize = sal_False;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_LEFT_BORDER:
+/*N*/ bSerialize = sal_True; // intentionally no break!
+/*N*/ case LEFT_BORDER:
+/*N*/ aRetLine = lcl_SvxLineToLine(GetLeft(), bConvert);
+/*N*/ break;
+/*N*/ case MID_RIGHT_BORDER:
+/*N*/ bSerialize = sal_True; // intentionally no break!
+/*N*/ case RIGHT_BORDER:
+/*N*/ aRetLine = lcl_SvxLineToLine(GetRight(), bConvert);
+/*N*/ break;
+/*N*/ case MID_BOTTOM_BORDER:
+/*N*/ bSerialize = sal_True; // intentionally no break!
+/*N*/ case BOTTOM_BORDER:
+/*N*/ aRetLine = lcl_SvxLineToLine(GetBottom(), bConvert);
+/*N*/ break;
+/*N*/ case MID_TOP_BORDER:
+/*N*/ bSerialize = sal_True; // intentionally no break!
+/*N*/ case TOP_BORDER:
+/*N*/ aRetLine = lcl_SvxLineToLine(GetTop(), bConvert);
+/*N*/ break;
+/*N*/ case BORDER_DISTANCE:
+/*?*/ nDist = GetDistance();
+/*?*/ bDistMember = sal_True;
+/*?*/ break;
+/*N*/ case TOP_BORDER_DISTANCE:
+/*N*/ nDist = nTopDist;
+/*N*/ bDistMember = sal_True;
+/*N*/ break;
+/*N*/ case BOTTOM_BORDER_DISTANCE:
+/*N*/ nDist = nBottomDist;
+/*N*/ bDistMember = sal_True;
+/*N*/ break;
+/*N*/ case LEFT_BORDER_DISTANCE:
+/*N*/ nDist = nLeftDist;
+/*N*/ bDistMember = sal_True;
+/*N*/ break;
+/*N*/ case RIGHT_BORDER_DISTANCE:
+/*N*/ nDist = nRightDist;
+/*N*/ bDistMember = sal_True;
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ if( bDistMember )
+/*N*/ rVal <<= (sal_Int32)(bConvert ? TWIP_TO_MM100(nDist) : nDist);
+/*N*/ else
+/*N*/ {
+/*
+ if ( bSerialize )
+ {
+ ::com::sun::star::uno::Sequence < ::com::sun::star::uno::Any > aSeq(4);
+ aSeq[0] <<= aRetLine.Color;
+ aSeq[1] <<= aRetLine.InnerLineWidth;
+ aSeq[2] <<= aRetLine.OuterLineWidth;
+ aSeq[3] <<= aRetLine.LineDistance;
+ rVal <<= aSeq;
+ }
+ else
+*/
+/*N*/ rVal <<= aRetLine;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ sal_Bool lcl_LineToSvxLine(const ::com::sun::star::table::BorderLine& rLine, SvxBorderLine& rSvxLine, sal_Bool bConvert)
+/*N*/ {
+/*N*/ rSvxLine.SetColor( Color(rLine.Color));
+/*N*/ rSvxLine.SetInWidth( bConvert ? MM100_TO_TWIP(rLine.InnerLineWidth) : rLine.InnerLineWidth );
+/*N*/ rSvxLine.SetOutWidth(bConvert ? MM100_TO_TWIP(rLine.OuterLineWidth) : rLine.OuterLineWidth );
+/*N*/ rSvxLine.SetDistance(bConvert ? MM100_TO_TWIP(rLine.LineDistance ) : rLine.LineDistance );
+/*N*/ sal_Bool bRet = rLine.InnerLineWidth > 0 || rLine.OuterLineWidth > 0;
+/*N*/ return bRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxBoxItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ sal_uInt16 nLine = BOX_LINE_TOP;
+/*N*/ sal_Bool bDistMember = sal_False;
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case LEFT_BORDER_DISTANCE:
+/*N*/ bDistMember = sal_True;
+/*N*/ case LEFT_BORDER:
+/*N*/ case MID_LEFT_BORDER:
+/*N*/ nLine = BOX_LINE_LEFT;
+/*N*/ break;
+/*N*/ case RIGHT_BORDER_DISTANCE:
+/*N*/ bDistMember = sal_True;
+/*N*/ case RIGHT_BORDER:
+/*N*/ case MID_RIGHT_BORDER:
+/*N*/ nLine = BOX_LINE_RIGHT;
+/*N*/ break;
+/*N*/ case BOTTOM_BORDER_DISTANCE:
+/*N*/ bDistMember = sal_True;
+/*N*/ case BOTTOM_BORDER:
+/*N*/ case MID_BOTTOM_BORDER:
+/*N*/ nLine = BOX_LINE_BOTTOM;
+/*N*/ break;
+/*N*/ case TOP_BORDER_DISTANCE:
+/*N*/ bDistMember = sal_True;
+/*N*/ case TOP_BORDER:
+/*N*/ case MID_TOP_BORDER:
+/*N*/ nLine = BOX_LINE_TOP;
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ if( bDistMember || nMemberId == BORDER_DISTANCE )
+/*N*/ {
+/*N*/ sal_Int32 nDist;
+/*N*/ if(!(rVal >>= nDist))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ if(nDist >= 0)
+/*N*/ {
+/*N*/ if( bConvert )
+/*N*/ nDist = MM100_TO_TWIP(nDist);
+/*N*/ if( nMemberId == BORDER_DISTANCE )
+/*?*/ SetDistance( nDist );
+/*N*/ else
+/*N*/ SetDistance( nDist, nLine );
+/*N*/ }
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ SvxBorderLine aLine;
+/*N*/ if( !rVal.hasValue() )
+/*N*/ return sal_False;
+/*N*/
+/*N*/ table::BorderLine aBorderLine;
+/*N*/ if( rVal >>= aBorderLine )
+/*N*/ {
+/*N*/ // usual struct
+/*N*/ }
+/*N*/ else if (rVal.getValueTypeClass() == uno::TypeClass_SEQUENCE )
+/*N*/ {
+/*N*/ // serialization for basic macro recording
+/*?*/ uno::Reference < script::XTypeConverter > xConverter
+/*?*/ ( ::legacy_binfilters::getLegacyProcessServiceFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.script.Converter")),
+/*?*/ uno::UNO_QUERY );
+/*?*/ uno::Sequence < uno::Any > aSeq;
+/*?*/ uno::Any aNew;
+/*?*/ try { aNew = xConverter->convertTo( rVal, ::getCppuType((const uno::Sequence < uno::Any >*)0) ); }
+/*?*/ catch (uno::Exception&) {}
+/*?*/
+/*?*/ aNew >>= aSeq;
+/*?*/ if ( aSeq.getLength() == 4 )
+/*?*/ {
+/*?*/ sal_Int32 nVal;
+/*?*/ if ( aSeq[0] >>= nVal )
+/*?*/ aBorderLine.Color = nVal;
+/*?*/ if ( aSeq[1] >>= nVal )
+/*?*/ aBorderLine.InnerLineWidth = (sal_Int16) nVal;
+/*?*/ if ( aSeq[2] >>= nVal )
+/*?*/ aBorderLine.OuterLineWidth = (sal_Int16) nVal;
+/*?*/ if ( aSeq[3] >>= nVal )
+/*?*/ aBorderLine.LineDistance = (sal_Int16) nVal;
+/*?*/ }
+/*?*/ else
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ else
+/*N*/ return sal_False;
+/*N*/
+/*N*/ sal_Bool bSet = lcl_LineToSvxLine(aBorderLine, aLine, bConvert);
+/*N*/ SetLine(bSet ? &aLine : 0, nLine);
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBoxItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxBoxItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxBoxItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_uInt16) GetDistance();
+/*N*/ const SvxBorderLine* pLine[ 4 ]; // top, left, right, bottom
+/*N*/ pLine[ 0 ] = GetTop();
+/*N*/ pLine[ 1 ] = GetLeft();
+/*N*/ pLine[ 2 ] = GetRight();
+/*N*/ pLine[ 3 ] = GetBottom();
+/*N*/
+/*N*/ for( int i = 0; i < 4; i++ )
+/*N*/ {
+/*N*/ const SvxBorderLine* l = pLine[ i ];
+/*N*/ if( l )
+/*N*/ {
+/*N*/ rStrm << (sal_Int8) i
+/*N*/ << l->GetColor()
+/*N*/ << (sal_uInt16) l->GetOutWidth()
+/*N*/ << (sal_uInt16) l->GetInWidth()
+/*N*/ << (sal_uInt16) l->GetDistance();
+/*N*/ }
+/*N*/ }
+/*N*/ sal_Int8 cLine = 4;
+/*N*/ if( nItemVersion >= BOX_4DISTS_VERSION &&
+/*N*/ !(nTopDist == nLeftDist &&
+/*N*/ nTopDist == nRightDist &&
+/*N*/ nTopDist == nBottomDist) )
+/*N*/ {
+/*?*/ cLine |= 0x10;
+/*N*/ }
+/*N*/
+/*N*/ rStrm << cLine;
+/*N*/
+/*N*/ if( nItemVersion >= BOX_4DISTS_VERSION && (cLine & 0x10) != 0 )
+/*N*/ {
+/*N*/ rStrm << (sal_uInt16)nTopDist
+/*N*/ << (sal_uInt16)nLeftDist
+/*N*/ << (sal_uInt16)nRightDist
+/*?*/ << (sal_uInt16)nBottomDist;
+/*N*/ }
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxBoxItem::GetVersion( sal_uInt16 nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxBoxItem: Gibt es ein neues Fileformat?" );
+/*N*/ return SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ? 0 : BOX_4DISTS_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBoxItem::Create( SvStream& rStrm, sal_uInt16 nIVersion ) const
+/*N*/ {
+/*N*/ sal_uInt16 nDistance;
+/*N*/ rStrm >> nDistance;
+/*N*/ SvxBoxItem* pAttr = new SvxBoxItem( Which() );
+/*N*/
+/*N*/ sal_uInt16 aLineMap[4] = { BOX_LINE_TOP, BOX_LINE_LEFT,
+/*N*/ BOX_LINE_RIGHT, BOX_LINE_BOTTOM };
+/*N*/
+/*N*/ sal_Int8 cLine;
+/*N*/ while( sal_True )
+/*N*/ {
+/*N*/ rStrm >> cLine;
+/*N*/
+/*N*/ if( cLine > 3 )
+/*N*/ break;
+/*N*/ sal_uInt16 nOutline, nInline, nDistance;
+/*N*/ Color aColor;
+/*N*/ rStrm >> aColor >> nOutline >> nInline >> nDistance;
+/*N*/ SvxBorderLine aBorder( &aColor, nOutline, nInline, nDistance );
+/*N*/
+/*N*/ pAttr->SetLine( &aBorder, aLineMap[cLine] );
+/*N*/ }
+/*N*/
+/*N*/ if( nIVersion >= BOX_4DISTS_VERSION && (cLine&0x10) != 0 )
+/*N*/ {
+/*N*/ for( sal_uInt16 i=0; i < 4; i++ )
+/*N*/ {
+/*?*/ sal_uInt16 nDist;
+/*?*/ rStrm >> nDist;
+/*?*/ pAttr->SetDistance( nDist, aLineMap[i] );
+/*N*/ }
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ pAttr->SetDistance( nDistance );
+/*N*/ }
+/*N*/
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBoxItem::SetLine( const SvxBorderLine* pNew, sal_uInt16 nLine )
+/*N*/ {
+/*N*/ SvxBorderLine* pTmp = pNew ? new SvxBorderLine( *pNew ) : 0;
+/*N*/
+/*N*/ switch ( nLine )
+/*N*/ {
+/*N*/ case BOX_LINE_TOP:
+/*N*/ delete pTop;
+/*N*/ pTop = pTmp;
+/*N*/ break;
+/*N*/ case BOX_LINE_BOTTOM:
+/*N*/ delete pBottom;
+/*N*/ pBottom = pTmp;
+/*N*/ break;
+/*N*/ case BOX_LINE_LEFT:
+/*N*/ delete pLeft;
+/*N*/ pLeft = pTmp;
+/*N*/ break;
+/*N*/ case BOX_LINE_RIGHT:
+/*N*/ delete pRight;
+/*N*/ pRight = pTmp;
+/*N*/ break;
+/*N*/ default:
+/*N*/ if ( pTmp )
+/*N*/ delete pTmp;
+/*N*/ DBG_ERROR( "wrong line" );
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxBoxItem::GetDistance() const
+/*N*/ {
+/*N*/ // The smallest distance that is not 0 will be returned.
+/*N*/ sal_uInt16 nDist = nTopDist;
+/*N*/ if( nBottomDist && (!nDist || nBottomDist < nDist) )
+/*N*/ nDist = nBottomDist;
+/*N*/ if( nLeftDist && (!nDist || nLeftDist < nDist) )
+/*N*/ nDist = nLeftDist;
+/*N*/ if( nRightDist && (!nDist || nRightDist < nDist) )
+/*N*/ nDist = nRightDist;
+/*N*/
+/*N*/ return nDist;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxBoxItem::GetDistance( sal_uInt16 nLine ) const
+/*N*/ {
+/*N*/ sal_uInt16 nDist = 0;
+/*N*/ switch ( nLine )
+/*N*/ {
+/*N*/ case BOX_LINE_TOP:
+/*N*/ nDist = nTopDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_BOTTOM:
+/*N*/ nDist = nBottomDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_LEFT:
+/*N*/ nDist = nLeftDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_RIGHT:
+/*N*/ nDist = nRightDist;
+/*N*/ break;
+/*N*/ default:
+/*N*/ DBG_ERROR( "wrong line" );
+/*N*/ }
+/*N*/
+/*N*/ return nDist;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBoxItem::SetDistance( sal_uInt16 nNew, sal_uInt16 nLine )
+/*N*/ {
+/*N*/ switch ( nLine )
+/*N*/ {
+/*N*/ case BOX_LINE_TOP:
+/*N*/ nTopDist = nNew;
+/*N*/ break;
+/*N*/ case BOX_LINE_BOTTOM:
+/*N*/ nBottomDist = nNew;
+/*N*/ break;
+/*N*/ case BOX_LINE_LEFT:
+/*N*/ nLeftDist = nNew;
+/*N*/ break;
+/*N*/ case BOX_LINE_RIGHT:
+/*N*/ nRightDist = nNew;
+/*N*/ break;
+/*N*/ default:
+/*N*/ DBG_ERROR( "wrong line" );
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxBoxItem::CalcLineSpace( sal_uInt16 nLine, sal_Bool bIgnoreLine ) const
+/*N*/ {
+/*N*/ SvxBorderLine* pTmp = 0;
+/*N*/ sal_uInt16 nDist = 0;
+/*N*/ switch ( nLine )
+/*N*/ {
+/*N*/ case BOX_LINE_TOP:
+/*N*/ pTmp = pTop;
+/*N*/ nDist = nTopDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_BOTTOM:
+/*N*/ pTmp = pBottom;
+/*N*/ nDist = nBottomDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_LEFT:
+/*N*/ pTmp = pLeft;
+/*N*/ nDist = nLeftDist;
+/*N*/ break;
+/*N*/ case BOX_LINE_RIGHT:
+/*N*/ pTmp = pRight;
+/*N*/ nDist = nRightDist;
+/*N*/ break;
+/*N*/ default:
+/*N*/ DBG_ERROR( "wrong line" );
+/*N*/ }
+/*N*/
+/*N*/ if( pTmp )
+/*N*/ {
+/*N*/ nDist += pTmp->GetOutWidth();
+/*N*/ nDist += pTmp->GetInWidth();
+/*N*/ nDist += pTmp->GetDistance();
+/*N*/ }
+/*N*/ else if( !bIgnoreLine )
+/*N*/ nDist = 0;
+/*N*/ return nDist;
+/*N*/ }
+
+// class SvxBoxInfoItem --------------------------------------------------
+
+/*N*/ SvxBoxInfoItem::SvxBoxInfoItem( const sal_uInt16 nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ pHori ( 0 ),
+/*N*/ pVert ( 0 ),
+/*N*/ nDefDist( 0 )
+/*N*/
+/*N*/ {
+/*N*/ bTable = bDist = bMinDist = sal_False;
+/*N*/ ResetFlags();
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBoxInfoItem::SvxBoxInfoItem( const SvxBoxInfoItem& rCpy ) :
+/*N*/
+/*N*/ SfxPoolItem( rCpy )
+/*N*/
+/*N*/ {
+/*N*/ pHori = rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : 0;
+/*N*/ pVert = rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : 0;
+/*N*/ bTable = rCpy.IsTable();
+/*N*/ bDist = rCpy.IsDist();
+/*N*/ bMinDist = rCpy.IsMinDist();
+/*N*/ nValidFlags = rCpy.nValidFlags;
+/*N*/ nDefDist = rCpy.GetDefDist();
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBoxInfoItem::~SvxBoxInfoItem()
+/*N*/ {
+/*N*/ delete pHori;
+/*N*/ delete pVert;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxBoxInfoItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ SvxBoxInfoItem& rBoxInfo = (SvxBoxInfoItem&)rAttr;
+/*N*/
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( bTable == rBoxInfo.IsTable()
+/*N*/ && bDist == rBoxInfo.IsDist()
+/*N*/ && bMinDist == rBoxInfo.IsMinDist()
+/*N*/ && nValidFlags == rBoxInfo.nValidFlags
+/*N*/ && nDefDist == rBoxInfo.GetDefDist()
+/*N*/ && CmpBrdLn( pHori, rBoxInfo.GetHori() )
+/*N*/ && CmpBrdLn( pVert, rBoxInfo.GetVert() )
+/*N*/ );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBoxInfoItem::SetLine( const SvxBorderLine* pNew, sal_uInt16 nLine )
+/*N*/ {
+/*N*/ SvxBorderLine* pTmp = pNew ? new SvxBorderLine( *pNew ) : 0;
+/*N*/
+/*N*/ if ( BOXINFO_LINE_HORI == nLine )
+/*N*/ {
+/*N*/ delete pHori;
+/*N*/ pHori = pTmp;
+/*N*/ }
+/*N*/ else if ( BOXINFO_LINE_VERT == nLine )
+/*N*/ {
+/*N*/ delete pVert;
+/*N*/ pVert = pTmp;
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ if ( pTmp )
+/*N*/ delete pTmp;
+/*N*/ DBG_ERROR( "wrong line" );
+/*N*/ }
+/*N*/ }
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBoxInfoItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxBoxInfoItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxBoxInfoItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ sal_Int8 cFlags = 0;
+/*N*/
+/*N*/ if ( IsTable() )
+/*N*/ cFlags |= 0x01;
+/*N*/ if ( IsDist() )
+/*N*/ cFlags |= 0x02;
+/*N*/ if ( IsMinDist() )
+/*N*/ cFlags |= 0x04;
+/*N*/ rStrm << (sal_Int8) cFlags
+/*N*/ << (sal_uInt16) GetDefDist();
+/*N*/ const SvxBorderLine* pLine[ 2 ];
+/*N*/ pLine[ 0 ] = GetHori();
+/*N*/ pLine[ 1 ] = GetVert();
+/*N*/
+/*N*/ for( int i = 0; i < 2; i++ )
+/*N*/ {
+/*N*/ const SvxBorderLine* l = pLine[ i ];
+/*N*/ if( l )
+/*N*/ {
+/*N*/ rStrm << (char) i
+/*N*/ << l->GetColor()
+/*N*/ << (short) l->GetOutWidth()
+/*N*/ << (short) l->GetInWidth()
+/*?*/ << (short) l->GetDistance();
+/*N*/ }
+/*N*/ }
+/*N*/ rStrm << (char) 2;
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBoxInfoItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 cFlags;
+/*N*/ sal_uInt16 nDefDist;
+/*N*/ rStrm >> cFlags >> nDefDist;
+/*N*/
+/*N*/ SvxBoxInfoItem* pAttr = new SvxBoxInfoItem( Which() );
+/*N*/
+/*N*/ pAttr->SetTable ( ( cFlags & 0x01 ) != 0 );
+/*N*/ pAttr->SetDist ( ( cFlags & 0x02 ) != 0 );
+/*N*/ pAttr->SetMinDist( ( cFlags & 0x04 ) != 0 );
+/*N*/ pAttr->SetDefDist( nDefDist );
+/*N*/
+/*N*/ while( sal_True )
+/*N*/ {
+/*N*/ sal_Int8 cLine;
+/*N*/ rStrm >> cLine;
+/*N*/
+/*N*/ if( cLine > 1 )
+/*N*/ break;
+/*?*/ short nOutline, nInline, nDistance;
+/*?*/ Color aColor;
+/*?*/ rStrm >> aColor >> nOutline >> nInline >> nDistance;
+/*?*/ SvxBorderLine aBorder( &aColor, nOutline, nInline, nDistance );
+/*?*/
+/*?*/ switch( cLine )
+/*?*/ {
+/*?*/ case 0: pAttr->SetLine( &aBorder, BOXINFO_LINE_HORI ); break;
+/*?*/ case 1: pAttr->SetLine( &aBorder, BOXINFO_LINE_VERT ); break;
+/*?*/ }
+/*N*/ }
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBoxInfoItem::ResetFlags()
+/*N*/ {
+/*N*/ nValidFlags = 0x7F; // alles g"ultig au/ser Disable
+/*N*/ }
+
+
+// -----------------------------------------------------------------------
+
+
+// class SvxFmtBreakItem -------------------------------------------------
+
+/*N*/ int SvxFmtBreakItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rAttr ), "unequal types" );
+/*N*/
+/*N*/ return GetValue() == ( (SvxFmtBreakItem&)rAttr ).GetValue();
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxFmtBreakItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ style::BreakType eBreak = style::BreakType_NONE;
+/*N*/ switch ( (SvxBreak)GetValue() )
+/*N*/ {
+/*N*/ case SVX_BREAK_COLUMN_BEFORE: eBreak = style::BreakType_COLUMN_BEFORE; break;
+/*N*/ case SVX_BREAK_COLUMN_AFTER: eBreak = style::BreakType_COLUMN_AFTER ; break;
+/*N*/ case SVX_BREAK_COLUMN_BOTH: eBreak = style::BreakType_COLUMN_BOTH ; break;
+/*N*/ case SVX_BREAK_PAGE_BEFORE: eBreak = style::BreakType_PAGE_BEFORE ; break;
+/*N*/ case SVX_BREAK_PAGE_AFTER: eBreak = style::BreakType_PAGE_AFTER ; break;
+/*N*/ case SVX_BREAK_PAGE_BOTH: eBreak = style::BreakType_PAGE_BOTH ; break;
+/*N*/ }
+/*N*/ rVal <<= eBreak;
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxFmtBreakItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ style::BreakType nBreak;
+/*N*/
+/*N*/ if(!(rVal >>= nBreak))
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/
+/*?*/ nBreak = (style::BreakType) nValue;
+/*N*/ }
+/*N*/
+/*N*/ SvxBreak eBreak = SVX_BREAK_NONE;
+/*N*/ switch( nBreak )
+/*N*/ {
+/*N*/ case style::BreakType_COLUMN_BEFORE: eBreak = SVX_BREAK_COLUMN_BEFORE; break;
+/*?*/ case style::BreakType_COLUMN_AFTER: eBreak = SVX_BREAK_COLUMN_AFTER; break;
+/*?*/ case style::BreakType_COLUMN_BOTH: eBreak = SVX_BREAK_COLUMN_BOTH; break;
+/*N*/ case style::BreakType_PAGE_BEFORE: eBreak = SVX_BREAK_PAGE_BEFORE; break;
+/*?*/ case style::BreakType_PAGE_AFTER: eBreak = SVX_BREAK_PAGE_AFTER; break;
+/*?*/ case style::BreakType_PAGE_BOTH: eBreak = SVX_BREAK_PAGE_BOTH; break;
+/*N*/ }
+/*N*/ SetValue((sal_uInt16) eBreak);
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFmtBreakItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxFmtBreakItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFmtBreakItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8)GetValue();
+/*N*/ if( FMTBREAK_NOAUTO > nItemVersion )
+/*N*/ rStrm << (sal_Int8)0x01;
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxFmtBreakItem::GetVersion( sal_uInt16 nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxFmtBreakItem: Gibt es ein neues Fileformat?" );
+/*N*/ return SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ? 0 : FMTBREAK_NOAUTO;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFmtBreakItem::Create( SvStream& rStrm, sal_uInt16 nVersion ) const
+/*N*/ {
+/*N*/ sal_Int8 eBreak, bDummy;
+/*N*/ rStrm >> eBreak;
+/*N*/ if( FMTBREAK_NOAUTO > nVersion )
+/*N*/ rStrm >> bDummy;
+/*N*/ return new SvxFmtBreakItem( (const SvxBreak)eBreak, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxFmtBreakItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_BREAK_END; // SVX_BREAK_PAGE_BOTH + 1
+/*?*/ }
+
+// class SvxFmtKeepItem -------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFmtKeepItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxFmtKeepItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFmtKeepItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFmtKeepItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 bIsKeep;
+/*N*/ rStrm >> bIsKeep;
+/*N*/ return new SvxFmtKeepItem( sal_Bool( bIsKeep != 0 ), Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxLineItem ------------------------------------------------------
+
+/*?*/ SvxLineItem::SvxLineItem( const sal_uInt16 nId ) :
+/*?*/
+/*?*/ SfxPoolItem ( nId ),
+/*?*/
+/*?*/ pLine( NULL )
+/*?*/ {
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxLineItem::operator==( const SfxPoolItem& rAttr ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*?*/
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ SfxPoolItem* SvxLineItem::Clone( SfxItemPool* ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001 return new SvxLineItem( *this );
+/*?*/ }
+
+
+// -----------------------------------------------------------------------
+
+#ifdef _MSC_VER
+#pragma optimize ( "", off )
+#endif
+
+// class SvxBrushItem ----------------------------------------------------
+
+#define LOAD_GRAPHIC ((sal_uInt16)0x0001)
+#define LOAD_LINK ((sal_uInt16)0x0002)
+#define LOAD_FILTER ((sal_uInt16)0x0004)
+
+// class SvxBrushItem_Impl -----------------------------------------------
+
+class SvxBrushItem_Impl
+{
+public:
+ BfGraphicObject* pGraphicObject;
+ sal_Int8 nGraphicTransparency; //contains a percentage value which is
+ //copied to the GraphicObject when necessary
+#ifndef SVX_LIGHT
+ SfxMediumRef xMedium;
+#endif
+ Link aDoneLink;
+
+ SvxBrushItem_Impl( BfGraphicObject* p ) : pGraphicObject( p ), nGraphicTransparency(0) {}
+};
+
+// class SvxBrushItemLink_Impl -------------------------------------------
+
+class SvxBrushItemLink_Impl : public SfxBrushItemLink
+{
+ virtual Graphic GetGraphic( const String& rLink, const String& rFilter );
+ virtual CreateSvxBrushTabPage GetBackgroundTabpageCreateFunc();
+ virtual GetSvxBrushTabPageRanges GetBackgroundTabpageRanges();
+};
+
+// -----------------------------------------------------------------------
+
+/*?*/ Graphic SvxBrushItemLink_Impl::GetGraphic( const String& rLink, const String& rFilter)
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); Graphic aResult; return aResult;//STRIP001 Graphic aResult;
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ CreateSvxBrushTabPage SvxBrushItemLink_Impl::GetBackgroundTabpageCreateFunc()
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001 #ifndef SVX_LIGHT
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ GetSvxBrushTabPageRanges SvxBrushItemLink_Impl::GetBackgroundTabpageRanges()
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001 #ifndef SVX_LIGHT
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBrushItem::InitSfxLink()
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( sal_uInt16 nWhich ) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( COL_TRANSPARENT ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( 0 ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( GPOS_NONE ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( const Color& rColor, sal_uInt16 nWhich) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( rColor ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( 0 ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( GPOS_NONE ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( const Graphic& rGraphic, SvxGraphicPosition ePos,
+/*N*/ sal_uInt16 nWhich ) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( COL_TRANSPARENT ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( new BfGraphicObject( rGraphic ) ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( ( GPOS_NONE != ePos ) ? ePos : GPOS_MM ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ DBG_ASSERT( GPOS_NONE != ePos, "SvxBrushItem-Ctor with GPOS_NONE == ePos" );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( const BfGraphicObject& rGraphicObj,
+/*N*/ SvxGraphicPosition ePos, sal_uInt16 nWhich ) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( COL_TRANSPARENT ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( new BfGraphicObject( rGraphicObj ) ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( ( GPOS_NONE != ePos ) ? ePos : GPOS_MM ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ DBG_ASSERT( GPOS_NONE != ePos, "SvxBrushItem-Ctor with GPOS_NONE == ePos" );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem(
+/*N*/ const String& rLink, const String& rFilter,
+/*N*/ SvxGraphicPosition ePos, sal_uInt16 nWhich ) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( COL_TRANSPARENT ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( NULL ) ),
+/*N*/ pStrLink ( new String( rLink ) ),
+/*N*/ pStrFilter ( new String( rFilter ) ),
+/*N*/ eGraphicPos ( ( GPOS_NONE != ePos ) ? ePos : GPOS_MM ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ DBG_ASSERT( GPOS_NONE != ePos, "SvxBrushItem-Ctor with GPOS_NONE == ePos" );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( SvStream& rStream, sal_uInt16 nVersion,
+/*N*/ sal_uInt16 nWhich ) :
+/*N*/
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/
+/*N*/ aColor ( COL_TRANSPARENT ),
+/*N*/ pImpl ( new SvxBrushItem_Impl( NULL ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( GPOS_NONE )
+/*N*/
+/*N*/ {
+/*N*/ sal_Bool bTrans;
+/*N*/ Color aTempColor;
+/*N*/ Color aTempFillColor;
+/*N*/ sal_Int8 nStyle;
+/*N*/
+/*N*/ rStream >> bTrans;
+/*N*/ rStream >> aTempColor;
+/*N*/ rStream >> aTempFillColor;
+/*N*/ rStream >> nStyle;
+/*N*/
+/*N*/ switch ( nStyle )
+/*N*/ {
+/*N*/ case 8://BRUSH_25:
+/*N*/ {
+/*N*/ sal_uInt32 nRed = aTempColor.GetRed();
+/*N*/ sal_uInt32 nGreen = aTempColor.GetGreen();
+/*N*/ sal_uInt32 nBlue = aTempColor.GetBlue();
+/*N*/ nRed += (sal_uInt32)(aTempFillColor.GetRed())*2;
+/*N*/ nGreen += (sal_uInt32)(aTempFillColor.GetGreen())*2;
+/*N*/ nBlue += (sal_uInt32)(aTempFillColor.GetBlue())*2;
+/*N*/ aColor = Color( (sal_Int8)(nRed/3), (sal_Int8)(nGreen/3), (sal_Int8)(nBlue/3) );
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case 9://BRUSH_50:
+/*N*/ {
+/*N*/ sal_uInt32 nRed = aTempColor.GetRed();
+/*N*/ sal_uInt32 nGreen = aTempColor.GetGreen();
+/*N*/ sal_uInt32 nBlue = aTempColor.GetBlue();
+/*N*/ nRed += (sal_uInt32)(aTempFillColor.GetRed());
+/*N*/ nGreen += (sal_uInt32)(aTempFillColor.GetGreen());
+/*N*/ nBlue += (sal_uInt32)(aTempFillColor.GetBlue());
+/*N*/ aColor = Color( (sal_Int8)(nRed/2), (sal_Int8)(nGreen/2), (sal_Int8)(nBlue/2) );
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case 10://BRUSH_75:
+/*N*/ {
+/*N*/ sal_uInt32 nRed = aTempColor.GetRed()*2;
+/*N*/ sal_uInt32 nGreen = aTempColor.GetGreen()*2;
+/*N*/ sal_uInt32 nBlue = aTempColor.GetBlue()*2;
+/*N*/ nRed += (sal_uInt32)(aTempFillColor.GetRed());
+/*N*/ nGreen += (sal_uInt32)(aTempFillColor.GetGreen());
+/*N*/ nBlue += (sal_uInt32)(aTempFillColor.GetBlue());
+/*N*/ aColor = Color( (sal_Int8)(nRed/3), (sal_Int8)(nGreen/3), (sal_Int8)(nBlue/3) );
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case 0://BRUSH_NULL:
+/*N*/ aColor = Color( COL_TRANSPARENT );
+/*N*/ break;
+/*N*/
+/*N*/ default:
+/*N*/ aColor = aTempColor;
+/*N*/ }
+/*N*/
+/*N*/ if ( nVersion >= BRUSH_GRAPHIC_VERSION )
+/*N*/ {
+/*N*/ sal_uInt16 nDoLoad = 0;
+/*N*/ sal_Int8 nPos;
+/*N*/
+/*N*/ rStream >> nDoLoad;
+/*N*/
+/*N*/ if ( nDoLoad & LOAD_GRAPHIC )
+/*N*/ {
+/*N*/ Graphic aGraphic;
+/*N*/
+/*N*/ rStream >> aGraphic;
+/*N*/ pImpl->pGraphicObject = new BfGraphicObject( aGraphic );
+/*N*/
+/*N*/ if( SVSTREAM_FILEFORMAT_ERROR == rStream.GetError() )
+/*N*/ {
+/*?*/ rStream.ResetError();
+/*?*/ rStream.SetError( ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT|
+/*?*/ ERRCODE_WARNING_MASK );
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ if ( nDoLoad & LOAD_LINK )
+/*N*/ {
+/*N*/ String aRel;
+/*N*/ // UNICODE: rStream >> aRel;
+/*N*/ rStream.ReadByteString(aRel);
+/*N*/
+/*N*/ String aAbs = ::binfilter::StaticBaseUrl::RelToAbs( aRel );
+/*N*/ pStrLink = new String( aAbs );
+/*N*/ }
+/*N*/
+/*N*/ if ( nDoLoad & LOAD_FILTER )
+/*N*/ {
+/*N*/ pStrFilter = new String;
+/*N*/ // UNICODE: rStream >> *pStrFilter;
+/*N*/ rStream.ReadByteString(*pStrFilter);
+/*N*/ }
+/*N*/
+/*N*/ rStream >> nPos;
+/*N*/
+/*N*/ eGraphicPos = (SvxGraphicPosition)nPos;
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::SvxBrushItem( const SvxBrushItem& rItem ) :
+/*N*/
+/*N*/ SfxPoolItem( rItem.Which() ),
+/*N*/
+/*N*/ pImpl ( new SvxBrushItem_Impl( NULL ) ),
+/*N*/ pStrLink ( NULL ),
+/*N*/ pStrFilter ( NULL ),
+/*N*/ eGraphicPos ( GPOS_NONE ),
+/*N*/ bLoadAgain ( sal_True )
+/*N*/
+/*N*/ {
+/*N*/ *this = rItem;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem::~SvxBrushItem()
+/*N*/ {
+/*N*/ #ifndef SVX_LIGHT
+/*N*/ if( pImpl->xMedium.Is() )
+/*?*/ pImpl->xMedium->SetDoneLink( Link() );
+/*N*/ #endif
+/*N*/ delete pImpl->pGraphicObject;
+/*N*/ delete pImpl;
+/*N*/ delete pStrLink;
+/*N*/ delete pStrFilter;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxBrushItem::GetVersion( sal_uInt16 nFileVersion ) const
+/*N*/ {
+/*N*/ return BRUSH_GRAPHIC_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*?*/ inline sal_Int8 lcl_PercentToTransparency(long nPercent)
+/*?*/ {
+/*?*/ //0xff must not be returned!
+/*?*/ return sal_Int8(nPercent ? (50 + 0xfe * nPercent) / 100 : 0);
+/*?*/ }
+/*?*/ inline sal_Int8 lcl_TransparencyToPercent(sal_Int32 nTrans)
+/*?*/ {
+/*?*/ return (nTrans * 100 + 127) / 254;
+/*?*/ }
+
+/*N*/ bool SvxBrushItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId)
+/*N*/ {
+/*N*/ case MID_BACK_COLOR:
+/*N*/ rVal <<= (sal_Int32)( aColor.GetColor() );
+/*N*/ break;
+/*N*/ case MID_BACK_COLOR_R_G_B:
+/*N*/ rVal <<= (sal_Int32)( aColor.GetRGBColor() );
+/*N*/ break;
+/*N*/ case MID_BACK_COLOR_TRANSPARENCY:
+/*N*/ rVal <<= lcl_TransparencyToPercent(aColor.GetTransparency());
+/*N*/ break;
+/*N*/ case MID_GRAPHIC_POSITION:
+/*N*/ rVal <<= (style::GraphicLocation)(sal_Int16)eGraphicPos;
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC:
+/*N*/ DBG_ERRORFILE( "not implemented" );
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_TRANSPARENT:
+/*N*/ rVal = Bool2Any( aColor.GetTransparency() == 0xff );
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_URL:
+/*N*/ {
+/*N*/ OUString sLink;
+/*N*/ if ( pStrLink )
+/*N*/ sLink = *pStrLink;
+/*N*/ else if( pImpl->pGraphicObject )
+/*N*/ {
+/*N*/ OUString sPrefix(RTL_CONSTASCII_USTRINGPARAM(UNO_NAME_GRAPHOBJ_URLPREFIX));
+/*N*/ String sId( pImpl->pGraphicObject->GetUniqueID(),
+/*N*/ RTL_TEXTENCODING_ASCII_US );
+/*N*/ sLink = sPrefix;
+/*N*/ sLink += OUString(sId);
+/*N*/ }
+/*N*/ rVal <<= sLink;
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_FILTER:
+/*N*/ {
+/*N*/ OUString sFilter;
+/*N*/ if ( pStrFilter )
+/*N*/ sFilter = *pStrFilter;
+/*N*/ rVal <<= sFilter;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_GRAPHIC_TRANSPARENCY :
+/*N*/ rVal <<= pImpl->nGraphicTransparency;
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxBrushItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId)
+/*N*/ {
+/*N*/ case MID_BACK_COLOR:
+/*N*/ case MID_BACK_COLOR_R_G_B:
+/*N*/ {
+/*N*/ sal_Int32 nCol;
+/*N*/ if ( !( rVal >>= nCol ) )
+/*N*/ return sal_False;
+/*N*/ if(MID_BACK_COLOR_R_G_B == nMemberId)
+/*N*/ {
+/*N*/ nCol = COLORDATA_RGB( nCol );
+/*N*/ nCol += aColor.GetColor() & 0xff000000;
+/*N*/ }
+/*N*/ aColor = Color( nCol );
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_BACK_COLOR_TRANSPARENCY:
+/*N*/ {
+/*N*/ sal_Int32 nTrans;
+/*N*/ if ( !( rVal >>= nTrans ) || nTrans < 0 || nTrans > 100 )
+/*N*/ return sal_False;
+/*N*/ aColor.SetTransparency(lcl_PercentToTransparency(nTrans));
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_POSITION:
+/*N*/ {
+/*N*/ style::GraphicLocation eLocation;
+/*N*/ if ( !( rVal>>=eLocation ) )
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if ( !( rVal >>= nValue ) )
+/*?*/ return sal_False;
+/*?*/ eLocation = (style::GraphicLocation)nValue;
+/*N*/ }
+/*N*/ SetGraphicPos( (SvxGraphicPosition)(sal_uInt16)eLocation );
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC:
+/*N*/ DBG_ERRORFILE( "not implemented" );
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_TRANSPARENT:
+/*N*/ aColor.SetTransparency( Any2Bool( rVal ) ? 0xff : 0 );
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_URL:
+/*N*/ {
+/*N*/ if ( rVal.getValueType() == ::getCppuType( (OUString*)0 ) )
+/*N*/ {
+/*N*/ OUString sLink;
+/*N*/ rVal >>= sLink;
+/*N*/ if( 0 == sLink.compareToAscii( UNO_NAME_GRAPHOBJ_URLPKGPREFIX,
+/*N*/ sizeof(UNO_NAME_GRAPHOBJ_URLPKGPREFIX)-1 ) )
+/*N*/ {
+/*N*/ DBG_ERROR( "package urls aren't implemented" );
+/*N*/ }
+/*N*/ else if( 0 == sLink.compareToAscii( UNO_NAME_GRAPHOBJ_URLPREFIX,
+/*N*/ sizeof(UNO_NAME_GRAPHOBJ_URLPREFIX)-1 ) )
+/*N*/ {
+/*N*/ DELETEZ( pStrLink );
+/*N*/ String sTmp( sLink );
+/*N*/ ByteString sId( sTmp.Copy(
+/*N*/ sizeof(UNO_NAME_GRAPHOBJ_URLPREFIX)-1),
+/*N*/ RTL_TEXTENCODING_ASCII_US );
+/*N*/ BfGraphicObject *pOldGrfObj = pImpl->pGraphicObject;
+/*N*/ pImpl->pGraphicObject = new BfGraphicObject( sId );
+/*N*/ ApplyGraphicTransparency_Impl();
+/*N*/ delete pOldGrfObj;
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ SetGraphicLink(sLink);
+/*N*/ }
+/*N*/ if ( sLink.getLength() && eGraphicPos == GPOS_NONE )
+/*N*/ eGraphicPos = GPOS_MM;
+/*N*/ else if( !sLink.getLength() )
+/*N*/ eGraphicPos = GPOS_NONE;
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/
+/*N*/ case MID_GRAPHIC_FILTER:
+/*N*/ {
+/*N*/ if( rVal.getValueType() == ::getCppuType( (OUString*)0 ) )
+/*N*/ {
+/*N*/ OUString sLink;
+/*N*/ rVal >>= sLink;
+/*N*/ SetGraphicFilter( sLink );
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_GRAPHIC_TRANSPARENCY :
+/*N*/ {
+/*N*/ sal_Int32 nTmp;
+/*N*/ rVal >>= nTmp;
+/*N*/ if(nTmp >= 0 && nTmp <= 100)
+/*N*/ {
+/*N*/ pImpl->nGraphicTransparency = sal_Int8(nTmp);
+/*N*/ if(pImpl->pGraphicObject)
+/*N*/ ApplyGraphicTransparency_Impl();
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxBrushItem& SvxBrushItem::operator=( const SvxBrushItem& rItem )
+/*N*/ {
+/*N*/ aColor = rItem.aColor;
+/*N*/ eGraphicPos = rItem.eGraphicPos;
+/*N*/
+/*N*/ DELETEZ( pImpl->pGraphicObject );
+/*N*/ DELETEZ( pStrLink );
+/*N*/ DELETEZ( pStrFilter );
+/*N*/
+/*N*/ if ( GPOS_NONE != eGraphicPos )
+/*N*/ {
+/*N*/ if ( rItem.pStrLink )
+/*N*/ pStrLink = new String( *rItem.pStrLink );
+/*N*/ if ( rItem.pStrFilter )
+/*N*/ pStrFilter = new String( *rItem.pStrFilter );
+/*N*/ if ( rItem.pImpl->pGraphicObject )
+/*N*/ {
+/*N*/ pImpl->pGraphicObject = new BfGraphicObject( *rItem.pImpl->pGraphicObject );
+/*N*/ }
+/*N*/ }
+/*N*/ pImpl->nGraphicTransparency = rItem.pImpl->nGraphicTransparency;
+/*N*/ return *this;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxBrushItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ SvxBrushItem& rCmp = (SvxBrushItem&)rAttr;
+/*N*/ sal_Bool bEqual = ( aColor == rCmp.aColor && eGraphicPos == rCmp.eGraphicPos &&
+/*N*/ pImpl->nGraphicTransparency == rCmp.pImpl->nGraphicTransparency);
+/*N*/
+/*N*/ if ( bEqual )
+/*N*/ {
+/*N*/ if ( GPOS_NONE != eGraphicPos )
+/*N*/ {
+/*N*/ if ( !rCmp.pStrLink )
+/*N*/ bEqual = !pStrLink;
+/*N*/ else
+/*N*/ bEqual = pStrLink && ( *pStrLink == *rCmp.pStrLink );
+/*N*/
+/*N*/ if ( bEqual )
+/*N*/ {
+/*N*/ if ( !rCmp.pStrFilter )
+/*N*/ bEqual = !pStrFilter;
+/*N*/ else
+/*N*/ bEqual = pStrFilter && ( *pStrFilter == *rCmp.pStrFilter );
+/*N*/ }
+/*N*/
+/*N*/ if ( bEqual && !rCmp.pStrLink )
+/*N*/ {
+/*N*/ if ( !rCmp.pImpl->pGraphicObject )
+/*?*/ bEqual = !pImpl->pGraphicObject;
+/*N*/ else
+/*N*/ bEqual = pImpl->pGraphicObject &&
+/*N*/ ( *pImpl->pGraphicObject == *rCmp.pImpl->pGraphicObject );
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ return bEqual;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBrushItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxBrushItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBrushItem::Create( SvStream& rStream, sal_uInt16 nVersion ) const
+/*N*/ {
+/*N*/ return new SvxBrushItem( rStream, nVersion, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxBrushItem::Store( SvStream& rStream , sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStream << (sal_Bool)sal_False;
+/*N*/ rStream << aColor;
+/*N*/ rStream << aColor;
+/*N*/ rStream << (sal_Int8)(aColor.GetTransparency() > 0 ? 0 : 1); //BRUSH_NULL : BRUSH_SOLID
+/*N*/
+/*N*/ sal_uInt16 nDoLoad = 0;
+/*N*/
+/*N*/ if ( pImpl->pGraphicObject && !pStrLink )
+/*N*/ nDoLoad |= LOAD_GRAPHIC;
+/*N*/ if ( pStrLink )
+/*N*/ nDoLoad |= LOAD_LINK;
+/*N*/ if ( pStrFilter )
+/*N*/ nDoLoad |= LOAD_FILTER;
+/*N*/ rStream << nDoLoad;
+/*N*/
+/*N*/ if ( pImpl->pGraphicObject && !pStrLink )
+/*N*/ rStream << pImpl->pGraphicObject->GetGraphic();
+/*N*/ if ( pStrLink )
+/*N*/ {
+/*N*/ String aRel = ::binfilter::StaticBaseUrl::AbsToRel( *pStrLink );
+/*N*/ // UNICODE: rStream << aRel;
+/*N*/ rStream.WriteByteString(aRel);
+/*N*/ }
+/*N*/ if ( pStrFilter )
+/*N*/ {
+/*N*/ // UNICODE: rStream << *pStrFilter;
+/*?*/ rStream.WriteByteString(*pStrFilter);
+/*N*/ }
+/*N*/ rStream << (sal_Int8)eGraphicPos;
+/*N*/ return rStream;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+// const wegcasten, da const als logisches const zu verstehen ist
+// wenn GetGraphic() gerufen wird, soll sich das Item darum kuemmern,
+// eine gelinkte Grafik zu holen.
+
+GraphicFilter* GetGrfFilter();
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ const BfGraphicObject* SvxBrushItem::GetGraphicObject( SfxObjectShell* pSh ) const
+/*N*/ {
+/*N*/ #ifndef SVX_LIGHT
+/*N*/ if ( bLoadAgain && pStrLink && !pImpl->pGraphicObject && !pImpl->xMedium.Is() )
+/*N*/ // wenn Grafik schon geladen, als Cache benutzen
+/*N*/ {
+/*?*/ if( pSh && pSh->IsAbortingImport() )
+/*?*/ {
+/*?*/ SvxBrushItem* pThis = (SvxBrushItem*)this;
+/*?*/ pThis->bLoadAgain = sal_False;
+/*?*/ return 0;
+/*?*/ }
+/*?*/ //JP 29.6.2001: only with "valid" names - empty names now allowed
+/*?*/ if( pStrLink->Len() )
+/*?*/ {
+/*?*/ pImpl->xMedium = new SfxMedium(
+/*?*/ *pStrLink, STREAM_STD_READ, sal_False );
+/*?*/
+/*?*/ pImpl->xMedium->SetTransferPriority( SFX_TFPRIO_VISIBLE_LOWRES_GRAPHIC );
+/*?*/ if( pImpl->xMedium->IsRemote() )
+/*?*/ {
+/*?*/ if( pSh )
+/*?*/ pSh->RegisterTransfer( *pImpl->xMedium );
+/*?*/ else
+/*?*/ DBG_WARNING( "SvxBrushItem::GetGraphic ohne DocShell" );
+/*?*/ }
+/*?*/
+/*?*/ SfxMediumRef xRef( pImpl->xMedium );
+/*?*/ // Ref halten wg. synchr. DoneCallback
+/*?*/ if( pImpl->aDoneLink.IsSet() )
+/*?*/ {
+/*?*/ // Auf besonderen Wunsch des Writers wird der synchrone und der
+/*?*/ // asynchrone Fall was die Benachrichtigung angeht unterschiedlich
+/*?*/ // behandelt. Der Callback erfolgt nur bei asynchronem Eintreffen
+/*?*/ // der Daten
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/
+/*?*/ }
+/*?*/ else
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ pImpl->xMedium->DownLoad( );
+/*?*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ #endif
+/*N*/ return pImpl->pGraphicObject;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ const Graphic* SvxBrushItem::GetGraphic( SfxObjectShell* pSh ) const
+/*N*/ {
+/*N*/ const BfGraphicObject* pGrafObj = GetGraphicObject( pSh );
+/*N*/ return( pGrafObj ? &( pGrafObj->GetGraphic() ) : NULL );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBrushItem::SetGraphicPos( SvxGraphicPosition eNew )
+/*N*/ {
+/*N*/ eGraphicPos = eNew;
+/*N*/
+/*N*/ if ( GPOS_NONE == eGraphicPos )
+/*N*/ {
+/*N*/ DELETEZ( pImpl->pGraphicObject );
+/*N*/ DELETEZ( pStrLink );
+/*N*/ DELETEZ( pStrFilter );
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ if ( !pImpl->pGraphicObject && !pStrLink )
+/*N*/ {
+/*N*/ pImpl->pGraphicObject = new BfGraphicObject; // dummy anlegen
+/*N*/ }
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBrushItem::SetGraphic( const Graphic& rNew )
+/*N*/ {
+/*N*/ if ( !pStrLink )
+/*N*/ {
+/*N*/ if ( pImpl->pGraphicObject )
+/*N*/ pImpl->pGraphicObject->SetGraphic( rNew );
+/*N*/ else
+/*N*/ pImpl->pGraphicObject = new BfGraphicObject( rNew );
+/*N*/
+/*N*/ ApplyGraphicTransparency_Impl();
+/*N*/
+/*N*/ if ( GPOS_NONE == eGraphicPos )
+/*N*/ eGraphicPos = GPOS_MM; // None waere Brush, also Default: Mitte
+/*N*/ }
+/*N*/ else
+/*N*/ DBG_ERROR( "SetGraphic() on linked graphic! :-/" );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBrushItem::SetGraphicLink( const String& rNew )
+/*N*/ {
+/*N*/ if ( !rNew.Len() )
+/*N*/ DELETEZ( pStrLink );
+/*N*/ else
+/*N*/ {
+/*N*/ if ( pStrLink )
+/*N*/ *pStrLink = rNew;
+/*N*/ else
+/*N*/ pStrLink = new String( rNew );
+/*N*/
+/*N*/ DELETEZ( pImpl->pGraphicObject );
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxBrushItem::SetGraphicFilter( const String& rNew )
+/*N*/ {
+/*N*/ if ( !rNew.Len() )
+/*N*/ DELETEZ( pStrFilter );
+/*N*/ else
+/*N*/ {
+/*?*/ if ( pStrFilter )
+/*?*/ *pStrFilter = rNew;
+/*?*/ else
+/*?*/ pStrFilter = new String( rNew );
+/*N*/ }
+/*N*/ }
+
+#ifdef _MSC_VER
+#pragma optimize ( "", on )
+#endif
+/* -----------------------------16.08.2002 09:18------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ void SvxBrushItem::ApplyGraphicTransparency_Impl()
+/*N*/ {
+/*N*/ DBG_ASSERT(pImpl->pGraphicObject, "no GraphicObject available" );
+/*N*/ if(pImpl->pGraphicObject)
+/*N*/ {
+/*N*/ BfGraphicAttr aAttr(pImpl->pGraphicObject->GetAttr());
+/*N*/ aAttr.SetTransparency(lcl_PercentToTransparency(
+/*N*/ pImpl->nGraphicTransparency));
+/*N*/ pImpl->pGraphicObject->SetAttr(aAttr);
+/*N*/ }
+/*N*/ }
+// class SvxFrameDirectionItem ----------------------------------------------
+
+/*N*/ SvxFrameDirectionItem::SvxFrameDirectionItem( SvxFrameDirection nValue ,
+/*N*/ USHORT nWhich )
+/*N*/ : SfxUInt16Item( nWhich, nValue )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SvxFrameDirectionItem::~SvxFrameDirectionItem()
+/*N*/ {
+/*N*/ }
+
+/*N*/ int SvxFrameDirectionItem::operator==( const SfxPoolItem& rCmp ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rCmp), "unequal types" );
+/*N*/
+/*N*/ return GetValue() == ((SvxFrameDirectionItem&)rCmp).GetValue();
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxFrameDirectionItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxFrameDirectionItem( *this );
+/*N*/ }
+
+SfxPoolItem* SvxFrameDirectionItem::Create( SvStream & rStrm, USHORT /*nVer*/ ) const
+{
+ sal_uInt16 nValue;
+ rStrm >> nValue;
+ return new SvxFrameDirectionItem( (SvxFrameDirection)nValue, Which() );
+}
+
+/*N*/ SvStream& SvxFrameDirectionItem::Store( SvStream & rStrm, USHORT nIVer ) const
+/*N*/ {
+/*N*/ sal_uInt16 nValue = GetValue();
+/*N*/ rStrm << nValue;
+/*N*/ return rStrm;
+/*N*/ }
+
+/*N*/ USHORT SvxFrameDirectionItem::GetVersion( USHORT nFVer ) const
+/*N*/ {
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+/*N*/ bool SvxFrameDirectionItem::PutValue( const ::com::sun::star::uno::Any& rVal,
+/*N*/ BYTE )
+/*N*/ {
+/*N*/ sal_Int16 nVal;
+/*N*/ sal_Bool bRet = ( rVal >>= nVal );
+/*N*/ if( bRet )
+/*N*/ {
+/*N*/ // translate WritingDirection2 constants into SvxFrameDirection
+/*N*/ switch( nVal )
+/*N*/ {
+/*N*/ case text::WritingMode2::LR_TB:
+/*N*/ SetValue( FRMDIR_HORI_LEFT_TOP );
+/*N*/ break;
+/*N*/ case text::WritingMode2::RL_TB:
+/*?*/ SetValue( FRMDIR_HORI_RIGHT_TOP );
+/*?*/ break;
+/*?*/ case text::WritingMode2::TB_RL:
+/*?*/ SetValue( FRMDIR_VERT_TOP_RIGHT );
+/*?*/ break;
+/*?*/ case text::WritingMode2::TB_LR:
+/*?*/ SetValue( FRMDIR_VERT_TOP_LEFT );
+/*?*/ break;
+/*?*/ case text::WritingMode2::PAGE:
+/*?*/ SetValue( FRMDIR_ENVIRONMENT );
+/*?*/ break;
+/*?*/ default:
+/*?*/ bRet = sal_False;
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ return bRet;
+/*N*/ }
+
+/*N*/ bool SvxFrameDirectionItem::QueryValue( ::com::sun::star::uno::Any& rVal,
+/*N*/ BYTE ) const
+/*N*/ {
+/*N*/ // translate SvxFrameDirection into WritingDirection2
+/*N*/ sal_Int16 nVal;
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ switch( GetValue() )
+/*N*/ {
+/*N*/ case FRMDIR_HORI_LEFT_TOP:
+/*N*/ nVal = text::WritingMode2::LR_TB;
+/*N*/ break;
+/*?*/ case FRMDIR_HORI_RIGHT_TOP:
+/*?*/ nVal = text::WritingMode2::RL_TB;
+/*?*/ break;
+/*?*/ case FRMDIR_VERT_TOP_RIGHT:
+/*?*/ nVal = text::WritingMode2::TB_RL;
+/*?*/ break;
+/*?*/ case FRMDIR_VERT_TOP_LEFT:
+/*?*/ nVal = text::WritingMode2::TB_LR;
+/*?*/ break;
+/*?*/ case FRMDIR_ENVIRONMENT:
+/*?*/ nVal = text::WritingMode2::PAGE;
+/*?*/ break;
+/*?*/ default:
+/*?*/ DBG_ERROR("Unknown SvxFrameDirection value!");
+/*?*/ bRet = sal_False;
+/*?*/ break;
+/*N*/ }
+/*N*/
+/*N*/ // return value + error state
+/*N*/ if( bRet )
+/*N*/ {
+/*N*/ rVal <<= nVal;
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_grfitem.cxx b/binfilter/bf_svx/source/items/svx_grfitem.cxx
new file mode 100644
index 000000000000..6401ecec5541
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_grfitem.cxx
@@ -0,0 +1,175 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define ITEMID_GRF_CROP 0
+
+#include <tools/stream.hxx>
+#include <grfcrop.hxx>
+#include <com/sun/star/text/GraphicCrop.hpp>
+namespace binfilter {
+
+using namespace ::com::sun::star;
+
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+//TYPEINIT1_AUTOFACTORY( SvxGrfCrop, SfxPoolItem )
+
+/******************************************************************************
+ * Implementierung class SwCropGrf
+ ******************************************************************************/
+
+/*N*/ SvxGrfCrop::SvxGrfCrop( USHORT nItemId )
+/*N*/ : SfxPoolItem( nItemId ),
+/*N*/ nLeft( 0 ), nRight( 0 ), nTop( 0 ), nBottom( 0 )
+/*N*/ {}
+
+/*N*/ SvxGrfCrop::SvxGrfCrop( sal_Int32 nL, sal_Int32 nR,
+/*N*/ sal_Int32 nT, sal_Int32 nB, USHORT nItemId )
+/*N*/ : SfxPoolItem( nItemId ),
+/*N*/ nLeft( nL ), nRight( nR ), nTop( nT ), nBottom( nB )
+/*N*/ {}
+
+/*N*/ SvxGrfCrop::~SvxGrfCrop()
+/*N*/ {
+/*N*/ }
+
+/*N*/ int SvxGrfCrop::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rAttr ), "not equal attributes" );
+/*N*/ return nLeft == ((const SvxGrfCrop&)rAttr).GetLeft() &&
+/*N*/ nRight == ((const SvxGrfCrop&)rAttr).GetRight() &&
+/*N*/ nTop == ((const SvxGrfCrop&)rAttr).GetTop() &&
+/*N*/ nBottom == ((const SvxGrfCrop&)rAttr).GetBottom();
+/*N*/ }
+
+/*
+SfxPoolItem* SvxGrfCrop::Clone( SfxItemPool* ) const
+{
+ return new SvxGrfCrop( *this );
+}
+*/
+
+/*
+USHORT SvxGrfCrop::GetVersion( USHORT nFFVer ) const
+{
+ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+ SOFFICE_FILEFORMAT_40==nFFVer ||
+ SOFFICE_FILEFORMAT_NOW==nFFVer,
+ "SvxGrfCrop: exist a new fileformat?" );
+ return GRFCROP_VERSION_SWDEFAULT;
+}
+*/
+
+/*N*/ SfxPoolItem* SvxGrfCrop::Create( SvStream& rStrm, USHORT nVersion ) const
+/*N*/ {
+/*N*/ INT32 top, left, right, bottom;
+/*N*/ rStrm >> top >> left >> right >> bottom;
+/*N*/
+/*N*/ if( GRFCROP_VERSION_SWDEFAULT == nVersion )
+/*N*/ top = -top, bottom = -bottom, left = -left, right = -right;
+/*N*/
+/*N*/ SvxGrfCrop* pNew = (SvxGrfCrop*)Clone();
+/*N*/ pNew->SetLeft( left );
+/*N*/ pNew->SetRight( right );
+/*N*/ pNew->SetTop( top );
+/*N*/ pNew->SetBottom( bottom );
+/*N*/ return pNew;
+/*N*/ }
+
+
+/*N*/ SvStream& SvxGrfCrop::Store( SvStream& rStrm, USHORT nVersion ) const
+/*N*/ {
+/*N*/ INT32 left = GetLeft(), right = GetRight(),
+/*N*/ top = GetTop(), bottom = GetBottom();
+/*N*/ if( GRFCROP_VERSION_SWDEFAULT == nVersion )
+/*N*/ top = -top, bottom = -bottom, left = -left, right = -right;
+/*N*/
+/*N*/ rStrm << top << left << right << bottom;
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+
+
+/*N*/ bool SvxGrfCrop::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ text::GraphicCrop aRet;
+/*N*/ aRet.Left = nLeft;
+/*N*/ aRet.Right = nRight;
+/*N*/ aRet.Top = nTop;
+/*N*/ aRet.Bottom = nBottom;
+/*N*/
+/*N*/ if( bConvert )
+/*N*/ {
+/*N*/ aRet.Right = TWIP_TO_MM100(aRet.Right );
+/*N*/ aRet.Top = TWIP_TO_MM100(aRet.Top );
+/*N*/ aRet.Left = TWIP_TO_MM100(aRet.Left );
+/*N*/ aRet.Bottom = TWIP_TO_MM100(aRet.Bottom);
+/*N*/ }
+/*N*/
+/*N*/
+/*N*/ rVal <<= aRet;
+/*N*/ return true;
+/*N*/ }
+
+/*N*/ bool SvxGrfCrop::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ text::GraphicCrop aVal;
+/*N*/
+/*N*/ if(!(rVal >>= aVal))
+/*N*/ return false;
+/*N*/ if( bConvert )
+/*N*/ {
+/*N*/ aVal.Right = MM100_TO_TWIP(aVal.Right );
+/*N*/ aVal.Top = MM100_TO_TWIP(aVal.Top );
+/*N*/ aVal.Left = MM100_TO_TWIP(aVal.Left );
+/*N*/ aVal.Bottom = MM100_TO_TWIP(aVal.Bottom);
+/*N*/ }
+/*N*/
+/*N*/ nLeft = aVal.Left ;
+/*N*/ nRight = aVal.Right ;
+/*N*/ nTop = aVal.Top ;
+/*N*/ nBottom = aVal.Bottom;
+/*N*/ return true;
+/*N*/ }
+
+
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_hlnkitem.cxx b/binfilter/bf_svx/source/items/svx_hlnkitem.cxx
new file mode 100644
index 000000000000..ff27a68d0c12
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_hlnkitem.cxx
@@ -0,0 +1,104 @@
+/* -*- 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 ---------------------------------------------------------------
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define _SVX_HLNKITEM_CXX
+
+#include <svxids.hrc>
+#include <bf_svtools/memberid.hrc>
+
+#include "hlnkitem.hxx"
+
+namespace binfilter {
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxHyperlinkItem, SfxPoolItem);
+
+// class SvxHyperlinkItem ------------------------------------------------
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+#define HYPERLINKFF_MARKER 0x599401FE
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+/*?*/ SfxPoolItem* SvxHyperlinkItem::Clone( SfxItemPool* ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001 return new SvxHyperlinkItem( *this );
+/*?*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+/*?*/ int SvxHyperlinkItem::operator==( const SfxPoolItem& rAttr ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 //STRIP001 DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+/*?*/ }
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+/*--------------------------------------------------------------------
+ Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_numitem.cxx b/binfilter/bf_svx/source/items/svx_numitem.cxx
new file mode 100644
index 000000000000..59918281b322
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_numitem.cxx
@@ -0,0 +1,937 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+#include <numitem.hxx>
+
+#define ITEMID_BRUSH SID_ATTR_BRUSH
+#include <brshitem.hxx>
+#include <vcl/font.hxx>
+#include <svxids.hrc>
+#include <numdef.hxx>
+#include <vcl/graph.hxx>
+#include <vcl/window.hxx>
+#include <vcl/svapp.hxx>
+#include <unolingu.hxx>
+#include <com/sun/star/text/XNumberingFormatter.hpp>
+#include <com/sun/star/text/XDefaultNumberingProvider.hpp>
+#include <com/sun/star/style/NumberingType.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <comphelper/processfactory.hxx>
+
+#include "unonrule.hxx"
+#include <legacysmgr/legacy_binfilters_smgr.hxx> //STRIP002
+namespace binfilter {
+
+#define MM100_TO_TWIP(MM100) ((MM100*72L+63L)/127L)
+
+#define DEF_WRITER_LSPACE 500 //Standardeinrueckung
+#define DEF_DRAW_LSPACE 800 //Standardeinrueckung
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::text;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::style;
+
+sal_Int32 SvxNumberType::nRefCount = 0;
+::com::sun::star::uno::Reference< ::com::sun::star::text::XNumberingFormatter> SvxNumberType::xFormatter = 0;
+/* -----------------------------22.02.01 14:24--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SvxNumberType::SvxNumberType(sal_Int16 nType) :
+/*N*/ nNumType(nType),
+/*N*/ bShowSymbol(sal_True)
+/*N*/ {
+/*N*/ if(!xFormatter.is())
+/*N*/ {
+/*N*/ try
+/*N*/ {
+/*N*/ Reference< XMultiServiceFactory > xMSF = ::legacy_binfilters::getLegacyProcessServiceFactory();
+/*N*/ Reference < XInterface > xI = xMSF->createInstance(
+/*N*/ ::rtl::OUString::createFromAscii( "com.sun.star.text.DefaultNumberingProvider" ) );
+/*N*/ Reference<XDefaultNumberingProvider> xRet(xI, UNO_QUERY);
+/*N*/ DBG_ASSERT(xRet.is(), "service missing: \"com.sun.star.text.DefaultNumberingProvider\"");
+/*N*/ xFormatter = Reference<XNumberingFormatter> (xRet, UNO_QUERY);
+/*N*/ }
+/*N*/ catch(Exception& )
+/*N*/ {
+/*N*/ }
+/*N*/ }
+/*N*/ nRefCount++;
+/*N*/ }
+/* -----------------------------22.02.01 14:31--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SvxNumberType::SvxNumberType(const SvxNumberType& rType) :
+/*N*/ nNumType(rType.nNumType),
+/*N*/ bShowSymbol(rType.bShowSymbol)
+/*N*/ {
+/*N*/ nRefCount++;
+/*N*/ }
+/* -----------------------------22.02.01 14:24--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SvxNumberType::~SvxNumberType()
+/*N*/ {
+/*N*/ if(!--nRefCount)
+/*N*/ xFormatter = 0;
+/*N*/ }
+/* -----------------------------22.02.01 11:09--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ String SvxNumberType::GetNumStr( ULONG nNo ) const
+/*N*/ {
+/*N*/ LanguageType eLang = Application::GetSettings().GetLanguage();
+/*N*/ Locale aLocale = SvxCreateLocale(eLang);
+/*N*/ return GetNumStr( nNo, aLocale );
+/*N*/ }
+/* -----------------28.10.98 15:56-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ String SvxNumberType::GetNumStr( ULONG nNo, const Locale& rLocale ) const
+/*N*/ {
+/*N*/ String aTmpStr;
+/*N*/ if(!xFormatter.is())
+/*N*/ return aTmpStr;
+/*N*/
+/*N*/ if(bShowSymbol)
+/*N*/ {
+/*N*/ switch(nNumType)
+/*N*/ {
+/*N*/ case NumberingType::CHAR_SPECIAL:
+/*N*/ case NumberingType::BITMAP:
+/*N*/ break;
+/*N*/ default:
+/*N*/ {
+/*N*/ //#95525# '0' allowed for ARABIC numberings
+/*N*/ if(NumberingType::ARABIC == nNumType && 0 == nNo )
+/*N*/ aTmpStr = '0';
+/*N*/ else
+/*N*/ {
+/*N*/ Sequence< PropertyValue > aProperties(2);
+/*N*/ PropertyValue* pValues = aProperties.getArray();
+/*N*/ pValues[0].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingType"));
+/*N*/ pValues[0].Value <<= nNumType;
+/*N*/ pValues[1].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Value"));
+/*N*/ pValues[1].Value <<= (sal_Int32)nNo;
+/*N*/
+/*N*/ try
+/*N*/ {
+/*N*/ aTmpStr = xFormatter->makeNumberingString( aProperties, rLocale );
+/*N*/ }
+/*N*/ catch(Exception&)
+/*N*/ {
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ return aTmpStr;
+/*N*/ }
+/* -----------------27.10.98 10:33-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumberFormat::SvxNumberFormat(sal_Int16 eType) :
+/*N*/ SvxNumberType(eType),
+/*N*/ eNumAdjust(SVX_ADJUST_LEFT),
+/*N*/ nInclUpperLevels(0),
+/*N*/ nStart(1),
+/*N*/ cBullet(SVX_DEF_BULLET),
+/*N*/ nFirstLineOffset(0),
+/*N*/ nAbsLSpace(0),
+/*N*/ nLSpace(0),
+/*N*/ nCharTextDistance(0),
+/*N*/ pGraphicBrush(0),
+/*N*/ eVertOrient(SVX_VERT_NONE),
+/*N*/ nBulletRelSize(100),
+/*N*/ nBulletColor(COL_BLACK),
+/*N*/ pBulletFont(0)
+/*N*/ {
+/*N*/ }
+/* -----------------27.10.98 10:56-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumberFormat::SvxNumberFormat(const SvxNumberFormat& rFormat) :
+/*N*/ SvxNumberType(rFormat),
+/*N*/ pGraphicBrush(0),
+/*N*/ pBulletFont(0)
+/*N*/ {
+/*N*/ *this = rFormat;
+/*N*/ }
+/* -----------------27.10.98 10:56-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumberFormat::~SvxNumberFormat()
+/*N*/ {
+/*N*/ delete pGraphicBrush;
+/*N*/ delete pBulletFont;
+/*N*/ }
+/* -----------------08.12.98 11:14-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumberFormat::SvxNumberFormat(SvStream &rStream)
+/*N*/ {
+/*N*/ USHORT nVersion;
+/*N*/ rStream >> nVersion;
+/*N*/
+/*N*/ USHORT nUSHORT;
+/*N*/ rStream >> nUSHORT;
+/*N*/ SetNumberingType((sal_Int16)nUSHORT);
+/*N*/ rStream >> nUSHORT;
+/*N*/ eNumAdjust = (SvxAdjust)nUSHORT;
+/*N*/ rStream >> nUSHORT;
+/*N*/ nInclUpperLevels = (BYTE)nUSHORT;
+/*N*/ rStream >> nUSHORT;
+/*N*/ nStart = nUSHORT;
+/*N*/ rStream >> nUSHORT;
+/*N*/ cBullet = nUSHORT;
+/*N*/
+/*N*/ short nShort;
+/*N*/ rStream >> nShort;
+/*N*/ nFirstLineOffset = nShort;
+/*N*/ rStream >> nShort;
+/*N*/ nAbsLSpace = nShort;
+/*N*/ rStream >> nShort;
+/*N*/ nLSpace = nShort;
+/*N*/
+/*N*/ rStream >> nShort;
+/*N*/ nCharTextDistance = nShort;
+/*N*/ rtl_TextEncoding eEnc = gsl_getSystemTextEncoding();
+/*N*/ rStream.ReadByteString(sPrefix, eEnc);
+/*N*/ rStream.ReadByteString(sSuffix, eEnc);
+/*N*/ rStream.ReadByteString(sCharStyleName, eEnc);
+/*N*/ rStream >> nUSHORT;
+/*N*/ if(nUSHORT)
+/*N*/ {
+/*?*/ SvxBrushItem aHelper;
+/*?*/ pGraphicBrush = (SvxBrushItem*) aHelper.Create( rStream, BRUSH_GRAPHIC_VERSION );
+/*N*/ }
+/*N*/ else
+/*N*/ pGraphicBrush = 0;
+/*N*/
+/*N*/ rStream >> nUSHORT;
+/*N*/ eVertOrient = (SvxFrameVertOrient)nUSHORT;
+/*N*/
+/*N*/ rStream >> nUSHORT;
+/*N*/ if(nUSHORT)
+/*N*/ {
+/*N*/ pBulletFont = new Font;
+/*N*/ rStream >> *pBulletFont;
+/*N*/ if(!pBulletFont->GetCharSet())
+/*N*/ pBulletFont->SetCharSet(rStream.GetStreamCharSet());
+/*N*/ }
+/*N*/ else
+/*N*/ pBulletFont = 0;
+/*N*/ rStream >> aGraphicSize;
+/*N*/
+/*N*/ rStream >> nBulletColor;
+/*N*/ rStream >> nUSHORT;
+/*N*/ nBulletRelSize = nUSHORT;
+/*N*/ rStream >> nUSHORT;
+/*N*/ SetShowSymbol((BOOL)nUSHORT);
+/*N*/
+/*N*/ if( nVersion < NUMITEM_VERSION_03 )
+/*N*/ cBullet = ByteString::ConvertToUnicode( cBullet,
+/*N*/ (pBulletFont&&pBulletFont->GetCharSet()) ? pBulletFont->GetCharSet()
+/*N*/ : RTL_TEXTENCODING_SYMBOL );
+/*N*/ if(pBulletFont)
+/*N*/ {
+/*N*/ BOOL bConvertBulletFont = rStream.GetVersion() <= SOFFICE_FILEFORMAT_50;
+/*N*/ if(bConvertBulletFont)
+/*N*/ {
+/*N*/
+/*N*/ FontToSubsFontConverter pConverter =
+/*N*/ CreateFontToSubsFontConverter(pBulletFont->GetName(),
+/*N*/ FONTTOSUBSFONT_IMPORT|FONTTOSUBSFONT_ONLYOLDSOSYMBOLFONTS);
+/*N*/ if(pConverter)
+/*N*/ {
+/*N*/ cBullet = ConvertFontToSubsFontChar(pConverter, cBullet);
+/*N*/ String sFontName = GetFontToSubsFontName(pConverter);
+/*N*/ pBulletFont->SetName(sFontName);
+/*N*/ DestroyFontToSubsFontConverter(pConverter);
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/*N*/ }
+/* -----------------08.12.98 11:14-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvStream& SvxNumberFormat::Store(SvStream &rStream, FontToSubsFontConverter pConverter)
+/*N*/ {
+/*N*/ if(pConverter && pBulletFont)
+/*N*/ {
+/*N*/ cBullet = ConvertFontToSubsFontChar(pConverter, cBullet);
+/*N*/ String sFontName = GetFontToSubsFontName(pConverter);
+/*N*/ pBulletFont->SetName(sFontName);
+/*N*/ }
+/*N*/
+/*N*/ rStream << (USHORT)NUMITEM_VERSION_03;
+/*N*/
+/*N*/ rStream << (USHORT)GetNumberingType();
+/*N*/ rStream << (USHORT)eNumAdjust;
+/*N*/ rStream << (USHORT)nInclUpperLevels;
+/*N*/ rStream << nStart;
+/*N*/ rStream << (USHORT)cBullet;
+/*N*/
+/*N*/ rStream << nFirstLineOffset;
+/*N*/ rStream << nAbsLSpace;
+/*N*/ rStream << nLSpace;
+/*N*/
+/*N*/ rStream << nCharTextDistance;
+/*N*/ rtl_TextEncoding eEnc = gsl_getSystemTextEncoding();
+/*N*/ rStream.WriteByteString(sPrefix, eEnc);
+/*N*/ rStream.WriteByteString(sSuffix, eEnc);
+/*N*/ rStream.WriteByteString(sCharStyleName, eEnc);
+/*N*/ if(pGraphicBrush)
+/*N*/ {
+/*?*/ rStream << (USHORT)1;
+/*?*/
+/*?*/ // #75113# in SD or SI force bullet itself to be stored,
+/*?*/ // for that purpose throw away link when link and graphic
+/*?*/ // are present, so Brush save is forced
+/*?*/ if(pGraphicBrush->GetGraphicLink() && pGraphicBrush->GetGraphic())
+/*?*/ {
+/*?*/ String aEmpty;
+/*?*/ pGraphicBrush->SetGraphicLink(aEmpty);
+/*?*/ }
+/*?*/
+/*?*/ pGraphicBrush->Store(rStream, BRUSH_GRAPHIC_VERSION);
+/*N*/ }
+/*N*/ else
+/*N*/ rStream << (USHORT)0;
+/*N*/
+/*N*/ rStream << (USHORT)eVertOrient;
+/*N*/ if(pBulletFont)
+/*N*/ {
+/*N*/ rStream << (USHORT)1;
+/*N*/ rStream << *pBulletFont;
+/*N*/ }
+/*N*/ else
+/*N*/ rStream << (USHORT)0;
+/*N*/ rStream << aGraphicSize;
+/*N*/
+/*N*/ Color nTempColor = nBulletColor;
+/*N*/ if(COL_AUTO == nBulletColor.GetColor())
+/*N*/ nTempColor = COL_BLACK;
+/*N*/ rStream << nTempColor;
+/*N*/ rStream << nBulletRelSize;
+/*N*/ rStream << (USHORT)IsShowSymbol();
+/*N*/ return rStream;
+/*N*/ }
+/* -----------------------------23.02.01 11:10--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SvxNumberFormat& SvxNumberFormat::operator=( const SvxNumberFormat& rFormat )
+/*N*/ {
+/*N*/ SetNumberingType(rFormat.GetNumberingType());
+/*N*/ eNumAdjust = rFormat.eNumAdjust ;
+/*N*/ nInclUpperLevels = rFormat.nInclUpperLevels ;
+/*N*/ nStart = rFormat.nStart ;
+/*N*/ cBullet = rFormat.cBullet ;
+/*N*/ nFirstLineOffset = rFormat.nFirstLineOffset;
+/*N*/ nAbsLSpace = rFormat.nAbsLSpace ;
+/*N*/ nLSpace = rFormat.nLSpace ;
+/*N*/ nCharTextDistance = rFormat.nCharTextDistance ;
+/*N*/ eVertOrient = rFormat.eVertOrient ;
+/*N*/ sPrefix = rFormat.sPrefix ;
+/*N*/ sSuffix = rFormat.sSuffix ;
+/*N*/ aGraphicSize = rFormat.aGraphicSize ;
+/*N*/ nBulletColor = rFormat.nBulletColor ;
+/*N*/ nBulletRelSize = rFormat.nBulletRelSize;
+/*N*/ SetShowSymbol(rFormat.IsShowSymbol());
+/*N*/ sCharStyleName = rFormat.sCharStyleName;
+/*N*/ DELETEZ(pGraphicBrush);
+/*N*/ if(rFormat.pGraphicBrush)
+/*N*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ pGraphicBrush = new SvxBrushItem(*rFormat.pGraphicBrush);
+/*N*/ }
+/*N*/ DELETEZ(pBulletFont);
+/*N*/ if(rFormat.pBulletFont)
+/*N*/ pBulletFont = new Font(*rFormat.pBulletFont);
+/*N*/ return *this;
+/*N*/ }
+/* -----------------27.10.98 10:56-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ BOOL SvxNumberFormat::operator==( const SvxNumberFormat& rFormat) const
+/*N*/ {
+/*N*/ if( GetNumberingType() != rFormat.GetNumberingType() ||
+/*N*/ eNumAdjust != rFormat.eNumAdjust ||
+/*N*/ nInclUpperLevels != rFormat.nInclUpperLevels ||
+/*N*/ nStart != rFormat.nStart ||
+/*N*/ cBullet != rFormat.cBullet ||
+/*N*/ nFirstLineOffset != rFormat.nFirstLineOffset ||
+/*N*/ nAbsLSpace != rFormat.nAbsLSpace ||
+/*N*/ nLSpace != rFormat.nLSpace ||
+/*N*/ nCharTextDistance != rFormat.nCharTextDistance ||
+/*N*/ eVertOrient != rFormat.eVertOrient ||
+/*N*/ sPrefix != rFormat.sPrefix ||
+/*N*/ sSuffix != rFormat.sSuffix ||
+/*N*/ aGraphicSize != rFormat.aGraphicSize ||
+/*N*/ nBulletColor != rFormat.nBulletColor ||
+/*N*/ nBulletRelSize != rFormat.nBulletRelSize ||
+/*N*/ IsShowSymbol() != rFormat.IsShowSymbol() ||
+/*N*/ sCharStyleName != rFormat.sCharStyleName
+/*N*/ )
+/*N*/ return FALSE;
+/*N*/ if(pGraphicBrush && !rFormat.pGraphicBrush ||
+/*N*/ !pGraphicBrush && rFormat.pGraphicBrush ||
+/*N*/ pGraphicBrush && *pGraphicBrush != *rFormat.pGraphicBrush )
+/*N*/ return FALSE;
+/*N*/ if(pBulletFont && !rFormat.pBulletFont ||
+/*N*/ !pBulletFont && rFormat.pBulletFont ||
+/*N*/ pBulletFont && *pBulletFont != *rFormat.pBulletFont)
+/*N*/ return FALSE;
+/*N*/ return TRUE;
+/*N*/ }
+/* -----------------28.10.98 09:53-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ void SvxNumberFormat::SetGraphicBrush( const SvxBrushItem* pBrushItem,
+/*N*/ const Size* pSize, const SvxFrameVertOrient* pOrient)
+/*N*/ {
+/*N*/ if(!pBrushItem)
+/*N*/ {
+/*N*/ delete pGraphicBrush;
+/*N*/ pGraphicBrush = 0;
+/*N*/ }
+/*N*/ else if(!pGraphicBrush || pGraphicBrush && !(*pBrushItem == *pGraphicBrush))
+/*N*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ delete pGraphicBrush;
+/*N*/ }
+/*N*/
+/*N*/ if(pOrient)
+/*N*/ eVertOrient = *pOrient;
+/*N*/ else
+/*?*/ eVertOrient = SVX_VERT_NONE;
+/*N*/ if(pSize)
+/*N*/ aGraphicSize = *pSize;
+/*N*/ else
+/*?*/ aGraphicSize.Width() = aGraphicSize.Height() = 0;
+/*N*/ }
+/* -----------------28.10.98 09:59-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------------------22.02.01 15:55--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/* -----------------------------22.02.01 15:55--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SvxFrameVertOrient SvxNumberFormat::GetVertOrient() const
+/*N*/ {
+/*N*/ return eVertOrient;
+/*N*/ }
+/* -----------------28.10.98 09:59-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ void SvxNumberFormat::SetBulletFont(const Font* pFont)
+/*N*/ {
+/*N*/ delete pBulletFont;
+/*N*/ pBulletFont = pFont ? new Font(*pFont): 0;
+/*N*/ }
+
+/* -----------------28.10.98 10:03-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------------------02.07.01 15:36--------------------------------
+
+ ---------------------------------------------------------------------------*/
+
+/* -----------------28.10.98 10:38-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------28.10.98 15:57-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ String SvxNumberFormat::CreateRomanString( ULONG nNo, BOOL bUpper )
+/*N*/ {
+/*N*/ nNo %= 4000; // mehr kann nicht dargestellt werden
+/*N*/ // i, ii, iii, iv, v, vi, vii, vii, viii, ix
+/*N*/ // (Dummy),1000,500,100,50,10,5,1
+/*N*/ const char *cRomanArr = bUpper
+/*N*/ ? "MDCLXVI--" // +2 Dummy-Eintraege !!
+/*N*/ : "mdclxvi--"; // +2 Dummy-Eintraege !!
+/*N*/
+/*N*/ String sRet;
+/*N*/ USHORT nMask = 1000;
+/*N*/ while( nMask )
+/*N*/ {
+/*N*/ BYTE nZahl = BYTE(nNo / nMask);
+/*N*/ BYTE nDiff = 1;
+/*N*/ nNo %= nMask;
+/*N*/
+/*N*/ if( 5 < nZahl )
+/*N*/ {
+/*N*/ if( nZahl < 9 )
+/*N*/ sRet += sal_Unicode(*(cRomanArr-1));
+/*N*/ ++nDiff;
+/*N*/ nZahl -= 5;
+/*N*/ }
+/*N*/ switch( nZahl )
+/*N*/ {
+/*N*/ case 3: { sRet += sal_Unicode(*cRomanArr); }
+/*N*/ case 2: { sRet += sal_Unicode(*cRomanArr); }
+/*N*/ case 1: { sRet += sal_Unicode(*cRomanArr); }
+/*N*/ break;
+/*N*/
+/*N*/ case 4: {
+/*N*/ sRet += sal_Unicode(*cRomanArr);
+/*N*/ sRet += sal_Unicode(*(cRomanArr-nDiff));
+/*N*/ }
+/*N*/ break;
+/*N*/ case 5: { sRet += sal_Unicode(*(cRomanArr-nDiff)); }
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ nMask /= 10; // zur naechsten Dekade
+/*N*/ cRomanArr += 2;
+/*N*/ }
+/*N*/ return sRet;
+/*N*/ }
+#ifdef OLD_NUMBER_FORMATTING
+/*?*/ void SvxNumberFormat::GetCharStr( ULONG nNo, String& rStr ) const
+/*?*/ {
+/*?*/ DBG_ASSERT( nNo, "0 ist eine ungueltige Nummer !!" );
+/*?*/
+/*?*/ const ULONG coDiff = 'Z' - 'A' +1;
+/*?*/ char cAdd = (SVX_NUM_CHARS_UPPER_LETTER == eNumType ? 'A' : 'a') - 1;
+/*?*/ ULONG nCalc;
+/*?*/
+/*?*/ do {
+/*?*/ nCalc = nNo % coDiff;
+/*?*/ if( !nCalc )
+/*?*/ nCalc = coDiff;
+/*?*/ rStr.Insert( sal_Unicode(cAdd + nCalc ), 0 );
+/*?*/ nNo -= nCalc;
+/*?*/ if( nNo )
+/*?*/ nNo /= coDiff;
+/*?*/ } while( nNo );
+/*?*/ }
+/*?*/
+/*?*/ void SvxNumberFormat::GetCharStrN( ULONG nNo, String& rStr ) const
+/*?*/ {
+/*?*/ DBG_ASSERT( nNo, "0 ist eine ungueltige Nummer !!" );
+/*?*/
+/*?*/ const ULONG coDiff = 'Z' - 'A' +1;
+/*?*/ char cChar = (char)(--nNo % coDiff);
+/*?*/ if( SVX_NUM_CHARS_UPPER_LETTER_N == eNumType )
+/*?*/ cChar += 'A';
+/*?*/ else
+/*?*/ cChar += 'a';
+/*?*/
+/*?*/ rStr.Fill( (USHORT)(nNo / coDiff) + 1, sal_Unicode(cChar) );
+/*?*/ }
+#endif //OLD_NUMBER_FORMATTING
+/* -----------------------------22.02.01 13:31--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ const String& SvxNumberFormat::GetCharFmtName()const
+/*N*/ {
+/*N*/ return sCharStyleName;
+/*N*/ }
+/* -----------------27.10.98 10:38-------------------
+ *
+ * --------------------------------------------------*/
+sal_Int32 SvxNumRule::nRefCount = 0;
+static SvxNumberFormat* pStdNumFmt = 0;
+static SvxNumberFormat* pStdOutlineNumFmt = 0;
+/*N*/ SvxNumRule::SvxNumRule(ULONG nFeatures, USHORT nLevels, BOOL bCont, SvxNumRuleType eType) :
+/*N*/ nLevelCount(nLevels),
+/*N*/ nFeatureFlags(nFeatures),
+/*N*/ bContinuousNumbering(bCont),
+/*N*/ eNumberingType(eType)
+/*N*/ {
+/*N*/ ++nRefCount;
+/*N*/ LanguageType eLang = Application::GetSettings().GetLanguage();
+/*N*/ aLocale = SvxCreateLocale(eLang);
+/*N*/ for(USHORT i = 0; i < SVX_MAX_NUM; i++)
+/*N*/ {
+/*N*/ if(i < nLevels)
+/*N*/ {
+/*N*/ aFmts[i] = new SvxNumberFormat(SVX_NUM_CHARS_UPPER_LETTER);
+/*N*/ //daran wird zwischen writer und draw unterschieden
+/*N*/ if(nFeatures & NUM_CONTINUOUS)
+/*N*/ {
+/*N*/ aFmts[i]->SetLSpace( MM100_TO_TWIP(DEF_WRITER_LSPACE) );
+/*N*/ aFmts[i]->SetAbsLSpace( MM100_TO_TWIP(DEF_WRITER_LSPACE * (i+1)) );
+/*N*/ aFmts[i]->SetFirstLineOffset(MM100_TO_TWIP(-DEF_WRITER_LSPACE));
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ aFmts[i]->SetLSpace( DEF_DRAW_LSPACE );
+/*N*/ aFmts[i]->SetAbsLSpace( DEF_DRAW_LSPACE * (i) );
+/*N*/ }
+/*N*/ }
+/*N*/ else
+/*N*/ aFmts[i] = 0;
+/*N*/ aFmtsSet[i] = FALSE;
+/*N*/ }
+/*N*/ }
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumRule::SvxNumRule(const SvxNumRule& rCopy)
+/*N*/ {
+/*N*/ ++nRefCount;
+/*N*/ aLocale = rCopy.aLocale;
+/*N*/ nLevelCount = rCopy.nLevelCount ;
+/*N*/ nFeatureFlags = rCopy.nFeatureFlags ;
+/*N*/ bContinuousNumbering = rCopy.bContinuousNumbering;
+/*N*/ eNumberingType = rCopy.eNumberingType;
+/*N*/ memset( aFmts, 0, sizeof( aFmts ));
+/*N*/ for(USHORT i = 0; i < SVX_MAX_NUM; i++)
+/*N*/ {
+/*N*/ if(rCopy.aFmts[i])
+/*N*/ aFmts[i] = new SvxNumberFormat(*rCopy.aFmts[i]);
+/*N*/ else
+/*N*/ aFmts[i] = 0;
+/*N*/ aFmtsSet[i] = rCopy.aFmtsSet[i];
+/*N*/ }
+/*N*/ }
+/* -----------------08.12.98 11:07-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumRule::SvxNumRule(SvStream &rStream)
+/*N*/ {
+/*N*/ ++nRefCount;
+/*N*/ LanguageType eLang = Application::GetSettings().GetLanguage();
+/*N*/ aLocale = SvxCreateLocale(eLang);
+/*N*/ USHORT nVersion;
+/*N*/ USHORT nTemp;
+/*N*/ rStream >> nVersion;
+/*N*/ rStream >> nLevelCount;
+/*N*/ rStream >> nTemp;
+/*N*/ nFeatureFlags = nTemp;
+/*N*/ rStream >> nTemp;
+/*N*/ bContinuousNumbering = (BOOL)nTemp;
+/*N*/ rStream >> nTemp;
+/*N*/ eNumberingType = (SvxNumRuleType)nTemp;
+/*N*/ memset( aFmts, 0, sizeof( aFmts ));
+/*N*/
+/*N*/ for(USHORT i = 0; i < SVX_MAX_NUM; i++)
+/*N*/ {
+/*N*/ USHORT nSet;
+/*N*/ rStream >> nSet;
+/*N*/ if(nSet)
+/*N*/ aFmts[i] = new SvxNumberFormat(rStream);
+/*N*/ else
+/*N*/ aFmts[i] = 0;
+/*N*/ aFmtsSet[i] = aFmts[i] ? TRUE : FALSE;
+/*N*/ }
+/*N*/ if(NUMITEM_VERSION_02 <= nVersion)
+/*N*/ {
+/*N*/ USHORT nShort;
+/*N*/ rStream >> nShort;
+/*N*/ nFeatureFlags = nShort;
+/*N*/ }
+/*N*/ }
+
+/* -----------------08.12.98 11:07-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvStream& SvxNumRule::Store(SvStream &rStream)
+/*N*/ {
+/*N*/ rStream<<(USHORT)NUMITEM_VERSION_03;
+/*N*/ rStream<<nLevelCount;
+/*N*/ //first save of nFeatureFlags for old versions
+/*N*/ rStream<<(USHORT)nFeatureFlags;
+/*N*/ rStream<<(USHORT)bContinuousNumbering;
+/*N*/ rStream<<(USHORT)eNumberingType;
+/*N*/
+/*N*/ FontToSubsFontConverter pConverter = 0;
+/*N*/ BOOL bConvertBulletFont = rStream.GetVersion() <= SOFFICE_FILEFORMAT_50;
+/*N*/ for(USHORT i = 0; i < SVX_MAX_NUM; i++)
+/*N*/ {
+/*N*/ if(aFmts[i])
+/*N*/ {
+/*N*/ rStream << USHORT(1);
+/*N*/ if(bConvertBulletFont && aFmts[i]->GetBulletFont())
+/*N*/ {
+/*N*/ if(!pConverter)
+/*N*/ pConverter =
+/*N*/ CreateFontToSubsFontConverter(aFmts[i]->GetBulletFont()->GetName(),
+/*N*/ FONTTOSUBSFONT_EXPORT|FONTTOSUBSFONT_ONLYOLDSOSYMBOLFONTS);
+/*N*/ }
+/*N*/ aFmts[i]->Store(rStream, pConverter);
+/*N*/ }
+/*N*/ else
+/*N*/ rStream << USHORT(0);
+/*N*/ }
+/*N*/ //second save of nFeatureFlags for new versions
+/*N*/ rStream<<(USHORT)nFeatureFlags;
+/*N*/ if(pConverter)
+/*N*/ DestroyFontToSubsFontConverter(pConverter);
+/*N*/
+/*N*/ return rStream;
+/*N*/ }
+
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumRule::~SvxNumRule()
+/*N*/ {
+/*N*/ for(USHORT i = 0; i < SVX_MAX_NUM; i++)
+/*N*/ delete aFmts[i];
+/*N*/ if(!--nRefCount)
+/*N*/ {
+/*N*/ DELETEZ(pStdNumFmt);
+/*N*/ DELETEZ(pStdOutlineNumFmt);
+/*N*/ }
+/*N*/ }
+/* -----------------29.10.98 16:07-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ int SvxNumRule::operator==( const SvxNumRule& rCopy) const
+/*N*/ {
+/*N*/ if(nLevelCount != rCopy.nLevelCount ||
+/*N*/ nFeatureFlags != rCopy.nFeatureFlags ||
+/*N*/ bContinuousNumbering != rCopy.bContinuousNumbering ||
+/*N*/ eNumberingType != rCopy.eNumberingType)
+/*N*/ return FALSE;
+/*N*/ for(USHORT i = 0; i < nLevelCount; i++)
+/*N*/ {
+/*N*/ if( aFmtsSet[i] != rCopy.aFmtsSet[i] ||
+/*N*/ !aFmts[i] && rCopy.aFmts[i] ||
+/*N*/ aFmts[i] && !rCopy.aFmts[i] ||
+/*N*/ aFmts[i] && *aFmts[i] != *rCopy.aFmts[i] )
+/*N*/ return FALSE;
+/*N*/ }
+/*N*/ return TRUE;
+/*N*/ }
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ const SvxNumberFormat* SvxNumRule::Get(USHORT nLevel)const
+/*N*/ {
+/*N*/ DBG_ASSERT(nLevel < SVX_MAX_NUM, "falsches Level" );
+/*N*/ return aFmtsSet[nLevel] ? aFmts[nLevel] : 0;
+/*N*/ }
+/* -----------------02.11.98 09:10-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ const SvxNumberFormat& SvxNumRule::GetLevel(USHORT nLevel)const
+/*N*/ {
+/*N*/ if(!pStdNumFmt)
+/*N*/ {
+/*N*/ pStdNumFmt = new SvxNumberFormat(SVX_NUM_ARABIC);
+/*N*/ pStdOutlineNumFmt = new SvxNumberFormat(SVX_NUM_NUMBER_NONE);
+/*N*/ }
+/*N*/
+/*N*/ DBG_ASSERT(nLevel < SVX_MAX_NUM, "falsches Level" );
+/*N*/ return aFmts[nLevel] ?
+/*N*/ *aFmts[nLevel] : eNumberingType == SVX_RULETYPE_NUMBERING ?
+/*N*/ *pStdNumFmt : *pStdOutlineNumFmt;
+/*N*/ }
+
+/* -----------------29.10.98 09:08-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ void SvxNumRule::SetLevel( USHORT i, const SvxNumberFormat& rNumFmt, BOOL bIsValid )
+/*N*/ {
+/*N*/ if( !aFmtsSet[i] || !(rNumFmt == *Get( i )) )
+/*N*/ {
+/*N*/ delete aFmts[ i ];
+/*N*/ aFmts[ i ] = new SvxNumberFormat( rNumFmt );
+/*N*/ aFmtsSet[i] = bIsValid;
+/*N*/ // bInvalidRuleFlag = TRUE;
+/*N*/ }
+/*N*/ }
+/* -----------------30.10.98 12:44-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------28.10.98 15:38-------------------
+ *
+ * --------------------------------------------------*/
+/* -----------------18.08.99 10:18-------------------
+ Description: changes linked to embedded bitmaps
+ --------------------------------------------------*/
+/*N*/ BOOL SvxNumRule::UnLinkGraphics()
+/*N*/ {
+/*N*/ BOOL bRet = FALSE;
+/*N*/ for(USHORT i = 0; i < GetLevelCount(); i++)
+/*N*/ {
+/*N*/ SvxNumberFormat aFmt(GetLevel(i));
+/*N*/ const SvxBrushItem* pBrush = aFmt.GetBrush();
+/*N*/ const String* pLinkStr;
+/*N*/ const Graphic* pGraphic;
+/*N*/ if(SVX_NUM_BITMAP == aFmt.GetNumberingType())
+/*N*/ {
+/*N*/ if(pBrush &&
+/*N*/ 0 != (pLinkStr = pBrush->GetGraphicLink()) &&
+/*N*/ pLinkStr->Len() &&
+/*N*/ 0 !=(pGraphic = pBrush->GetGraphic()))
+/*N*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ SvxBrushItem aTempItem(*pBrush);
+/*N*/ }
+/*N*/ }
+/*N*/ else if((SVX_NUM_BITMAP|LINK_TOKEN) == aFmt.GetNumberingType())
+/*N*/ aFmt.SetNumberingType(SVX_NUM_BITMAP);
+/*N*/ SetLevel(i, aFmt);
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumBulletItem::SvxNumBulletItem(SvxNumRule& rRule) :
+/*N*/ SfxPoolItem(SID_ATTR_NUMBERING_RULE),
+/*N*/ pNumRule(new SvxNumRule(rRule))
+/*N*/ {
+/*N*/ }
+
+/*-----------------23.11.98 10:36-------------------
+ MT: Das sind ja sehr sinnige Kommentare...
+--------------------------------------------------*/
+/*N*/ SvxNumBulletItem::SvxNumBulletItem(SvxNumRule& rRule, USHORT nWhich ) :
+/*N*/ SfxPoolItem(nWhich),
+/*N*/ pNumRule(new SvxNumRule(rRule))
+/*N*/ {
+/*N*/ }
+
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumBulletItem::SvxNumBulletItem(const SvxNumBulletItem& rCopy) :
+/*N*/ SfxPoolItem(rCopy.Which())
+/*N*/ {
+/*N*/ pNumRule = new SvxNumRule(*rCopy.pNumRule);
+/*N*/ }
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumBulletItem::~SvxNumBulletItem()
+/*N*/ {
+/*N*/ delete pNumRule;
+/*N*/ }
+
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ int SvxNumBulletItem::operator==( const SfxPoolItem& rCopy) const
+/*N*/ {
+/*N*/ return *pNumRule == *((SvxNumBulletItem&)rCopy).pNumRule;
+/*N*/ }
+/* -----------------27.10.98 10:41-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SfxPoolItem* SvxNumBulletItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxNumBulletItem(*this);
+/*N*/ }
+/* -----------------08.12.98 10:43-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SfxPoolItem* SvxNumBulletItem::Create(SvStream &rStream, USHORT) const
+/*N*/ {
+/*N*/ SvxNumRule aRule(rStream);
+/*N*/ return new SvxNumBulletItem(aRule, Which() );
+/*N*/ }
+/* -----------------08.12.98 10:43-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvStream& SvxNumBulletItem::Store(SvStream &rStream, USHORT nItemVersion )const
+/*N*/ {
+/*N*/ pNumRule->Store(rStream);
+/*N*/ return rStream;
+/*N*/ }
+/* -----------------08.12.98 10:43-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ USHORT SvxNumBulletItem::GetVersion( USHORT nFileVersion ) const
+/*N*/ {
+/*N*/ return NUMITEM_VERSION_03;
+/*N*/ }
+
+/* -----------------08.12.98 10:43-------------------
+ *
+ * --------------------------------------------------*/
+
+
+/*N*/ bool SvxNumBulletItem::PutValue( const ::com::sun::star::uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ uno::Reference< container::XIndexReplace > xRule;
+/*N*/ if( rVal >>= xRule )
+/*N*/ {
+/*N*/ try
+/*N*/ {
+/*N*/ SvxNumRule* pNewRule = new SvxNumRule( SvxGetNumRule( xRule ) );
+/*N*/ if( pNewRule->GetLevelCount() != pNumRule->GetLevelCount() ||
+/*N*/ pNewRule->GetNumRuleType() != pNumRule->GetNumRuleType() )
+/*N*/ {
+/*N*/ SvxNumRule* pConverted = SvxConvertNumRule( pNewRule, pNumRule->GetLevelCount(), pNumRule->GetNumRuleType() );
+/*N*/ delete pNewRule;
+/*N*/ pNewRule = pConverted;
+/*N*/ }
+/*N*/ delete pNumRule;
+/*N*/ pNumRule = pNewRule;
+/*N*/ return sal_True;
+/*N*/ }
+/*N*/ catch(lang::IllegalArgumentException&)
+/*N*/ {
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_False;
+/*N*/ }
+
+/* -----------------08.12.98 10:43-------------------
+ *
+ * --------------------------------------------------*/
+/*N*/ SvxNumRule* SvxConvertNumRule( const SvxNumRule* pRule, USHORT nLevels, SvxNumRuleType eType )
+/*N*/ {
+/*N*/ const USHORT nSrcLevels = pRule->GetLevelCount();
+/*N*/ SvxNumRule* pNewRule = new SvxNumRule( pRule->GetFeatureFlags(), nLevels, pRule->IsContinuousNumbering(), eType );
+/*N*/
+/*N*/ // move all levels one level up if the destination is a presentation numbering and the source is not
+/*N*/ const sal_Bool bConvertUp = pRule->GetNumRuleType() != SVX_RULETYPE_PRESENTATION_NUMBERING &&
+/*N*/ eType == SVX_RULETYPE_PRESENTATION_NUMBERING;
+/*N*/
+/*N*/ // move all levels one level down if the source is a presentation numbering and the destination is not
+/*N*/ const sal_Bool bConvertDown = pRule->GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING &&
+/*N*/ eType != SVX_RULETYPE_PRESENTATION_NUMBERING;
+/*N*/
+/*N*/ USHORT nSrcLevel = bConvertDown ? 1 : 0;
+/*N*/ USHORT nDstLevel = bConvertUp ? 1 : 0;
+/*N*/ for( ; (nDstLevel < nLevels) && (nSrcLevel < nSrcLevels); nSrcLevel++, nDstLevel++ )
+/*N*/ pNewRule->SetLevel( nDstLevel, pRule->GetLevel( nSrcLevel ) );
+/*N*/
+/*N*/ return pNewRule;
+/*N*/ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_pageitem.cxx b/binfilter/bf_svx/source/items/svx_pageitem.cxx
new file mode 100644
index 000000000000..45c630eb64fa
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_pageitem.cxx
@@ -0,0 +1,278 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#include <tools/stream.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+// Erstmal definieren, damit die Klassendeklarionen angezogen werden.
+#define ITEMID_PAGE 0
+#define ITEMID_SETITEM 0
+
+#include <bf_svtools/poolitem.hxx>
+
+#include "pageitem.hxx"
+#include "itemtype.hxx"
+#include <unomid.hxx>
+
+#include <com/sun/star/style/PageStyleLayout.hpp>
+
+#include <bf_svtools/itemset.hxx>
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+// STATIC DATA -----------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY( SvxPageItem, SfxPoolItem );
+
+/*--------------------------------------------------------------------
+ Beschreibung: Konstruktor
+ --------------------------------------------------------------------*/
+
+/*N*/ SvxPageItem::SvxPageItem( const USHORT nId ) : SfxPoolItem( nId ),
+/*N*/
+/*N*/ eNumType ( SVX_ARABIC ),
+/*N*/ bLandscape ( sal_False ),
+/*N*/ eUse ( SVX_PAGE_ALL )
+/*N*/ {
+/*N*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung: Copy-Konstruktor
+ --------------------------------------------------------------------*/
+
+/*N*/ SvxPageItem::SvxPageItem( const SvxPageItem& rItem )
+/*N*/ : SfxPoolItem( rItem )
+/*N*/ {
+/*N*/ eNumType = rItem.eNumType;
+/*N*/ bLandscape = rItem.bLandscape;
+/*N*/ eUse = rItem.eUse;
+/*N*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung: Clonen
+ --------------------------------------------------------------------*/
+
+/*N*/ SfxPoolItem* SvxPageItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxPageItem( *this );
+/*N*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung: Abfrage auf Gleichheit
+ --------------------------------------------------------------------*/
+
+/*N*/ int SvxPageItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/ const SvxPageItem& rItem = (SvxPageItem&)rAttr;
+/*N*/ return ( eNumType == rItem.eNumType &&
+/*N*/ bLandscape == rItem.bLandscape &&
+/*N*/ eUse == rItem.eUse );
+/*N*/ }
+
+/*?*/ inline XubString GetUsageText( const USHORT eU )
+/*?*/ {
+/*?*/ if ( eU & SVX_PAGE_LEFT )
+/*?*/ return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_LEFT);
+/*?*/ if ( eU & SVX_PAGE_RIGHT )
+/*?*/ return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_RIGHT);
+/*?*/ if ( eU & SVX_PAGE_ALL )
+/*?*/ return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_ALL);
+/*?*/ if ( eU & SVX_PAGE_MIRROR )
+/*?*/ return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_MIRROR);
+/*?*/ return String();
+/*?*/ }
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+/*N*/ bool SvxPageItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_PAGE_NUMTYPE:
+/*N*/ {
+/*N*/ //! die Konstanten sind nicht mehr in den IDLs ?!?
+/*N*/ rVal <<= (sal_Int16)( eNumType );
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_PAGE_ORIENTATION:
+/*N*/ //Landscape= sal_True
+/*N*/ rVal = Bool2Any(bLandscape);
+/*N*/ break;
+/*N*/ case MID_PAGE_LAYOUT :
+/*N*/ {
+/*N*/ style::PageStyleLayout eRet;
+/*N*/ switch(eUse & 0x0f)
+/*N*/ {
+/*N*/ case SVX_PAGE_LEFT : eRet = style::PageStyleLayout_LEFT; break;
+/*N*/ case SVX_PAGE_RIGHT : eRet = style::PageStyleLayout_RIGHT; break;
+/*N*/ case SVX_PAGE_ALL : eRet = style::PageStyleLayout_ALL; break;
+/*N*/ case SVX_PAGE_MIRROR: eRet = style::PageStyleLayout_MIRRORED; break;
+/*N*/ default:
+/*N*/ DBG_ERROR("was fuer ein Layout ist das?");
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ rVal <<= eRet;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+//------------------------------------------------------------------------
+/*N*/ bool SvxPageItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_PAGE_NUMTYPE:
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*N*/ if(!(rVal >>= nValue))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ eNumType = (SvxNumType)nValue;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_PAGE_ORIENTATION:
+/*N*/ bLandscape = Any2Bool(rVal);
+/*N*/ break;
+/*N*/ case MID_PAGE_LAYOUT :
+/*N*/ {
+/*N*/ style::PageStyleLayout eLayout;
+/*N*/ if(!(rVal >>= eLayout))
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ eLayout = (style::PageStyleLayout)nValue;
+/*N*/ }
+/*N*/ eUse &= 0xfff0;
+/*N*/ switch( eLayout )
+/*N*/ {
+/*N*/ case style::PageStyleLayout_LEFT : eUse |= SVX_PAGE_LEFT ; break;
+/*N*/ case style::PageStyleLayout_RIGHT : eUse |= SVX_PAGE_RIGHT; break;
+/*?*/ case style::PageStyleLayout_ALL : eUse |= SVX_PAGE_ALL ; break;
+/*N*/ case style::PageStyleLayout_MIRRORED: eUse |= SVX_PAGE_MIRROR;break;
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPageItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ XubString sStr;
+/*N*/ BYTE eType;
+/*N*/ sal_Bool bLand;
+/*N*/ USHORT nUse;
+/*N*/
+/*N*/ // UNICODE: rStream >> sStr;
+/*N*/ rStream.ReadByteString( sStr );
+/*N*/
+/*N*/ rStream >> eType;
+/*N*/ rStream >> bLand;
+/*N*/ rStream >> nUse;
+/*N*/
+/*N*/ SvxPageItem* pPage = new SvxPageItem( Which() );
+/*N*/ pPage->SetDescName( sStr );
+/*N*/ pPage->SetNumType( (SvxNumType)eType );
+/*N*/ pPage->SetLandscape( bLand );
+/*N*/ pPage->SetPageUsage( nUse );
+/*N*/ return pPage;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SvStream& SvxPageItem::Store( SvStream &rStrm, USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ // UNICODE: rStrm << aDescName;
+/*N*/ rStrm.WriteByteString(aDescName);
+/*N*/
+/*N*/ rStrm << (BYTE)eNumType << bLandscape << eUse;
+/*N*/ return rStrm;
+/*N*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung: HeaderFooterSet
+ --------------------------------------------------------------------*/
+
+/*N*/ SvxSetItem::SvxSetItem( const USHORT nId, const SfxItemSet& rSet ) :
+/*N*/
+/*N*/ SfxSetItem( nId, rSet )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SvxSetItem::SvxSetItem( const SvxSetItem& rItem ) :
+/*N*/
+/*N*/ SfxSetItem( rItem )
+/*N*/ {
+/*N*/ }
+
+
+/*N*/ SfxPoolItem* SvxSetItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxSetItem(*this);
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+/*N*/ SfxPoolItem* SvxSetItem::Create(SvStream &rStrm, USHORT nVersion) const
+/*N*/ {
+/*N*/ SfxItemSet* pSet = new SfxItemSet( *GetItemSet().GetPool(),
+/*N*/ GetItemSet().GetRanges() );
+/*N*/
+/*N*/ pSet->Load( rStrm );
+/*N*/
+/*N*/ return new SvxSetItem( Which(), *pSet );
+/*N*/ }
+
+/*N*/ SvStream& SvxSetItem::Store(SvStream &rStrm, USHORT nItemVersion) const
+/*N*/ {
+/*N*/ GetItemSet().Store( rStrm, nItemVersion );
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_paperinf.cxx b/binfilter/bf_svx/source/items/svx_paperinf.cxx
new file mode 100644
index 000000000000..bf0e181a4a33
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_paperinf.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 ---------------------------------------------------------------
+
+#include <limits.h>
+
+#include <sal/macros.h>
+#include "dialogs.hrc"
+#include "paperinf.hxx"
+namespace binfilter {
+
+#define SVX_PAPER_OFFSET 3 // Anfang: enum Paper A3 - SvxPaper A0; Diff=3
+
+// STATIC DATA -----------------------------------------------------------
+
+static Size __FAR_DATA aDinTab[] =
+{
+ Size(lA0Width,lA0Height), // A0
+ Size(lA1Width,lA1Height), // A1
+ Size(lA2Width,lA2Height), // A2
+ Size(lA3Width,lA3Height), // A3
+ Size(lA4Width,lA4Height), // A4
+ Size(lA5Width,lA5Height), // A5
+ Size(lB4Width, lB4Height), // B4
+ Size(lB5Width,lB5Height), // B5
+ Size(lLetterWidth,lLetterHeight), // LETTER
+ Size(lLegalWidth,lLegalHeight), // LEGAL
+ Size(lTabloidWidth,lTabloidHeight), // TABLOID
+ Size(0, 0), // USER
+ Size(lB6Width, lB6Height), // B6
+ Size(lC4Width, lC4Height), // C4
+ Size(lC5Width, lC5Height), // C5
+ Size(lC6Width, lC6Height), // C6
+ Size(lC65Width, lC65Height), // C65
+ Size(lDLWidth, lDLHeight), // DL
+ Size(lDiaWidth,lDiaHeight ), // DIA
+ Size(lScreenWidth, lScreenHeight), // SCREEN
+ Size(lAWidth, lAHeight), // A
+ Size(lBWidth, lBHeight), // B
+ Size(lCWidth, lCHeight), // C
+ Size(lDWidth, lDHeight), // D
+ Size(lEWidth, lEHeight), // E
+ Size(lExeWidth, lExeHeight), // Executive
+ Size(lLegal2Width, lLegal2Height), // Legal2
+ Size(lMonarchWidth, lMonarchHeight),// Monarch
+ Size(lCom675Width, lCom675Height), // COM-6 3/4
+ Size(lCom9Width, lCom9Height), // COM-9
+ Size(lCom10Width, lCom10Height), // COM-10
+ Size(lCom11Width, lCom11Height), // COM-11
+ Size(lCom12Width, lCom12Height), // COM-12
+ Size(lKai16Width, lKai16Height), // 16 kai
+ Size(lKai32Width, lKai32Height), // 32 kai
+ Size(lKai32BigWidth, lKai32BigHeight), // 32 kai gross
+ Size(lJISB4Width, lJISB4Height), // B4 (JIS)
+ Size(lJISB5Width, lJISB5Height), // B5 (JIS)
+ Size(lJISB6Width, lJISB6Height) // B6 (JIS)
+};
+
+static const int nTabSize = SAL_N_ELEMENTS(aDinTab);
+
+// -----------------------------------------------------------------------
+
+/*N*/ long TwipsTo100thMM( long nIn )
+/*N*/ {
+/*N*/ long nRet = OutputDevice::LogicToLogic( nIn, MAP_TWIP, MAP_100TH_MM );
+/*N*/ long nTmp = nRet % 10;
+/*N*/
+/*N*/ if ( nTmp )
+/*N*/ nRet += 10 - nTmp;
+/*N*/ return nRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ Size ConvertTo100thMM( Size& rSize )
+/*N*/ {
+/*N*/ // Convert form TWIPS to 100TH_MM
+/*N*/ long nW = TwipsTo100thMM( rSize.Width() );
+/*N*/ long nH = TwipsTo100thMM( rSize.Height() );
+/*N*/
+/*N*/ rSize.Width() = nW;
+/*N*/ rSize.Height() = nH;
+/*N*/ return rSize;
+/*N*/ }
+
+/*--------------------------------------------------------------------
+ Beschreibung: Ist der Printer gueltig
+ --------------------------------------------------------------------*/
+
+/*?*/ inline BOOL IsValidPrinter( const Printer* pPtr )
+/*?*/ {
+/*?*/ return pPtr->GetName().Len() ? TRUE : FALSE;
+/*?*/ }
+
+/*------------------------------------------------------------------------
+ Beschreibung: Konvertierung eines SV-Defines fuer Papiergroesse in
+ Twips.
+ Funktioniert logischerweise nicht fuer User Groessen
+ (ASSERT).
+------------------------------------------------------------------------*/
+
+/*N*/ Size SvxPaperInfo::GetPaperSize( SvxPaper ePaper, MapUnit eUnit )
+/*N*/ {
+/*N*/ DBG_ASSERT( ePaper < nTabSize, "Tabelle der Papiergroessen ueberindiziert" );
+/*N*/ DBG_ASSERT( eUnit == MAP_TWIP || eUnit == MAP_100TH_MM, "this MapUnit not supported" );
+/*N*/ Size aSize = aDinTab[ePaper]; // in Twips
+/*N*/
+/*N*/ if ( eUnit == MAP_100TH_MM )
+/*N*/ ConvertTo100thMM( aSize );
+/*N*/ return aSize;
+/*N*/ }
+
+/*------------------------------------------------------------------------
+ Beschreibung: Papiergroesse der Druckers liefern, aligned auf
+ die eigenen Groessen.
+ Falls kein Printer im System eingestellt ist,
+ wird DIN A4 Portrait als Defaultpapiergroesse geliefert.
+------------------------------------------------------------------------*/
+
+/*N*/ Size SvxPaperInfo::GetPaperSize( const Printer* pPrinter )
+/*N*/ {
+/*N*/ if ( !IsValidPrinter(pPrinter) )
+/*?*/ return GetPaperSize( SVX_PAPER_A4 );
+/*N*/ const SvxPaper ePaper = (SvxPaper)(pPrinter->GetPaper() + SVX_PAPER_OFFSET);
+/*N*/
+/*N*/ if ( ePaper == SVX_PAPER_USER )
+/*N*/ {
+/*N*/ // Orientation nicht beruecksichtigen, da durch SV bereits
+/*N*/ // die richtigen Masze eingestellt worden sind.
+/*N*/ Size aPaperSize = pPrinter->GetPaperSize();
+/*N*/ const Size aInvalidSize;
+/*N*/
+/*N*/ if ( aPaperSize == aInvalidSize )
+/*?*/ return GetPaperSize(SVX_PAPER_A4);
+/*N*/ MapMode aMap1 = pPrinter->GetMapMode();
+/*N*/ MapMode aMap2;
+/*N*/
+/*N*/ if ( aMap1 == aMap2 )
+/*N*/ aPaperSize =
+/*N*/ pPrinter->PixelToLogic( aPaperSize, MapMode( MAP_TWIP ) );
+/*N*/ return aPaperSize;
+/*N*/ }
+/*N*/
+/*N*/ const Orientation eOrient = pPrinter->GetOrientation();
+/*N*/ Size aSize( GetPaperSize( ePaper ) );
+/*N*/ // bei Landscape die Seiten tauschen, ist bei SV schon geschehen
+/*N*/ if ( eOrient == ORIENTATION_LANDSCAPE )
+/*?*/ Swap( aSize );
+/*N*/ return aSize;
+/*N*/ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_paraitem.cxx b/binfilter/bf_svx/source/items/svx_paraitem.cxx
new file mode 100644
index 000000000000..0baea01ff9c5
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_paraitem.cxx
@@ -0,0 +1,1244 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#include <com/sun/star/style/TabStop.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <comphelper/processfactory.hxx>
+#include <bf_svtools/syslocale.hxx>
+
+#include <comphelper/types.hxx>
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+#define ITEMID_TABSTOP 0
+#define ITEMID_LINESPACING 0
+#define ITEMID_ADJUST 0
+#define ITEMID_ORPHANS 0
+#define ITEMID_WIDOWS 0
+#define ITEMID_PAGEMODEL 0
+#define ITEMID_FMTSPLIT 0
+#define ITEMID_HYPHENZONE 0
+#define ITEMID_SCRIPTSPACE 0
+#define ITEMID_HANGINGPUNCTUATION 0
+#define ITEMID_FORBIDDENRULE 0
+#define ITEMID_PARAVERTALIGN 0
+#define ITEMID_PARAGRID 0
+
+#include <tools/rtti.hxx>
+#include "bf_basic/sbx.hxx"
+#define GLOBALOVERFLOW3
+
+#define _SVX_PARAITEM_CXX
+
+#include <bf_svtools/itempool.hxx>
+
+#include <bf_svtools/memberid.hrc>
+#include "svxitems.hrc"
+
+#include "lspcitem.hxx"
+#include "adjitem.hxx"
+#include "orphitem.hxx"
+#include "widwitem.hxx"
+#include "tstpitem.hxx"
+#include "pmdlitem.hxx"
+#include "spltitem.hxx"
+#include "hyznitem.hxx"
+#include "scriptspaceitem.hxx"
+#include "hngpnctitem.hxx"
+#include "forbiddenruleitem.hxx"
+#include "paravertalignitem.hxx"
+#include "pgrditem.hxx"
+
+
+#include "rtl/ustring.hxx"
+
+#include <unomid.hxx>
+
+#include "itemtype.hxx"
+#include "dialmgr.hxx"
+#include "paperinf.hxx"
+
+#include <vcl/svapp.hxx>
+
+#include <algorithm>
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+// Konvertierung fuer UNO
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+
+
+// STATIC DATA -----------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxLineSpacingItem, SfxPoolItem );
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxAdjustItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxWidowsItem, SfxByteItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxOrphansItem, SfxByteItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxHyphenZoneItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxTabStopItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFmtSplitItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPageModelItem, SfxStringItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxScriptSpaceItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxHangingPunctuationItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxForbiddenRuleItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxParaVertAlignItem, SfxUInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxParaGridItem, SfxBoolItem);
+
+/*N*/ SV_IMPL_VARARR_SORT( SvxTabStopArr, SvxTabStop )
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxLineSpacingItem::SvxLineSpacingItem( sal_uInt16 nHeight, const sal_uInt16 nId )
+/*N*/ : SfxEnumItemInterface( nId )
+/*N*/ {
+/*N*/ nPropLineSpace = 100;
+/*N*/ nInterLineSpace = 0;
+/*N*/ nLineHeight = nHeight;
+/*N*/ eLineSpace = SVX_LINE_SPACE_AUTO;
+/*N*/ eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxLineSpacingItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ const SvxLineSpacingItem& rLineSpace = (const SvxLineSpacingItem&)rAttr;
+/*N*/ return (
+/*N*/ // Gleiche Linespacing Rule?
+/*N*/ (eLineSpace == rLineSpace.eLineSpace)
+/*N*/ // Bei maximalem und minimalem Linespacing muss das Mass
+/*N*/ // uebereinstimmen.
+/*N*/ && (eLineSpace == SVX_LINE_SPACE_AUTO ||
+/*N*/ nLineHeight == rLineSpace.nLineHeight)
+/*N*/ // Gleiche Interlinespacing Rule?
+/*N*/ && ( eInterLineSpace == rLineSpace.eInterLineSpace )
+/*N*/ // Entweder proportional oder draufaddieren eingestellt.
+/*N*/ && (( eInterLineSpace == SVX_INTER_LINE_SPACE_OFF)
+/*N*/ || (eInterLineSpace == SVX_INTER_LINE_SPACE_PROP
+/*N*/ && nPropLineSpace == rLineSpace.nPropLineSpace)
+/*N*/ || (eInterLineSpace == SVX_INTER_LINE_SPACE_FIX
+/*N*/ && (nInterLineSpace == rLineSpace.nInterLineSpace)))) ?
+/*N*/ 1 : 0;
+/*N*/ }
+
+/*-----------------18.03.98 16:32-------------------
+ os: wer weiss noch, wieso das LineSpacingItem so
+ kompliziert ist? Fuer UNO koennen wir das nicht
+ gebrauchen. Da gibt es nur zwei Werte:
+ - ein sal_uInt16 fuer den Modus
+ - ein sal_uInt32 fuer alle Werte (Abstand, Hoehe, rel. Angaben)
+
+--------------------------------------------------*/
+/*N*/ bool SvxLineSpacingItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ style::LineSpacing aLSp;
+/*N*/ switch( eLineSpace )
+/*N*/ {
+/*N*/ case SVX_LINE_SPACE_AUTO:
+/*N*/ if(eInterLineSpace == SVX_INTER_LINE_SPACE_FIX)
+/*N*/ {
+/*?*/ aLSp.Mode = style::LineSpacingMode::LEADING;
+/*?*/ aLSp.Height = nInterLineSpace;
+/*N*/ }
+/*N*/ else if(eInterLineSpace == SVX_INTER_LINE_SPACE_OFF)
+/*N*/ {
+/*N*/ aLSp.Mode = style::LineSpacingMode::PROP;
+/*N*/ aLSp.Height = 100;
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ aLSp.Mode = style::LineSpacingMode::PROP;
+/*N*/ aLSp.Height = nPropLineSpace;
+/*N*/ }
+/*N*/ break;
+/*N*/ case SVX_LINE_SPACE_FIX :
+/*N*/ case SVX_LINE_SPACE_MIN :
+/*N*/ aLSp.Mode = eLineSpace == SVX_LINE_SPACE_FIX ? style::LineSpacingMode::FIX : style::LineSpacingMode::MINIMUM;
+/*N*/ aLSp.Height = ( bConvert ? (short)TWIP_TO_MM100(nLineHeight) : nLineHeight );
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*?*/ case 0 : rVal <<= aLSp; break;
+/*?*/ case MID_LINESPACE : rVal <<= aLSp.Mode; break;
+/*?*/ case MID_HEIGHT : rVal <<= aLSp.Height; break;
+/*?*/ default: DBG_ERROR("Wrong MemberId!"); break;
+/*N*/ }
+/*N*/
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------18.03.98 16:32-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxLineSpacingItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/
+/*N*/ // fill with current data
+/*N*/ style::LineSpacing aLSp;
+/*N*/ uno::Any aAny;
+/*N*/ sal_Bool bRet = QueryValue( aAny, bConvert ? CONVERT_TWIPS : 0 ) && ( aAny >>= aLSp );
+/*N*/
+/*N*/ // get new data
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case 0 : bRet = (rVal >>= aLSp); break;
+/*?*/ case MID_LINESPACE : bRet = (rVal >>= aLSp.Mode); break;
+/*?*/ case MID_HEIGHT : bRet = (rVal >>= aLSp.Height); break;
+/*N*/ default: DBG_ERROR("Wrong MemberId!"); break;
+/*N*/ }
+/*N*/
+/*N*/ if( bRet )
+/*N*/ {
+/*N*/ nLineHeight = aLSp.Height;
+/*N*/ switch( aLSp.Mode )
+/*N*/ {
+/*N*/ case style::LineSpacingMode::LEADING:
+/*N*/ {
+/*?*/ eInterLineSpace = SVX_INTER_LINE_SPACE_FIX;
+/*?*/ eLineSpace = SVX_LINE_SPACE_AUTO;
+/*?*/ nInterLineSpace = aLSp.Height;
+/*N*/ }
+/*N*/ break;
+/*N*/ case style::LineSpacingMode::PROP:
+/*N*/ {
+/*N*/ eLineSpace = SVX_LINE_SPACE_AUTO;
+/*N*/ nPropLineSpace = (sal_Int8)std::min(aLSp.Height, (short)0xFF);
+/*N*/ if(100 == aLSp.Height)
+/*N*/ eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
+/*N*/ else
+/*N*/ eInterLineSpace = SVX_INTER_LINE_SPACE_PROP;
+/*N*/ }
+/*N*/ break;
+/*N*/ case style::LineSpacingMode::FIX:
+/*N*/ case style::LineSpacingMode::MINIMUM:
+/*N*/ {
+/*N*/ eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
+/*N*/ eLineSpace = aLSp.Mode == style::LineSpacingMode::FIX ? SVX_LINE_SPACE_FIX : SVX_LINE_SPACE_MIN;
+/*N*/ nLineHeight = aLSp.Height;
+/*N*/ if(bConvert)
+/*N*/ nLineHeight = (USHORT)MM100_TO_TWIP(nLineHeight);
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/
+/*N*/ return bRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLineSpacingItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxLineSpacingItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLineSpacingItem::Create(SvStream& rStrm, sal_uInt16) const
+/*N*/ {
+/*N*/ sal_Int8 nPropSpace;
+/*N*/ short nInterSpace;
+/*N*/ sal_uInt16 nHeight;
+/*N*/ sal_Int8 nRule, nInterRule;
+/*N*/
+/*N*/ rStrm >> nPropSpace
+/*N*/ >> nInterSpace
+/*N*/ >> nHeight
+/*N*/ >> nRule
+/*N*/ >> nInterRule;
+/*N*/
+/*N*/ SvxLineSpacingItem* pAttr = new SvxLineSpacingItem( nHeight, Which() );
+/*N*/ pAttr->SetInterLineSpace( nInterSpace );
+/*N*/ pAttr->SetPropLineSpace( nPropSpace );
+/*N*/ pAttr->GetLineSpaceRule() = (SvxLineSpace)nRule;
+/*N*/ pAttr->GetInterLineSpaceRule() = (SvxInterLineSpace)nInterRule;
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxLineSpacingItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8) GetPropLineSpace()
+/*N*/ << (short) GetInterLineSpace()
+/*N*/ << (sal_uInt16) GetLineHeight()
+/*N*/ << (sal_Int8) GetLineSpaceRule()
+/*N*/ << (sal_Int8) GetInterLineSpaceRule();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxLineSpacingItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return SVX_LINESPACE_END;//STRIP001 /*?*/ return SVX_LINESPACE_END; // SVX_LINESPACE_TWO_LINES + 1
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ XubString SvxLineSpacingItem::GetValueTextByPos( sal_uInt16 nPos ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); XubString aText;//STRIP001 //STRIP001 //! Strings demnaechst aus Resource laden
+/*?*/ return aText;
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxLineSpacingItem::GetEnumValue() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 //STRIP001 sal_uInt16 nVal;
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ void SvxLineSpacingItem::SetEnumValue( sal_uInt16 nVal )
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 //STRIP001 switch ( nVal )
+/*?*/ }
+
+// class SvxAdjustItem ---------------------------------------------------
+
+/*N*/ SvxAdjustItem::SvxAdjustItem(const SvxAdjust eAdjst, const sal_uInt16 nId )
+/*N*/ : SfxEnumItemInterface( nId ),
+/*N*/ bOneBlock( sal_False ), bLastCenter( sal_False ), bLastBlock( sal_False )
+/*N*/ {
+/*N*/ SetAdjust( eAdjst );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxAdjustItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return( ( GetAdjust() == ((SvxAdjustItem&)rAttr).GetAdjust() &&
+/*N*/ bOneBlock == ((SvxAdjustItem&)rAttr).bOneBlock &&
+/*N*/ bLastCenter == ((SvxAdjustItem&)rAttr).bLastCenter &&
+/*N*/ bLastBlock == ((SvxAdjustItem&)rAttr).bLastBlock )
+/*N*/ ? 1 : 0 );
+/*N*/ }
+
+/*-----------------18.03.98 16:15-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxAdjustItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_PARA_ADJUST : rVal <<= (sal_Int16)GetAdjust(); break;
+/*N*/ case MID_LAST_LINE_ADJUST : rVal <<= (sal_Int16)GetLastBlock(); break;
+/*N*/ case MID_EXPAND_SINGLE :
+/*N*/ {
+/*N*/ sal_Bool bValue = bOneBlock;
+/*N*/ rVal.setValue( &bValue, ::getCppuBooleanType() );
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------18.03.98 16:15-------------------
+
+--------------------------------------------------*/
+
+/*N*/ bool SvxAdjustItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_PARA_ADJUST :
+/*N*/ case MID_LAST_LINE_ADJUST :
+/*N*/ {
+/*N*/ sal_Int32 eVal = - 1;
+/*N*/ try
+/*N*/ {
+/*N*/ eVal = ::comphelper::getEnumAsINT32(rVal);
+/*N*/ }
+/*N*/ catch(...) {}
+/*N*/ if(eVal >= 0 && eVal <= 4)
+/*N*/ {
+/*N*/ if(MID_LAST_LINE_ADJUST == nMemberId &&
+/*N*/ eVal != SVX_ADJUST_LEFT &&
+/*N*/ eVal != SVX_ADJUST_BLOCK &&
+/*N*/ eVal != SVX_ADJUST_CENTER)
+/*N*/ return FALSE;
+/*N*/ if(eVal < (sal_uInt16)SVX_ADJUST_END)
+/*N*/ nMemberId == MID_PARA_ADJUST ?
+/*N*/ SetAdjust((SvxAdjust)eVal) :
+/*N*/ SetLastBlock((SvxAdjust)eVal);
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_EXPAND_SINGLE :
+/*N*/ bOneBlock = Any2Bool(rVal);
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxAdjustItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxAdjustItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxAdjustItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_ADJUST_END; // SVX_ADJUST_BLOCKLINE + 1
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ sal_uInt16 SvxAdjustItem::GetEnumValue() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return GetAdjust();
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxAdjustItem::SetEnumValue( sal_uInt16 nVal )
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); //STRIP001
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxAdjustItem::GetVersion( sal_uInt16 nFileVersion ) const
+/*N*/ {
+/*N*/ return (nFileVersion == SOFFICE_FILEFORMAT_31)
+/*N*/ ? 0 : ADJUST_LASTBLOCK_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxAdjustItem::Create(SvStream& rStrm, sal_uInt16 nVersion) const
+/*N*/ {
+/*N*/ char eAdjustment;
+/*N*/ rStrm >> eAdjustment;
+/*N*/ SvxAdjustItem *pRet = new SvxAdjustItem( (SvxAdjust)eAdjustment, Which() );
+/*N*/ if( nVersion >= ADJUST_LASTBLOCK_VERSION )
+/*N*/ {
+/*N*/ sal_Int8 nFlags;
+/*N*/ rStrm >> nFlags;
+/*N*/ pRet->bOneBlock = 0 != (nFlags & 0x0001);
+/*N*/ pRet->bLastCenter = 0 != (nFlags & 0x0002);
+/*N*/ pRet->bLastBlock = 0 != (nFlags & 0x0004);
+/*N*/ }
+/*N*/ return pRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxAdjustItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (char)GetAdjust();
+/*N*/ if ( nItemVersion >= ADJUST_LASTBLOCK_VERSION )
+/*N*/ {
+/*N*/ sal_Int8 nFlags = 0;
+/*N*/ if ( bOneBlock )
+/*N*/ nFlags |= 0x0001;
+/*N*/ if ( bLastCenter )
+/*N*/ nFlags |= 0x0002;
+/*N*/ if ( bLastBlock )
+/*N*/ nFlags |= 0x0004;
+/*N*/ rStrm << (sal_Int8) nFlags;
+/*N*/ }
+/*N*/ return rStrm;
+/*N*/ }
+
+// class SvxWidowsItem ---------------------------------------------------
+
+/*N*/ SvxWidowsItem::SvxWidowsItem(const BYTE nL, const USHORT nId ) :
+/*N*/ SfxByteItem( nId, nL )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWidowsItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxWidowsItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWidowsItem::Create(SvStream& rStrm, sal_uInt16) const
+/*N*/ {
+/*N*/ sal_Int8 nLines;
+/*N*/ rStrm >> nLines;
+/*N*/ return new SvxWidowsItem( nLines, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// class SvxOrphansItem --------------------------------------------------
+
+/*N*/ SvxOrphansItem::SvxOrphansItem(const BYTE nL, const USHORT nId ) :
+/*N*/ SfxByteItem( nId, nL )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOrphansItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxOrphansItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxOrphansItem::Create(SvStream& rStrm, sal_uInt16) const
+/*N*/ {
+/*N*/ sal_Int8 nLines;
+/*N*/ rStrm >> nLines;
+/*N*/ return new SvxOrphansItem( nLines, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// class SvxHyphenZoneItem -----------------------------------------------
+
+/*N*/ SvxHyphenZoneItem::SvxHyphenZoneItem( const sal_Bool bHyph, const sal_uInt16 nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ bHyphen = bHyph;
+/*N*/ bPageEnd = sal_True;
+/*N*/ nMinLead = nMinTrail = 0;
+/*N*/ nMaxHyphens = 255;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ bool SvxHyphenZoneItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_IS_HYPHEN:
+/*N*/ rVal = Bool2Any(bHyphen);
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MIN_LEAD:
+/*N*/ rVal <<= (sal_Int16)nMinLead;
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MIN_TRAIL:
+/*N*/ rVal <<= (sal_Int16)nMinTrail;
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MAX_HYPHENS:
+/*N*/ rVal <<= (sal_Int16)nMaxHyphens;
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxHyphenZoneItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Int16 nNewVal = 0;
+/*N*/
+/*N*/ if( nMemberId != MID_IS_HYPHEN )
+/*N*/ if(!(rVal >>= nNewVal))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_IS_HYPHEN:
+/*N*/ bHyphen = Any2Bool(rVal);
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MIN_LEAD:
+/*N*/ nMinLead = (BYTE)nNewVal;
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MIN_TRAIL:
+/*N*/ nMinTrail = (BYTE)nNewVal;
+/*N*/ break;
+/*N*/ case MID_HYPHEN_MAX_HYPHENS:
+/*N*/ nMaxHyphens = (BYTE)nNewVal;
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxHyphenZoneItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return ( (((SvxHyphenZoneItem&)rAttr).bHyphen == bHyphen)
+/*N*/ && (((SvxHyphenZoneItem&)rAttr).bPageEnd == bPageEnd)
+/*N*/ && (((SvxHyphenZoneItem&)rAttr).nMinLead == nMinLead)
+/*N*/ && (((SvxHyphenZoneItem&)rAttr).nMinTrail == nMinTrail)
+/*N*/ && (((SvxHyphenZoneItem&)rAttr).nMaxHyphens == nMaxHyphens) );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxHyphenZoneItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxHyphenZoneItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxHyphenZoneItem::Create(SvStream& rStrm, sal_uInt16) const
+/*N*/ {
+/*N*/ sal_Int8 bHyphen, bHyphenPageEnd;
+/*N*/ sal_Int8 nMinLead, nMinTrail, nMaxHyphens;
+/*N*/ rStrm >> bHyphen >> bHyphenPageEnd >> nMinLead >> nMinTrail >> nMaxHyphens;
+/*N*/ SvxHyphenZoneItem* pAttr = new SvxHyphenZoneItem( sal_False, Which() );
+/*N*/ pAttr->SetHyphen( sal_Bool( bHyphen != 0 ) );
+/*N*/ pAttr->SetPageEnd( sal_Bool( bHyphenPageEnd != 0 ) );
+/*N*/ pAttr->GetMinLead() = nMinLead;
+/*N*/ pAttr->GetMinTrail() = nMinTrail;
+/*N*/ pAttr->GetMaxHyphens() = nMaxHyphens;
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxHyphenZoneItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8) IsHyphen()
+/*N*/ << (sal_Int8) IsPageEnd()
+/*N*/ << (sal_Int8) GetMinLead()
+/*N*/ << (sal_Int8) GetMinTrail()
+/*N*/ << (sal_Int8) GetMaxHyphens();
+/*N*/ return rStrm;
+/*N*/ }
+
+// class SvxTabStop ------------------------------------------------------
+
+/*N*/ SvxTabStop::SvxTabStop()
+/*N*/ {
+/*N*/ nTabPos = 0;
+/*N*/ eAdjustment = SVX_TAB_ADJUST_LEFT;
+/*N*/ cDecimal = SvtSysLocale().GetLocaleData().getNumDecimalSep().GetChar(0);
+/*N*/ cFill = cDfltFillChar;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxTabStop::SvxTabStop( const long nPos, const SvxTabAdjust eAdjst,
+/*N*/ const sal_Unicode cDec, const sal_Unicode cFil )
+/*N*/ {
+/*N*/ nTabPos = nPos;
+/*N*/ eAdjustment = eAdjst;
+/*N*/ cDecimal = ( cDfltDecimalChar == cDec ) ? SvtSysLocale().GetLocaleData().getNumDecimalSep().GetChar(0) : cDec;
+/*N*/ cFill = cFil;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// class SvxTabStopItem --------------------------------------------------
+
+/*N*/ SvxTabStopItem::SvxTabStopItem( sal_uInt16 nWhich ) :
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/ SvxTabStopArr( sal_Int8(SVX_TAB_DEFCOUNT) )
+/*N*/ {
+/*N*/ const sal_uInt16 nTabs = SVX_TAB_DEFCOUNT, nDist = SVX_TAB_DEFDIST;
+/*N*/ const SvxTabAdjust eAdjst= SVX_TAB_ADJUST_DEFAULT;
+/*N*/
+/*N*/ for (sal_uInt16 i = 0; i < nTabs; ++i)
+/*N*/ {
+/*N*/ SvxTabStop * pTab = new SvxTabStop( (i + 1) * nDist, eAdjst );
+/*N*/ SvxTabStopArr::Insert( pTab, 1 );
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxTabStopItem::SvxTabStopItem( const sal_uInt16 nTabs,
+/*N*/ const sal_uInt16 nDist,
+/*N*/ const SvxTabAdjust eAdjst,
+/*N*/ sal_uInt16 nWhich ) :
+/*N*/ SfxPoolItem( nWhich ),
+/*N*/ SvxTabStopArr( sal_Int8(nTabs) )
+/*N*/ {
+/*N*/ for ( sal_uInt16 i = 0; i < nTabs; ++i )
+/*N*/ {
+/*N*/ SvxTabStop * pTab = new SvxTabStop( (i + 1) * nDist, eAdjst );
+/*N*/ SvxTabStopArr::Insert( pTab, 1 );
+/*N*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxTabStopItem::SvxTabStopItem( const SvxTabStopItem& rTSI ) :
+/*N*/ SfxPoolItem( rTSI.Which() ),
+/*N*/ SvxTabStopArr( (sal_Int8)rTSI.Count() )
+/*N*/ {
+/*N*/ SvxTabStopArr::Insert( &rTSI );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_uInt16 SvxTabStopItem::GetPos( const SvxTabStop& rTab ) const
+/*N*/ {
+/*N*/ sal_uInt16 nFound;
+/*N*/ return Seek_Entry( rTab, &nFound ) ? nFound : SVX_TAB_NOTFOUND;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+
+/*
+ enum ::com::sun::star::style::TabAlign
+{
+ TABALIGN_LEFT,
+ TABALIGN_CENTER,
+ TABALIGN_RIGHT,
+ TABALIGN_DECIMAL
+};
+
+struct ::com::sun::star::style::TabStop
+{
+ long Position;
+ ::com::sun::star::style::TabAlign ::com::sun::star::drawing::Alignment;
+ unsigned short DecimalChar;
+ unsigned short FillChar;
+};
+typedef sequence ::com::sun::star::style::TabStop> TabSTopSequence;
+
+ */
+/*-----------------19.03.98 08:50-------------------
+
+--------------------------------------------------*/
+
+/*N*/ bool SvxTabStopItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case MID_TABSTOPS:
+/*N*/ {
+/*N*/ sal_uInt16 nCount = Count();
+/*N*/ uno::Sequence< style::TabStop> aSeq(nCount);
+/*N*/ style::TabStop* pArr = aSeq.getArray();
+/*N*/ for(sal_uInt16 i = 0; i < nCount; i++)
+/*N*/ {
+/*N*/ const SvxTabStop& rTab = *(GetStart() + i);
+/*N*/ pArr[i].Position = bConvert ? TWIP_TO_MM100(rTab.GetTabPos()) : rTab.GetTabPos();
+/*N*/ switch(rTab.GetAdjustment())
+/*N*/ {
+/*N*/ case SVX_TAB_ADJUST_LEFT : pArr[i].Alignment = style::TabAlign_LEFT; break;
+/*N*/ case SVX_TAB_ADJUST_RIGHT : pArr[i].Alignment = style::TabAlign_RIGHT; break;
+/*N*/ case SVX_TAB_ADJUST_DECIMAL: pArr[i].Alignment = style::TabAlign_DECIMAL; break;
+/*N*/ case SVX_TAB_ADJUST_CENTER : pArr[i].Alignment = style::TabAlign_CENTER; break;
+/*N*/ default: //SVX_TAB_ADJUST_DEFAULT
+/*N*/ pArr[i].Alignment = style::TabAlign_DEFAULT;
+/*N*/
+/*N*/ }
+/*N*/ pArr[i].DecimalChar = rTab.GetDecimal();
+/*N*/ pArr[i].FillChar = rTab.GetFill();
+/*N*/ }
+/*N*/ rVal <<= aSeq;
+/*N*/ break;
+/*N*/ }
+/*N*/ case MID_STD_TAB:
+/*N*/ {
+/*N*/ const SvxTabStop &rTab = *(GetStart());
+/*N*/ rVal <<= bConvert ? TWIP_TO_MM100(rTab.GetTabPos()) : rTab.GetTabPos();
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------19.03.98 08:50-------------------
+
+--------------------------------------------------*/
+
+/*N*/ bool SvxTabStopItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch ( nMemberId )
+/*N*/ {
+/*N*/ case MID_TABSTOPS:
+/*N*/ {
+/*N*/ uno::Sequence< style::TabStop> aSeq;
+/*N*/ if(!(rVal >>= aSeq))
+/*N*/ {
+/*?*/ uno::Sequence < uno::Sequence < uno::Any > > aAnySeq;
+/*?*/ if (!(rVal >>= aAnySeq))
+/*?*/ return sal_False;
+/*?*/ sal_Int32 nLength = aAnySeq.getLength();
+/*?*/ aSeq.realloc( nLength );
+/*?*/ for ( sal_Int32 n=0; n<nLength; n++ )
+/*?*/ {
+/*?*/ uno::Sequence < uno::Any >& rAnySeq = aAnySeq[n];
+/*?*/ if ( rAnySeq.getLength() == 4 )
+/*?*/ {
+/*?*/ if (!(rAnySeq[0] >>= aSeq[n].Position)) return sal_False;
+/*?*/ if (!(rAnySeq[1] >>= aSeq[n].Alignment))
+/*?*/ {
+/*?*/ sal_Int32 nVal;
+/*?*/ if (rAnySeq[1] >>= nVal)
+/*?*/ aSeq[n].Alignment = (::com::sun::star::style::TabAlign) nVal;
+/*?*/ else
+/*?*/ return sal_False;
+/*?*/ }
+/*?*/ if (!(rAnySeq[2] >>= aSeq[n].DecimalChar))
+/*?*/ {
+/*?*/ ::rtl::OUString aVal;
+/*?*/ if ( (rAnySeq[2] >>= aVal) && aVal.getLength() == 1 )
+/*?*/ aSeq[n].DecimalChar = aVal.toChar();
+/*?*/ else
+/*?*/ return sal_False;
+/*?*/ }
+/*?*/ if (!(rAnySeq[3] >>= aSeq[n].FillChar))
+/*?*/ {
+/*?*/ ::rtl::OUString aVal;
+/*?*/ if ( (rAnySeq[3] >>= aVal) && aVal.getLength() == 1 )
+/*?*/ aSeq[n].FillChar = aVal.toChar();
+/*?*/ else
+/*?*/ return sal_False;
+/*?*/ }
+/*?*/ }
+/*?*/ else
+/*?*/ return sal_False;
+/*?*/ }
+/*N*/ }
+/*N*/
+/*N*/ SvxTabStopArr::Remove( 0, Count() );
+/*N*/ const style::TabStop* pArr = aSeq.getConstArray();
+/*N*/ const sal_uInt16 nCount = (sal_uInt16)aSeq.getLength();
+/*N*/ for(sal_uInt16 i = 0; i < nCount ; i++)
+/*N*/ {
+/*N*/ SvxTabAdjust eAdjust = SVX_TAB_ADJUST_DEFAULT;
+/*N*/ switch(pArr[i].Alignment)
+/*N*/ {
+/*N*/ case style::TabAlign_LEFT : eAdjust = SVX_TAB_ADJUST_LEFT; break;
+/*N*/ case style::TabAlign_CENTER : eAdjust = SVX_TAB_ADJUST_CENTER; break;
+/*N*/ case style::TabAlign_RIGHT : eAdjust = SVX_TAB_ADJUST_RIGHT; break;
+/*N*/ case style::TabAlign_DECIMAL: eAdjust = SVX_TAB_ADJUST_DECIMAL; break;
+/*N*/ }
+/*N*/ sal_Unicode cFill = pArr[i].FillChar;
+/*N*/ sal_Unicode cDecimal = pArr[i].DecimalChar;
+/*N*/ SvxTabStop aTab( bConvert ? MM100_TO_TWIP(pArr[i].Position) : pArr[i].Position,
+/*N*/ eAdjust,
+/*N*/ cDecimal,
+/*N*/ cFill );
+/*N*/ Insert(aTab);
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ case MID_STD_TAB:
+/*N*/ {
+/*N*/ sal_Int32 nNewPos;
+/*N*/ if (!(rVal >>= nNewPos) )
+/*N*/ return sal_False;
+/*N*/ const SvxTabStop& rTab = *(GetStart());
+/*N*/ SvxTabStop aNewTab ( bConvert ? MM100_TO_TWIP ( nNewPos ) : nNewPos,
+/*N*/ rTab.GetAdjustment(), rTab.GetDecimal(), rTab.GetFill() );
+/*N*/ Remove ( 0 );
+/*N*/ Insert( aNewTab );
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxTabStopItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ const SvxTabStopItem& rTSI = (SvxTabStopItem&)rAttr;
+/*N*/
+/*N*/ if ( Count() != rTSI.Count() )
+/*N*/ return 0;
+/*N*/
+/*N*/ for ( sal_uInt16 i = 0; i < Count(); ++i )
+/*N*/ if( !(*this)[i].IsEqual( rTSI[i] ) )
+/*N*/ return 0;
+/*N*/ return 1;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxTabStopItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxTabStopItem( *this );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxTabStopItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 nTabs;
+/*N*/ rStrm >> nTabs;
+/*N*/ SvxTabStopItem* pAttr =
+/*N*/ new SvxTabStopItem( 0, 0, SVX_TAB_ADJUST_DEFAULT, Which() );
+/*N*/
+/*N*/ for ( sal_Int8 i = 0; i < nTabs; i++ )
+/*N*/ {
+/*N*/ long nPos;
+/*N*/ sal_Int8 eAdjust;
+/*N*/ unsigned char cDecimal, cFill;
+/*N*/ rStrm >> nPos >> eAdjust >> cDecimal >> cFill;
+/*N*/ if( !i || SVX_TAB_ADJUST_DEFAULT != eAdjust )
+/*N*/ pAttr->Insert( SvxTabStop
+/*N*/ ( nPos, (SvxTabAdjust)eAdjust, sal_Unicode(cDecimal), sal_Unicode(cFill) ) );
+/*N*/ }
+/*N*/ return pAttr;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxTabStopItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ //MA 05. Sep. 96: Default-Tabs werden nur noch fuer das default-Attr
+/*N*/ //expandiert. Fuer vollstaendige Rueckwaertskompatibilitaet (<=304)
+/*N*/ //muessten alle Tabs expandiert werden, dass blaeht aber das File u.U.
+/*N*/ //enorm auf.
+/*N*/ //Alles nur SWG!
+/*N*/
+/*N*/ const SfxItemPool *pPool = SfxItemPool::GetStoringPool();
+/*N*/ const FASTBOOL bStoreDefTabs = pPool
+/*N*/ && pPool->GetName().EqualsAscii("SWG")
+/*N*/ && binfilter::IsDefaultItem( this );
+/*N*/
+/*N*/ const short nTabs = Count();
+/*N*/ sal_uInt16 nCount = 0, nDefDist;
+/*N*/ long nNew;
+/*N*/
+/*N*/ if( bStoreDefTabs )
+/*N*/ {
+/*N*/ const SvxTabStopItem& rDefTab = (const SvxTabStopItem &)
+/*N*/ pPool->GetDefaultItem( pPool->GetWhich( SID_ATTR_TABSTOP, sal_False ) );
+/*N*/ nDefDist = sal_uInt16( rDefTab.GetStart()->GetTabPos() );
+/*N*/ const long nPos = nTabs > 0 ? (*this)[nTabs-1].GetTabPos() : 0;
+/*N*/ nCount = (sal_uInt16)(nPos / nDefDist);
+/*N*/ nNew = (nCount + 1) * nDefDist;
+/*N*/
+/*N*/ if( nNew <= nPos + 50 )
+/*N*/ nNew += nDefDist;
+/*N*/
+/*N*/ nCount = nNew < lA3Width ? ( lA3Width - nNew ) / nDefDist + 1 : 0;
+/*N*/ }
+/*N*/
+/*N*/ rStrm << (sal_Int8) ( nTabs + nCount );
+/*N*/ for ( short i = 0; i < nTabs; i++ )
+/*N*/ {
+/*N*/ const SvxTabStop& rTab = (*this)[ i ];
+/*N*/ rStrm << (long) rTab.GetTabPos()
+/*N*/ << (sal_Int8) rTab.GetAdjustment()
+/*N*/ << (unsigned char) rTab.GetDecimal()
+/*N*/ << (unsigned char) rTab.GetFill();
+/*N*/ }
+/*N*/
+/*N*/ if ( bStoreDefTabs )
+/*N*/ for( ; nCount; --nCount )
+/*N*/ {
+/*N*/ SvxTabStop aSwTabStop(nNew, SVX_TAB_ADJUST_DEFAULT);
+/*N*/ rStrm << (long) aSwTabStop.GetTabPos()
+/*N*/ << (sal_Int8) aSwTabStop.GetAdjustment()
+/*N*/ << (unsigned char) aSwTabStop.GetDecimal()
+/*N*/ << (unsigned char) aSwTabStop.GetFill();
+/*N*/ nNew += nDefDist;
+/*N*/ }
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ sal_Bool SvxTabStopItem::Insert( const SvxTabStop& rTab )
+/*N*/ {
+/*N*/ sal_uInt16 nTabPos = GetPos(rTab);
+/*N*/ if(SVX_TAB_NOTFOUND != nTabPos )
+/*?*/ Remove(nTabPos);
+/*N*/ return SvxTabStopArr::Insert( rTab );
+/*N*/ }
+// -----------------------------------------------------------------------
+
+
+
+// class SvxFmtSplitItem -------------------------------------------------
+/*N*/ SvxFmtSplitItem::~SvxFmtSplitItem()
+/*N*/ {
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ SfxPoolItem* SvxFmtSplitItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxFmtSplitItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFmtSplitItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Int8)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/
+/*N*/ SfxPoolItem* SvxFmtSplitItem::Create( SvStream& rStrm, sal_uInt16 ) const
+/*N*/ {
+/*N*/ sal_Int8 bIsSplit;
+/*N*/ rStrm >> bIsSplit;
+/*N*/ return new SvxFmtSplitItem( sal_Bool( bIsSplit != 0 ), Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// --------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SvxScriptSpaceItem::SvxScriptSpaceItem( sal_Bool bOn, const sal_uInt16 nId )
+/*N*/ : SfxBoolItem( nId, bOn )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxScriptSpaceItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxScriptSpaceItem( GetValue(), Which() );
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxScriptSpaceItem::Create(SvStream & rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_Bool bFlag;
+/*N*/ rStrm >> bFlag;
+/*N*/ return new SvxScriptSpaceItem( bFlag, Which() );
+/*N*/ }
+
+/*N*/ USHORT SvxScriptSpaceItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxTwoLinesItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+//------------------------------------------------------------------------
+
+/*N*/ SvxHangingPunctuationItem::SvxHangingPunctuationItem(
+/*N*/ sal_Bool bOn, const sal_uInt16 nId )
+/*N*/ : SfxBoolItem( nId, bOn )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxHangingPunctuationItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxHangingPunctuationItem( GetValue(), Which() );
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxHangingPunctuationItem::Create(SvStream & rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_Bool nValue;
+/*N*/ rStrm >> nValue;
+/*N*/ return new SvxHangingPunctuationItem( nValue, Which() );
+/*N*/ }
+
+/*N*/ USHORT SvxHangingPunctuationItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxHangingPunctuationItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/*N*/ SvxForbiddenRuleItem::SvxForbiddenRuleItem(
+/*N*/ sal_Bool bOn, const sal_uInt16 nId )
+/*N*/ : SfxBoolItem( nId, bOn )
+/*N*/ {
+/*N*/ }
+/* -----------------------------29.11.00 11:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SfxPoolItem* SvxForbiddenRuleItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxForbiddenRuleItem( GetValue(), Which() );
+/*N*/ }
+/* -----------------------------29.11.00 11:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ SfxPoolItem* SvxForbiddenRuleItem::Create(SvStream & rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_Bool nValue;
+/*N*/ rStrm >> nValue;
+/*N*/ return new SvxForbiddenRuleItem( nValue, Which() );
+/*N*/ }
+/* -----------------------------29.11.00 11:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ USHORT SvxForbiddenRuleItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxForbiddenRuleItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+/* -----------------------------29.11.00 11:23--------------------------------
+
+ ---------------------------------------------------------------------------*/
+
+/*************************************************************************
+|* class SvxParaVertAlignItem
+*************************************************************************/
+
+/*N*/ SvxParaVertAlignItem::SvxParaVertAlignItem( sal_uInt16 nValue,
+/*N*/ const sal_uInt16 nW )
+/*N*/ : SfxUInt16Item( nW, nValue )
+/*N*/ {
+/*N*/ }
+
+
+
+
+/*N*/ USHORT SvxParaVertAlignItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+
+
+
+
+/*N*/ SvxParaGridItem::SvxParaGridItem( sal_Bool bOn, const sal_uInt16 nId )
+/*N*/ : SfxBoolItem( nId, bOn )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxParaGridItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxParaGridItem::Create(SvStream & rStrm, USHORT) const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001
+/*N*/ }
+
+/*N*/ USHORT SvxParaGridItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxParaGridItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+/*N*/ SfxItemPresentation SvxParaGridItem::GetPresentation(
+/*N*/ SfxItemPresentation ePres,
+/*N*/ SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric,
+/*N*/ String &rText, const ::IntlWrapper* pIntl ) const
+/*N*/ {
+/*?*/ switch( ePres )
+/*?*/ {
+/*?*/ case SFX_ITEM_PRESENTATION_NONE:
+/*?*/ rText.Erase();
+/*?*/ break;
+/*?*/ case SFX_ITEM_PRESENTATION_NAMELESS:
+/*?*/ case SFX_ITEM_PRESENTATION_COMPLETE:
+/*?*/ {
+/*?*/ rText = GetValue() ?
+/*?*/ SVX_RESSTR( RID_SVXITEMS_PARASNAPTOGRID_ON ) :
+/*?*/ SVX_RESSTR( RID_SVXITEMS_PARASNAPTOGRID_OFF );
+/*?*/
+/*?*/ return ePres;
+/*?*/ }
+/*?*/ break;
+/*?*/ }
+/*?*/ return SFX_ITEM_PRESENTATION_NONE;
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_postattr.cxx b/binfilter/bf_svx/source/items/svx_postattr.cxx
new file mode 100644
index 000000000000..ea61ba54dbe5
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_postattr.cxx
@@ -0,0 +1,90 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define _SVX_POSTATTR_CXX
+#define ITEMID_AUTHOR 0
+#define ITEMID_DATE 0
+#define ITEMID_TEXT 0
+
+#include <bf_svtools/stritem.hxx>
+
+#include "postattr.hxx"
+namespace binfilter {
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPostItAuthorItem, SfxStringItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPostItDateItem, SfxStringItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPostItTextItem, SfxStringItem);
+
+// class SvxPostItAuthorItem ---------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// class SvxPostItDateItem -----------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// class SvxPostItTextItem -----------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_rotmodit.cxx b/binfilter/bf_svx/source/items/svx_rotmodit.cxx
new file mode 100644
index 000000000000..223044642da6
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_rotmodit.cxx
@@ -0,0 +1,132 @@
+/* -*- 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 <tools/stream.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include <com/sun/star/table/CellVertJustify.hpp>
+
+#include "rotmodit.hxx"
+namespace binfilter {
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+// STATIC DATA -----------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxRotateModeItem, SfxEnumItem);
+
+
+//-----------------------------------------------------------------------
+// SvxRotateModeItem - Ausrichtung bei gedrehtem Text
+//-----------------------------------------------------------------------
+
+/*N*/ SvxRotateModeItem::SvxRotateModeItem( SvxRotateMode eMode, USHORT nWhich )
+/*N*/ : SfxEnumItem( nWhich, eMode )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SvxRotateModeItem::SvxRotateModeItem( const SvxRotateModeItem& rItem )
+/*N*/ : SfxEnumItem( rItem )
+/*N*/ {
+/*N*/ }
+
+/*N*/ __EXPORT SvxRotateModeItem::~SvxRotateModeItem()
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* __EXPORT SvxRotateModeItem::Create( SvStream& rStream, USHORT ) const
+/*N*/ {
+/*N*/ USHORT nVal;
+/*N*/ rStream >> nVal;
+/*N*/ return new SvxRotateModeItem( (SvxRotateMode) nVal,Which() );
+/*N*/ }
+
+
+
+/*?*/ USHORT __EXPORT SvxRotateModeItem::GetValueCount() const
+/*?*/ {
+/*?*/ return 4; // STANDARD, TOP, CENTER, BOTTOM
+/*?*/ }
+
+/*N*/ SfxPoolItem* __EXPORT SvxRotateModeItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxRotateModeItem( *this );
+/*N*/ }
+
+/*N*/ USHORT __EXPORT SvxRotateModeItem::GetVersion( USHORT nFileVersion ) const
+/*N*/ {
+/*N*/ return 0;
+/*N*/ }
+
+// QueryValue/PutValue: Der ::com::sun::star::table::CellVertJustify enum wird mitbenutzt...
+
+/*N*/ bool SvxRotateModeItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ table::CellVertJustify eUno = table::CellVertJustify_STANDARD;
+/*N*/ switch ( (SvxRotateMode)GetValue() )
+/*N*/ {
+/*N*/ case SVX_ROTATE_MODE_STANDARD: eUno = table::CellVertJustify_STANDARD; break;
+/*N*/ case SVX_ROTATE_MODE_TOP: eUno = table::CellVertJustify_TOP; break;
+/*N*/ case SVX_ROTATE_MODE_CENTER: eUno = table::CellVertJustify_CENTER; break;
+/*N*/ case SVX_ROTATE_MODE_BOTTOM: eUno = table::CellVertJustify_BOTTOM; break;
+/*N*/ }
+/*N*/ rVal <<= eUno;
+/*N*/ return sal_True;
+/*N*/ }
+
+/*N*/ bool SvxRotateModeItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ table::CellVertJustify eUno;
+/*N*/ if(!(rVal >>= eUno))
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ eUno = (table::CellVertJustify)nValue;
+/*N*/ }
+/*N*/
+/*N*/ SvxRotateMode eSvx = SVX_ROTATE_MODE_STANDARD;
+/*N*/ switch (eUno)
+/*N*/ {
+/*N*/ case table::CellVertJustify_STANDARD: eSvx = SVX_ROTATE_MODE_STANDARD; break;
+/*?*/ case table::CellVertJustify_TOP: eSvx = SVX_ROTATE_MODE_TOP; break;
+/*?*/ case table::CellVertJustify_CENTER: eSvx = SVX_ROTATE_MODE_CENTER; break;
+/*N*/ case table::CellVertJustify_BOTTOM: eSvx = SVX_ROTATE_MODE_BOTTOM; break;
+/*N*/ }
+/*N*/ SetValue( eSvx );
+/*N*/ return sal_True;
+/*N*/ }
+
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_svxerr.cxx b/binfilter/bf_svx/source/items/svx_svxerr.cxx
new file mode 100644
index 000000000000..e8f745ef8ebb
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_svxerr.cxx
@@ -0,0 +1,52 @@
+/* -*- 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 ---------------------------------------------------------------
+
+#include <tools/shl.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include "svxerr.hxx"
+#include "dialmgr.hxx"
+
+#include "dialogs.hrc"
+namespace binfilter {
+
+/*N*/ SvxErrorHandler::SvxErrorHandler() :
+/*N*/
+/*N*/ SfxErrorHandler(
+/*N*/ RID_SVXERRCODE, ERRCODE_AREA_SVX, ERRCODE_AREA_SVX_END, &DIALOG_MGR() )
+/*N*/ {
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_svxerr.src b/binfilter/bf_svx/source/items/svx_svxerr.src
new file mode 100644
index 000000000000..f3ba72956426
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_svxerr.src
@@ -0,0 +1,246 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+#define NO_LOCALIZE_EXPORT
+ // include ---------------------------------------------------------------
+#define __RSC
+
+#ifndef _ERRCODE_HXX
+#include <tools/errcode.hxx>
+#endif
+
+#include "svxerr.hxx"
+#include "dialogs.hrc"
+ // pragma ----------------------------------------------------------------
+
+ // Error-Context ---------------------------------------------------------
+Resource RID_SVXERRCTX
+{
+};
+ // Error-Code ------------------------------------------------------------
+Resource RID_SVXERRCODE
+{
+ String ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT&ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Eine unverknüpfte Grafik konnte nicht geladen werden" ;
+ Text [ en-US ] = "An unlinked graphic could not be loaded";
+ Text[ pt ] = "Foi impossível carregar uma imagem não ligada.";
+ Text[ ru ] = "Ðевозможно загрузить неÑвÑзанные графичеÑкие объекты";
+ Text[ el ] = "Δεν ήταν δυνατόν να φοÏτωθεί κάποιο γÏαφικό χωÏίς σÏνδεση";
+ Text[ nl ] = "Niet-gekoppelde afbeelding kan niet worden geladen";
+ Text[ fr ] = "Une image (non liée) n'a pas pu être chargée.";
+ Text[ es ] = "No se pudo cargar una imagen no vinculada";
+ Text[ fi ] = "Linkittämätöntä kuvaa ei voitu ladata";
+ Text[ ca ] = "No s'ha pogut carregar la imatge no enllaçada";
+ Text[ it ] = "Non è stato possibile caricare un'immagine non collegata";
+ Text[ sk ] = "Nie je možné naÄítaÅ¥ nepripojený obrázok";
+ Text[ da ] = "Det var ikke muligt at indlæse en ikke-kædet grafik";
+ Text[ sv ] = "Ett grafikobjekt utan länk kunde inte laddas";
+ Text[ pl ] = "Nie można załadować niepołączonej grafiki";
+ Text[ pt-BR ] = "Não foi possível carregar uma figura não vinculada.";
+ Text[ th ] = "ไม่สามารถโหลดà¸à¸£à¸²à¸Ÿà¸´à¸„ที่ไม่เชื่อมโยงได้";
+ Text[ ja ] = "リンクã•ã‚Œã¦ã„ãªã„図ã¯èª­ã¿è¾¼ã¿ã§ãã¾ã›ã‚“";
+ Text[ ko ] = "ì—°ê²°ë˜ì§€ ì•Šì€ ê·¸ëž˜í”½ì€ ë¡œë“œí•˜ì§€ 못했습니다.";
+ Text[ zh-CN ] = "无法装入一个尚未链接的图形";
+ Text[ zh-TW ] = "無法載入一個尚未連çµçš„圖形";
+ Text[ tr ] = "Bağlantı oluşturulmamış bir grafik yüklenemedi";
+ Text[ hi-IN ] = "लिंक हटाया हà¥à¤† सà¥à¤šà¤¿à¤¤à¥à¤° को लोड नहीं कर सकते है";
+ Text[ ar ] = "تعذر تحميل إحدى الصور الغير مرتبطة";
+ Text[ he ] = "â€®×œ× × ×™×ª×Ÿ לטעון ×¢×¦× ×’×¨×¤×™ שקישורו נותק‬";
+ };
+ String (ERRCODE_SVX_FORMS_NOIOSERVICES | ERRCODE_CLASS_READ) & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Die Formular-Schicht wurden nicht geladen, da notwendige IO-Services (stardiv.uno.io.*) nicht instantiiert werden konnten";
+ Text [ en-US ] = "The form layer wasn't loaded as the required IO-services (stardiv.uno.io.*) could not be instantiated";
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Impossível carregar a camada do formulário: foi impossível instanciar os serviços IO (stardiv.uno.io.*) necessários";
+ Text[ ru ] = "Ðе загружен Ñлой формы, так как не удалоÑÑŒ Ñоздать ÑкземплÑÑ€ Ñлужбы IO (stardiv.uno.io.*).";
+ Text[ el ] = "Δεν φοÏτώθηκε η στÏώση της φόÏμας, επειδή δεν ήταν δυνατόν να γίνει ενημέÏωση κάποιων απαιτουμένων υπηÏεσιών εισόδου - εξόδου (stardiv.uno.io.*).";
+ Text[ nl ] = "Formulierniveau kan niet worden geladen omdat noodzakelijke io--services (stardiv.uno.io.*) niet kunnen worden geïnitieerd.";
+ Text[ fr ] = "La couche de formulaire n'a pas été chargée : impossible d'instancier les services IO (stardiv.uno.io.*) requis.";
+ Text[ es ] = "No se cargó la capa de formulario porque no se pudieron instanciar servicios IO necesarios (stardiv.uno.io.*)";
+ Text[ fi ] = "Lomakekerrosta ei ladattu, koska vaadittujen IO-palveluiden (stardiv.uno.io.*) käyttö ei onnistunut";
+ Text[ ca ] = "La capa del formulari no estava carregada quan no s'han pogut instanciar els serveis IO (stardiv.uno.io.*) necessaris";
+ Text[ it ] = "Lo strato del formulario non è stato caricato poichè stato possibile creare i servizi IO (strdiv.uno.io.*) necessari.";
+ Text[ sk ] = "Vrstva formulára nebola naÄítaná, pretože nie je možné vytvoriÅ¥ požadované IO služby (stardiv.uno.io.*).";
+ Text[ da ] = "Formularlaget blev ikke indlæst, fordi det ikke var muligt at instantiere den krævede IO-service (stardiv.uno.io.*).";
+ Text[ sv ] = "Formulärskiktet laddades inte eftersom nödvändig IO-service (stardiv.uno.io.*) inte kunde instantieras.";
+ Text[ pl ] = "Warstwa formularza nie została załadowana, ponieważ nie można utworzyć instancji wymaganych usług we-wy (stardiv.uno.io.*)";
+ Text[ pt-BR ] = "Não foi possível carregar a camada do formulário pois não foi possível instanciar os serviços IO (stardiv.uno.io.*) necessários.";
+ Text[ th ] = "ไม่ได้โหลดระดับของà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‡à¸™ IO-services (stardiv.uno.io.*) อย่างที่ต้องà¸à¸²à¸£à¹„ม่สามารถถูà¸à¹à¸ªà¸”งให้เห็นตัวอย่าง";
+ Text[ ja ] = "IOサービス(stardiv.uno.io.*)ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ããªã‹ã£ãŸãŸã‚ã€ãƒ•ã‚©ãƒ¼ãƒ å±¤ã¯èª­ã¿è¾¼ã¾ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚";
+ Text[ ko ] = "필요한 IO 서비스(stardiv.uno.io.*)ì˜ ì¸ìŠ¤í„´ìŠ¤ë¥¼ ìƒì„±í•˜ì§€ 못했으므로 ì–‘ì‹ ê³„ì¸µì´ ë¡œë“œë˜ì§€ 않았습니다.";
+ Text[ zh-CN ] = "因为无法安装需è¦çš„ IO æœåŠ¡(stardiv.uno.io.*),所以ä¸èƒ½è£…入表å•åˆ†å±‚ä¿¡æ¯";
+ Text[ zh-TW ] = "因為沒有安è£å¿…è¦çš„ IO æœå‹™(stardiv.uno.io.*)而無法載入表單層次。";
+ Text[ tr ] = "Gerekli IO hizmetleri (stardiv.uno.io.*) başlatılamadığı için, form düzeyi yüklenemedi.";
+ Text[ hi-IN ] = "आवशà¥à¤¯à¤• IO-सेवों (stardiv.uno.io.*) को पà¥à¤°à¤¾à¤°à¤‚भ नहीं करने के कारण फ़ॉरà¥à¤® का परत को लोड नहीं कर सकते है ";
+ Text[ ar ] = "لم يتم تحميل طبقة الاستمارة، إذ تعذر إنشاء خدمات IO اللازمة (stardiv.uno.io.*)";
+ Text[ he ] = "â€®×œ× × ×™×ª×Ÿ להפעיל ×ת שירתי הקלט\\פלט ×”× ×“×¨×©×™× (stardiv.uno.io.*) ולכן רובד ×”×˜×¤×¡×™× ×œ× × ×˜×¢×Ÿ.‬";
+ };
+ String (ERRCODE_SVX_FORMS_NOIOSERVICES | ERRCODE_CLASS_WRITE) & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Die Formular-Schicht wurden nicht geschrieben, da notwendige IO-Services (stardiv.uno.io.*) nicht instantiiert werden konnten";
+ Text [ en-US ] = "The form layer wasn't written as the required IO services (stardiv.uno.io.*) could not be instantiated";
+ Text[ pt ] = "Impossível escrever a camada do formulário: foi impossível instanciar os serviços IO (stardiv.uno.io.*) necessários.";
+ Text[ ru ] = "Ðе запиÑан Ñлой формы, так как не удалоÑÑŒ Ñоздать ÑкземплÑÑ€ Ñлужбы IO (stardiv.uno.io.*).";
+ Text[ el ] = "Δεν φοÏτώθηκε η στÏώση της φόÏμας, επειδή δεν ήταν δυνατόν να γίνει ενημέÏωση κάποιων απαιτουμένων υπηÏεσιών εισόδου - εξόδου (stardiv.uno.io.*).";
+ Text[ nl ] = "Formulierniveau is niet geschreven omdat noodzakelijke io-services (stardiv.uno.io.*) niet kunnen worden geïnitieerd.";
+ Text[ fr ] = "La couche de formulaire n'a pas été écrite : impossible d'instancier les services IO (stardiv.uno.io.*) requis.";
+ Text[ es ] = "No se pudo escribir la capa de formulario porque no se pudieron instanciar servicios IO necesarios (stardiv.uno.io.*)";
+ Text[ fi ] = "Lomakekerrosta ei kirjoitettu, koska vaadittujen IO-palveluiden (stardiv.uno.io.*) käyttö ei onnistunut";
+ Text[ ca ] = "La capa del formulari no estava escrita quan no s'han pogut instanciar els serveis IO (stardiv.uno.io.*) necessaris";
+ Text[ it ] = "Lo strato del formulario non è stato scritto perché non non è stato possibile creare i servizi IO (stardiv.uno.io.*) necessari.";
+ Text[ sk ] = "Vrstva formulára nebola zapísaná, pretože nie je možné vytvoriť požadované IO služby (stardiv.uno.io.*).";
+ Text[ da ] = "Formularlaget blev ikke skrevet, fordi det ikke var muligt at instantiere den krævede IO-service (stardiv.uno.io.*).";
+ Text[ sv ] = "Formulärskiktet skrevs inte eftersom nödvändig IO-service (stardiv.uno.io.*) inte kunde instantieras";
+ Text[ pl ] = "Warstwa formularza nie została zapisana, ponieważ nie można utworzyć instancji wymaganych usług we-wy (stardiv.uno.io.*)";
+ Text[ pt-BR ] = "Não foi possível gravar a camada do formulário pois não foi possível instanciar os serviços IO (stardiv.uno.io.*) necessários.";
+ Text[ th ] = "ไม่สามารถเขียนระดับของà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¹€à¸›à¹‡à¸™ IO services (stardiv.uno.io.*) อย่างที่ต้องà¸à¸²à¸£à¹„ม่สามารถถูà¸à¹à¸ªà¸”งให้เห็นตัวอย่าง";
+ Text[ ja ] = "IOサービス(stardiv.uno.io.*)ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ããªã‹ã£ãŸãŸã‚ã€ãƒ•ã‚©ãƒ¼ãƒ å±¤ã¯æ›¸ãã“ã‚ã¾ã›ã‚“ã§ã—ãŸã€‚";
+ Text[ ko ] = "필요한 IO 서비스(stardiv.uno.io.*)ì˜ ì¸ìŠ¤í„´ìŠ¤ë¥¼ ìƒì„±í•˜ì§€ 못했으므로 ì–‘ì‹ ê³„ì¸µì´ ìž‘ì„±ë˜ì§€ 않았습니다.";
+ Text[ zh-CN ] = "因为无法安装需è¦çš„ IO æœåŠ¡(stardiv.uno.io.*),所以ä¸èƒ½å†™å…¥è¡¨å•åˆ†å±‚ä¿¡æ¯";
+ Text[ zh-TW ] = "因為沒有安è£å¿…è¦çš„ IO æœå‹™(stardiv.uno.io.*)而無法寫入表單層次。";
+ Text[ tr ] = "Gerekli IO hizmetleri (stardiv.uno.io.*) başlatılamadığı için, form düzeyi yazılamadı.";
+ Text[ hi-IN ] = "आवशà¥à¤¯à¤• IO-सवों (stardiv.uno.io.*) को पà¥à¤°à¤¾à¤°à¤‚भ नहीं करने के कारण फ़ॉरà¥à¤® का परत को लिख नहीं सकते है";
+ Text[ ar ] = "لم يتم كتابة طبقة الاستمارة، إذ تعذر إنشاء خدمات IO اللازمة (stardiv.uno.io.*)";
+ Text[ he ] = "â€®×œ× × ×™×ª×Ÿ להפעיל ×ת שירתי הקלט\\פלט ×”× ×“×¨×©×™× (stardiv.uno.io.*) ולכן רובד ×”×˜×¤×¡×™× ×œ× × ×›×ª×‘.‬";
+ };
+ String (ERRCODE_SVX_FORMS_READWRITEFAILED | ERRCODE_CLASS_READ) & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Beim Lesen der Formular-Controls trat ein Fehler auf. Die Formular-Schicht wurde nicht geladen";
+ Text [ en-US ] = "An error occurred while reading the form controls. The form layer has not been loaded";
+ Text[ pt ] = "Ocorreu um erro na leitura dos controlos do formulário. Foi impossível carregar a camada do formulário.";
+ Text[ ru ] = "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñлементов ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹. Ðе загружен Ñлой формы";
+ Text[ el ] = "Κατά την ανάγνωση των στοιχείων ελέγχου της φόÏμας παÏουσιάστηκε ένα σφάλμα. Η στÏώση της φόÏμας δεν φοÏτώθηκε.";
+ Text[ nl ] = "Fout bij lezen van formulier-controls. Formulierniveau is niet geladen.";
+ Text[ fr ] = "Une erreur est survenue lors de la lecture des contrôles de formulaire. La couche de formulaire n'a pas été chargée.";
+ Text[ es ] = "Ha ocurrido un error al leer los controles de formulario. No se cargó la capa de formulario.";
+ Text[ fi ] = "Lomakkeen ohjausobjekteja luettaessa ilmeni virhe. Lomakekerrosta ei ole ladattu";
+ Text[ ca ] = "Hi ha hagut un error en llegir els controls del formulari. No s'ha pogut carregar la capa del formulari";
+ Text[ it ] = "Si è verificato un errore nella lettura del formulario Controls. Lo strato del formulario non è stato caricato";
+ Text[ sk ] = "Nastala chyba pri naÄítavaní formulárových prvkov. Vrstva formulára nebola naÄítaná.";
+ Text[ da ] = "Der opstod en fejl under læsning af formular-kontrolelementerne. Formularlaget blev ikke indlæst.";
+ Text[ sv ] = "Det uppstod ett fel vid läsning av formulär-controls. Formulärskiktet laddades inte";
+ Text[ pl ] = "Wystąpił błąd podczas odczytu formantów formularza. Warstwa formularza nie została załadowana";
+ Text[ pt-BR ] = "Ocorreu um erro na leitura dos controles do formulário. Não foi possível carregar a camada do formulário.";
+ Text[ th ] = "เà¸à¸´à¸”ความผิดพลาดขณะอ่านตัวควบคุมà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡ ระดับของà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¸¢à¸±à¸‡à¹„ม่ได้ถูà¸à¹‚หลด";
+ Text[ ja ] = "フォーム層ã®èª­ã¿å–り中ã«ã‚¨ãƒ©ãƒ¼ç™ºç”Ÿã€‚ã“ã®ãƒ•ã‚©ãƒ¼ãƒ å±¤ã¯èª­ã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã›ã‚“。";
+ Text[ ko ] = "ì–‘ì‹ ì»¨íŠ¸ë¡¤ì„ ì½ì„ ë•Œ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì–‘ì‹ ê³„ì¸µì´ ë¡œë“œë˜ì§€ 않았습니다.";
+ Text[ zh-CN ] = "在读å–表å•æŽ§åˆ¶åŒºæ—¶å‘生一个错误。无法装入表å•åˆ†å±‚ä¿¡æ¯ã€‚";
+ Text[ zh-TW ] = "在讀å–表單控制項時發生錯誤。無法載入表單層次。";
+ Text[ tr ] = "Form komut öğeleri okunurken bir hata oluştu. Form düzeyi yüklenemedi.";
+ Text[ hi-IN ] = "फ़ॉरà¥à¤® नियंतà¥à¤°à¤£à¥‹à¤‚ को पढ़ने के समय गलती घटित हà¥à¤† । फ़ॉरà¥à¤® का परत को लोड़ नहीं कर सकते है";
+ Text[ ar ] = "حدث خطأ أثناء قراءة عناصر تحكم الاستمارة. لم يتم تحميل طبقة الاستمارة";
+ Text[ he ] = "‮×רעה שגי××” בעת קרי×ת פקדי ×”×˜×¤×¡×™× ×•×œ×›×Ÿ רובד ×”×˜×¤×¡×™× ×œ× × ×˜×¢×Ÿ.‬";
+ };
+ String (ERRCODE_SVX_FORMS_READWRITEFAILED | ERRCODE_CLASS_WRITE) & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Beim Schreiben der Formular-Controls trat ein Fehler auf. Die Formular-Schicht wurde nicht gespeichert";
+ Text [ en-US ] = "An error occurred while writing the form controls. The form layer has not been saved";
+ Text[ pt ] = "Ocorreu um erro ao escrever os controlos do formulário. Foi impossível guardar a camada do formulário.";
+ Text[ ru ] = "Ошибка запиÑи Ñлементов ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹. Ðе Ñохранен Ñлой формы";
+ Text[ el ] = "Κατά την εγγÏαφή των στοιχείων ελέγχου της φόÏμας παÏουσιάστηκε ένα σφάλμα. Η στÏώση της φόÏμας δεν φοÏτώθηκε.";
+ Text[ nl ] = "Fout bij schrijven van formulier-controls. Formulierniveau is niet opgeslagen.";
+ Text[ fr ] = "Une erreur est survenue lors de l'écriture des contrôles de formulaire. La couche de formulaire n'a pas été enregistrée.";
+ Text[ es ] = "Ha ocurrido un error al escribir los controles de formulario. No se guardó la capa de formulario.";
+ Text[ fi ] = "Lomakkeen ohjausobjekteja kirjoitettaessa ilmeni virhe. Lomakekerrosta ei ole tallennettu";
+ Text[ ca ] = "Hi ha hagut un error en llegir els controls del formulari. No s'ha pogut desar la capa del formulari";
+ Text[ it ] = "Si è verificato un errore durante la compilazione del formulario controls. Lo strato del formulario non è stato salvato.";
+ Text[ sk ] = "Nastala chyba pri zapisovaní formulárových prvkov. Vrstva formulára nebola uložená.";
+ Text[ da ] = "Der opstod en fejl under skrivning af formular-kontrolelementerne. Formularlaget blev ikke gemt.";
+ Text[ sv ] = "Det uppstod ett fel vid skrivning av formulär-controls. Formulärskiktet sparades inte";
+ Text[ pl ] = "Wystąpił błąd podczas zapisu formantów formularza. Warstwa formularza nie została zapisana";
+ Text[ pt-BR ] = "Ocorreu um erro ao gravar os controles do formulário. Não foi possível salvar a camada do formulário.";
+ Text[ th ] = "เà¸à¸´à¸”ความผิดพลาดขณะเขียนตัวควบคุมà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡ ระดับของà¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¸¢à¸±à¸‡à¹„ม่ได้ถูà¸à¸šà¸±à¸™à¸—ึà¸";
+ Text[ ja ] = "フォーム層ã®æ›¸ãè¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ç™ºç”Ÿã€‚フォーム層ã¯ä¿å­˜ã•ã‚Œã¦ã„ã¾ã›ã‚“。";
+ Text[ ko ] = "ì–‘ì‹ ì»¨íŠ¸ë¡¤ì„ ê¸°ë¡í•  ë•Œ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì–‘ì‹ ê³„ì¸µì´ ì €ìž¥ë˜ì§€ 않았습니다.";
+ Text[ zh-CN ] = "在写入表å•æŽ§åˆ¶åŒºæ—¶å‘生一个错误。无法存盘表å•åˆ†å±‚ä¿¡æ¯ã€‚";
+ Text[ zh-TW ] = "在寫入表單控制項時發生一個錯誤。沒有儲存表單層次。";
+ Text[ tr ] = "Form komut öğeleri yazılırken bir hata oluştu. Form düzeyi kaydedilemedi.";
+ Text[ hi-IN ] = "फ़ॉरà¥à¤® नियंतà¥à¤°à¤£à¥‹à¤‚ को लिखने के समय गलती घटित हà¥à¤† । फ़ॉरà¥à¤® का परत को संचित नहीं कर सकते है";
+ Text[ ar ] = "حدث خطأ أثناء كتابة عناصر تحكم الاستمارة. لم يتم Ø­Ùظ طبقة الاستمارة";
+ Text[ he ] = "‮×רעה שגי××” בעת כתיבת פקדי ×”×˜×¤×¡×™× ×•×œ×›×Ÿ רובד ×”×˜×¤×¡×™× ×œ× × ×©×ž×¨.‬";
+ };
+ String (ERRCODE_SVX_BULLETITEM_NOBULLET | ERRCODE_CLASS_READ) & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Beim Lesen eines Bullets trat ein Fehler auf. Es konnten nicht alle Bullets geladen werden";
+ Text [ en-US ] = "An error occurred while reading one of the bullets. Not all of the bullets were loaded.";
+ Text[ pt ] = "Surgiu um erro durante a leitura de uma marca. Foi impossível carregá-las todas.";
+ Text[ ru ] = "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ€ÐºÐµÑ€Ð°. Ðе удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ вÑе маркеры.";
+ Text[ el ] = "ΠαÏουσιάστηκε σφάλμα κατά την ανάγνωση μιας από τις κουκίδες. Δεν φοÏτώθηκαν όλες οι κουκίδες.";
+ Text[ nl ] = "Fout bij laden van opsommingsteken. Niet alle tekens kunnen worden geladen.";
+ Text[ fr ] = "Une erreur s'est produite pendant la lecture d'une puce. Certaines puces n'ont pas pu être chargées.";
+ Text[ es ] = "Ha ocurrido un error al leer una viñeta. No se pudieron cargar todas las viñetas.";
+ Text[ fi ] = "Luettelomerkkiä luettaessa on ilmennyt virhe. Kaikkia luettelomerkkejä ei ladattu.";
+ Text[ ca ] = "Hi ha hagut un error en llegir un pic. No s'han pogut carregar tots el pics.";
+ Text[ it ] = "Durante la lettura di un bullet si è verificato un errore. Non è stato possibile caricare tutti i bullet.";
+ Text[ sk ] = "Nastala chyba pri naÄítavaní jednej z odrážok. Nie vÅ¡etky odrážky boli naÄítané.";
+ Text[ da ] = "Der opstod en fejl ved læsning af et punkttegn. Det var ikke muligt at indlæse alle punkttegn.";
+ Text[ sv ] = "Det uppstod ett fel vid läsning av en punkt. Det gick inte att ladda alla punkter";
+ Text[ pl ] = "Wystąpił błąd podczas odczytu wypunktowania. Nie można załadować wszystkich wypunktowań.";
+ Text[ pt-BR ] = "Ocorreu um erro durante a leitura de uma das marcas. Não foi possível carregar todas elas.";
+ Text[ th ] = "เà¸à¸´à¸”ความผิดพลาดขณะอ่านหนึ่งในสัà¸à¸¥à¸±à¸à¸©à¸“์à¹à¸ªà¸”งหัวข้อย่อย ไม่ทั้งหมดของสัà¸à¸¥à¸±à¸à¸©à¸“์à¹à¸ªà¸”งหัวข้อย่อยถูà¸à¹‚หลด";
+ Text[ ja ] = "箇æ¡æ›¸ãを読ã¿è¾¼ã‚€ã¨ãã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã™ã¹ã¦ã®ç®‡æ¡æ›¸ãã¯èª­ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸã€‚";
+ Text[ ko ] = "글머리 기호를 ì½ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 글머리 기호를 ëª¨ë‘ ë¡œë“œí•˜ì§€ 못했습니다.";
+ Text[ zh-CN ] = "在读å–一个项目符å·æ—¶å‘生错误。无法装入全部的项目符å·ã€‚";
+ Text[ zh-TW ] = "在讀å–一個項目符號時發生錯誤。無法載入所有的項目符號。";
+ Text[ tr ] = "Madde işaretleri okunurken hata oluştu. Bu nedenle tüm madde işaretleri yüklenemedi.";
+ Text[ hi-IN ] = "किसी à¤à¤• बà¥à¤²à¥à¤²à¥‡à¤Ÿà¥à¤¸ को पढ़ने के समय गलती घटित हà¥à¤† । सब बà¥à¤²à¥à¤²à¥‡à¤Ÿà¥‹à¤‚ को लोड़ नहीं कर सकते है ।";
+ Text[ ar ] = "حدث خطأ أثناء قراءة إحدى علامات التعداد. تعذر تحميل كل علامات التعداد.";
+ Text[ he ] = "‮×רעה שגי××” בעת קרי×ת ×חד מנקודות הכותרה (bullets). ×œ× ×›×œ הנקודות נטענו.‬";
+ };
+
+
+ String ERRCODE_SVX_VBASIC_STORAGE_EXIST & ERRCODE_RES_MASK
+ {
+ Text [ de ] = "Der im Dokument enthaltene originale VBA Basic Code wird nicht gespeichert." ;
+ Text [ en-US ] = "The original VBA Basic Code contained in the document will not be saved.";
+ Text[ pt ] = "O código VBA original contido no documento não será guardado.";
+ Text[ ru ] = "СодержащийÑÑ Ð² документе иÑходный код VBA Basic Ñохранен не будет.";
+ Text[ el ] = "Δεν θα γίνει αποθήκευση του Î±Ï…Î¸ÎµÎ½Ï„Î¹ÎºÎ¿Ï VBA basic code που πεÏιέχεται στο έγγÏαφο.";
+ Text[ nl ] = "De originele VBA Basic-code in dit document wordt niet opgeslagen.";
+ Text[ fr ] = "Le code VBA basic d'origine contenu dans le document ne sera pas enregistré.";
+ Text[ es ] = "No se guardará el Basic Code VBA incluido en el documento.";
+ Text[ fi ] = "Asiakirjan alkuperäistä VBA-peruskoodia ei tallenneta.";
+ Text[ ca ] = "No es desarà el Basic Code VBA inclós en el document.";
+ Text[ it ] = "Non è possibile salvare il codice VBA Basic contenuto nel documeto.";
+ Text[ sk ] = "Kód VBA Basic pôvodne obsiahnutý v dokumente nebude uložený.";
+ Text[ da ] = "Den originale VBA Basic Code, som er indeholdt i dokumentet, gemmes ikke.";
+ Text[ sv ] = "Original-VBA-Basic-koden som finns i dokumentet sparas inte.";
+ Text[ pl ] = "Zawarty w dokumencie oryginalny kod VBA nie zostanie zapisany.";
+ Text[ pt-BR ] = "O código BASIC VBA original contido no documento não será salvo.";
+ Text[ th ] = "มีต้นฉบับ VBA Basic Code ในเอà¸à¸ªà¸²à¸£à¸—ี่จะไม่ถูà¸à¸šà¸±à¸™à¸—ึà¸";
+ Text[ ja ] = "ドキュメントã«å«ã¾ã‚Œã¦ã„るオリジナル㮠VBA Basic Code ã¯ä¿å­˜ã•ã‚Œã¾ã›ã‚“。";
+ Text[ ko ] = "ë¬¸ì„œì— í¬í•¨ë˜ì–´ 있는 ì›ëž˜ VBA Basic Code는 저장ë˜ì§€ 않습니다.";
+ Text[ zh-CN ] = "ä¸ä¼šå­˜ç›˜æ–‡æ¡£ä¸­å«æœ‰çš„æºVBA Basic Code。";
+ Text[ zh-TW ] = "文件å«æœ‰çš„æº VBA basic 碼ä¸æœƒè¢«å„²å­˜ã€‚";
+ Text[ tr ] = "Belgede bulunan ilk VBA basic kodu kaydedilmeyecek.";
+ Text[ hi-IN ] = "लेखपतà¥à¤° का यथारà¥à¤¥ VBA Basic Code को संचित नहीं कर सकते है ।";
+ Text[ ar ] = "لن يتم Ø­Ùظ الـ VBA Basic Codeالأصلي الموجود ÙÙŠ المستند.";
+ Text[ he ] = "‮קוד הבייסיק ×” VBA המקורי שבמסמך ×œ× ×™×©×ž×¨.‬";
+ };
+};
+ // ********************************************************************** EOF
diff --git a/binfilter/bf_svx/source/items/svx_svxfont.cxx b/binfilter/bf_svx/source/items/svx_svxfont.cxx
new file mode 100644
index 000000000000..dd9e4796edea
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_svxfont.cxx
@@ -0,0 +1,429 @@
+/* -*- 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 ----------------------------------------------------------------
+
+#include <vcl/print.hxx>
+#include <unotools/charclass.hxx>
+#include <unolingu.hxx>
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define ITEMID_ESCAPEMENT 0
+
+#define _SVX_SVXFONT_CXX
+
+#include "svxfont.hxx"
+namespace binfilter {
+
+// Minimum: Prozentwert fuers kernen
+#define MINKERNPERCENT 5
+
+// prop. Groesse der Kleinbuchstaben bei Kapitaelchen
+#define KAPITAELCHENPROP 80
+
+#ifndef REDUCEDSVXFONT
+ const sal_Unicode CH_BLANK = sal_Unicode(' '); // ' ' Leerzeichen
+ static sal_Char __READONLY_DATA sDoubleSpace[] = " ";
+#endif
+
+/*************************************************************************
+ * class SvxFont
+ *************************************************************************/
+
+/*N*/ SvxFont::SvxFont()
+/*N*/ {
+/*N*/ nKern = nEsc = 0;
+/*N*/ nPropr = 100;
+/*N*/ eCaseMap = SVX_CASEMAP_NOT_MAPPED;
+/*N*/ eLang = LANGUAGE_SYSTEM;
+/*N*/ }
+
+/*N*/ SvxFont::SvxFont( const Font &rFont )
+/*N*/ : Font( rFont )
+/*N*/ {
+/*N*/ nKern = nEsc = 0;
+/*N*/ nPropr = 100;
+/*N*/ eCaseMap = SVX_CASEMAP_NOT_MAPPED;
+/*N*/ eLang = LANGUAGE_SYSTEM;
+/*N*/ }
+
+/*************************************************************************
+ * class SvxFont: Copy-Ctor
+ *************************************************************************/
+
+/*N*/ SvxFont::SvxFont( const SvxFont &rFont )
+/*N*/ : Font( rFont )
+/*N*/ {
+/*N*/ nKern = rFont.GetFixKerning();
+/*N*/ nEsc = rFont.GetEscapement();
+/*N*/ nPropr = rFont.GetPropr();
+/*N*/ eCaseMap = rFont.GetCaseMap();
+/*N*/ eLang = rFont.GetLanguage();
+/*N*/ }
+
+/*************************************************************************
+ * static SvxFont::DrawArrow
+ *************************************************************************/
+
+
+/*************************************************************************
+ * SvxFont::CalcCaseMap
+ *************************************************************************/
+
+/*N*/ XubString SvxFont::CalcCaseMap( const XubString &rTxt ) const
+/*N*/ {
+/*N*/ if( !IsCaseMap() || !rTxt.Len() ) return rTxt;
+/*N*/ XubString aTxt( rTxt );
+/*N*/ // Ich muss mir noch die Sprache besorgen
+/*N*/ const LanguageType eLng = LANGUAGE_DONTKNOW == eLang
+/*N*/ ? LANGUAGE_SYSTEM : eLang;
+/*N*/
+/*N*/ CharClass aCharClass( SvxCreateLocale( eLng ) );
+/*N*/
+/*N*/ switch( eCaseMap )
+/*N*/ {
+/*N*/ case SVX_CASEMAP_KAPITAELCHEN:
+/*N*/ case SVX_CASEMAP_VERSALIEN:
+/*N*/ {
+/*N*/ aCharClass.toUpper( aTxt );
+/*N*/ break;
+/*N*/ }
+/*N*/
+/*N*/ case SVX_CASEMAP_GEMEINE:
+/*N*/ {
+/*?*/ aCharClass.toLower( aTxt );
+/*?*/ break;
+/*?*/ }
+/*?*/ case SVX_CASEMAP_TITEL:
+/*?*/ {
+/*?*/ // Jeder Wortbeginn wird gross geschrieben,
+/*?*/ // der Rest des Wortes wird unbesehen uebernommen.
+/*?*/ // Bug: wenn das Attribut mitten im Wort beginnt.
+/*?*/ BOOL bBlank = TRUE;
+/*?*/
+/*?*/ for( UINT32 i = 0; i < aTxt.Len(); ++i )
+/*?*/ {
+/*?*/ if( sal_Unicode(' ') == aTxt.GetChar(i) || sal_Unicode('\t') == aTxt.GetChar(i) )
+/*?*/ bBlank = TRUE;
+/*?*/ else
+/*?*/ {
+/*?*/ if( bBlank )
+/*?*/ {
+/*?*/ String aTemp( aTxt.GetChar( i ) );
+/*?*/ aCharClass.toUpper( aTemp );
+/*?*/ aTxt.Replace( i, 1, aTemp );
+/*?*/ }
+/*?*/ bBlank = FALSE;
+/*?*/ }
+/*?*/ }
+/*?*/ break;
+/*?*/ }
+/*?*/ default:
+/*?*/ {
+/*?*/ DBG_ASSERT(!this, "SvxFont::CaseMapTxt: unknown casemap");
+/*N*/ break;
+/*N*/ }
+/*N*/ }
+/*N*/ return aTxt;
+/*N*/ }
+
+/*************************************************************************
+ * Hier beginnen die Methoden, die im Writer nicht benutzt werden koennen,
+ * deshalb kann man diesen Bereich durch setzen von REDUCEDSVXFONT ausklammern.
+ *************************************************************************/
+#ifndef REDUCEDSVXFONT
+
+/*************************************************************************
+ * class SvxDoCapitals
+ * die virtuelle Methode Do wird von SvxFont::DoOnCapitals abwechselnd mit
+ * den "Gross-" und "Kleinbuchstaben"-Teilen aufgerufen.
+ * Die Ableitungen von SvxDoCapitals erfuellen diese Methode mit Leben.
+ *************************************************************************/
+
+class SvxDoCapitals
+{
+protected:
+ OutputDevice *pOut;
+ const XubString &rTxt;
+ const xub_StrLen nIdx;
+ const xub_StrLen nLen;
+
+public:
+ SvxDoCapitals( OutputDevice *pOut, const XubString &rTxt,
+ const xub_StrLen nIdx, const xub_StrLen nLen )
+ : pOut(pOut), rTxt(rTxt), nIdx(nIdx), nLen(nLen)
+ { }
+
+
+ inline OutputDevice *GetOut() { return pOut; }
+ inline const XubString &GetTxt() const { return rTxt; }
+ xub_StrLen GetIdx() const { return nIdx; }
+ xub_StrLen GetLen() const { return nLen; }
+};
+
+
+
+
+/*************************************************************************
+ * SvxFont::DoOnCapitals() const
+ * zerlegt den String in Gross- und Kleinbuchstaben und ruft jeweils die
+ * Methode SvxDoCapitals::Do( ) auf.
+ *************************************************************************/
+
+
+/**************************************************************************
+ * SvxFont::SetPhysFont()
+ *************************************************************************/
+
+/*N*/ void SvxFont::SetPhysFont( OutputDevice *pOut ) const
+/*N*/ {
+/*N*/ const Font& rCurrentFont = pOut->GetFont();
+/*N*/ if ( nPropr == 100 )
+/*N*/ {
+/*N*/ if ( !rCurrentFont.IsSameInstance( *this ) )
+/*N*/ pOut->SetFont( *this );
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ Font aNewFont( *this );
+/*N*/ Size aSize( aNewFont.GetSize() );
+/*N*/ aNewFont.SetSize( Size( aSize.Width() * nPropr / 100L,
+/*N*/ aSize.Height() * nPropr / 100L ) );
+/*N*/ if ( !rCurrentFont.IsSameInstance( aNewFont ) )
+/*N*/ pOut->SetFont( aNewFont );
+/*N*/ }
+/*N*/ }
+
+/*************************************************************************
+ * SvxFont::ChgPhysFont()
+ *************************************************************************/
+
+
+/*************************************************************************
+ * SvxFont::GetPhysTxtSize()
+ *************************************************************************/
+
+
+/*N*/ Size SvxFont::GetPhysTxtSize( const OutputDevice *pOut, const XubString &rTxt )
+/*N*/ {
+/*N*/ if ( !IsCaseMap() && !IsKern() )
+/*N*/ return Size( pOut->GetTextWidth( rTxt ), pOut->GetTextHeight() );
+/*N*/
+/*?*/ Size aTxtSize;
+/*?*/ aTxtSize.setHeight( pOut->GetTextHeight() );
+/*?*/ if ( !IsCaseMap() )
+/*?*/ aTxtSize.setWidth( pOut->GetTextWidth( rTxt ) );
+/*?*/ else
+/*?*/ aTxtSize.setWidth( pOut->GetTextWidth( CalcCaseMap( rTxt ) ) );
+/*?*/
+/*?*/ if( IsKern() && ( rTxt.Len() > 1 ) )
+/*?*/ aTxtSize.Width() += ( ( rTxt.Len()-1 ) * long( nKern ) );
+/*?*/
+/*?*/ return aTxtSize;
+/*N*/ }
+
+/*N*/ Size SvxFont::QuickGetTextSize( const OutputDevice *pOut, const XubString &rTxt,
+/*N*/ const USHORT nIdx, const USHORT nLen, sal_Int32* pDXArray ) const
+/*N*/ {
+/*N*/ if ( !IsCaseMap() && !IsKern() )
+/*N*/ return Size( pOut->GetTextArray( rTxt, pDXArray, nIdx, nLen ),
+/*N*/ pOut->GetTextHeight() );
+/*N*/
+/*N*/ Size aTxtSize;
+/*N*/ aTxtSize.setHeight( pOut->GetTextHeight() );
+/*N*/ if ( !IsCaseMap() )
+/*N*/ aTxtSize.setWidth( pOut->GetTextArray( rTxt, pDXArray, nIdx, nLen ) );
+/*N*/ else
+/*?*/ aTxtSize.setWidth( pOut->GetTextArray( CalcCaseMap( rTxt ),
+/*?*/ pDXArray, nIdx, nLen ) );
+/*N*/
+/*N*/ if( IsKern() && ( nLen > 1 ) )
+/*N*/ {
+/*N*/ aTxtSize.Width() += ( ( nLen-1 ) * long( nKern ) );
+/*N*/
+/*N*/ if ( pDXArray )
+/*N*/ {
+/*N*/ for ( xub_StrLen i = 0; i < nLen; i++ )
+/*N*/ pDXArray[i] += ( (i+1) * long( nKern ) );
+/*N*/ // Der letzte ist um ein nKern zu gross:
+/*N*/ pDXArray[nLen-1] -= nKern;
+/*N*/ }
+/*N*/ }
+/*N*/ return aTxtSize;
+/*N*/ }
+
+/*************************************************************************
+ * SvxFont::GetTxtSize()
+ *************************************************************************/
+
+
+/*************************************************************************
+ * SvxFont::DrawText()
+ *************************************************************************/
+
+
+/*N*/ void SvxFont::QuickDrawText( OutputDevice *pOut,
+/*N*/ const Point &rPos, const XubString &rTxt,
+/*N*/ const xub_StrLen nIdx, const xub_StrLen nLen, const sal_Int32* pDXArray ) const
+/*N*/ {
+/*N*/ // Font muss ins OutputDevice selektiert sein...
+/*N*/ if ( !IsCaseMap() && !IsCapital() && !IsKern() && !IsEsc() )
+/*N*/ {
+/*N*/ pOut->DrawTextArray( rPos, rTxt, pDXArray, nIdx, nLen );
+/*N*/ return;
+/*N*/ }
+/*N*/
+/*?*/ Point aPos( rPos );
+/*?*/
+/*?*/ if ( nEsc )
+/*?*/ {
+/*?*/ long nDiff = GetSize().Height();
+/*?*/ nDiff *= nEsc;
+/*?*/ nDiff /= 100;
+/*?*/
+/*?*/ if ( !IsVertical() )
+/*?*/ aPos.Y() -= nDiff;
+/*?*/ else
+/*?*/ aPos.X() += nDiff;
+/*?*/ }
+/*?*/
+/*?*/ if( IsCapital() )
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ DBG_ASSERT( !pDXArray, "DrawCapital nicht fuer TextArray!" );
+/*?*/ }
+/*?*/ else
+/*?*/ {
+/*?*/ if ( IsKern() && !pDXArray )
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ Size aSize = GetPhysTxtSize( pOut, rTxt, nIdx, nLen );
+/*?*/ }
+/*?*/ else
+/*?*/ {
+/*?*/ if ( !IsCaseMap() )
+/*?*/ pOut->DrawTextArray( aPos, rTxt, pDXArray, nIdx, nLen );
+/*?*/ else
+/*?*/ pOut->DrawTextArray( aPos, CalcCaseMap( rTxt ), pDXArray, nIdx, nLen );
+/*?*/ }
+/*?*/ }
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFont& SvxFont::operator=( const Font& rFont )
+/*N*/ {
+/*N*/ Font::operator=( rFont );
+/*N*/ return *this;
+/*N*/ }
+
+/*N*/ SvxFont& SvxFont::operator=( const SvxFont& rFont )
+/*N*/ {
+/*N*/ Font::operator=( rFont );
+/*N*/ eLang = rFont.eLang;
+/*N*/ eCaseMap = rFont.eCaseMap;
+/*N*/ nEsc = rFont.nEsc;
+/*N*/ nPropr = rFont.nPropr;
+/*N*/ nKern = rFont.nKern;
+/*N*/ return *this;
+/*N*/ }
+
+
+/*************************************************************************
+ * class SvxDoGetCapitalSize
+ * wird von SvxFont::GetCapitalSize() zur Berechnung der TxtSize bei
+ * eingestellten Kapitaelchen benutzt.
+ *************************************************************************/
+
+class SvxDoGetCapitalSize : public SvxDoCapitals
+{
+protected:
+ SvxFont* pFont;
+ Size aTxtSize;
+ short nKern;
+public:
+ SvxDoGetCapitalSize( SvxFont *pFnt, const OutputDevice *pOut,
+ const XubString &rTxt, const xub_StrLen nIdx,
+ const xub_StrLen nLen, const short nKrn )
+ : SvxDoCapitals( (OutputDevice*)pOut, rTxt, nIdx, nLen ),
+ pFont( pFnt ),
+ nKern( nKrn )
+ { }
+
+
+ inline const Size &GetSize() const { return aTxtSize; };
+};
+
+
+/*************************************************************************
+ * SvxFont::GetCapitalSize()
+ * berechnet TxtSize, wenn Kapitaelchen eingestellt sind.
+ *************************************************************************/
+
+
+/*************************************************************************
+ * class SvxDoDrawCapital
+ * wird von SvxFont::DrawCapital zur Ausgabe von Kapitaelchen benutzt.
+ *************************************************************************/
+
+class SvxDoDrawCapital : public SvxDoCapitals
+{
+protected:
+ SvxFont *pFont;
+ Point aPos;
+ Point aSpacePos;
+ short nKern;
+public:
+ SvxDoDrawCapital( SvxFont *pFnt, OutputDevice *pOut, const XubString &rTxt,
+ const xub_StrLen nIdx, const xub_StrLen nLen,
+ const Point &rPos, const short nKrn )
+ : SvxDoCapitals( pOut, rTxt, nIdx, nLen ),
+ pFont( pFnt ),
+ aPos( rPos ),
+ aSpacePos( rPos ),
+ nKern( nKrn )
+ { }
+};
+
+
+
+
+/*************************************************************************
+ * SvxFont::DrawCapital() gibt Kapitaelchen aus.
+ *************************************************************************/
+
+
+#endif // !REDUCEDSVXFONT
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_svxitems.src b/binfilter/bf_svx/source/items/svx_svxitems.src
new file mode 100644
index 000000000000..4e59ac678fd0
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_svxitems.src
@@ -0,0 +1,501 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+#define NO_LOCALIZE_EXPORT
+ // include ------------------------------------------------------------------
+#include "svxitems.hrc"
+ // pragma -------------------------------------------------------------------
+
+ // Value-Strings ------------------------------------------------------------
+String RID_SVXITEMS_TRUE
+{
+ Text [ de ] = "Wahr" ;
+ Text [ en-US ] = "True" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Verdadeiro";
+ Text[ ru ] = "ИСТИÐÐ";
+ Text[ el ] = "Αληθής";
+ Text[ nl ] = "Waar";
+ Text[ fr ] = "Vrai";
+ Text[ es ] = "Verdadero";
+ Text[ fi ] = "Tosi";
+ Text[ ca ] = "Cert";
+ Text[ it ] = "Vero";
+ Text[ sk ] = "Pravda";
+ Text[ da ] = "Sand";
+ Text[ sv ] = "Sant";
+ Text[ pl ] = "Prawda";
+ Text[ pt-BR ] = "Verdadeiro";
+ Text[ th ] = "จริง";
+ Text[ ja ] = "真(TRUE)";
+ Text[ ko ] = "TRUE";
+ Text[ zh-CN ] = "真";
+ Text[ zh-TW ] = "真";
+ Text[ tr ] = "DoÄŸru";
+ Text[ hi-IN ] = "सतà¥à¤¯";
+ Text[ ar ] = "حقيقي";
+ Text[ he ] = "‮×מת‬";
+};
+String RID_SVXITEMS_FALSE
+{
+ Text [ de ] = "Falsch" ;
+ Text [ en-US ] = "False" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Falso";
+ Text[ ru ] = "ЛОЖЬ";
+ Text[ el ] = "Λάθος";
+ Text[ nl ] = "Fout";
+ Text[ fr ] = "Faux";
+ Text[ es ] = "Falso";
+ Text[ fi ] = "Epätosi";
+ Text[ ca ] = "Fals";
+ Text[ it ] = "Falso";
+ Text[ sk ] = "Nepravda";
+ Text[ da ] = "Falsk";
+ Text[ sv ] = "Falsk";
+ Text[ pl ] = "FAÅSZ";
+ Text[ pt-BR ] = "Falso";
+ Text[ th ] = "เท็จ";
+ Text[ ja ] = "å½(FALSE)";
+ Text[ ko ] = "FALSE";
+ Text[ zh-CN ] = "错误";
+ Text[ zh-TW ] = "錯誤";
+ Text[ tr ] = "Yanlış";
+ Text[ hi-IN ] = "असतà¥à¤¯";
+ Text[ ar ] = "خطأ";
+ Text[ he ] = "‮שקר‬";
+};
+ // Extras -------------------------------------------------------------------
+ // SvxSearchItem ------------------------------------------------------------
+ // Kommando
+
+ // Vorlagen
+
+ // Zellen-Typ
+
+ // Applikation
+
+ // enum SvxBreak ------------------------------------------------------------
+
+ // enum SvxShadowLocation ---------------------------------------------------
+
+ // enum BrushStyle ----------------------------------------------------------
+
+ // enum ColorName -----------------------------------------------------------
+
+ // enum FontWeight -------------------------------------------------------
+
+ // enum FontUnderline ----------------------------------------------------
+ // enum FontStrikeout ----------------------------------------------------
+ // enum CASEMAP ----------------------------------------------------------
+ // enum ESCAPEMENT -------------------------------------------------------
+ // enum SvxAdjust -----------------------------------------------------------
+ // DB-Server-Connect --------------------------------------------------------
+ // enum SvxTabAdjust --------------------------------------------------------
+ // Typ-Namen der SlotIds ----------------------------------------------------
+ // GetValueText von BoolItems
+
+String RID_SVXITEMS_PAGE_USAGE_LEFT
+{
+ Text [ de ] = "Links" ;
+ Text [ en-US ] = "Left" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Esquerda";
+ Text[ ru ] = "Слева";
+ Text[ el ] = "ΑÏιστεÏά";
+ Text[ nl ] = "Links";
+ Text[ fr ] = "Gauche";
+ Text[ es ] = "Izquierda";
+ Text[ fi ] = "Vasen";
+ Text[ ca ] = "Esquerra";
+ Text[ it ] = "Sinistra";
+ Text[ sk ] = "Vľavo";
+ Text[ da ] = "Venstre";
+ Text[ sv ] = "Vänster";
+ Text[ pl ] = "Z lewej";
+ Text[ pt-BR ] = "Esquerda";
+ Text[ th ] = "ซ้าย";
+ Text[ ja ] = "å·¦";
+ Text[ ko ] = "왼쪽";
+ Text[ zh-CN ] = "å‘å·¦";
+ Text[ zh-TW ] = "å‘å·¦";
+ Text[ tr ] = "Sol";
+ Text[ hi-IN ] = "बायाà¤";
+ Text[ ar ] = "يسار";
+ Text[ he ] = "‮שמ×ל‬";
+};
+String RID_SVXITEMS_PAGE_USAGE_RIGHT
+{
+ Text [ de ] = "Rechts" ;
+ Text [ en-US ] = "Right" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Direita";
+ Text[ ru ] = "Справа";
+ Text[ el ] = "Δεξιά";
+ Text[ nl ] = "Rechts";
+ Text[ fr ] = "Droite";
+ Text[ es ] = "Derecha";
+ Text[ fi ] = "Oikea";
+ Text[ ca ] = "Dreta";
+ Text[ it ] = "Destra";
+ Text[ sk ] = "Vpravo";
+ Text[ da ] = "Højre";
+ Text[ sv ] = "Höger";
+ Text[ pl ] = "Z prawej";
+ Text[ pt-BR ] = "Direita";
+ Text[ th ] = "ขวา";
+ Text[ ja ] = "å³";
+ Text[ ko ] = "오른쪽";
+ Text[ zh-CN ] = "å‘å³";
+ Text[ zh-TW ] = "å‘å³";
+ Text[ tr ] = "SaÄŸ";
+ Text[ hi-IN ] = "दाहिना";
+ Text[ ar ] = "يمين";
+ Text[ he ] = "‮ימין‬";
+};
+String RID_SVXITEMS_PAGE_USAGE_ALL
+{
+ Text [ de ] = "Alle" ;
+ Text [ en-US ] = "All" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Tudo";
+ Text[ ru ] = "Ð’Ñе";
+ Text[ el ] = "Όλα";
+ Text[ nl ] = "Alle";
+ Text[ fr ] = "Toutes les pages";
+ Text[ es ] = "Todo";
+ Text[ fi ] = "Kaikki";
+ Text[ ca ] = "Tot";
+ Text[ it ] = "Tutto";
+ Text[ sk ] = "VÅ¡etko";
+ Text[ da ] = "Alle";
+ Text[ sv ] = "Alla";
+ Text[ pl ] = "Wszystko";
+ Text[ pt-BR ] = "Tudo";
+ Text[ th ] = "ทั้งหมด";
+ Text[ ja ] = "ã™ã¹ã¦";
+ Text[ ko ] = "모ë‘";
+ Text[ zh-CN ] = "全部";
+ Text[ zh-TW ] = "全部";
+ Text[ tr ] = "Tümü";
+ Text[ hi-IN ] = "सब";
+ Text[ ar ] = "الكل";
+ Text[ he ] = "‮הכל‬";
+};
+String RID_SVXITEMS_PAGE_USAGE_MIRROR
+{
+ Text [ de ] = "Gespiegelt" ;
+ Text [ en-US ] = "Mirrored" ;
+ Text [ x-comment ] = " ";
+ Text[ pt ] = "Invertido";
+ Text[ ru ] = "Отраженные";
+ Text[ el ] = "Με κατοπτÏισμό";
+ Text[ nl ] = "Gespiegeld";
+ Text[ fr ] = "Pages en vis-à-vis";
+ Text[ es ] = "Reflejado";
+ Text[ fi ] = "Peilattu";
+ Text[ ca ] = "Replicat";
+ Text[ it ] = "Rispecchiato";
+ Text[ sk ] = "Zrkadlené";
+ Text[ da ] = "Spejlvendt";
+ Text[ sv ] = "Spegelvänt";
+ Text[ pl ] = "Odbicie lustrzane";
+ Text[ pt-BR ] = "Refletido";
+ Text[ th ] = "ส่อง";
+ Text[ ja ] = "å·¦å³å¯¾ç§°";
+ Text[ ko ] = "대칭";
+ Text[ zh-CN ] = "翻转的";
+ Text[ zh-TW ] = "翻轉的";
+ Text[ tr ] = "Yansıma";
+ Text[ hi-IN ] = "दरà¥à¤ªà¤£ किया हà¥à¤†";
+ Text[ ar ] = "منعكس";
+ Text[ he ] = "‮משוכפל‬";
+};
+
+
+
+
+String RID_SVXITEMS_TWOLINES_OFF
+{
+ Text [ de ] = "Doppelzeilig aus";
+ Text [ en-US ] = "Double-lined off";
+ Text[ pt ] = "Desactivar linhas duplas";
+ Text[ ru ] = "Выкл. двухÑтрочный";
+ Text[ el ] = "ΔίγÏαμμη γÏαφή απενεÏγοποιημένη";
+ Text[ nl ] = "Tweeregelig uit";
+ Text[ fr ] = "'Deux lignes en une' désactivé";
+ Text[ es ] = "Desactivar líneas dobles";
+ Text[ fi ] = "Kaksoisviiva poissa käytöstä";
+ Text[ ca ] = "Desactiva línies dobles";
+ Text[ it ] = "Disattiva 'A due righe'";
+ Text[ sk ] = "Dvojité riadky vypnuté";
+ Text[ da ] = "Dobbelt fra";
+ Text[ sv ] = "Dubbla rader av";
+ Text[ pl ] = "Podwójne wiersze wyłączone";
+ Text[ pt-BR ] = "Linhas duplas desativadas";
+ Text[ th ] = "ขีดเส้นปิดคู่";
+ Text[ ja ] = "2行使ㄠオフ";
+ Text[ ko ] = "ë‘줄 í•´ì œ";
+ Text[ zh-CN ] = "ä¸ä½¿ç”¨åŒè¡Œ";
+ Text[ zh-TW ] = "ä¸ä½¿ç”¨é›™è¡Œ";
+ Text[ tr ] = "Çift Çizgili Kapalı";
+ Text[ hi-IN ] = "दà¥à¤µà¤¿à¤—à¥à¤£à¤¿à¤¤ रेखा बंद";
+ Text[ ar ] = "Two lines off";
+ Text[ he ] = "‮ריווח כפול בין שורות מכובה‬";
+};
+String RID_SVXITEMS_TWOLINES
+{
+ Text [ de ] = "Doppelzeilig";
+ Text [ en-US ] = "Double-lined";
+ Text[ pt ] = "Linhas duplas";
+ Text[ ru ] = "ДвухÑтрочный";
+ Text[ el ] = "ΔίγÏαμμη γÏαφή";
+ Text[ nl ] = "Tweeregelig";
+ Text[ fr ] = "Deux lignes en une";
+ Text[ es ] = "Líneas dobles";
+ Text[ fi ] = "Kaksoisviiva";
+ Text[ ca ] = "Dues línies";
+ Text[ it ] = "A due righe";
+ Text[ sk ] = "Dvojité riadky";
+ Text[ da ] = "Dobbelt";
+ Text[ sv ] = "Dubbla rader";
+ Text[ pl ] = "Podwójne wiersze";
+ Text[ pt-BR ] = "Linhas duplas";
+ Text[ th ] = "ขีดเส้นคู่";
+ Text[ ja ] = "2行使ã„";
+ Text[ ko ] = "ë‘줄";
+ Text[ zh-CN ] = "åŒè¡Œ";
+ Text[ zh-TW ] = "雙行";
+ Text[ tr ] = "Çift Çizgili";
+ Text[ hi-IN ] = "दà¥à¤µà¤¿à¤—à¥à¤£à¤¿à¤¤ रेखा";
+ Text[ ar ] = "سطرين";
+ Text[ he ] = "‮ריווח כפול בין שורות מופעל‬";
+};
+
+
+
+String RID_SVXITEMS_CHARROTATE_OFF
+{
+ Text [ de ] = "keine gedrehten Zeichen";
+ Text [ en-US ] = "No rotated characters";
+ Text[ pt ] = "Sem rotação de caracteres";
+ Text[ ru ] = "Без перевернутых Ñимволов";
+ Text[ el ] = "ΧωÏίς πεÏιστÏοφή χαÏακτήÏων";
+ Text[ nl ] = "geen gedraaide tekens";
+ Text[ fr ] = "Sans rotation des caractères";
+ Text[ es ] = "Sin rotación de caracteres";
+ Text[ fi ] = "Ei kierrettyjä merkkejä";
+ Text[ ca ] = "Sense caràcters canviats";
+ Text[ it ] = "Senza rotazione carattere";
+ Text[ sk ] = "Bez otoÄených znakov";
+ Text[ da ] = "ingen roterede tegn";
+ Text[ sv ] = "Inga roterade tecken";
+ Text[ pl ] = "bez obróconych znaków";
+ Text[ pt-BR ] = "Caracteres sem rotação";
+ Text[ th ] = "ตัวอัà¸à¸‚ระที่ไม่หมุน";
+ Text[ ja ] = "文字を回転ã—ãªã„";
+ Text[ ko ] = "íšŒì „ëœ ë¬¸ìž ì•„ë‹˜";
+ Text[ zh-CN ] = "字符ä¸æ—‹è½¬";
+ Text[ zh-TW ] = "å­—å…ƒä¸æ—‹è½‰";
+ Text[ tr ] = "Döndürülmüş karakterler yok";
+ Text[ hi-IN ] = "घà¥à¤®à¤¾à¤¯à¤¾ हà¥à¤† अकà¥à¤·à¤°à¥‡à¤‚ नहीं";
+ Text[ ar ] = "بدون استدارة أحرÙ";
+ Text[ he ] = "â€®×œ×œ× ×ª×•×™× ×ž×¡×•×‘×‘×™×‬";
+};
+String RID_SVXITEMS_CHARROTATE
+{
+ Text [ de ] = "Zeichen um $(ARG1)° gedreht";
+ Text [ en-US ] = "Character rotated by $(ARG1)°";
+ Text[ pt ] = "Rotação de caracteres: $(ARG1)°";
+ Text[ ru ] = "Повернуть Ñимволы на $(ARG1)°";
+ Text[ el ] = "ΠεÏιστÏοφή χαÏακτήÏων από $(ARG1)°";
+ Text[ nl ] = "teken $(ARG1)° gedraaid";
+ Text[ fr ] = "Rotation des caractères : $(ARG1)°";
+ Text[ es ] = "Carácter rodado en $(ARG1)°";
+ Text[ fi ] = "Merkkiä kierretty $(ARG1)°";
+ Text[ ca ] = "Caràcter rodat en $(ARG1)°";
+ Text[ it ] = "Carattere rotato di $(ARG1)°";
+ Text[ sk ] = "Znak otoÄený o $(ARG1)°";
+ Text[ da ] = "Tegn roteret med $(ARG1)°";
+ Text[ sv ] = "Tecken roterat med $(ARG1)°";
+ Text[ pl ] = "Znaki obrócone o $(ARG1)°";
+ Text[ pt-BR ] = "Caracter girado em $(ARG1)?";
+ Text[ th ] = "ตัวอัà¸à¸‚ระหมุนโดย $(ARG1)à¸";
+ Text[ ja ] = "文字を $(ARG1)ー 回転";
+ Text[ ko ] = "$(ARG1)?íšŒì „ëœ ë¬¸ìž";
+ Text[ zh-CN ] = "字符旋转 $(ARG1)";
+ Text[ zh-TW ] = "字元旋轉 $(ARG1)°";
+ Text[ tr ] = "Karakter $(ARG1)° çevrildi";
+ Text[ hi-IN ] = "अकà¥à¤·à¤° को $(ARG1)° से घà¥à¤®à¤¾à¤¯à¤¾";
+ Text[ ar ] = "استدارة الأحر٠بمقدار $(ARG1)°";
+ Text[ he ] = "‮תו מסובב ב $(ARG1)°‬";
+};
+String RID_SVXITEMS_CHARROTATE_FITLINE
+{
+ Text [ de ] = " an Zeile anpassen";
+ Text [ en-US ] = "Fit to line";
+ Text[ pt ] = "Ajustar à linha";
+ Text[ ru ] = "СоглаÑовать Ñо Ñтрокой";
+ Text[ el ] = "ΠÏοσαÏμογή στη γÏαμμή";
+ Text[ nl ] = "aanpassen aan regel";
+ Text[ fr ] = " Adapter à la ligne";
+ Text[ es ] = "Ajustar a la línea";
+ Text[ fi ] = "Sovita riville";
+ Text[ ca ] = "ajustar a fila";
+ Text[ it ] = "Adatta alla riga";
+ Text[ sk ] = "Prispôsobiť riadku";
+ Text[ da ] = " tilpas til linje";
+ Text[ sv ] = " Anpassa till rad";
+ Text[ pl ] = "Dopasuj do wiersza";
+ Text[ pt-BR ] = " Ajustar à linha";
+ Text[ th ] = "จัดพอดีบรรทัด";
+ Text[ ja ] = "è¡Œã«åˆã‚ã›ã‚‹";
+ Text[ ko ] = "ì¤„ì— ë§žì¶¤";
+ Text[ zh-CN ] = "和行对é½";
+ Text[ zh-TW ] = "和行å°é½Š";
+ Text[ tr ] = "Satıra uydur";
+ Text[ hi-IN ] = "रेखा केलिठयोगà¥à¤¯";
+ Text[ ar ] = "ملاءمة للسطر";
+ Text[ he ] = "‮הת×מה לשורה‬";
+};
+
+String RID_SVXITEMS_RELIEF_NONE
+{
+ Text [ de ] = "Kein Relief" ;
+ Text [ en-US ] = "No relief";
+ Text[ pt ] = "Sem relevo";
+ Text[ ru ] = "Без рельефа";
+ Text[ el ] = "ΧωÏίς ανάγλυφο";
+ Text[ nl ] = "Geen reliëf";
+ Text[ fr ] = "Sans relief";
+ Text[ es ] = "Sin relieve";
+ Text[ fi ] = "Ei korkokuvaa";
+ Text[ ca ] = "Sense relleu";
+ Text[ it ] = "Senza rilievo";
+ Text[ sk ] = "Bez reliéfu";
+ Text[ da ] = "Intet relief";
+ Text[ sv ] = "Ingen relief";
+ Text[ pl ] = "Bez reliefu";
+ Text[ pt-BR ] = "Sem relevo";
+ Text[ th ] = "ไม่นูน";
+ Text[ ja ] = "æµ®ã出ã—ãªã—";
+ Text[ ko ] = "ì–‘ê° ì—†ìŒ";
+ Text[ zh-CN ] = "无浮雕效果";
+ Text[ zh-TW ] = "無浮雕效果";
+ Text[ tr ] = "Rölyef yok";
+ Text[ hi-IN ] = "सहायता नहीं";
+ Text[ ar ] = "بدون نقش";
+ Text[ he ] = "â€®×œ×œ× ×”×‘×œ×˜×”â€¬";
+};
+String RID_SVXITEMS_RELIEF_ENGRAVED
+{
+ Text [ de ] = "Gravur";
+ Text [ en-US ] = "Engraved";
+ Text[ pt ] = "Gravado";
+ Text[ ru ] = "Гравировка";
+ Text[ el ] = "ΧαÏαγμένο";
+ Text[ nl ] = "Gravure";
+ Text[ fr ] = "Empreinte";
+ Text[ es ] = "Grabado";
+ Text[ fi ] = "Kaiverrettu";
+ Text[ ca ] = "Gravat";
+ Text[ it ] = "Incisione";
+ Text[ sk ] = "Rytina";
+ Text[ da ] = "Indgraveret";
+ Text[ sv ] = "Gravyr";
+ Text[ pl ] = "Grawerowane";
+ Text[ pt-BR ] = "Entalhado";
+ Text[ th ] = "รอยจารึà¸";
+ Text[ ja ] = "æµ®ã彫り";
+ Text[ ko ] = "오목 효과";
+ Text[ zh-CN ] = "雕刻";
+ Text[ zh-TW ] = "雕刻";
+ Text[ tr ] = "Kazınmış";
+ Text[ hi-IN ] = "खोदा हà¥à¤†";
+ Text[ ar ] = "Ø­Ùر";
+ Text[ he ] = "‮חרוט‬";
+};
+
+
+String RID_SVXITEMS_PARASNAPTOGRID_ON
+{
+ Text [ de ] = "Absatz wird am Textraster gefangen (wenn aktiviert)";
+ Text [ en-US ] = "Paragraph snaps to text grid (if active)";
+ Text[ pt ] = "paragraph snap to grid";
+ Text[ ru ] = "Параграф привÑзан к Ñетке текÑта (еÑли активно)";
+ Text[ el ] = "ΠÏοσκόλληση παÏαγÏάφου στο πλέγμα κειμένου (αν είναι ενεÏγοποιημένο)";
+ Text[ nl ] = "Alinea wordt aan tekstraster gevangen (indien geactiveerd)";
+ Text[ fr ] = "Capture du paragraphe à la grille du texte (si activée)";
+ Text[ es ] = "Utilizar la cuadrícula en el párrafo (si ésta está activada) ";
+ Text[ fi ] = "Kappaleen kohdistus tekstiruudukkoon (jos käytössä)";
+ Text[ ca ] = "Paragraph snaps to text grid (if active)";
+ Text[ it ] = "Cattura il paragrafo alla griglia di testo (se attivata)";
+ Text[ sk ] = "Odstavec zachytávať na textový mriežku (ak aktívna)";
+ Text[ da ] = "Afstanden måles ved tekstgitteret (ved aktivering)";
+ Text[ sv ] = "Stycke fästs mot textraster (om det är aktiverat)";
+ Text[ pl ] = "Akapity są przyciągane do siatki tekstu (jeśli aktywna)";
+ Text[ pt-BR ] = "O parágrafo se encaixa na grade do texto (se ativada)";
+ Text[ th ] = "Paragraph snaps to text grid (if active)";
+ Text[ ja ] = "段è½ã‚’文字罫線ã§ä½ç½®åˆã‚ã›(オンã®ã¨ã)";
+ Text[ ko ] = "단ë½ì„ í…스트 그리드로 맞춤(활성시)";
+ Text[ zh-CN ] = "段è½å’Œç¨¿çº¸æ ¼çº¿å¯¹é½(如使用稿纸)";
+ Text[ zh-TW ] = "段è½å’Œç¨¿ç´™æ ¼ç·šå°é½Š (如使用稿紙)";
+ Text[ tr ] = "Paragraph snaps to text grid (if active)";
+ Text[ hi-IN ] = "Paragraph snaps to text grid (if active)";
+ Text[ ar ] = "paragraph snap to grid";
+ Text[ he ] = "‮פסקה מתמקמת על קודקוד רשת (במידה והרשת מופעלת)‬";
+};
+
+String RID_SVXITEMS_PARASNAPTOGRID_OFF
+{
+ Text [ de ] = "Absatz wird nicht am Textraster gefangen";
+ Text [ en-US ] = "Paragraph does not snap to text grid";
+ Text[ pt ] = "paragraph does not snap to grid";
+ Text[ ru ] = "Параграф не привÑзан к Ñетке текÑта";
+ Text[ el ] = "ΧωÏίς Ï€Ïοσκόλληση παÏαγÏάφου στο πλέγμα κειμένου";
+ Text[ nl ] = "Alinea wordt niet aan tekstraster gevangen";
+ Text[ fr ] = "Pas de capture du paragraphe à la grille du texte";
+ Text[ es ] = "No utilizar la cuadrícula en el párrafo";
+ Text[ fi ] = "Kappale ei kohdistu tekstiruudukkoon";
+ Text[ ca ] = "Paragraph does not snap to text grid";
+ Text[ it ] = "Non cattura il paragrafo alla griglia di testo";
+ Text[ sk ] = "Odstavec nezachytávať na textový mriežku";
+ Text[ da ] = "Afstanden måles ikke ved tekstgitteret";
+ Text[ sv ] = "Stycke fästs inte mot textraster";
+ Text[ pl ] = "Akapit nie jest przyciÄ…gany do siatki tekstu";
+ Text[ pt-BR ] = "O parágrafo não se encaixa na grade do texto";
+ Text[ th ] = "Paragraph does not snap to text grid";
+ Text[ ja ] = "段è½ã‚’文字罫線ã§ä½ç½®åˆã‚ã›ã—ãªã„";
+ Text[ ko ] = "단ë½ì„ í…스트 그리드로 맞추지 ì•ŠìŒ";
+ Text[ zh-CN ] = "段è½ä¸å’Œç¨¿çº¸æ ¼çº¿å¯¹é½";
+ Text[ zh-TW ] = "段è½ä¸å’Œç¨¿ç´™æ ¼ç·šå°é½Š";
+ Text[ tr ] = "Paragraph does not snap to text grid";
+ Text[ hi-IN ] = "Paragraph does not snap to text grid";
+ Text[ ar ] = "paragraph does not snap to grid";
+ Text[ he ] = "â€®×ž×™×§×•× ×¤×¡×§×” חופשי (××£ ×× ×”×¨×©×ª מופעלת)‬";
+};
+
+ // ********************************************************************** EOF
diff --git a/binfilter/bf_svx/source/items/svx_textitem.cxx b/binfilter/bf_svx/source/items/svx_textitem.cxx
new file mode 100644
index 000000000000..173b14727fc9
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_textitem.cxx
@@ -0,0 +1,2621 @@
+/* -*- 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 <tools/stream.hxx>
+#include <toolkit/unohlp.hxx>
+#include <math.h>
+#include <rtl/math.hxx>
+
+#include <eeitem.hxx>
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#define ITEMID_FONTLIST 0
+#define ITEMID_FONT 0
+#define ITEMID_POSTURE 0
+#define ITEMID_WEIGHT 0
+#define ITEMID_FONTHEIGHT 0
+#define ITEMID_UNDERLINE 0
+#define ITEMID_CROSSEDOUT 0
+#define ITEMID_SHADOWED 0
+#define ITEMID_AUTOKERN 0
+#define ITEMID_WORDLINEMODE 0
+#define ITEMID_CONTOUR 0
+#define ITEMID_PROPSIZE 0
+#define ITEMID_COLOR 0
+#define ITEMID_CHARSETCOLOR 0
+#define ITEMID_KERNING 0
+#define ITEMID_CASEMAP 0
+#define ITEMID_ESCAPEMENT 0
+#define ITEMID_LANGUAGE 0
+#define ITEMID_NOLINEBREAK 0
+#define ITEMID_NOHYPHENHERE 0
+#define ITEMID_BLINK 0
+#define ITEMID_EMPHASISMARK 0
+#define ITEMID_TWOLINES 0
+#define ITEMID_CHARROTATE 0
+#define ITEMID_CHARSCALE_W 0
+#define ITEMID_CHARRELIEF 0
+
+
+#define GLOBALOVERFLOW3
+
+
+#include <bf_svtools/memberid.hrc>
+#include "svxids.hrc"
+#include "svxitems.hrc"
+
+#include "rtl/ustring.hxx"
+#include <i18npool/mslangid.hxx>
+#include <bf_svtools/itemset.hxx>
+#include <bf_svtools/itempool.hxx>
+
+#include <com/sun/star/style/CaseMap.hpp>
+#include <com/sun/star/awt/XFont.hpp>
+#include <com/sun/star/text/FontEmphasis.hpp>
+#include <com/sun/star/i18n/ScriptType.hpp>
+
+
+
+#include "flstitem.hxx"
+#include "fontitem.hxx"
+#include "postitem.hxx"
+#include "wghtitem.hxx"
+#include "fhgtitem.hxx"
+#include "fwdtitem.hxx"
+#include "udlnitem.hxx"
+#include "crsditem.hxx"
+#include "shdditem.hxx"
+#include "akrnitem.hxx"
+#include "wrlmitem.hxx"
+#include "cntritem.hxx"
+#include "prszitem.hxx"
+#include "cscoitem.hxx"
+#include "kernitem.hxx"
+#include "cmapitem.hxx"
+#include "escpitem.hxx"
+#include "langitem.hxx"
+#include "nlbkitem.hxx"
+#include "nhypitem.hxx"
+#include "blnkitem.hxx"
+#include "emphitem.hxx"
+#include "twolinesitem.hxx"
+#include "scripttypeitem.hxx"
+#include "charrotateitem.hxx"
+#include "charscaleitem.hxx"
+#include "charreliefitem.hxx"
+#include "itemtype.hxx"
+#include "dlgutil.hxx"
+
+// #90477#
+#include <tools/tenccvt.hxx>
+namespace binfilter {
+
+#define STORE_UNICODE_MAGIC_MARKER 0xFE331188
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::text;
+
+// Konvertierung fuer UNO
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+
+BOOL SvxFontItem::bEnableStoreUnicodeNames = FALSE;
+
+// STATIC DATA -----------------------------------------------------------
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1(SvxFontListItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFontItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPostureItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxWeightItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxFontHeightItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxUnderlineItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCrossedOutItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxShadowedItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxAutoKernItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxWordLineModeItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxContourItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxPropSizeItem, SfxUInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxColorItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCharSetColorItem, SvxColorItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxKerningItem, SfxInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCaseMapItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxEscapementItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxLanguageItem, SfxEnumItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxNoLinebreakItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxNoHyphenItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxBlinkItem, SfxBoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxEmphasisMarkItem, SfxUInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxTwoLinesItem, SfxPoolItem);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCharRotateItem, SfxUInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCharScaleWidthItem, SfxUInt16Item);
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxCharReliefItem, SfxEnumItem);
+
+
+/*N*/ TYPEINIT1(SvxScriptSetItem, SfxSetItem );
+
+
+// class SvxFontListItem -------------------------------------------------
+
+/*N*/ SvxFontListItem::SvxFontListItem( const FontList* pFontLst,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxPoolItem( nId ),
+/*N*/ pFontList( pFontLst )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFontListItem::SvxFontListItem( const SvxFontListItem& rItem ) :
+/*N*/
+/*N*/ SfxPoolItem( rItem ),
+/*N*/ pFontList( rItem.GetFontList() )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFontListItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxFontListItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ int SvxFontListItem::operator==( const SfxPoolItem& rAttr ) const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*?*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxFontItem -----------------------------------------------------
+
+/*N*/ SvxFontItem::SvxFontItem( const USHORT nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ eFamily = FAMILY_SWISS;
+/*N*/ ePitch = PITCH_VARIABLE;
+/*N*/ eTextEncoding = RTL_TEXTENCODING_DONTKNOW;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxFontItem::SvxFontItem( const FontFamily eFam, const XubString& aName,
+/*N*/ const XubString& aStName, const FontPitch eFontPitch,
+/*N*/ const rtl_TextEncoding eFontTextEncoding, const USHORT nId ) :
+/*N*/
+/*N*/ SfxPoolItem( nId ),
+/*N*/
+/*N*/ aFamilyName(aName),
+/*N*/ aStyleName(aStName)
+/*N*/ {
+/*N*/ eFamily = eFam;
+/*N*/ ePitch = eFontPitch;
+/*N*/ eTextEncoding = eFontTextEncoding;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxFontItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_FONT_FAMILY_NAME :
+/*N*/ rVal <<= OUString(aFamilyName.GetBuffer());
+/*N*/ break;
+/*N*/ case MID_FONT_STYLE_NAME:
+/*N*/ rVal <<= OUString(aStyleName.GetBuffer());
+/*N*/ break;
+/*N*/ case MID_FONT_FAMILY : rVal <<= (sal_Int16)(eFamily); break;
+/*N*/ case MID_FONT_CHAR_SET : rVal <<= (sal_Int16)(eTextEncoding); break;
+/*N*/ case MID_FONT_PITCH : rVal <<= (sal_Int16)(ePitch); break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxFontItem::PutValue( const uno::Any& rVal, BYTE nMemberId)
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_FONT_FAMILY_NAME :
+/*N*/ {
+/*N*/ OUString aStr;
+/*N*/ if(!(rVal >>= aStr))
+/*N*/ return sal_False;
+/*N*/ aFamilyName = aStr.getStr();
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONT_STYLE_NAME:
+/*N*/ {
+/*N*/ OUString aStr;
+/*N*/ if(!(rVal >>= aStr))
+/*N*/ return sal_False;
+/*N*/ aStyleName = aStr.getStr();
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONT_FAMILY :
+/*N*/ {
+/*N*/ sal_Int16 nFamily;
+/*N*/ if(!(rVal >>= nFamily))
+/*N*/ return sal_False;
+/*N*/ eFamily = (FontFamily)nFamily;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONT_CHAR_SET :
+/*N*/ {
+/*N*/ sal_Int16 nSet;
+/*N*/ if(!(rVal >>= nSet))
+/*N*/ return sal_False;
+/*N*/ eTextEncoding = (rtl_TextEncoding)nSet;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONT_PITCH :
+/*N*/ {
+/*N*/ sal_Int16 nPitch;
+/*N*/ if(!(rVal >>= nPitch))
+/*N*/ return sal_False;
+/*N*/ ePitch = (FontPitch)nPitch;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxFontItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ const SvxFontItem& rItem = (const SvxFontItem&)rAttr;
+/*N*/
+/*N*/ int bRet = ( eFamily == rItem.eFamily &&
+/*N*/ aFamilyName == rItem.aFamilyName &&
+/*N*/ aStyleName == rItem.aStyleName );
+/*N*/
+/*N*/ if ( bRet )
+/*N*/ {
+/*N*/ if ( ePitch != rItem.ePitch || eTextEncoding != rItem.eTextEncoding )
+/*N*/ {
+/*N*/ bRet = sal_False;
+/*N*/ DBG_WARNING( "FontItem::operator==(): nur Pitch oder rtl_TextEncoding unterschiedlich" );
+/*N*/ }
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFontItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxFontItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFontItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ BOOL bToBats =
+/*N*/ GetFamilyName().EqualsAscii( "StarSymbol", 0, sizeof("StarSymbol")-1 ) ||
+/*N*/ GetFamilyName().EqualsAscii( "OpenSymbol", 0, sizeof("OpenSymbol")-1 );
+/*N*/
+/*N*/ // #90477# rStrm << (BYTE) GetFamily()
+/*N*/ // << (BYTE) GetPitch()
+/*N*/ // << (BYTE)(bToBats ? RTL_TEXTENCODING_SYMBOL : GetStoreCharSet( GetCharSet(), (USHORT)rStrm.GetVersion() ) );
+/*N*/ rStrm << (BYTE) GetFamily() << (BYTE) GetPitch()
+/*N*/ << (BYTE)(bToBats ? RTL_TEXTENCODING_SYMBOL : GetSOStoreTextEncoding(GetCharSet(), (sal_uInt16)rStrm.GetVersion()));
+/*N*/
+/*N*/ String aStoreFamilyName( GetFamilyName() );
+/*N*/ if( bToBats )
+/*N*/ aStoreFamilyName = String( "StarBats", sizeof("StarBats")-1, RTL_TEXTENCODING_ASCII_US );
+/*N*/ rStrm.WriteByteString(aStoreFamilyName);
+/*N*/ rStrm.WriteByteString(GetStyleName());
+/*N*/
+/*N*/ // #96441# Kach for EditEngine, only set while creating clipboard stream.
+/*N*/ if ( bEnableStoreUnicodeNames )
+/*N*/ {
+/*N*/ sal_uInt32 nMagic = STORE_UNICODE_MAGIC_MARKER;
+/*N*/ rStrm << nMagic;
+/*N*/ rStrm.WriteByteString( aStoreFamilyName, RTL_TEXTENCODING_UNICODE );
+/*N*/ rStrm.WriteByteString( GetStyleName(), RTL_TEXTENCODING_UNICODE );
+/*N*/ }
+/*N*/
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFontItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE eFamily, eFontPitch, eFontTextEncoding;
+/*N*/ String aName, aStyle;
+/*N*/ rStrm >> eFamily;
+/*N*/ rStrm >> eFontPitch;
+/*N*/ rStrm >> eFontTextEncoding;
+/*N*/
+/*N*/ // UNICODE: rStrm >> aName;
+/*N*/ rStrm.ReadByteString(aName);
+/*N*/
+/*N*/ // UNICODE: rStrm >> aStyle;
+/*N*/ rStrm.ReadByteString(aStyle);
+/*N*/
+/*N*/ // Task 91008/90471: set the "correct" textencoding
+/*N*/ eFontTextEncoding = (BYTE)GetSOLoadTextEncoding( eFontTextEncoding, (USHORT)rStrm.GetVersion() );
+/*N*/
+/*N*/ // irgendwann wandelte sich der StarBats vom ANSI- zum SYMBOL-Font
+/*N*/ if ( RTL_TEXTENCODING_SYMBOL != eFontTextEncoding && aName.EqualsAscii("StarBats") )
+/*N*/ eFontTextEncoding = RTL_TEXTENCODING_SYMBOL;
+/*N*/
+/*N*/ // Check if we have stored unicode
+/*N*/ ULONG nStreamPos = rStrm.Tell();
+/*N*/ sal_uInt32 nMagic = STORE_UNICODE_MAGIC_MARKER;
+/*N*/ rStrm >> nMagic;
+/*N*/ if ( nMagic == STORE_UNICODE_MAGIC_MARKER )
+/*N*/ {
+/*N*/ rStrm.ReadByteString( aName, RTL_TEXTENCODING_UNICODE );
+/*N*/ rStrm.ReadByteString( aStyle, RTL_TEXTENCODING_UNICODE );
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ rStrm.Seek( nStreamPos );
+/*N*/ }
+/*N*/
+/*N*/
+/*N*/
+/*N*/ return new SvxFontItem( (FontFamily)eFamily, aName, aStyle,
+/*N*/ (FontPitch)eFontPitch, (rtl_TextEncoding)eFontTextEncoding, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxPostureItem --------------------------------------------------
+
+/*N*/ SvxPostureItem::SvxPostureItem( const FontItalic ePosture, const USHORT nId ) :
+/*N*/ SfxEnumItem( nId, ePosture )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPostureItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxPostureItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxPostureItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 /*?*/ return ITALIC_NORMAL + 1; // auch ITALIC_NONE geh"ort dazu
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxPostureItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPostureItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nPosture;
+/*N*/ rStrm >> nPosture;
+/*N*/ return new SvxPostureItem( (const FontItalic)nPosture, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+
+/*-----------------13.03.98 14:28-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxPostureItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_ITALIC:
+/*?*/ rVal = Bool2Any(GetBoolValue());
+/*N*/ break;
+/*N*/ case MID_POSTURE:
+/*N*/ rVal <<= (awt::FontSlant)GetValue(); // Werte von awt::FontSlant und FontItalic sind gleich
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------13.03.98 14:28-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxPostureItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_ITALIC:
+/*?*/ SetBoolValue(Any2Bool(rVal));
+/*N*/ break;
+/*N*/ case MID_POSTURE:
+/*N*/ {
+/*?*/ awt::FontSlant eSlant;
+/*?*/ if(!(rVal >>= eSlant))
+/*?*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/
+/*?*/ eSlant = (awt::FontSlant)nValue;
+/*N*/ }
+/*N*/ SetValue((USHORT)eSlant);
+/*N*/ }
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxPostureItem::HasBoolValue() const
+/*N*/ {
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_Bool SvxPostureItem::GetBoolValue() const
+/*N*/ {
+/*N*/ return ( (FontItalic)GetValue() >= ITALIC_OBLIQUE );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// class SvxWeightItem ---------------------------------------------------
+
+/*N*/ SvxWeightItem::SvxWeightItem( const FontWeight eWght, const USHORT nId ) :
+/*N*/ SfxEnumItem( nId, eWght )
+/*N*/ {
+/*N*/ }
+
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxWeightItem::HasBoolValue() const
+/*N*/ {
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_Bool SvxWeightItem::GetBoolValue() const
+/*N*/ {
+/*N*/ return (FontWeight)GetValue() >= WEIGHT_BOLD;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxWeightItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return WEIGHT_BLACK; // WEIGHT_DONTKNOW geh"ort nicht dazu
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWeightItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxWeightItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxWeightItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWeightItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nWeight;
+/*N*/ rStrm >> nWeight;
+/*N*/ return new SvxWeightItem( (FontWeight)nWeight, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*-----------------13.03.98 14:18-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxWeightItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_BOLD :
+/*?*/ rVal = Bool2Any(GetBoolValue());
+/*N*/ break;
+/*N*/ case MID_WEIGHT:
+/*N*/ {
+/*N*/ rVal <<= (float)( VCLUnoHelper::ConvertFontWeight( (FontWeight)GetValue() ) );
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------13.03.98 14:18-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxWeightItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_BOLD :
+/*?*/ SetBoolValue(Any2Bool(rVal));
+/*N*/ break;
+/*N*/ case MID_WEIGHT:
+/*N*/ {
+/*N*/ double fValue;
+/*N*/ if(!(rVal >>= fValue))
+/*N*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ fValue = (float)nValue;
+/*N*/ }
+/*N*/ SetValue( VCLUnoHelper::ConvertFontWeight((float)fValue) );
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// class SvxFontHeightItem -----------------------------------------------
+
+/*N*/ SvxFontHeightItem::SvxFontHeightItem( const ULONG nSz,
+/*N*/ const USHORT nPrp,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ SetHeight( nSz,nPrp ); // mit den Prozenten rechnen
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFontHeightItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxFontHeightItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxFontHeightItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (USHORT)GetHeight();
+/*N*/
+/*N*/ if( FONTHEIGHT_UNIT_VERSION <= nItemVersion )
+/*N*/ rStrm << GetProp() << (USHORT)GetPropUnit();
+/*N*/ else
+/*N*/ {
+/*N*/ // JP 30.06.98: beim Export in alte Versionen geht die relative
+/*N*/ // Angabe verloren, wenn es keine Prozentuale ist
+/*N*/ USHORT nProp = GetProp();
+/*N*/ if( SFX_MAPUNIT_RELATIVE != GetPropUnit() )
+/*N*/ nProp = 100;
+/*N*/ rStrm << nProp;
+/*N*/ }
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxFontHeightItem::Create( SvStream& rStrm,
+/*N*/ USHORT nVersion ) const
+/*N*/ {
+/*N*/ USHORT nsize, nprop = 0, nPropUnit = SFX_MAPUNIT_RELATIVE;
+/*N*/
+/*N*/ rStrm >> nsize;
+/*N*/
+/*N*/ if( FONTHEIGHT_16_VERSION <= nVersion )
+/*N*/ rStrm >> nprop;
+/*N*/ else
+/*N*/ {
+/*?*/ BYTE nP;
+/*?*/ rStrm >> nP;
+/*?*/ nprop = (USHORT)nP;
+/*N*/ }
+/*N*/
+/*N*/ if( FONTHEIGHT_UNIT_VERSION <= nVersion )
+/*N*/ rStrm >> nPropUnit;
+/*N*/
+/*N*/ SvxFontHeightItem* pItem = new SvxFontHeightItem( nsize, 100, Which() );
+/*N*/ pItem->SetProp( nprop, (SfxMapUnit)nPropUnit );
+/*N*/ return pItem;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxFontHeightItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*N*/ return GetHeight() == ((SvxFontHeightItem&)rItem).GetHeight() &&
+/*N*/ GetProp() == ((SvxFontHeightItem&)rItem).GetProp() &&
+/*N*/ GetPropUnit() == ((SvxFontHeightItem&)rItem).GetPropUnit();
+/*N*/ }
+
+/*-----------------13.03.98 14:53-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxFontHeightItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ // In StarOne sind im uno::Any immer 1/100mm. Ueber die MemberId wird
+/*N*/ // gesteuert, ob der Wert im Item 1/100mm oder Twips sind.
+/*N*/
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_FONTHEIGHT:
+/*N*/ {
+/*N*/ // Point (also Twips) sind gefragt,
+/*N*/ // also umrechnen, wenn CONVERT_TWIPS nicht gesetzt ist
+/*N*/ if( bConvert )
+/*N*/ {
+/*N*/ long nTwips = bConvert ? nHeight : MM100_TO_TWIP(nHeight);
+/*N*/ rVal <<= (float)( nTwips / 20.0 );
+/*N*/ }
+/*N*/ else
+/*N*/ {
+/*N*/ double fPoints = MM100_TO_TWIP((long)nHeight) / 20.0;
+/*N*/ float fRoundPoints =
+/*N*/ static_cast<float>(::rtl::math::round(fPoints, 1));
+/*N*/ rVal <<= fRoundPoints;
+/*N*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONTHEIGHT_PROP:
+/*N*/ rVal <<= (sal_Int16)(SFX_MAPUNIT_RELATIVE == ePropUnit ? nProp : 100);
+/*N*/ break;
+/*N*/ case MID_FONTHEIGHT_DIFF:
+/*N*/ {
+/*N*/ float fRet = (float)(short)nProp;
+/*N*/ switch( ePropUnit )
+/*N*/ {
+/*N*/ case SFX_MAPUNIT_RELATIVE:
+/*N*/ fRet = 0.;
+/*N*/ break;
+/*N*/ case SFX_MAPUNIT_100TH_MM:
+/*?*/ fRet = MM100_TO_TWIP(fRet);
+/*?*/ fRet /= 20.;
+/*?*/ break;
+/*?*/ case SFX_MAPUNIT_POINT:
+/*?*/
+/*?*/ break;
+/*?*/ case SFX_MAPUNIT_TWIP:
+/*?*/ fRet /= 20.;
+/*N*/ break;
+/*N*/ }
+/*N*/ rVal <<= fRet;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/* -----------------01.07.98 13:43-------------------
+ * Relative Abweichung aus der Hoehe herausrechnen
+ * --------------------------------------------------*/
+/*N*/ sal_uInt32 lcl_GetRealHeight_Impl(sal_uInt32 nHeight, sal_uInt16 nProp, SfxMapUnit eProp, sal_Bool bCoreInTwip)
+/*N*/ {
+/*N*/ sal_uInt32 nRet = nHeight;
+/*N*/ short nDiff = 0;
+/*N*/ switch( eProp )
+/*N*/ {
+/*N*/ case SFX_MAPUNIT_RELATIVE:
+/*N*/ nRet *= 100;
+/*N*/ nRet /= nProp;
+/*N*/ break;
+/*N*/ case SFX_MAPUNIT_POINT:
+/*N*/ {
+/*?*/ short nTemp = (short)nProp;
+/*?*/ nDiff = nTemp * 20;
+/*?*/ if(!bCoreInTwip)
+/*?*/ nDiff = (short)TWIP_TO_MM100((long)(nDiff));
+/*?*/ }
+/*?*/ break;
+/*?*/ case SFX_MAPUNIT_100TH_MM:
+/*?*/ //dann ist die Core doch wohl auch in 1/100 mm
+/*?*/ nDiff = (short)nProp;
+/*?*/ break;
+/*?*/ case SFX_MAPUNIT_TWIP:
+/*?*/ // hier doch sicher TWIP
+/*?*/ nDiff = ((short)nProp);
+/*N*/ break;
+/*N*/ }
+/*N*/ nRet -= nDiff;
+/*N*/
+/*N*/ return nRet;
+/*N*/ }
+
+/*-----------------13.03.98 14:53-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxFontHeightItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_FONTHEIGHT:
+/*N*/ {
+/*N*/ ePropUnit = SFX_MAPUNIT_RELATIVE;
+/*N*/ nProp = 100;
+/*N*/ double fPoint;
+/*N*/ if(!(rVal >>= fPoint))
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ fPoint = (float)nValue;
+/*N*/ }
+/*N*/ if(fPoint < 0. || fPoint > 10000.)
+/*N*/ return sal_False;
+/*N*/
+/*N*/ nHeight = (long)( fPoint * 20.0 + 0.5 ); // Twips
+/*N*/ if (!bConvert)
+/*N*/ nHeight = TWIP_TO_MM100(nHeight); // umrechnen, wenn das Item 1/100mm enthaelt
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONTHEIGHT_PROP:
+/*N*/ {
+/*N*/ sal_Int16 nNew;
+/*N*/ if(!(rVal >>= nNew))
+/*N*/ return sal_True;
+/*N*/
+/*N*/ nHeight = lcl_GetRealHeight_Impl(nHeight, nProp, ePropUnit, bConvert);
+/*N*/
+/*N*/ nHeight *= nNew;
+/*N*/ nHeight /= 100;
+/*N*/ nProp = nNew;
+/*N*/ ePropUnit = SFX_MAPUNIT_RELATIVE;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_FONTHEIGHT_DIFF:
+/*N*/ {
+/*?*/ nHeight = lcl_GetRealHeight_Impl(nHeight, nProp, ePropUnit, bConvert);
+/*?*/ float fValue;
+/*?*/ if(!(rVal >>= fValue))
+/*?*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/ fValue = (float)nValue;
+/*?*/ }
+/*?*/ sal_Int16 nCoreDiffValue = (sal_Int16)(fValue * 20.);
+/*?*/ nHeight += bConvert ? nCoreDiffValue : TWIP_TO_MM100(nCoreDiffValue);
+/*?*/ nProp = (sal_uInt16)((sal_Int16)fValue);
+/*?*/ ePropUnit = SFX_MAPUNIT_POINT;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ USHORT SvxFontHeightItem::GetVersion(USHORT nFileVersion) const
+/*N*/ {
+/*N*/ return (nFileVersion <= SOFFICE_FILEFORMAT_40)
+/*N*/ ? FONTHEIGHT_16_VERSION
+/*N*/ : FONTHEIGHT_UNIT_VERSION;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*N*/ void SvxFontHeightItem::SetHeight( sal_uInt32 nNewHeight, const USHORT nNewProp,
+/*N*/ SfxMapUnit eUnit )
+/*N*/ {
+/*N*/ DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
+/*N*/
+/*N*/ #ifndef SVX_LIGHT
+/*N*/ if( SFX_MAPUNIT_RELATIVE != eUnit )
+nHeight = nNewHeight + ::binfilter::ItemToControl( (short)nNewProp, eUnit,//STRIP008 /*N*/ nHeight = nNewHeight + ::ItemToControl( (short)nNewProp, eUnit,
+/*N*/ SFX_FUNIT_TWIP );
+/*N*/ else
+/*N*/ #endif // !SVX_LIGHT
+/*N*/ if( 100 != nNewProp )
+/*N*/ nHeight = sal_uInt32(( nNewHeight * nNewProp ) / 100 );
+/*N*/ else
+/*N*/ nHeight = nNewHeight;
+/*N*/
+/*N*/ nProp = nNewProp;
+/*N*/ ePropUnit = eUnit;
+/*N*/ }
+
+// class SvxUnderlineItem ------------------------------------------------
+
+/*N*/ SvxUnderlineItem::SvxUnderlineItem( const FontUnderline eSt, const USHORT nId )
+/*N*/ : SfxEnumItem( nId, eSt ), mColor( COL_TRANSPARENT )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxUnderlineItem::HasBoolValue() const
+/*N*/ {
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ sal_Bool SvxUnderlineItem::GetBoolValue() const
+/*N*/ {
+/*N*/ return (FontUnderline)GetValue() != UNDERLINE_NONE;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxUnderlineItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ SvxUnderlineItem* pNew = new SvxUnderlineItem( *this );
+/*N*/ pNew->SetColor( GetColor() );
+/*N*/ return pNew;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ USHORT SvxUnderlineItem::GetValueCount() const
+/*N*/ {
+/*N*/ return UNDERLINE_DOTTED + 1; // auch UNDERLINE_NONE geh"ort dazu
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxUnderlineItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxUnderlineItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nState;
+/*N*/ rStrm >> nState;
+/*N*/ return new SvxUnderlineItem( (FontUnderline)nState, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*-----------------13.03.98 16:25-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxUnderlineItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_UNDERLINED:
+/*?*/ rVal = Bool2Any(GetBoolValue());
+/*?*/ break;
+/*N*/ case MID_UNDERLINE:
+/*N*/ rVal <<= (sal_Int16)(GetValue());
+/*N*/ break;
+/*N*/ case MID_UL_COLOR:
+/*N*/ rVal <<= (sal_Int32)( mColor.GetColor() );
+/*N*/ break;
+/*N*/ case MID_UL_HASCOLOR:
+/*N*/ rVal = Bool2Any( !mColor.GetTransparency() );
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/
+/*N*/ }
+/*-----------------13.03.98 16:28-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxUnderlineItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_UNDERLINED:
+/*?*/ SetBoolValue(Any2Bool(rVal));
+/*N*/ break;
+/*N*/ case MID_UNDERLINE:
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*N*/ if(!(rVal >>= nValue))
+/*N*/ bRet = sal_False;
+/*N*/ else
+/*N*/ SetValue((sal_Int16)nValue);
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_UL_COLOR:
+/*N*/ {
+/*?*/ sal_Int32 nCol;
+/*?*/ if( !( rVal >>= nCol ) )
+/*?*/ bRet = sal_False;
+/*?*/ else
+/*?*/ {
+/*?*/ // Keep transparence, because it contains the information
+/*?*/ // whether the font color or the stored color should be used
+/*?*/ sal_uInt8 nTrans = mColor.GetTransparency();
+/*?*/ mColor = Color( nCol );
+/*?*/ mColor.SetTransparency( nTrans );
+/*?*/ }
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_UL_HASCOLOR:
+/*N*/ mColor.SetTransparency( Any2Bool( rVal ) ? 0 : 0xff );
+/*N*/ break;
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+/*N*/ int SvxUnderlineItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*N*/ return SfxEnumItem::operator==( rItem ) &&
+/*N*/ GetColor() == ((SvxUnderlineItem&)rItem).GetColor();
+/*N*/ }
+
+// class SvxCrossedOutItem -----------------------------------------------
+
+/*N*/ SvxCrossedOutItem::SvxCrossedOutItem( const FontStrikeout eSt, const USHORT nId )
+/*N*/ : SfxEnumItem( nId, eSt )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ USHORT SvxCrossedOutItem::GetValueCount() const
+/*N*/ {
+/*N*/ return STRIKEOUT_DOUBLE + 1; // auch STRIKEOUT_NONE geh"ort dazu
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCrossedOutItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxCrossedOutItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxCrossedOutItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCrossedOutItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE eCross;
+/*N*/ rStrm >> eCross;
+/*N*/ return new SvxCrossedOutItem( (FontStrikeout)eCross, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*-----------------13.03.98 16:28-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxCrossedOutItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_CROSSED_OUT:
+/*?*/ rVal = Bool2Any(GetBoolValue());
+/*N*/ break;
+/*N*/ case MID_CROSS_OUT:
+/*N*/ rVal <<= (sal_Int16)(GetValue());
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------13.03.98 16:29-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxCrossedOutItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_CROSSED_OUT:
+/*?*/ SetBoolValue(Any2Bool(rVal));
+/*N*/ break;
+/*N*/ case MID_CROSS_OUT:
+/*N*/ {
+/*N*/ sal_Int32 nValue;
+/*N*/ if(!(rVal >>= nValue))
+/*N*/ return sal_False;
+/*N*/ SetValue((sal_Int16)nValue);
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+// class SvxShadowedItem -------------------------------------------------
+
+/*N*/ SvxShadowedItem::SvxShadowedItem( const sal_Bool bShadowed, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bShadowed )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxShadowedItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxShadowedItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxShadowedItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxShadowedItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nState;
+/*N*/ rStrm >> nState;
+/*N*/ return new SvxShadowedItem( nState, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxAutoKernItem -------------------------------------------------
+
+/*N*/ SvxAutoKernItem::SvxAutoKernItem( const sal_Bool bAutoKern, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bAutoKern )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxAutoKernItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxAutoKernItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxAutoKernItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxAutoKernItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nState;
+/*N*/ rStrm >> nState;
+/*N*/ return new SvxAutoKernItem( nState, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxWordLineModeItem ---------------------------------------------
+
+/*N*/ SvxWordLineModeItem::SvxWordLineModeItem( const sal_Bool bWordLineMode,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bWordLineMode )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWordLineModeItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxWordLineModeItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxWordLineModeItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Bool) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxWordLineModeItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_Bool bValue;
+/*N*/ rStrm >> bValue;
+/*N*/ return new SvxWordLineModeItem( bValue, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxContourItem --------------------------------------------------
+
+/*N*/ SvxContourItem::SvxContourItem( const sal_Bool bContoured, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bContoured )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxContourItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxContourItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxContourItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_Bool) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxContourItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_Bool bValue;
+/*N*/ rStrm >> bValue;
+/*N*/ return new SvxContourItem( bValue, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxPropSizeItem -------------------------------------------------
+
+/*N*/ SvxPropSizeItem::SvxPropSizeItem( const USHORT nPercent, const USHORT nId ) :
+/*N*/ SfxUInt16Item( nId, nPercent )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPropSizeItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxPropSizeItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxPropSizeItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ USHORT nSize;
+/*N*/ rStrm >> nSize;
+/*N*/ return new SvxPropSizeItem( nSize, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxColorItem ----------------------------------------------------
+
+/*N*/ SvxColorItem::SvxColorItem( const USHORT nId ) :
+/*N*/ SfxPoolItem( nId ),
+/*N*/ mColor( COL_BLACK )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorItem::SvxColorItem( const Color& rCol, const USHORT nId ) :
+/*N*/ SfxPoolItem( nId ),
+/*N*/ mColor( rCol )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorItem::SvxColorItem( SvStream &rStrm, const USHORT nId ) :
+/*N*/ SfxPoolItem( nId )
+/*N*/ {
+/*N*/ Color aColor;
+/*N*/ rStrm >> aColor;
+/*N*/ mColor = aColor;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorItem::SvxColorItem( const SvxColorItem &rCopy ) :
+/*N*/ SfxPoolItem( rCopy ),
+/*N*/ mColor( rCopy.mColor )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxColorItem::~SvxColorItem()
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+/*N*/ USHORT SvxColorItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxColorItem: Gibt es ein neues Fileformat?" );
+/*N*/ return SOFFICE_FILEFORMAT_50 >= nFFVer ? VERSION_USEAUTOCOLOR : 0;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxColorItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return mColor == ( (const SvxColorItem&)rAttr ).mColor;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxColorItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ rVal <<= (sal_Int32)(mColor.GetColor());
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxColorItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Int32 nColor;
+/*N*/ if(!(rVal >>= nColor))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ mColor.SetColor( nColor );
+/*N*/ return sal_True;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxColorItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxColorItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxColorItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ if( VERSION_USEAUTOCOLOR == nItemVersion &&
+/*N*/ COL_AUTO == mColor.GetColor() )
+/*N*/ rStrm << Color( COL_BLACK );
+/*N*/ else
+/*N*/ rStrm << mColor;
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxColorItem::Create(SvStream& rStrm, USHORT nVer ) const
+/*N*/ {
+/*N*/ return new SvxColorItem( rStrm, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ void SvxColorItem::SetValue( const Color& rNewCol )
+/*N*/ {
+/*N*/ mColor = rNewCol;
+/*N*/ }
+
+// class SvxCharSetColorItem ---------------------------------------------
+
+/*N*/ SvxCharSetColorItem::SvxCharSetColorItem( const USHORT nId ) :
+/*N*/ SvxColorItem( nId ),
+/*N*/
+/*N*/ eFrom( RTL_TEXTENCODING_DONTKNOW )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxCharSetColorItem::SvxCharSetColorItem( const Color& rCol,
+/*N*/ const rtl_TextEncoding eFrom,
+/*N*/ const USHORT nId ) :
+/*N*/ SvxColorItem( rCol, nId ),
+/*N*/
+/*N*/ eFrom( eFrom )
+/*N*/ {
+/*N*/ }
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCharSetColorItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxCharSetColorItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxCharSetColorItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ // #90477# rStrm << (BYTE) GetStoreCharSet( GetCharSet(), (USHORT)rStrm.GetVersion() )
+/*N*/ // << GetValue();
+/*N*/ rStrm << (BYTE)GetSOStoreTextEncoding(GetCharSet(), (sal_uInt16)rStrm.GetVersion())
+/*N*/ << GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCharSetColorItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE cSet;
+/*N*/ Color aColor;
+/*N*/ rStrm >> cSet >> aColor;
+/*N*/ return new SvxCharSetColorItem( aColor, (rtl_TextEncoding)cSet, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// class SvxKerningItem --------------------------------------------------
+
+/*N*/ SvxKerningItem::SvxKerningItem( const short nKern, const USHORT nId ) :
+/*N*/ SfxInt16Item( nId, nKern )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxKerningItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxKerningItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxKerningItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (short) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxKerningItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ short nValue;
+/*N*/ rStrm >> nValue;
+/*N*/ return new SvxKerningItem( nValue, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+/* -----------------------------19.02.01 12:21--------------------------------
+
+ ---------------------------------------------------------------------------*/
+/*N*/ bool SvxKerningItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Int16 nVal = GetValue();
+/*N*/ if(nMemberId & CONVERT_TWIPS)
+/*N*/ nVal = (sal_Int16)TWIP_TO_MM100(nVal);
+/*N*/ rVal <<= nVal;
+/*N*/ return sal_True;
+/*N*/ }
+// -----------------------------------------------------------------------
+/*N*/ bool SvxKerningItem::PutValue( const uno::Any& rVal, BYTE nMemberId)
+/*N*/ {
+/*N*/ sal_Int16 nVal;
+/*N*/ if(!(rVal >>= nVal))
+/*N*/ return sal_False;
+/*N*/ if(nMemberId & CONVERT_TWIPS)
+/*N*/ nVal = (sal_Int16)MM100_TO_TWIP(nVal);
+/*N*/ SetValue(nVal);
+/*N*/ return sal_True;
+/*N*/ }
+
+// class SvxCaseMapItem --------------------------------------------------
+
+/*N*/ SvxCaseMapItem::SvxCaseMapItem( const SvxCaseMap eMap, const USHORT nId ) :
+/*N*/ SfxEnumItem( nId, eMap )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxCaseMapItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_CASEMAP_END; // SVX_CASEMAP_KAPITAELCHEN + 1
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCaseMapItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxCaseMapItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxCaseMapItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxCaseMapItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE cMap;
+/*N*/ rStrm >> cMap;
+/*N*/ return new SvxCaseMapItem( (const SvxCaseMap)cMap, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+/*-----------------13.03.98 16:29-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxCaseMapItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Int16 nRet = style::CaseMap::NONE;
+/*N*/ switch( GetValue() )
+/*N*/ {
+/*N*/ // case SVX_CASEMAP_NOT_MAPPED : nRet = style::CaseMap::NONE ; break;
+/*N*/ case SVX_CASEMAP_VERSALIEN : nRet = style::CaseMap::UPPERCASE; break;
+/*?*/ case SVX_CASEMAP_GEMEINE : nRet = style::CaseMap::LOWERCASE; break;
+/*N*/ case SVX_CASEMAP_TITEL : nRet = style::CaseMap::TITLE ; break;
+/*N*/ case SVX_CASEMAP_KAPITAELCHEN: nRet = style::CaseMap::SMALLCAPS; break;
+/*N*/ }
+/*N*/ rVal <<= (sal_Int16)(nRet);
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------13.03.98 16:29-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxCaseMapItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_uInt16 nVal;
+/*N*/ if(!(rVal >>= nVal))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ switch( nVal )
+/*N*/ {
+/*N*/ case style::CaseMap::NONE : nVal = SVX_CASEMAP_NOT_MAPPED ; break;
+/*N*/ case style::CaseMap::UPPERCASE: nVal = SVX_CASEMAP_VERSALIEN ; break;
+/*?*/ case style::CaseMap::LOWERCASE: nVal = SVX_CASEMAP_GEMEINE ; break;
+/*N*/ case style::CaseMap::TITLE : nVal = SVX_CASEMAP_TITEL ; break;
+/*N*/ case style::CaseMap::SMALLCAPS: nVal = SVX_CASEMAP_KAPITAELCHEN; break;
+/*N*/ }
+/*N*/ SetValue(nVal);
+/*N*/ return sal_True;
+/*N*/ }
+
+// class SvxEscapementItem -----------------------------------------------
+
+/*N*/ SvxEscapementItem::SvxEscapementItem( const USHORT nId ) :
+/*N*/ SfxEnumItemInterface( nId ),
+/*N*/
+/*N*/ nEsc ( 0 ),
+/*N*/ nProp ( 100 )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxEscapementItem::SvxEscapementItem( const short nEsc,
+/*N*/ const BYTE nProp,
+/*N*/ const USHORT nId ) :
+/*N*/ SfxEnumItemInterface( nId ),
+/*N*/ nEsc ( nEsc ),
+/*N*/ nProp ( nProp )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxEscapementItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ return( nEsc == ((SvxEscapementItem&)rAttr).nEsc &&
+/*N*/ nProp == ((SvxEscapementItem&)rAttr).nProp );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxEscapementItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxEscapementItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxEscapementItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ short nEsc = GetEsc();
+/*N*/ if( SOFFICE_FILEFORMAT_31 == rStrm.GetVersion() )
+/*N*/ {
+/*N*/ if( DFLT_ESC_AUTO_SUPER == nEsc )
+/*N*/ nEsc = DFLT_ESC_SUPER;
+/*N*/ else if( DFLT_ESC_AUTO_SUB == nEsc )
+/*N*/ nEsc = DFLT_ESC_SUB;
+/*N*/ }
+/*N*/ rStrm << (BYTE) GetProp()
+/*N*/ << (short) nEsc;
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxEscapementItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nProp;
+/*N*/ short nEsc;
+/*N*/ rStrm >> nProp >> nEsc;
+/*N*/ return new SvxEscapementItem( nEsc, nProp, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxEscapementItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return SVX_ESCAPEMENT_END; // SVX_ESCAPEMENT_SUBSCRIPT + 1
+/*?*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxEscapementItem::GetEnumValue() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 //STRIP001 if ( nEsc < 0 )
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ void SvxEscapementItem::SetEnumValue( USHORT nVal )
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 SetEscapement( (const SvxEscapement)nVal );
+/*?*/ }
+
+/*-----------------13.03.98 17:05-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxEscapementItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_ESC:
+/*N*/ rVal <<= (sal_Int16)(nEsc);
+/*N*/ break;
+/*N*/ case MID_ESC_HEIGHT:
+/*N*/ rVal <<= (sal_Int8)(nProp);
+/*N*/ break;
+/*N*/ case MID_AUTO_ESC:
+/*?*/ rVal = Bool2Any(DFLT_ESC_AUTO_SUB == nEsc || DFLT_ESC_AUTO_SUPER == nEsc);
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------13.03.98 17:05-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxEscapementItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_ESC:
+/*N*/ {
+/*N*/ sal_Int16 nVal;
+/*N*/ if( (rVal >>= nVal) && (Abs(nVal) <= 101))
+/*N*/ nEsc = nVal;
+/*N*/ else
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_ESC_HEIGHT:
+/*N*/ {
+/*N*/ sal_Int8 nVal;
+/*N*/ if( (rVal >>= nVal) && (nVal <= 100))
+/*N*/ nProp = nVal;
+/*N*/ else
+/*N*/ return sal_False;
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_AUTO_ESC:
+/*N*/ {
+/*?*/ BOOL bVal = Any2Bool(rVal);
+/*?*/ if(bVal)
+/*?*/ {
+/*?*/ if(nEsc < 0)
+/*?*/ nEsc = DFLT_ESC_AUTO_SUB;
+/*?*/ else
+/*?*/ nEsc = DFLT_ESC_AUTO_SUPER;
+/*?*/ }
+/*?*/ else
+/*?*/ if(DFLT_ESC_AUTO_SUPER == nEsc )
+/*?*/ --nEsc;
+/*?*/ else if(DFLT_ESC_AUTO_SUB == nEsc)
+/*?*/ ++nEsc;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// class SvxLanguageItem -------------------------------------------------
+
+/*N*/ SvxLanguageItem::SvxLanguageItem( const LanguageType eLang, const USHORT nId )
+/*N*/ : SfxEnumItem( nId , eLang )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*?*/ USHORT SvxLanguageItem::GetValueCount() const
+/*?*/ {
+/*?*/ DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001 return LANGUAGE_COUNT; // aus tlintl.hxx
+/*?*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLanguageItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxLanguageItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxLanguageItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (USHORT) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxLanguageItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ USHORT nValue;
+/*N*/ rStrm >> nValue;
+/*N*/ return new SvxLanguageItem( (LanguageType)nValue, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+/*-----------------14.03.98 14:13-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxLanguageItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_LANG_INT: // for basic conversions!
+/*?*/ rVal <<= (sal_Int16)(GetValue());
+/*N*/ break;
+/*N*/ case MID_LANG_LOCALE:
+/*N*/ lang::Locale aRet( MsLangId::convertLanguageToLocale( GetValue() ));
+/*N*/ rVal <<= aRet;
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+/*-----------------14.03.98 14:13-------------------
+
+--------------------------------------------------*/
+/*N*/ bool SvxLanguageItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch(nMemberId)
+/*N*/ {
+/*N*/ case MID_LANG_INT: // for basic conversions!
+/*N*/ {
+/*?*/ sal_Int32 nValue;
+/*?*/ if(!(rVal >>= nValue))
+/*?*/ return sal_False;
+/*?*/
+/*?*/ SetValue((sal_Int16)nValue);
+/*N*/ }
+/*N*/ break;
+/*N*/ case MID_LANG_LOCALE:
+/*N*/ {
+/*N*/ lang::Locale aLocale;
+/*N*/ if(!(rVal >>= aLocale))
+/*N*/ return sal_False;
+/*N*/
+/*N*/ if (aLocale.Language.getLength() || aLocale.Country.getLength())
+/*N*/ SetValue(MsLangId::convertIsoNamesToLanguage( aLocale.Language, aLocale.Country ));
+/*N*/ else
+/*N*/ SetValue(LANGUAGE_NONE);
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+// class SvxNoLinebreakItem ----------------------------------------------
+/*N*/ SvxNoLinebreakItem::SvxNoLinebreakItem( const sal_Bool bBreak, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bBreak )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// class SvxNoHyphenItem -------------------------------------------------
+
+/*N*/ SvxNoHyphenItem::SvxNoHyphenItem( const sal_Bool bHyphen, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId , bHyphen )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+/*
+ * Dummy-Item fuer ToolBox-Controls:
+ *
+ */
+
+// -----------------------------------------------------------------------
+// class SvxLineColorItem (== SvxColorItem)
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+
+// class SvxBlinkItem -------------------------------------------------
+
+
+/*N*/ SvxBlinkItem::SvxBlinkItem( const sal_Bool bBlink, const USHORT nId ) :
+/*N*/ SfxBoolItem( nId, bBlink )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBlinkItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxBlinkItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxBlinkItem::Store( SvStream& rStrm , USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (BYTE) GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxBlinkItem::Create(SvStream& rStrm, USHORT) const
+/*N*/ {
+/*N*/ BYTE nState;
+/*N*/ rStrm >> nState;
+/*N*/ return new SvxBlinkItem( nState, Which() );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// class SvxEmphaisMarkItem ---------------------------------------------------
+
+/*N*/ SvxEmphasisMarkItem::SvxEmphasisMarkItem( const FontEmphasisMark nValue,
+/*N*/ const USHORT nId )
+/*N*/ : SfxUInt16Item( nId, nValue )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxEmphasisMarkItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxEmphasisMarkItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvStream& SvxEmphasisMarkItem::Store( SvStream& rStrm,
+/*N*/ USHORT nItemVersion ) const
+/*N*/ {
+/*N*/ rStrm << (sal_uInt16)GetValue();
+/*N*/ return rStrm;
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxEmphasisMarkItem::Create( SvStream& rStrm, USHORT ) const
+/*N*/ {
+/*N*/ sal_uInt16 nValue;
+/*N*/ rStrm >> nValue;
+/*N*/ return new SvxEmphasisMarkItem( (FontEmphasisMark)nValue, Which() );
+/*N*/ }
+
+//------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ bool SvxEmphasisMarkItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_EMPHASIS:
+/*N*/ {
+/*N*/ sal_Int16 nValue = GetValue();
+/*N*/ sal_Int16 nRet = 0;
+/*N*/ switch(nValue & EMPHASISMARK_STYLE)
+/*N*/ {
+/*N*/ case EMPHASISMARK_NONE : nRet = FontEmphasis::NONE; break;
+/*?*/ case EMPHASISMARK_DOT : nRet = FontEmphasis::DOT_ABOVE; break;
+/*?*/ case EMPHASISMARK_CIRCLE : nRet = FontEmphasis::CIRCLE_ABOVE; break;
+/*?*/ case EMPHASISMARK_DISC : nRet = FontEmphasis::DISK_ABOVE; break;
+/*?*/ case EMPHASISMARK_ACCENT : nRet = FontEmphasis::ACCENT_ABOVE; break;
+/*N*/ }
+/*N*/ if(nRet && nValue & EMPHASISMARK_POS_BELOW)
+/*N*/ nRet += 10;
+/*N*/ rVal <<= nRet;
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return sal_True;
+/*N*/ }
+
+/*N*/ bool SvxEmphasisMarkItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_EMPHASIS:
+/*N*/ {
+/*N*/ sal_Int32 nValue = -1;
+/*N*/ rVal >>= nValue;
+/*N*/ switch(nValue)
+/*N*/ {
+/*N*/ case FontEmphasis::NONE : nValue = EMPHASISMARK_NONE; break;
+/*?*/ case FontEmphasis::DOT_ABOVE : nValue = EMPHASISMARK_DOT|EMPHASISMARK_POS_ABOVE; break;
+/*?*/ case FontEmphasis::CIRCLE_ABOVE: nValue = EMPHASISMARK_CIRCLE|EMPHASISMARK_POS_ABOVE; break;
+/*?*/ case FontEmphasis::DISK_ABOVE : nValue = EMPHASISMARK_DISC|EMPHASISMARK_POS_ABOVE; break;
+/*?*/ case FontEmphasis::ACCENT_ABOVE: nValue = EMPHASISMARK_ACCENT|EMPHASISMARK_POS_ABOVE; break;
+/*?*/ case FontEmphasis::DOT_BELOW : nValue = EMPHASISMARK_DOT|EMPHASISMARK_POS_BELOW; break;
+/*?*/ case FontEmphasis::CIRCLE_BELOW: nValue = EMPHASISMARK_CIRCLE|EMPHASISMARK_POS_BELOW; break;
+/*?*/ case FontEmphasis::DISK_BELOW : nValue = EMPHASISMARK_DISC|EMPHASISMARK_POS_BELOW; break;
+/*?*/ case FontEmphasis::ACCENT_BELOW: nValue = EMPHASISMARK_ACCENT|EMPHASISMARK_POS_BELOW; break;
+/*?*/ default: return sal_False;
+/*N*/ }
+/*N*/ SetValue( (sal_Int16)nValue );
+/*N*/ }
+/*N*/ break;
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+/*N*/ USHORT SvxEmphasisMarkItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxEmphasisMarkItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+/*************************************************************************
+|* class SvxTwoLinesItem
+*************************************************************************/
+
+/*N*/ SvxTwoLinesItem::SvxTwoLinesItem( sal_Bool bFlag, sal_Unicode nStartBracket,
+/*N*/ sal_Unicode nEndBracket, sal_uInt16 nW )
+/*N*/ : SfxPoolItem( nW ),
+/*N*/ bOn( bFlag ), cStartBracket( nStartBracket ), cEndBracket( nEndBracket )
+/*N*/ {
+/*N*/ }
+
+/*NBFF*/ SvxTwoLinesItem::SvxTwoLinesItem( const SvxTwoLinesItem& rAttr )
+/*NBFF*/ : SfxPoolItem( rAttr.Which() ),
+/*NBFF*/ bOn( rAttr.bOn ), cStartBracket( rAttr.cStartBracket ),
+/*NBFF*/ cEndBracket( rAttr.cEndBracket )
+/*NBFF*/ {
+/*NBFF*/ }
+
+/*N*/ SvxTwoLinesItem::~SvxTwoLinesItem()
+/*N*/ {
+/*N*/ }
+
+/*?*/ int SvxTwoLinesItem::operator==( const SfxPoolItem& rAttr ) const
+/*?*/ {
+/*NFFF*/ DBG_ASSERT( SfxPoolItem::operator==( rAttr ), "not equal attribute types" );
+/*NBFF*/ return bOn == ((SvxTwoLinesItem&)rAttr).bOn &&
+/*NBFF*/ cStartBracket == ((SvxTwoLinesItem&)rAttr).cStartBracket &&
+/*NBFF*/ cEndBracket == ((SvxTwoLinesItem&)rAttr).cEndBracket;
+/*?*/ }
+
+/*?*/ SfxPoolItem* SvxTwoLinesItem::Clone( SfxItemPool* ) const
+/*?*/ {
+/*NBFF*/ return new SvxTwoLinesItem( *this );
+/*?*/ }
+
+/*NBFF*/ bool SvxTwoLinesItem::QueryValue( ::com::sun::star::uno::Any& rVal,
+/*NBFF*/ BYTE nMemberId ) const
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*NBFF*/ nMemberId &= ~CONVERT_TWIPS;
+/*NBFF*/ sal_Bool bRet = sal_True;
+/*NBFF*/ switch( nMemberId )
+/*NBFF*/ {
+/*NBFF*/ case MID_TWOLINES:
+/*NBFF*/ rVal = Bool2Any( bOn );
+/*NBFF*/ break;
+/*NBFF*/ case MID_START_BRACKET:
+/*NBFF*/ {
+/*NBFF*/ OUString s;
+/*NBFF*/ if( cStartBracket )
+/*NBFF*/ s = OUString( cStartBracket );
+/*NBFF*/ rVal <<= s;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ case MID_END_BRACKET:
+/*NBFF*/ {
+/*NBFF*/ OUString s;
+/*NBFF*/ if( cEndBracket )
+/*NBFF*/ s = OUString( cEndBracket );
+/*NBFF*/ rVal <<= s;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ default:
+/*NBFF*/ bRet = sal_False;
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ return bRet;
+/*NBFF*/ }
+
+/*NBFF*/ bool SvxTwoLinesItem::PutValue( const ::com::sun::star::uno::Any& rVal,
+/*NBFF*/ BYTE nMemberId )
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*NBFF*/ nMemberId &= ~CONVERT_TWIPS;
+/*NBFF*/ sal_Bool bRet = sal_False;
+/*NBFF*/ OUString s;
+/*NBFF*/ switch( nMemberId )
+/*NBFF*/ {
+/*NBFF*/ case MID_TWOLINES:
+/*NBFF*/ bOn = Any2Bool( rVal );
+/*NBFF*/ bRet = sal_True;
+/*NBFF*/ break;
+/*NBFF*/ case MID_START_BRACKET:
+/*NBFF*/ if( rVal >>= s )
+/*NBFF*/ {
+/*NBFF*/ cStartBracket = s.getLength() ? s[ 0 ] : 0;
+/*NBFF*/ bRet = sal_True;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ case MID_END_BRACKET:
+/*NBFF*/ if( rVal >>= s )
+/*NBFF*/ {
+/*NBFF*/ cEndBracket = s.getLength() ? s[ 0 ] : 0;
+/*NBFF*/ bRet = sal_True;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ return bRet;
+/*NBFF*/ }
+
+/*NBFF*/ SfxItemPresentation SvxTwoLinesItem::GetPresentation( SfxItemPresentation ePres,
+/*NBFF*/ SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric,
+/*NBFF*/ String &rText, const ::IntlWrapper* pIntl ) const
+/*NBFF*/ {
+/*NBFF*/ switch( ePres )
+/*NBFF*/ {
+/*NBFF*/ case SFX_ITEM_PRESENTATION_NONE:
+/*NBFF*/ rText.Erase();
+/*NBFF*/ break;
+/*NBFF*/ case SFX_ITEM_PRESENTATION_NAMELESS:
+/*NBFF*/ case SFX_ITEM_PRESENTATION_COMPLETE:
+/*NBFF*/ {
+/*NBFF*/ if( !GetValue() )
+/*NBFF*/ rText = SVX_RESSTR( RID_SVXITEMS_TWOLINES_OFF );
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ rText = SVX_RESSTR( RID_SVXITEMS_TWOLINES );
+/*NBFF*/ if( GetStartBracket() )
+/*NBFF*/ rText.Insert( GetStartBracket(), 0 );
+/*NBFF*/ if( GetEndBracket() )
+/*NBFF*/ rText += GetEndBracket();
+/*NBFF*/ }
+/*NBFF*/ return ePres;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ return SFX_ITEM_PRESENTATION_NONE;
+/*NBFF*/ }
+
+
+/*NBFF*/ SfxPoolItem* SvxTwoLinesItem::Create( SvStream & rStrm, USHORT nVer) const
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bOn;
+/*NBFF*/ sal_Unicode cStart, cEnd;
+/*NBFF*/ rStrm >> bOn >> cStart >> cEnd;
+/*NBFF*/ return new SvxTwoLinesItem( bOn, cStart, cEnd, Which() );
+/*NBFF*/ }
+
+/*NBFF*/ SvStream& SvxTwoLinesItem::Store(SvStream & rStrm, USHORT nIVer) const
+/*NBFF*/ {
+/*NBFF*/ rStrm << GetValue() << GetStartBracket() << GetEndBracket();
+/*NBFF*/ return rStrm;
+/*NBFF*/ }
+
+/*N*/ USHORT SvxTwoLinesItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_40==nFFVer ||
+/*N*/ SOFFICE_FILEFORMAT_50==nFFVer,
+/*N*/ "SvxTwoLinesItem: Gibt es ein neues Fileformat?" );
+/*N*/
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+/*************************************************************************
+|* class SvxCharRotateItem
+*************************************************************************/
+
+/*N*/ SvxCharRotateItem::SvxCharRotateItem( sal_uInt16 nValue,
+/*N*/ sal_Bool bFitIntoLine,
+/*N*/ const sal_uInt16 nW )
+/*N*/ : SfxUInt16Item( nW, nValue ), bFitToLine( bFitIntoLine )
+/*N*/ {
+/*N*/ }
+
+/*NBFF*/ SfxPoolItem* SvxCharRotateItem::Clone( SfxItemPool* ) const
+/*NBFF*/ {
+/*NBFF*/ return new SvxCharRotateItem( GetValue(), IsFitToLine(), Which() );
+/*NBFF*/ }
+
+/*NBFF*/ SfxPoolItem* SvxCharRotateItem::Create( SvStream& rStrm, USHORT ) const
+/*NBFF*/ {
+/*NBFF*/ sal_uInt16 nVal;
+/*NBFF*/ sal_Bool b;
+/*NBFF*/ rStrm >> nVal >> b;
+/*NBFF*/ return new SvxCharRotateItem( nVal, b, Which() );
+/*NBFF*/ }
+
+/*NBFF*/ SvStream& SvxCharRotateItem::Store( SvStream & rStrm, USHORT ) const
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bFlag = IsFitToLine();
+/*NBFF*/ rStrm << GetValue() << bFlag;
+/*NBFF*/ return rStrm;
+/*NBFF*/ }
+
+/*N*/ USHORT SvxCharRotateItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+/*NBFF*/ SfxItemPresentation SvxCharRotateItem::GetPresentation(
+/*NBFF*/ SfxItemPresentation ePres,
+/*NBFF*/ SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric,
+/*NBFF*/ String &rText, const ::IntlWrapper* ) const
+/*NBFF*/ {
+/*NBFF*/ switch( ePres )
+/*NBFF*/ {
+/*NBFF*/ case SFX_ITEM_PRESENTATION_NONE:
+/*NBFF*/ rText.Erase();
+/*NBFF*/ break;
+/*NBFF*/ case SFX_ITEM_PRESENTATION_NAMELESS:
+/*NBFF*/ case SFX_ITEM_PRESENTATION_COMPLETE:
+/*NBFF*/ {
+/*NBFF*/ if( !GetValue() )
+/*NBFF*/ rText = SVX_RESSTR( RID_SVXITEMS_CHARROTATE_OFF );
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ rText = SVX_RESSTR( RID_SVXITEMS_CHARROTATE );
+/*NBFF*/ rText.SearchAndReplaceAscii( "$(ARG1)",
+/*NBFF*/ String::CreateFromInt32( GetValue() / 10 ));
+/*NBFF*/ if( IsFitToLine() )
+/*NBFF*/ rText += SVX_RESSTR( RID_SVXITEMS_CHARROTATE_FITLINE );
+/*NBFF*/ }
+/*NBFF*/ return ePres;
+/*NBFF*/ }
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ return SFX_ITEM_PRESENTATION_NONE;
+/*NBFF*/ }
+
+/*NBFF*/ bool SvxCharRotateItem::QueryValue( ::com::sun::star::uno::Any& rVal,
+/*NBFF*/ BYTE nMemberId ) const
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*NBFF*/ nMemberId &= ~CONVERT_TWIPS;
+/*NBFF*/ sal_Bool bRet = sal_True;
+/*NBFF*/ switch( nMemberId )
+/*NBFF*/ {
+/*NBFF*/ case MID_ROTATE:
+/*NBFF*/ rVal <<= (sal_Int16)GetValue();
+/*NBFF*/ break;
+/*NBFF*/ case MID_FITTOLINE:
+/*NBFF*/ rVal = Bool2Any( IsFitToLine() );
+/*NBFF*/ break;
+/*NBFF*/ default:
+/*NBFF*/ bRet = sal_False;
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ return bRet;
+/*NBFF*/ }
+
+/*NBFF*/ bool SvxCharRotateItem::PutValue( const ::com::sun::star::uno::Any& rVal,
+/*NBFF*/ BYTE nMemberId )
+/*NBFF*/ {
+/*NBFF*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*NBFF*/ nMemberId &= ~CONVERT_TWIPS;
+/*NBFF*/ sal_Bool bRet = sal_True;
+/*NBFF*/ sal_Int16 nVal;
+/*NBFF*/ switch( nMemberId )
+/*NBFF*/ {
+/*NBFF*/ case MID_ROTATE:
+/*NBFF*/ rVal >>= nVal;
+/*NBFF*/ if(!nVal || 900 == nVal || 2700 == nVal)
+/*NBFF*/ SetValue( (USHORT)nVal );
+/*NBFF*/ else
+/*NBFF*/ bRet = sal_False;
+/*NBFF*/ break;
+/*NBFF*/
+/*NBFF*/ case MID_FITTOLINE:
+/*NBFF*/ SetFitToLine( Any2Bool( rVal ) );
+/*NBFF*/ break;
+/*NBFF*/ default:
+/*NBFF*/ bRet = sal_False;
+/*NBFF*/ }
+/*NBFF*/ return bRet;
+/*NBFF*/ }
+
+/*NBFF*/ int SvxCharRotateItem::operator==( const SfxPoolItem& rItem ) const
+/*NBFF*/ {
+/*NBFF*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+/*NBFF*/ return SfxUInt16Item::operator==( rItem ) &&
+/*NBFF*/ IsFitToLine() == ((const SvxCharRotateItem&)rItem).IsFitToLine();
+/*NBFF*/ }
+
+
+/*************************************************************************
+|* class SvxCharScaleItem
+*************************************************************************/
+
+/*N*/ SvxCharScaleWidthItem::SvxCharScaleWidthItem( sal_uInt16 nValue,
+/*N*/ const sal_uInt16 nW )
+/*N*/ : SfxUInt16Item( nW, nValue )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxCharScaleWidthItem::Clone( SfxItemPool* ) const
+/*N*/ {
+/*N*/ return new SvxCharScaleWidthItem( GetValue(), Which() );
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxCharScaleWidthItem::Create( SvStream& rStrm, USHORT ) const
+/*N*/ {
+/*N*/ sal_uInt16 nVal;
+/*N*/ rStrm >> nVal;
+/*N*/ SvxCharScaleWidthItem* pItem = new SvxCharScaleWidthItem( nVal, Which() );
+/*N*/
+/*N*/ if ( Which() == EE_CHAR_FONTWIDTH )
+/*N*/ {
+/*N*/ // #87271#: Was a SvxFontWidthItem in 5.2
+/*N*/ // USHORT nFixWidth, USHORT nPropWidth.
+/*N*/ // nFixWidth has never been used...
+/*N*/ rStrm >> nVal;
+/*N*/ USHORT nTest;
+/*N*/ rStrm >> nTest;
+/*N*/ if ( nTest == 0x1234 )
+/*N*/ pItem->SetValue( nVal );
+/*N*/ else
+/*N*/ rStrm.SeekRel( -2*(long)sizeof(sal_uInt16) );
+/*N*/ }
+/*N*/
+/*N*/ return pItem;
+/*N*/ }
+
+/*N*/ SvStream& SvxCharScaleWidthItem::Store( SvStream& rStream, USHORT nVer ) const
+/*N*/ {
+/*N*/ SvStream& rRet = SfxUInt16Item::Store( rStream, nVer );
+/*N*/ if ( Which() == EE_CHAR_FONTWIDTH )
+/*N*/ {
+/*N*/ // see comment in Create()....
+/*N*/ rRet.SeekRel( -1*(long)sizeof(USHORT) );
+/*N*/ rRet << (USHORT)0;
+/*N*/ rRet << GetValue();
+/*N*/ // Really ugly, but not a problem for reading the doc in 5.2
+/*N*/ rRet << (USHORT)0x1234;
+/*N*/ }
+/*N*/ return rRet;
+/*N*/ }
+
+
+/*N*/ USHORT SvxCharScaleWidthItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+
+/*N*/ bool SvxCharScaleWidthItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
+/*N*/ {
+/*N*/ // SfxUInt16Item::QueryValue returns sal_Int32 in Any now... (srx642w)
+/*N*/ // where we still want this to be a sal_Int16
+/*N*/ sal_Int16 nValue;
+/*N*/ if (rVal >>= nValue)
+/*N*/ {
+/*N*/ SetValue( (UINT16) nValue );
+/*N*/ return TRUE;
+/*N*/ }
+/*N*/
+/*N*/ DBG_ERROR( "SvxCharScaleWidthItem::PutValue - Wrong type!" );
+/*N*/ return FALSE;
+/*N*/ }
+
+/*N*/ bool SvxCharScaleWidthItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ // SfxUInt16Item::QueryValue returns sal_Int32 in Any now... (srx642w)
+/*N*/ // where we still want this to be a sal_Int16
+/*N*/ rVal <<= (sal_Int16)GetValue();
+/*N*/ return TRUE;
+/*N*/ }
+
+/*************************************************************************
+|* class SvxCharReliefItem
+*************************************************************************/
+
+/*N*/ SvxCharReliefItem::SvxCharReliefItem( FontRelief eValue,
+/*N*/ const sal_uInt16 nId )
+/*N*/ : SfxEnumItem( nId, eValue )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxCharReliefItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxCharReliefItem( *this );
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxCharReliefItem::Create(SvStream & rStrm, USHORT) const
+/*N*/ {
+/*N*/ sal_uInt16 nVal;
+/*N*/ rStrm >> nVal;
+/*N*/ return new SvxCharReliefItem( (FontRelief)nVal, Which() );
+/*N*/ }
+
+/*N*/ SvStream& SvxCharReliefItem::Store(SvStream & rStrm, USHORT nIVer) const
+/*N*/ {
+/*N*/ sal_uInt16 nVal = GetValue();
+/*N*/ rStrm << nVal;
+/*N*/ return rStrm;
+/*N*/ }
+
+/*N*/ USHORT SvxCharReliefItem::GetVersion( USHORT nFFVer ) const
+/*N*/ {
+/*N*/ return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
+/*N*/ }
+
+/*N*/ String SvxCharReliefItem::GetValueTextByPos( USHORT nPos ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( RID_SVXITEMS_RELIEF_ENGRAVED - RID_SVXITEMS_RELIEF_NONE,
+/*N*/ "enum overflow" );
+/*N*/ return String( SVX_RES( RID_SVXITEMS_RELIEF_BEGIN + nPos ));
+/*N*/ }
+
+/*N*/ USHORT SvxCharReliefItem::GetValueCount() const
+/*N*/ {
+/*N*/ return RID_SVXITEMS_RELIEF_ENGRAVED - RID_SVXITEMS_RELIEF_NONE;
+/*N*/ }
+
+/*N*/ SfxItemPresentation SvxCharReliefItem::GetPresentation
+/*N*/ (
+/*N*/ SfxItemPresentation ePres,
+/*N*/ SfxMapUnit eCoreUnit,
+/*N*/ SfxMapUnit ePresUnit,
+/*N*/ XubString& rText, const ::IntlWrapper *pIntl
+/*N*/ ) const
+/*N*/ {
+/*?*/ SfxItemPresentation eRet = ePres;
+/*?*/ switch( ePres )
+/*?*/ {
+/*?*/ case SFX_ITEM_PRESENTATION_NONE:
+/*?*/ rText.Erase();
+/*?*/ break;
+/*?*/
+/*?*/ case SFX_ITEM_PRESENTATION_NAMELESS:
+/*?*/ case SFX_ITEM_PRESENTATION_COMPLETE:
+/*?*/ rText = GetValueTextByPos( GetValue() );
+/*?*/ break;
+/*?*/
+/*?*/ default:
+/*?*/ eRet = SFX_ITEM_PRESENTATION_NONE;
+/*?*/ }
+/*?*/ return eRet;
+/*N*/ }
+
+/*N*/ bool SvxCharReliefItem::PutValue( const ::com::sun::star::uno::Any& rVal,
+/*N*/ BYTE nMemberId )
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_RELIEF:
+/*N*/ {
+/*N*/ sal_Int16 nVal = -1;
+/*N*/ rVal >>= nVal;
+/*N*/ if(nVal >= 0 && nVal <= RELIEF_ENGRAVED)
+/*N*/ SetValue( (FontRelief)nVal );
+/*N*/ else
+/*N*/ bRet = sal_False;
+/*N*/ }
+/*N*/ break;
+/*N*/ default:
+/*N*/ bRet = sal_False;
+/*N*/ break;
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+/*N*/ bool SvxCharReliefItem::QueryValue( ::com::sun::star::uno::Any& rVal,
+/*N*/ BYTE nMemberId ) const
+/*N*/ {
+/*N*/ sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+/*N*/ nMemberId &= ~CONVERT_TWIPS;
+/*N*/ sal_Bool bRet = sal_True;
+/*N*/ switch( nMemberId )
+/*N*/ {
+/*N*/ case MID_RELIEF:
+/*N*/ rVal <<= (sal_Int16)GetValue();
+/*N*/ break;
+/*N*/ default:
+/*N*/ bRet = sal_False;
+/*N*/ break;
+/*N*/ }
+/*N*/ return bRet;
+/*N*/ }
+
+/*************************************************************************
+|* class SvxScriptTypeItemItem
+*************************************************************************/
+
+
+/*************************************************************************
+|* class SvxScriptSetItem
+*************************************************************************/
+
+/*N*/ SfxPoolItem* SvxScriptSetItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return NULL;//STRIP001
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxScriptSetItem::Create( SvStream &, USHORT ) const
+/*N*/ {
+/*N*/ return 0;
+/*N*/ }
+
+/*N*/ void GetDefaultFonts( SvxFontItem& rLatin, SvxFontItem& rAsian, SvxFontItem& rComplex )
+/*N*/ {
+/*N*/ const USHORT nItemCnt = 3;
+/*N*/
+/*N*/ static struct
+/*N*/ {
+/*N*/ USHORT nFontType;
+/*N*/ USHORT nLanguage;
+/*N*/ }
+/*N*/ aOutTypeArr[ nItemCnt ] =
+/*N*/ {
+/*N*/ { DEFAULTFONT_LATIN_TEXT, LANGUAGE_ENGLISH_US },
+/*N*/ { DEFAULTFONT_CJK_TEXT, LANGUAGE_ENGLISH_US },
+/*N*/ { DEFAULTFONT_CTL_TEXT, LANGUAGE_ARABIC_SAUDI_ARABIA }
+/*N*/ };
+/*N*/
+/*N*/ SvxFontItem* aItemArr[ nItemCnt ] = { &rLatin, &rAsian, &rComplex };
+/*N*/
+/*N*/ for ( USHORT n = 0; n < nItemCnt; ++n )
+/*N*/ {
+/*N*/ Font aFont( OutputDevice::GetDefaultFont( aOutTypeArr[ n ].nFontType,
+/*N*/ aOutTypeArr[ n ].nLanguage,
+/*N*/ DEFAULTFONT_FLAGS_ONLYONE, 0 ) );
+/*N*/ SvxFontItem* pItem = aItemArr[ n ];
+/*N*/ pItem->GetFamily() = aFont.GetFamily();
+/*N*/ pItem->GetFamilyName() = aFont.GetName();
+/*N*/ pItem->GetStyleName().Erase();
+/*N*/ pItem->GetPitch() = aFont.GetPitch();
+/*N*/ pItem->GetCharSet() = aFont.GetCharSet();
+/*N*/ }
+/*N*/ }
+
+
+/*N*/ USHORT GetI18NScriptTypeOfLanguage( USHORT nLang )
+/*N*/ {
+/*N*/ return GetI18NScriptType( SvtLanguageOptions::GetScriptTypeOfLanguage( nLang ) );
+/*N*/ }
+
+/*N*/ USHORT GetItemScriptType( short nI18NType )
+/*N*/ {
+/*N*/ switch ( nI18NType )
+/*N*/ {
+/*N*/ case i18n::ScriptType::LATIN: return SCRIPTTYPE_LATIN;
+/*?*/ case i18n::ScriptType::ASIAN: return SCRIPTTYPE_ASIAN;
+/*?*/ case i18n::ScriptType::COMPLEX: return SCRIPTTYPE_COMPLEX;
+/*N*/ }
+/*N*/ return 0;
+/*N*/ }
+
+/*N*/ short GetI18NScriptType( USHORT nItemType )
+/*N*/ {
+/*N*/ switch ( nItemType )
+/*N*/ {
+/*N*/ case SCRIPTTYPE_LATIN: return i18n::ScriptType::LATIN;
+/*?*/ case SCRIPTTYPE_ASIAN: return i18n::ScriptType::ASIAN;
+/*?*/ case SCRIPTTYPE_COMPLEX: return i18n::ScriptType::COMPLEX;
+/*N*/ }
+/*N*/ return 0;
+/*N*/ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_writingmodeitem.cxx b/binfilter/bf_svx/source/items/svx_writingmodeitem.cxx
new file mode 100644
index 000000000000..c42f9dba7526
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_writingmodeitem.cxx
@@ -0,0 +1,91 @@
+/* -*- 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 ---------------------------------------------------------------
+
+
+#include <bf_svx/xdef.hxx>
+
+#include "writingmodeitem.hxx"
+
+
+#include "svxitems.hrc"
+namespace binfilter {
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::text;
+
+// class SvxWritingModeItem -------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxWritingModeItem, SfxUInt16Item);
+
+/*N*/ SvxWritingModeItem::SvxWritingModeItem( WritingMode eValue, USHORT nWhich )
+/*N*/ : SfxUInt16Item( nWhich, (sal_uInt16)eValue )
+/*N*/ {
+/*N*/ }
+
+/*N*/ SvxWritingModeItem::~SvxWritingModeItem()
+/*N*/ {
+/*N*/ }
+
+/*N*/ int SvxWritingModeItem::operator==( const SfxPoolItem& rCmp ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rCmp), "unequal types" );
+/*N*/
+/*N*/ return GetValue() == ((SvxWritingModeItem&)rCmp).GetValue();
+/*N*/ }
+
+/*N*/ SfxPoolItem* SvxWritingModeItem::Clone( SfxItemPool * ) const
+/*N*/ {
+/*N*/ return new SvxWritingModeItem( *this );
+/*N*/ }
+
+
+
+/*N*/ USHORT SvxWritingModeItem::GetVersion( USHORT nFVer ) const
+/*N*/ {
+/*N*/ return USHRT_MAX;
+/*N*/ }
+
+
+
+/*N*/ bool SvxWritingModeItem::QueryValue( ::com::sun::star::uno::Any& rVal,
+/*N*/ BYTE ) const
+/*N*/ {
+/*N*/ rVal <<= (WritingMode)GetValue();
+/*N*/ return true;
+/*N*/ }
+
+/*N*/ SvxWritingModeItem& SvxWritingModeItem::operator=( const SvxWritingModeItem& rItem )
+/*N*/ {
+/*N*/ SetValue( rItem.GetValue() );
+/*N*/ return *this;
+/*N*/ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_xmlcnitm.cxx b/binfilter/bf_svx/source/items/svx_xmlcnitm.cxx
new file mode 100644
index 000000000000..17cdb6493815
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_xmlcnitm.cxx
@@ -0,0 +1,236 @@
+/* -*- 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 <com/sun/star/xml/AttributeData.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+
+#include <bf_xmloff/xmlcnimp.hxx>
+#include <bf_xmloff/unoatrcn.hxx>
+#include "xmlcnitm.hxx"
+namespace binfilter {
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::xml;
+
+using rtl::OUString;
+
+// ------------------------------------------------------------------------
+
+/*N*/ TYPEINIT1(SvXMLAttrContainerItem, SfxPoolItem);
+
+/*N*/ SvXMLAttrContainerItem::SvXMLAttrContainerItem( USHORT nWhich ) :
+/*N*/ SfxPoolItem( nWhich )
+/*N*/ {
+/*N*/ pImpl = new SvXMLAttrContainerData;
+/*N*/ }
+
+/*N*/ SvXMLAttrContainerItem::SvXMLAttrContainerItem(
+/*N*/ const SvXMLAttrContainerItem& rItem ) :
+/*N*/ SfxPoolItem( rItem )
+/*N*/ {
+/*N*/ pImpl = new SvXMLAttrContainerData( *rItem.pImpl );
+/*N*/ }
+
+/*N*/ SvXMLAttrContainerItem::~SvXMLAttrContainerItem()
+/*N*/ {
+/*N*/ delete pImpl;
+/*N*/ }
+
+/*N*/ int SvXMLAttrContainerItem::operator==( const SfxPoolItem& rItem ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( rItem.ISA(SvXMLAttrContainerItem),
+/*N*/ "SvXMLAttrContainerItem::operator ==(): Bad type");
+/*N*/ return *pImpl == *((const SvXMLAttrContainerItem&)rItem).pImpl;
+/*N*/ }
+
+
+
+/*N*/ USHORT SvXMLAttrContainerItem::GetVersion( USHORT nFileFormatVersion ) const
+/*N*/ {
+/*N*/ // This item should never be stored
+/*N*/ return USHRT_MAX;
+/*N*/ }
+
+/*N*/ bool SvXMLAttrContainerItem::QueryValue( ::com::sun::star::uno::Any& rVal, BYTE nMemberId ) const
+/*N*/ {
+/*N*/ Reference<XNameContainer> xContainer =
+/*N*/ new SvUnoAttributeContainer( new SvXMLAttrContainerData( *pImpl ) );
+/*N*/
+/*N*/ rVal.setValue( &xContainer, ::getCppuType((Reference<XNameContainer>*)0) );
+/*N*/ return true;
+/*N*/ }
+/*N*/ bool SvXMLAttrContainerItem::PutValue( const ::com::sun::star::uno::Any& rVal, BYTE nMemberId )
+/*NBFF*/{
+/*NBFF*/ Reference<XInterface> xRef;
+/*NBFF*/ SvUnoAttributeContainer* pContainer = NULL;
+/*NBFF*/
+/*NBFF*/ if( rVal.getValue() != NULL && rVal.getValueType().getTypeClass() == TypeClass_INTERFACE )
+/*NBFF*/ {
+/*NBFF*/ xRef = *(Reference<XInterface>*)rVal.getValue();
+/*NBFF*/ Reference<XUnoTunnel> xTunnel(xRef, UNO_QUERY);
+/*NBFF*/ if( xTunnel.is() )
+/*NBFF*/ pContainer = (SvUnoAttributeContainer*)xTunnel->getSomething(SvUnoAttributeContainer::getUnoTunnelId());
+/*NBFF*/ }
+/*NBFF*/
+/*NBFF*/ if( pContainer )
+/*NBFF*/ {
+/*NBFF*/ delete pImpl;
+/*NBFF*/ pImpl = new SvXMLAttrContainerData( * pContainer->GetContainerImpl() );
+/*NBFF*/ }
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ SvXMLAttrContainerData* pNewImpl = new SvXMLAttrContainerData;
+/*NBFF*/
+/*NBFF*/ try
+/*NBFF*/ {
+/*NBFF*/ Reference<XNameContainer> xContainer( xRef, UNO_QUERY );
+/*NBFF*/ if( !xContainer.is() )
+/*NBFF*/ return false;
+/*NBFF*/
+/*NBFF*/ const Sequence< OUString > aNameSequence( xContainer->getElementNames() );
+/*NBFF*/ const OUString* pNames = aNameSequence.getConstArray();
+/*NBFF*/ const INT32 nCount = aNameSequence.getLength();
+/*NBFF*/ Any aAny;
+/*NBFF*/ AttributeData* pData;
+/*NBFF*/
+/*NBFF*/ INT32 nAttr; for( nAttr = 0; nAttr < nCount; nAttr++ )
+/*NBFF*/ {
+/*NBFF*/ const OUString aName( *pNames++ );
+/*NBFF*/
+/*NBFF*/ aAny = xContainer->getByName( aName );
+/*NBFF*/ if( aAny.getValue() == NULL || aAny.getValueType() != ::getCppuType((AttributeData*)0) )
+/*NBFF*/ return false;
+/*NBFF*/
+/*NBFF*/ pData = (AttributeData*)aAny.getValue();
+/*NBFF*/ USHORT pos = aName.indexOf( sal_Unicode(':') );
+/*NBFF*/ if( pos != -1 )
+/*NBFF*/ {
+/*NBFF*/ const OUString aPrefix( aName.copy( 0, pos ));
+/*NBFF*/ const OUString aLName( aName.copy( pos+1 ));
+/*NBFF*/
+/*NBFF*/ if( pData->Namespace.getLength() == 0 )
+/*NBFF*/ {
+/*NBFF*/ if( !pNewImpl->AddAttr( aPrefix, aLName, pData->Value ) )
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ if( !pNewImpl->AddAttr( aPrefix, pData->Namespace, aLName, pData->Value ) )
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ }
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ if( !pNewImpl->AddAttr( aName, pData->Value ) )
+/*NBFF*/ break;
+/*NBFF*/ }
+/*NBFF*/ }
+/*NBFF*/
+/*NBFF*/ if( nAttr == nCount )
+/*NBFF*/ {
+/*NBFF*/ delete pImpl;
+/*NBFF*/ pImpl = pNewImpl;
+/*NBFF*/ return false;
+/*NBFF*/ }
+/*NBFF*/ else
+/*NBFF*/ {
+/*NBFF*/ delete pNewImpl;
+/*NBFF*/ }
+/*NBFF*/ }
+/*NBFF*/ catch(...)
+/*NBFF*/ {
+/*NBFF*/ delete pNewImpl;
+/*NBFF*/ return false;
+/*NBFF*/ }
+/*NBFF*/ }
+/*NBFF*/ return true;
+/*N*/ }
+
+
+/*N*/ BOOL SvXMLAttrContainerItem::AddAttr( const OUString& rLName,
+/*N*/ const OUString& rValue )
+/*N*/ {
+/*N*/ return pImpl->AddAttr( rLName, rValue );
+/*N*/ }
+
+/*N*/ BOOL SvXMLAttrContainerItem::AddAttr( const OUString& rPrefix,
+/*N*/ const OUString& rNamespace, const OUString& rLName,
+/*N*/ const OUString& rValue )
+/*N*/ {
+/*N*/ return pImpl->AddAttr( rPrefix, rNamespace, rLName, rValue );
+/*N*/ }
+
+/*N*/ USHORT SvXMLAttrContainerItem::GetAttrCount() const
+/*N*/ {
+/*N*/ return (USHORT)pImpl->GetAttrCount();
+/*N*/ }
+
+/*N*/ OUString SvXMLAttrContainerItem::GetAttrNamespace( USHORT i ) const
+/*N*/ {
+/*N*/ return pImpl->GetAttrNamespace( i );
+/*N*/ }
+
+/*N*/ OUString SvXMLAttrContainerItem::GetAttrPrefix( USHORT i ) const
+/*N*/ {
+/*N*/ return pImpl->GetAttrPrefix( i );
+/*N*/ }
+
+/*N*/ const OUString& SvXMLAttrContainerItem::GetAttrLName( USHORT i ) const
+/*N*/ {
+/*N*/ return pImpl->GetAttrLName( i );
+/*N*/ }
+
+/*N*/ const OUString& SvXMLAttrContainerItem::GetAttrValue( USHORT i ) const
+/*N*/ {
+/*N*/ return pImpl->GetAttrValue( i );
+/*N*/ }
+
+
+/*N*/ USHORT SvXMLAttrContainerItem::GetFirstNamespaceIndex() const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001
+/*N*/ }
+
+/*N*/ USHORT SvXMLAttrContainerItem::GetNextNamespaceIndex( USHORT nIdx ) const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return 0;//STRIP001
+/*N*/ }
+
+/*N*/ const OUString& SvXMLAttrContainerItem::GetNamespace( USHORT i ) const
+/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return OUString::createFromAscii (""); //STRIP001
+/*N*/ }
+
+/*N*/ const OUString& SvXMLAttrContainerItem::GetPrefix( USHORT i ) const
+/*N*/ {
+/*N*/ DBG_BF_ASSERT(0, "STRIP"); return ::rtl::OUString::createFromAscii ("");//STRIP001 /*N*/ return pImpl->GetPrefix( i );
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/bf_svx/source/items/svx_zoomitem.cxx b/binfilter/bf_svx/source/items/svx_zoomitem.cxx
new file mode 100644
index 000000000000..a1b89b551aa1
--- /dev/null
+++ b/binfilter/bf_svx/source/items/svx_zoomitem.cxx
@@ -0,0 +1,98 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+#ifdef _MSC_VER
+#pragma hdrstop
+#endif
+
+#include "zoomitem.hxx"
+namespace binfilter {
+
+// -----------------------------------------------------------------------
+
+/*N*/ TYPEINIT1_AUTOFACTORY(SvxZoomItem,SfxUInt16Item);
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxZoomItem::SvxZoomItem
+/*N*/ (
+/*N*/ SvxZoomType eZoomType,
+/*N*/ sal_uInt16 nVal,
+/*N*/ sal_uInt16 nWhich
+/*N*/ )
+/*N*/ : SfxUInt16Item( nWhich, nVal ),
+/*N*/ nValueSet( SVX_ZOOM_ENABLE_ALL ),
+/*N*/ eType( eZoomType )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxZoomItem::SvxZoomItem( const SvxZoomItem& rOrig )
+/*N*/ : SfxUInt16Item( rOrig.Which(), rOrig.GetValue() ),
+/*N*/ nValueSet( rOrig.GetValueSet() ),
+/*N*/ eType( rOrig.GetType() )
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SvxZoomItem::~SvxZoomItem()
+/*N*/ {
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+/*N*/ SfxPoolItem* SvxZoomItem::Clone( SfxItemPool *pPool ) const
+/*N*/ {
+/*N*/ return new SvxZoomItem( *this );
+/*N*/ }
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+
+/*N*/ int SvxZoomItem::operator==( const SfxPoolItem& rAttr ) const
+/*N*/ {
+/*N*/ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
+/*N*/
+/*N*/ SvxZoomItem& rItem = (SvxZoomItem&)rAttr;
+/*N*/
+/*N*/ return ( GetValue() == rItem.GetValue() &&
+/*N*/ nValueSet == rItem.GetValueSet() &&
+/*N*/ eType == rItem.GetType() );
+/*N*/ }
+
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */