[ooo-build-commit] .: 4 commits - extensions/watchwindow patches/dev300

Kohei Yoshida kohei at kemper.freedesktop.org
Thu May 27 22:14:33 PDT 2010


 extensions/watchwindow/watchwindow-leave-ref-flags-alone.diff |   25 
 patches/dev300/apply                                          |   26 
 patches/dev300/calc-distributed-cell-text-cui.diff            |   12 
 patches/dev300/calc-distributed-cell-text-dbaccess.diff       |   27 
 patches/dev300/calc-distributed-cell-text-dev300-editeng.diff |  719 ----
 patches/dev300/calc-distributed-cell-text-dev300-svx.diff     |  616 ----
 patches/dev300/calc-distributed-cell-text-editeng.diff        | 1289 ++++++++
 patches/dev300/calc-distributed-cell-text-offapi.diff         |   16 
 patches/dev300/calc-distributed-cell-text-oox.diff            |   14 
 patches/dev300/calc-distributed-cell-text-reportdesign.diff   |   12 
 patches/dev300/calc-distributed-cell-text-sc-fix.diff         |   46 
 patches/dev300/calc-distributed-cell-text-sc-fix2.diff        |   60 
 patches/dev300/calc-distributed-cell-text-sc.diff             |  601 +++
 patches/dev300/calc-distributed-cell-text-svx.diff            | 1503 +++-------
 patches/dev300/calc-distributed-cell-text-sw.diff             |   12 
 patches/dev300/calc-distributed-cell-text-xmloff.diff         |   28 
 16 files changed, 2370 insertions(+), 2636 deletions(-)

New commits:
commit c4ac9be4cb2873f5f79dd496cc576958b1feead5
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Fri May 28 01:14:00 2010 -0400

    Reportdesign is also affected by the text justify class relocation.
    
    * patches/dev300/apply:
    * patches/dev300/calc-distributed-cell-text-reportdesign.diff:

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 75d9f95..c1e8841 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3546,6 +3546,7 @@ calc-distributed-cell-text-dbaccess.diff, kohei
 calc-distributed-cell-text-editeng.diff, kohei
 calc-distributed-cell-text-offapi.diff,  kohei
 calc-distributed-cell-text-oox.diff,     kohei
+calc-distributed-cell-text-reportdesign.diff, kohei
 calc-distributed-cell-text-sc.diff,      kohei
 calc-distributed-cell-text-svx.diff,     kohei
 calc-distributed-cell-text-sw.diff,      kohei
diff --git a/patches/dev300/calc-distributed-cell-text-reportdesign.diff b/patches/dev300/calc-distributed-cell-text-reportdesign.diff
new file mode 100644
index 0000000..19ec389
--- /dev/null
+++ b/patches/dev300/calc-distributed-cell-text-reportdesign.diff
@@ -0,0 +1,12 @@
+diff --git reportdesign/source/ui/misc/UITools.cxx reportdesign/source/ui/misc/UITools.cxx
+index 6217b40..563b552 100644
+--- reportdesign/source/ui/misc/UITools.cxx
++++ reportdesign/source/ui/misc/UITools.cxx
+@@ -69,6 +69,7 @@
+ #include <editeng/flstitem.hxx>
+ #include <editeng/akrnitem.hxx>
+ #include <editeng/colritem.hxx>
++#include <editeng/justifyitem.hxx>
+ #include <svx/drawitem.hxx>
+ #include <editeng/twolinesitem.hxx>
+ #include <editeng/charreliefitem.hxx>
commit fb09dbb1464bcf587c8f9c043d593177aaf03451
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Fri May 28 01:03:47 2010 -0400

    More modules affected by the text justify classes' relocation.
    
    * patches/dev300/apply:
    * patches/dev300/calc-distributed-cell-text-cui.diff:
    * patches/dev300/calc-distributed-cell-text-dbaccess.diff:

diff --git a/patches/dev300/apply b/patches/dev300/apply
index e4bad4b..75d9f95 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3541,13 +3541,15 @@ calc-formula-variable-sep-config-check-sfx2.diff, n#556142, i#106959, kohei
 calc-formula-variable-sep-config-check-sc.diff,   n#556142, i#106959, kohei
 
 # Distributed text alignment support for cell text.
+calc-distributed-cell-text-cui.diff,     kohei
+calc-distributed-cell-text-dbaccess.diff, kohei
 calc-distributed-cell-text-editeng.diff, kohei
-calc-distributed-cell-text-offapi.diff, kohei
-calc-distributed-cell-text-oox.diff,    kohei
-calc-distributed-cell-text-sc.diff,     kohei
-calc-distributed-cell-text-svx.diff,    kohei
-calc-distributed-cell-text-sw.diff,     kohei
-calc-distributed-cell-text-xmloff.diff, kohei
+calc-distributed-cell-text-offapi.diff,  kohei
+calc-distributed-cell-text-oox.diff,     kohei
+calc-distributed-cell-text-sc.diff,      kohei
+calc-distributed-cell-text-svx.diff,     kohei
+calc-distributed-cell-text-sw.diff,      kohei
+calc-distributed-cell-text-xmloff.diff,  kohei
 
 # Add a new sheet tab in Calc.
 calc-insert-new-sheet-tab-sc.diff,      kohei
diff --git a/patches/dev300/calc-distributed-cell-text-cui.diff b/patches/dev300/calc-distributed-cell-text-cui.diff
new file mode 100644
index 0000000..1640d9c
--- /dev/null
+++ b/patches/dev300/calc-distributed-cell-text-cui.diff
@@ -0,0 +1,12 @@
+diff --git cui/source/tabpages/align.cxx cui/source/tabpages/align.cxx
+index 0735c11..c37463e 100644
+--- cui/source/tabpages/align.cxx
++++ cui/source/tabpages/align.cxx
+@@ -40,6 +40,7 @@
+ 
+ #include <svx/algitem.hxx>
+ #include <editeng/frmdiritem.hxx>
++#include <editeng/justifyitem.hxx>
+ #include <dialmgr.hxx>
+ #include <svx/dlgutil.hxx>
+ #include <tools/shl.hxx>
diff --git a/patches/dev300/calc-distributed-cell-text-dbaccess.diff b/patches/dev300/calc-distributed-cell-text-dbaccess.diff
new file mode 100644
index 0000000..3c9cf46
--- /dev/null
+++ b/patches/dev300/calc-distributed-cell-text-dbaccess.diff
@@ -0,0 +1,27 @@
+diff --git dbaccess/source/ui/misc/UITools.cxx dbaccess/source/ui/misc/UITools.cxx
+index 8a6e16e..6a547a2 100644
+--- dbaccess/source/ui/misc/UITools.cxx
++++ dbaccess/source/ui/misc/UITools.cxx
+@@ -295,6 +295,8 @@
+ #include <connectivity/FValue.hxx>
+ #endif
+ 
++#include <editeng/justifyitem.hxx>
++
+ // .........................................................................
+ namespace dbaui
+ {
+diff --git dbaccess/util/makefile.mk dbaccess/util/makefile.mk
+index 8430b5e..69f62d1 100644
+--- dbaccess/util/makefile.mk
++++ dbaccess/util/makefile.mk
+@@ -128,7 +128,8 @@ SHL2STDLIBS= \
+         $(CPPULIB)				\
+         $(SO2LIB)				\
+         $(VOSLIB)				\
+-        $(SALLIB)
++        $(SALLIB) \
++	$(EDITENGLIB)
+         
+ .IF "$(GUI)"=="OS2"
+ SHL2STDLIBS+=	$(LB)$/i$(TARGET).lib
commit 3b5f4233683c96887c4133266a45be9c089abe5d
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Fri May 28 00:02:23 2010 -0400

    Fixed the calc distributed text alignment patches for dev300-m77.
    
    * patches/dev300/apply:
    * patches/dev300/calc-distributed-cell-text-dev300-editeng.diff:
    * patches/dev300/calc-distributed-cell-text-dev300-svx.diff:
    * patches/dev300/calc-distributed-cell-text-editeng.diff:
    * patches/dev300/calc-distributed-cell-text-offapi.diff:
    * patches/dev300/calc-distributed-cell-text-oox.diff:
    * patches/dev300/calc-distributed-cell-text-sc-fix.diff:
    * patches/dev300/calc-distributed-cell-text-sc-fix2.diff:
    * patches/dev300/calc-distributed-cell-text-sc.diff:
    * patches/dev300/calc-distributed-cell-text-svx.diff:
    * patches/dev300/calc-distributed-cell-text-sw.diff:
    * patches/dev300/calc-distributed-cell-text-xmloff.diff:

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 1c177c4..e4bad4b 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3541,18 +3541,13 @@ calc-formula-variable-sep-config-check-sfx2.diff, n#556142, i#106959, kohei
 calc-formula-variable-sep-config-check-sc.diff,   n#556142, i#106959, kohei
 
 # Distributed text alignment support for cell text.
-# FIXME dev300-m77 calc-distributed-cell-text-editeng.diff, kohei
-# FIXME dev300-m77 calc-distributed-cell-text-offapi.diff, kohei
-# FIXME dev300-m77 calc-distributed-cell-text-sc.diff,     kohei
-# FIXME dev300-m77 calc-distributed-cell-text-svx.diff,    kohei
-# FIXME dev300-m77 calc-distributed-cell-text-xmloff.diff, kohei
-# FIXME dev300-m77 calc-distributed-cell-text-oox.diff,    kohei
-
-# Adjust edit engine geometry to improve text rendering in asian vertical mode.
-# FIXME dev300-m77 calc-distributed-cell-text-sc-fix.diff, n#595625, kohei
-
-# Set the vertical state with the text object, to keep it in sync.
-# FIXME dev300-m77 calc-distributed-cell-text-sc-fix2.diff, n#597658, kohei
+calc-distributed-cell-text-editeng.diff, kohei
+calc-distributed-cell-text-offapi.diff, kohei
+calc-distributed-cell-text-oox.diff,    kohei
+calc-distributed-cell-text-sc.diff,     kohei
+calc-distributed-cell-text-svx.diff,    kohei
+calc-distributed-cell-text-sw.diff,     kohei
+calc-distributed-cell-text-xmloff.diff, kohei
 
 # Add a new sheet tab in Calc.
 calc-insert-new-sheet-tab-sc.diff,      kohei
@@ -3603,10 +3598,6 @@ calc-formula-r1c1-parser-fix.diff, n#604903, kohei
 
 system-mdds.diff, rengelha
 
-# Adjustment for the dev300 code base.
-# FIXME dev300-m77 calc-distributed-cell-text-dev300-editeng.diff, kohei
-# FIXME dev300-m77 calc-distributed-cell-text-dev300-svx.diff,     kohei
-
 [ GentooExperimental ]
 SectionOwner => hmth
 # jemalloc allocator
diff --git a/patches/dev300/calc-distributed-cell-text-dev300-editeng.diff b/patches/dev300/calc-distributed-cell-text-dev300-editeng.diff
deleted file mode 100644
index 37efc9e..0000000
--- a/patches/dev300/calc-distributed-cell-text-dev300-editeng.diff
+++ /dev/null
@@ -1,719 +0,0 @@
-diff --git editeng/inc/editeng/editrids.hrc editeng/inc/editeng/editrids.hrc
-index 97c9a4b..6d17175 100644
---- editeng/inc/editeng/editrids.hrc
-+++ editeng/inc/editeng/editrids.hrc
-@@ -420,7 +420,24 @@
- #define RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION	(RID_EDIT_START + 314)
- #define RID_SVXSTR_A11Y_IMAGEBULLET_NAME		(RID_EDIT_START + 315)
- 
--#if 315 > (RID_EDIT_END-RID_EDIT_START)
-+// enum SvxCellHorJustify
-+#define RID_SVXITEMS_HORJUST_STANDARD		(RID_EDIT_START + 316)
-+#define RID_SVXITEMS_HORJUST_LEFT			(RID_EDIT_START + 317)
-+#define RID_SVXITEMS_HORJUST_CENTER			(RID_EDIT_START + 318)
-+#define RID_SVXITEMS_HORJUST_RIGHT			(RID_EDIT_START + 319)
-+#define RID_SVXITEMS_HORJUST_BLOCK			(RID_EDIT_START + 320)
-+#define RID_SVXITEMS_HORJUST_REPEAT			(RID_EDIT_START + 321)
-+
-+// enum SvxCellVerJustify
-+#define RID_SVXITEMS_VERJUST_STANDARD		(RID_EDIT_START + 322)
-+#define RID_SVXITEMS_VERJUST_TOP			(RID_EDIT_START + 323)
-+#define RID_SVXITEMS_VERJUST_CENTER			(RID_EDIT_START + 324)
-+#define RID_SVXITEMS_VERJUST_BOTTOM			(RID_EDIT_START + 325)
-+
-+#define RID_SVXITEMS_JUSTMETHOD_AUTO            (RID_EDIT_START + 326)
-+#define RID_SVXITEMS_JUSTMETHOD_DISTRIBUTE      (RID_EDIT_START + 327)
-+
-+#if 327 > (RID_EDIT_END-RID_EDIT_START)
- #error Resource-Ueberlauf in #line, #file
- #endif
- 
-diff --git editeng/inc/editeng/justifyitem.hxx editeng/inc/editeng/justifyitem.hxx
-new file mode 100644
-index 0000000..da59e5c
---- /dev/null
-+++ editeng/inc/editeng/justifyitem.hxx
-@@ -0,0 +1,127 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2000, 2010 Oracle and/or its affiliates.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef __EDITENG_JUSTIFYITEM_HXX__
-+#define __EDITENG_JUSTIFYITEM_HXX__
-+
-+#include "editeng/editengdllapi.h"
-+#include "editeng/svxenum.hxx"
-+#include <svl/eitem.hxx>
-+#include <sal/types.h>
-+
-+class EDITENG_DLLPUBLIC SvxHorJustifyItem: public SfxEnumItem
-+{
-+public:
-+    TYPEINFO();
-+
-+    SvxHorJustifyItem( const USHORT nId );
-+
-+    SvxHorJustifyItem(
-+        const SvxCellHorJustify eJustify /*= SVX_HOR_JUSTIFY_STANDARD*/,
-+        const USHORT nId );
-+
-+    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
-+                                    SfxMapUnit eCoreMetric,
-+                                    SfxMapUnit ePresMetric,
-+                                    String &rText, const IntlWrapper * = 0 ) const;
-+
-+    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
-+    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
-+
-+    virtual USHORT          GetValueCount() const;
-+    virtual String          GetValueText( USHORT nVal ) const;
-+    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
-+    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
-+
-+    inline  SvxHorJustifyItem& operator=(const SvxHorJustifyItem& rHorJustify)
-+            {
-+                SetValue( rHorJustify.GetValue() );
-+                return *this;
-+            }
-+};
-+
-+//------------------------------------------------------------------------
-+
-+class EDITENG_DLLPUBLIC SvxVerJustifyItem: public SfxEnumItem
-+{
-+public:
-+    TYPEINFO();
-+
-+    SvxVerJustifyItem( const USHORT nId  );
-+
-+    SvxVerJustifyItem(
-+        const SvxCellVerJustify eJustify /*= SVX_VER_JUSTIFY_STANDARD*/,
-+        const USHORT nId  );
-+
-+    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
-+                                    SfxMapUnit eCoreMetric,
-+                                    SfxMapUnit ePresMetric,
-+                                    String &rText, const IntlWrapper * = 0 ) const;
-+
-+    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
-+    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
-+
-+    virtual USHORT          GetValueCount() const;
-+    virtual String          GetValueText( USHORT nVal ) const;
-+    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
-+    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
-+
-+    inline  SvxVerJustifyItem& operator=(const SvxVerJustifyItem& rVerJustify)
-+            {
-+                SetValue( rVerJustify.GetValue() );
-+                return *this;
-+            }
-+};
-+
-+//------------------------------------------------------------------------
-+
-+class EDITENG_DLLPUBLIC SvxJustifyMethodItem: public SfxEnumItem
-+{
-+public:
-+    SvxJustifyMethodItem( const USHORT nId );
-+
-+    SvxJustifyMethodItem(
-+        const SvxCellJustifyMethod eMethod,
-+        const USHORT nId );
-+
-+    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
-+                                    SfxMapUnit eCoreMetric,
-+                                    SfxMapUnit ePresMetric,
-+                                    String &rText, const IntlWrapper * = 0 ) const;
-+
-+    virtual sal_Bool             QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
-+    virtual sal_Bool             PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
-+
-+    virtual USHORT          GetValueCount() const;
-+    virtual String          GetValueText( USHORT nVal ) const;
-+    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
-+    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
-+
-+    SvxJustifyMethodItem& operator=(const SvxJustifyMethodItem& r);
-+};
-+
-+#endif
-diff --git editeng/inc/editeng/memberids.hrc editeng/inc/editeng/memberids.hrc
-index 0eaff89..e9cb0b5 100644
---- editeng/inc/editeng/memberids.hrc
-+++ editeng/inc/editeng/memberids.hrc
-@@ -191,6 +191,8 @@
- #define MID_CASEMAP_VARIANT		0
- #define MID_CASEMAP_TRANS		1
- 
--
-+// SvxHorJustifyItem
-+#define MID_HORJUST_HORJUST		0
-+#define MID_HORJUST_ADJUST		1
- 
- #endif
-diff --git editeng/source/editeng/eerdll.cxx editeng/source/editeng/eerdll.cxx
-index c26ae20..6c335c9 100644
---- editeng/source/editeng/eerdll.cxx
-+++ editeng/source/editeng/eerdll.cxx
-@@ -73,7 +73,7 @@
- #include <editeng/frmdiritem.hxx>
- #include <editeng/xmlcnitm.hxx>
- #include <editeng/forbiddencharacterstable.hxx>
--#include <svx/algitem.hxx>
-+#include <editeng/justifyitem.hxx>
- #include <comphelper/processfactory.hxx>
- 
- static EditDLL* pDLL=0;
-diff --git editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit2.cxx
-index fe964ee..45cb490 100644
---- editeng/source/editeng/impedit2.cxx
-+++ editeng/source/editeng/impedit2.cxx
-@@ -58,7 +58,7 @@
- #include <editeng/scripttypeitem.hxx>
- #include <editeng/frmdiritem.hxx>
- #include <editeng/fontitem.hxx>
--#include <svx/algitem.hxx>
-+#include <editeng/justifyitem.hxx>
- #include <vcl/cmdevt.h>
- 
- #include <com/sun/star/i18n/CharacterIteratorMode.hpp>
-diff --git editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit3.cxx
-index 42f0e76..7490a8c 100644
---- editeng/source/editeng/impedit3.cxx
-+++ editeng/source/editeng/impedit3.cxx
-@@ -61,7 +61,7 @@
- #include <editeng/scriptspaceitem.hxx>
- #include <editeng/charscaleitem.hxx>
- #include <editeng/numitem.hxx>
--#include <svx/algitem.hxx>
-+#include <editeng/justifyitem.hxx>
- 
- #include <svtools/colorcfg.hxx>
- #include <svl/ctloptions.hxx>
-diff --git editeng/source/items/justifyitem.cxx editeng/source/items/justifyitem.cxx
-new file mode 100644
-index 0000000..01b9fef
---- /dev/null
-+++ editeng/source/items/justifyitem.cxx
-@@ -0,0 +1,485 @@
-+/*************************************************************************
-+ *
-+ * 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.
-+ *
-+ ************************************************************************/
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_editeng.hxx"
-+
-+// include ---------------------------------------------------------------
-+
-+#include "editeng/justifyitem.hxx"
-+#include "editeng/memberids.hrc"
-+#include "editeng/editrids.hrc"
-+#include "editeng/eerdll.hxx"
-+
-+#include <tools/stream.hxx>
-+
-+#include <com/sun/star/table/CellHoriJustify.hpp>
-+#include <com/sun/star/style/ParagraphAdjust.hpp>
-+#include <com/sun/star/table/CellJustifyMethod.hpp>
-+#include <com/sun/star/table/CellVertJustify2.hpp>
-+#include <com/sun/star/style/VerticalAlignment.hpp>
-+
-+// STATIC DATA -----------------------------------------------------------
-+
-+TYPEINIT1_FACTORY( SvxHorJustifyItem, SfxEnumItem, new SvxHorJustifyItem(SVX_HOR_JUSTIFY_STANDARD, 0) );
-+TYPEINIT1_FACTORY( SvxVerJustifyItem, SfxEnumItem, new SvxVerJustifyItem(SVX_VER_JUSTIFY_STANDARD, 0) );
-+
-+using namespace ::com::sun::star;
-+
-+// class SvxHorJustifyItem -----------------------------------------------
-+
-+
-+SvxHorJustifyItem::SvxHorJustifyItem( const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)SVX_HOR_JUSTIFY_STANDARD )
-+{
-+}
-+
-+SvxHorJustifyItem::SvxHorJustifyItem( const SvxCellHorJustify eJustify,
-+                                      const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)eJustify )
-+{
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxItemPresentation SvxHorJustifyItem::GetPresentation
-+(
-+    SfxItemPresentation ePres,
-+    SfxMapUnit          /*eCoreUnit*/,
-+    SfxMapUnit          /*ePresUnit*/,
-+    XubString&              rText, const IntlWrapper *)    const
-+{
-+    switch ( ePres )
-+    {
-+        case SFX_ITEM_PRESENTATION_NONE:
-+            rText.Erase();
-+            return SFX_ITEM_PRESENTATION_NONE;
-+        case SFX_ITEM_PRESENTATION_NAMELESS:
-+        case SFX_ITEM_PRESENTATION_COMPLETE:
-+            rText = GetValueText( GetValue() );
-+            return SFX_ITEM_PRESENTATION_COMPLETE;
-+        default: ; //prevent warning
-+    }
-+    return SFX_ITEM_PRESENTATION_NONE;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+sal_Bool SvxHorJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
-+{
-+//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
-+    nMemberId &= ~CONVERT_TWIPS;
-+    switch ( nMemberId )
-+    {
-+        case MID_HORJUST_HORJUST:
-+            {
-+                table::CellHoriJustify eUno = table::CellHoriJustify_STANDARD;
-+                switch ( (SvxCellHorJustify)GetValue() )
-+                {
-+                    case SVX_HOR_JUSTIFY_STANDARD: eUno = table::CellHoriJustify_STANDARD; break;
-+                    case SVX_HOR_JUSTIFY_LEFT:	   eUno = table::CellHoriJustify_LEFT;	   break;
-+                    case SVX_HOR_JUSTIFY_CENTER:   eUno = table::CellHoriJustify_CENTER;   break;
-+                    case SVX_HOR_JUSTIFY_RIGHT:	   eUno = table::CellHoriJustify_RIGHT;	   break;
-+                    case SVX_HOR_JUSTIFY_BLOCK:	   eUno = table::CellHoriJustify_BLOCK;	   break;
-+                    case SVX_HOR_JUSTIFY_REPEAT:   eUno = table::CellHoriJustify_REPEAT;   break;
-+                }
-+                rVal <<= eUno;
-+            }
-+            break;
-+        case MID_HORJUST_ADJUST:
-+            {
-+                //	ParagraphAdjust values, as in SvxAdjustItem
-+                //	(same value for ParaAdjust and ParaLastLineAdjust)
-+
-+                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
-+            }
-+            break;
-+    }
-+    return sal_True;
-+}
-+
-+sal_Bool SvxHorJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
-+{
-+//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
-+    nMemberId &= ~CONVERT_TWIPS;
-+    switch ( nMemberId )
-+    {
-+        case MID_HORJUST_HORJUST:
-+            {
-+                table::CellHoriJustify eUno;
-+                if(!(rVal >>= eUno))
-+                {
-+                    sal_Int32 nValue = 0;
-+                    if(!(rVal >>= nValue))
-+                        return sal_False;
-+                    eUno = (table::CellHoriJustify)nValue;
-+                }
-+                SvxCellHorJustify eSvx = SVX_HOR_JUSTIFY_STANDARD;
-+                switch (eUno)
-+                {
-+                    case table::CellHoriJustify_STANDARD: eSvx = SVX_HOR_JUSTIFY_STANDARD; break;
-+                    case table::CellHoriJustify_LEFT:	  eSvx = SVX_HOR_JUSTIFY_LEFT;	   break;
-+                    case table::CellHoriJustify_CENTER:   eSvx = SVX_HOR_JUSTIFY_CENTER;   break;
-+                    case table::CellHoriJustify_RIGHT:	  eSvx = SVX_HOR_JUSTIFY_RIGHT;	   break;
-+                    case table::CellHoriJustify_BLOCK:	  eSvx = SVX_HOR_JUSTIFY_BLOCK;	   break;
-+                    case table::CellHoriJustify_REPEAT:   eSvx = SVX_HOR_JUSTIFY_REPEAT;   break;
-+                    default: ; //prevent warning
-+                }
-+                SetValue( (USHORT)eSvx );
-+            }
-+            break;
-+        case MID_HORJUST_ADJUST:
-+            {
-+                //	property contains ParagraphAdjust values as sal_Int16
-+                sal_Int16 nVal = sal_Int16();
-+                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( (USHORT)eSvx );
-+            }
-+    }
-+    return sal_True;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+XubString SvxHorJustifyItem::GetValueText( USHORT nVal ) const
-+{
-+    DBG_ASSERT( nVal <= SVX_HOR_JUSTIFY_REPEAT, "enum overflow!" );
-+    return EE_RESSTR(RID_SVXITEMS_HORJUST_STANDARD + nVal);
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxHorJustifyItem::Clone( SfxItemPool* ) const
-+{
-+    return new SvxHorJustifyItem( *this );
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxHorJustifyItem::Create( SvStream& rStream, USHORT ) const
-+{
-+    USHORT nVal;
-+    rStream >> nVal;
-+    return new SvxHorJustifyItem( (SvxCellHorJustify)nVal, Which() );
-+}
-+//------------------------------------------------------------------------
-+
-+USHORT SvxHorJustifyItem::GetValueCount() const
-+{
-+    return SVX_HOR_JUSTIFY_REPEAT + 1;	// letzter Enum-Wert + 1
-+}
-+
-+// class SvxVerJustifyItem -----------------------------------------------
-+
-+SvxVerJustifyItem::SvxVerJustifyItem( const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)SVX_VER_JUSTIFY_STANDARD )
-+{
-+}
-+
-+SvxVerJustifyItem::SvxVerJustifyItem( const SvxCellVerJustify eJustify,
-+                                      const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)eJustify )
-+{
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxItemPresentation SvxVerJustifyItem::GetPresentation
-+(
-+    SfxItemPresentation ePres,
-+    SfxMapUnit          /*eCoreUnit*/,
-+    SfxMapUnit          /*ePresUnit*/,
-+    XubString&              rText,
-+    const IntlWrapper * )    const
-+{
-+    switch ( ePres )
-+    {
-+        case SFX_ITEM_PRESENTATION_NONE:
-+            rText.Erase();
-+            return SFX_ITEM_PRESENTATION_NONE;
-+        case SFX_ITEM_PRESENTATION_NAMELESS:
-+        case SFX_ITEM_PRESENTATION_COMPLETE:
-+            rText = GetValueText( GetValue() );
-+            return SFX_ITEM_PRESENTATION_COMPLETE;
-+        default: ; //prevent warning
-+    }
-+    return SFX_ITEM_PRESENTATION_NONE;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+sal_Bool SvxVerJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
-+{
-+    nMemberId &= ~CONVERT_TWIPS;
-+    switch ( nMemberId )
-+    {
-+        case MID_HORJUST_ADJUST:
-+            {
-+                style::VerticalAlignment eUno = style::VerticalAlignment_TOP;
-+                switch ( (SvxCellVerJustify)GetValue() )
-+                {
-+                    case SVX_VER_JUSTIFY_TOP:	   eUno = style::VerticalAlignment_TOP;	    break;
-+                    case SVX_VER_JUSTIFY_CENTER:   eUno = style::VerticalAlignment_MIDDLE;	break;
-+                    case SVX_VER_JUSTIFY_BOTTOM:   eUno = style::VerticalAlignment_BOTTOM;	break;
-+                    default: ; //prevent warning
-+                }
-+                rVal <<= eUno;
-+                break;
-+            }
-+        default:
-+            {
-+                sal_Int32 nUno = table::CellVertJustify2::STANDARD;
-+                switch ( (SvxCellVerJustify)GetValue() )
-+                {
-+                    case SVX_VER_JUSTIFY_STANDARD: nUno = table::CellVertJustify2::STANDARD; break;
-+                    case SVX_VER_JUSTIFY_TOP:      nUno = table::CellVertJustify2::TOP;     break;
-+                    case SVX_VER_JUSTIFY_CENTER:   nUno = table::CellVertJustify2::CENTER;  break;
-+                    case SVX_VER_JUSTIFY_BOTTOM:   nUno = table::CellVertJustify2::BOTTOM;  break;
-+                    case SVX_VER_JUSTIFY_BLOCK:    nUno = table::CellVertJustify2::BLOCK;  break;
-+                    default: ; //prevent warning
-+                }
-+                rVal <<= nUno;
-+                break;
-+            }
-+    }
-+    return sal_True;
-+}
-+
-+sal_Bool SvxVerJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
-+{
-+    nMemberId &= ~CONVERT_TWIPS;
-+    switch ( nMemberId )
-+    {
-+        case MID_HORJUST_ADJUST:
-+            {
-+                //	property contains ParagraphAdjust values as sal_Int16
-+                style::VerticalAlignment nVal = style::VerticalAlignment_TOP;
-+                if(!(rVal >>= nVal))
-+                    return sal_False;
-+
-+                SvxCellVerJustify eSvx = SVX_VER_JUSTIFY_STANDARD;
-+                switch (nVal)
-+                {
-+                    case style::VerticalAlignment_TOP:      eSvx = SVX_VER_JUSTIFY_TOP;     break;
-+                    case style::VerticalAlignment_MIDDLE:   eSvx = SVX_VER_JUSTIFY_CENTER;  break;
-+                    case style::VerticalAlignment_BOTTOM:   eSvx = SVX_VER_JUSTIFY_BOTTOM;  break;
-+                    default:;
-+                }
-+                SetValue( (USHORT)eSvx );
-+                break;
-+            }
-+        default:
-+            {
-+                sal_Int32 eUno;
-+                if(!(rVal >>= eUno))
-+                {
-+                    eUno = table::CellVertJustify2::STANDARD;
-+                }
-+
-+                SvxCellVerJustify eSvx = SVX_VER_JUSTIFY_STANDARD;
-+                switch (eUno)
-+                {
-+                    case table::CellVertJustify2::STANDARD: eSvx = SVX_VER_JUSTIFY_STANDARD;  break;
-+                    case table::CellVertJustify2::TOP:      eSvx = SVX_VER_JUSTIFY_TOP;       break;
-+                    case table::CellVertJustify2::CENTER:   eSvx = SVX_VER_JUSTIFY_CENTER;    break;
-+                    case table::CellVertJustify2::BOTTOM:   eSvx = SVX_VER_JUSTIFY_BOTTOM;    break;
-+                    case table::CellVertJustify2::BLOCK:    eSvx = SVX_VER_JUSTIFY_BLOCK;     break;
-+                    default: ; //prevent warning
-+                }
-+                SetValue( (USHORT)eSvx );
-+                break;
-+            }
-+    }
-+
-+    return sal_True;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+XubString SvxVerJustifyItem::GetValueText( USHORT nVal ) const
-+{
-+    DBG_ASSERT( nVal <= SVX_VER_JUSTIFY_BOTTOM, "enum overflow!" );
-+    return EE_RESSTR(RID_SVXITEMS_VERJUST_STANDARD + nVal);
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxVerJustifyItem::Clone( SfxItemPool* ) const
-+{
-+    return new SvxVerJustifyItem( *this );
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxVerJustifyItem::Create( SvStream& rStream, USHORT ) const
-+{
-+    USHORT nVal;
-+    rStream >> nVal;
-+    return new SvxVerJustifyItem( (SvxCellVerJustify)nVal, Which() );
-+}
-+
-+//------------------------------------------------------------------------
-+
-+USHORT SvxVerJustifyItem::GetValueCount() const
-+{
-+    return SVX_VER_JUSTIFY_BOTTOM + 1;	// letzter Enum-Wert + 1
-+}
-+
-+
-+// class SvxJustifyMethodItem -----------------------------------------------
-+
-+SvxJustifyMethodItem::SvxJustifyMethodItem( const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)SVX_JUSTIFY_METHOD_AUTO )
-+{
-+}
-+
-+SvxJustifyMethodItem::SvxJustifyMethodItem( const SvxCellJustifyMethod eJustify,
-+                                      const USHORT nId ) :
-+    SfxEnumItem( nId, (USHORT)eJustify )
-+{
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxItemPresentation SvxJustifyMethodItem::GetPresentation
-+(
-+    SfxItemPresentation ePres,
-+    SfxMapUnit          /*eCoreUnit*/,
-+    SfxMapUnit          /*ePresUnit*/,
-+    XubString&              rText,
-+    const IntlWrapper * )    const
-+{
-+    switch ( ePres )
-+    {
-+        case SFX_ITEM_PRESENTATION_NONE:
-+            rText.Erase();
-+            return SFX_ITEM_PRESENTATION_NONE;
-+        case SFX_ITEM_PRESENTATION_NAMELESS:
-+        case SFX_ITEM_PRESENTATION_COMPLETE:
-+            rText = GetValueText( GetValue() );
-+            return SFX_ITEM_PRESENTATION_COMPLETE;
-+        default: ; //prevent warning
-+    }
-+    return SFX_ITEM_PRESENTATION_NONE;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+sal_Bool SvxJustifyMethodItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/ ) const
-+{
-+    sal_Int32 nUno = table::CellJustifyMethod::AUTO;
-+    switch (static_cast<SvxCellJustifyMethod>(GetValue()))
-+    {
-+        case SVX_JUSTIFY_METHOD_AUTO:       nUno = table::CellJustifyMethod::AUTO;       break;
-+        case SVX_JUSTIFY_METHOD_DISTRIBUTE: nUno = table::CellJustifyMethod::DISTRIBUTE; break;
-+        default:;
-+    }
-+    rVal <<= nUno;
-+    return true;
-+}
-+
-+sal_Bool SvxJustifyMethodItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/ )
-+{
-+    sal_Int32 nVal = table::CellJustifyMethod::AUTO;
-+    if (!(rVal >>= nVal))
-+        return false;
-+
-+    SvxCellJustifyMethod eSvx = SVX_JUSTIFY_METHOD_AUTO;
-+    switch (nVal)
-+    {
-+        case table::CellJustifyMethod::AUTO:
-+            eSvx = SVX_JUSTIFY_METHOD_AUTO;
-+        break;
-+        case table::CellJustifyMethod::DISTRIBUTE:
-+            eSvx = SVX_JUSTIFY_METHOD_DISTRIBUTE;
-+        break;
-+        default:;
-+    }
-+    SetValue(static_cast<USHORT>(eSvx));
-+    return true;
-+}
-+
-+//------------------------------------------------------------------------
-+
-+XubString SvxJustifyMethodItem::GetValueText( USHORT nVal ) const
-+{
-+    DBG_ASSERT( nVal <= SVX_VER_JUSTIFY_BOTTOM, "enum overflow!" );
-+    return EE_RESSTR(RID_SVXITEMS_JUSTMETHOD_AUTO + nVal);
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxJustifyMethodItem::Clone( SfxItemPool* ) const
-+{
-+    return new SvxJustifyMethodItem( *this );
-+}
-+
-+//------------------------------------------------------------------------
-+
-+SfxPoolItem* SvxJustifyMethodItem::Create( SvStream& rStream, USHORT ) const
-+{
-+    USHORT nVal;
-+    rStream >> nVal;
-+    return new SvxJustifyMethodItem( (SvxCellJustifyMethod)nVal, Which() );
-+}
-+
-+//------------------------------------------------------------------------
-+
-+USHORT SvxJustifyMethodItem::GetValueCount() const
-+{
-+    return SVX_JUSTIFY_METHOD_DISTRIBUTE + 1;	// letzter Enum-Wert + 1
-+}
-+
-+SvxJustifyMethodItem& SvxJustifyMethodItem::operator=(const SvxJustifyMethodItem& r)
-+{
-+    SetValue( r.GetValue() );
-+    return *this;
-+}
-+
-diff --git editeng/source/items/makefile.mk editeng/source/items/makefile.mk
-index 512db7c..1a24244 100644
---- editeng/source/items/makefile.mk
-+++ editeng/source/items/makefile.mk
-@@ -56,6 +56,7 @@ SLOFILES= \
-                 $(SLO)$/svdfield.obj \
-         $(SLO)$/writingmodeitem.obj \
-         $(SLO)$/frmitems.obj \
-+        $(SLO)$/justifyitem.obj \
-         $(SLO)$/paraitem.obj \
-         $(SLO)$/textitem.obj \
-         $(SLO)$/flditem.obj \
diff --git a/patches/dev300/calc-distributed-cell-text-dev300-svx.diff b/patches/dev300/calc-distributed-cell-text-dev300-svx.diff
deleted file mode 100644
index 35f0aba..0000000
--- a/patches/dev300/calc-distributed-cell-text-dev300-svx.diff
+++ /dev/null
@@ -1,616 +0,0 @@
-diff --git svx/inc/svx/algitem.hxx svx/inc/svx/algitem.hxx
-index 2196c62..2663c47 100644
---- svx/inc/svx/algitem.hxx
-+++ svx/inc/svx/algitem.hxx
-@@ -39,104 +39,6 @@ class SvStream;
- 
- //------------------------------------------------------------------------
- 
--
--
--class SVX_DLLPUBLIC SvxHorJustifyItem: public SfxEnumItem
--{
--public:
--    TYPEINFO();
--
--    SvxHorJustifyItem( const USHORT nId );
--
--    SvxHorJustifyItem(
--        const SvxCellHorJustify eJustify /*= SVX_HOR_JUSTIFY_STANDARD*/,
--        const USHORT nId );
--
--    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
--                                    SfxMapUnit eCoreMetric,
--                                    SfxMapUnit ePresMetric,
--                                    String &rText, const IntlWrapper * = 0 ) const;
--
--    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
--    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
--
--    virtual USHORT          GetValueCount() const;
--    virtual String          GetValueText( USHORT nVal ) const;
--    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
--    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
--
--    inline  SvxHorJustifyItem& operator=(const SvxHorJustifyItem& rHorJustify)
--            {
--                SetValue( rHorJustify.GetValue() );
--                return *this;
--            }
--};
--
--
--//------------------------------------------------------------------------
--
--
--class SVX_DLLPUBLIC SvxVerJustifyItem: public SfxEnumItem
--{
--public:
--    TYPEINFO();
--
--    SvxVerJustifyItem( const USHORT nId  );
--
--    SvxVerJustifyItem(
--        const SvxCellVerJustify eJustify /*= SVX_VER_JUSTIFY_STANDARD*/,
--        const USHORT nId  );
--
--    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
--                                    SfxMapUnit eCoreMetric,
--                                    SfxMapUnit ePresMetric,
--                                    String &rText, const IntlWrapper * = 0 ) const;
--
--    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
--    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
--
--    virtual USHORT          GetValueCount() const;
--    virtual String          GetValueText( USHORT nVal ) const;
--    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
--    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
--
--    inline  SvxVerJustifyItem& operator=(const SvxVerJustifyItem& rVerJustify)
--            {
--                SetValue( rVerJustify.GetValue() );
--                return *this;
--            }
--};
--
--//------------------------------------------------------------------------
--
--class SVX_DLLPUBLIC SvxJustifyMethodItem: public SfxEnumItem
--{
--public:
--    SvxJustifyMethodItem( const USHORT nId );
--
--    SvxJustifyMethodItem(
--        const SvxCellJustifyMethod eMethod,
--        const USHORT nId );
--
--    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
--                                    SfxMapUnit eCoreMetric,
--                                    SfxMapUnit ePresMetric,
--                                    String &rText, const IntlWrapper * = 0 ) const;
--
--    virtual sal_Bool             QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
--    virtual sal_Bool             PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
--
--    virtual USHORT          GetValueCount() const;
--    virtual String          GetValueText( USHORT nVal ) const;
--    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
--    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
--
--    SvxJustifyMethodItem& operator=(const SvxJustifyMethodItem& r);
--};
--
--
--//------------------------------------------------------------------------
--
- class SVX_DLLPUBLIC SvxOrientationItem: public SfxEnumItem
- {
- public:
-diff --git svx/inc/svx/svxitems.hrc svx/inc/svx/svxitems.hrc
-index 7833fd8..8a1a2cd 100644
---- svx/inc/svx/svxitems.hrc
-+++ svx/inc/svx/svxitems.hrc
-@@ -104,20 +104,6 @@
- #define RID_SVXITEMS_CHARSET_SYSTEM			(RID_SVXITEMS_START + 154)
- #define RID_SVXITEMS_CHARSET_SYMBOL			(RID_SVXITEMS_START + 155)
- 
--// enum SvxCellHorJustify
--#define RID_SVXITEMS_HORJUST_STANDARD		(RID_SVXITEMS_START + 400)
--#define RID_SVXITEMS_HORJUST_LEFT			(RID_SVXITEMS_START + 401)
--#define RID_SVXITEMS_HORJUST_CENTER			(RID_SVXITEMS_START + 402)
--#define RID_SVXITEMS_HORJUST_RIGHT			(RID_SVXITEMS_START + 403)
--#define RID_SVXITEMS_HORJUST_BLOCK			(RID_SVXITEMS_START + 404)
--#define RID_SVXITEMS_HORJUST_REPEAT			(RID_SVXITEMS_START + 405)
--
--// enum SvxCellVerJustify
--#define RID_SVXITEMS_VERJUST_STANDARD		(RID_SVXITEMS_START + 406)
--#define RID_SVXITEMS_VERJUST_TOP			(RID_SVXITEMS_START + 407)
--#define RID_SVXITEMS_VERJUST_CENTER			(RID_SVXITEMS_START + 408)
--#define RID_SVXITEMS_VERJUST_BOTTOM			(RID_SVXITEMS_START + 409)
--
- // enum SvxCellOrientation
- #define RID_SVXITEMS_ORI_STANDARD			(RID_SVXITEMS_START + 410)
- #define RID_SVXITEMS_ORI_TOPBOTTOM			(RID_SVXITEMS_START + 411)
-@@ -161,13 +147,10 @@
- #define RID_SVXITEMS_BRUSH_CHAR				(RID_SVXITEMS_START + 527)
- #define RID_ATTR_NAMES                      (RID_SVXITEMS_START + 528)
- 
--#define RID_SVXITEMS_JUSTMETHOD_AUTO            (RID_SVXITEMS_START + 579)
--#define RID_SVXITEMS_JUSTMETHOD_DISTRIBUTE      (RID_SVXITEMS_START + 580)
--
- // Ueberlaufpruefung --------------------------------------------------------
- 
- // Resource-Id's
--#define ACT_RID_SVXITEMS_END    RID_SVXITEMS_JUSTMETHOD_DISTRIBUTE
-+#define ACT_RID_SVXITEMS_END    RID_ATTR_NAMES
- #if ACT_RID_SVXITEMS_END > RID_SVXITEMS_END
- #error Resource-Ueberlauf in #line, #file
- #endif
-diff --git svx/source/items/algitem.cxx svx/source/items/algitem.cxx
-index b2e09f7..a8551cc 100644
---- svx/source/items/algitem.cxx
-+++ svx/source/items/algitem.cxx
-@@ -33,17 +33,12 @@
- 
- #include <tools/stream.hxx>
- #include <com/sun/star/table/BorderLine.hpp>
--#include <com/sun/star/table/CellJustifyMethod.hpp>
--#include <com/sun/star/table/CellVertJustify2.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/style/ParagraphAdjust.hpp>
--#include "com/sun/star/style/VerticalAlignment.hpp"
- #include <com/sun/star/util/SortField.hpp>
- #include <com/sun/star/util/SortFieldType.hpp>
- #include <com/sun/star/table/CellOrientation.hpp>
-@@ -64,444 +59,9 @@ using namespace ::com::sun::star;
- // STATIC DATA -----------------------------------------------------------
- 
- //TYPEINIT1_AUTOFACTORY( SvxHorJustifyItem, SfxEnumItem );
--TYPEINIT1_FACTORY( SvxHorJustifyItem, SfxEnumItem, new SvxHorJustifyItem(SVX_HOR_JUSTIFY_STANDARD, 0))
--TYPEINIT1_FACTORY( SvxVerJustifyItem, SfxEnumItem, new SvxVerJustifyItem(SVX_VER_JUSTIFY_STANDARD, 0) );
- TYPEINIT1_FACTORY( SvxOrientationItem, SfxEnumItem, new SvxOrientationItem(SVX_ORIENTATION_STANDARD, 0) );
- TYPEINIT1_FACTORY( SvxMarginItem, SfxPoolItem, new SvxMarginItem(0) );
- 
--// class SvxHorJustifyItem -----------------------------------------------
--
--
--SvxHorJustifyItem::SvxHorJustifyItem( const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)SVX_HOR_JUSTIFY_STANDARD )
--{
--}
--
--SvxHorJustifyItem::SvxHorJustifyItem( const SvxCellHorJustify eJustify,
--                                      const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)eJustify )
--{
--}
--
--//------------------------------------------------------------------------
--
--SfxItemPresentation SvxHorJustifyItem::GetPresentation
--(
--    SfxItemPresentation ePres,
--    SfxMapUnit          /*eCoreUnit*/,
--    SfxMapUnit          /*ePresUnit*/,
--    XubString&              rText, const IntlWrapper *)    const
--{
--    switch ( ePres )
--    {
--        case SFX_ITEM_PRESENTATION_NONE:
--            rText.Erase();
--            return SFX_ITEM_PRESENTATION_NONE;
--        case SFX_ITEM_PRESENTATION_NAMELESS:
--        case SFX_ITEM_PRESENTATION_COMPLETE:
--            rText = GetValueText( GetValue() );
--            return SFX_ITEM_PRESENTATION_COMPLETE;
--        default: ; //prevent warning
--    }
--    return SFX_ITEM_PRESENTATION_NONE;
--}
--
--//------------------------------------------------------------------------
--
--sal_Bool SvxHorJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
--{
--//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
--    nMemberId &= ~CONVERT_TWIPS;
--    switch ( nMemberId )
--    {
--        case MID_HORJUST_HORJUST:
--            {
--                table::CellHoriJustify eUno = table::CellHoriJustify_STANDARD;
--                switch ( (SvxCellHorJustify)GetValue() )
--                {
--                    case SVX_HOR_JUSTIFY_STANDARD: eUno = table::CellHoriJustify_STANDARD; break;
--                    case SVX_HOR_JUSTIFY_LEFT:	   eUno = table::CellHoriJustify_LEFT;	   break;
--                    case SVX_HOR_JUSTIFY_CENTER:   eUno = table::CellHoriJustify_CENTER;   break;
--                    case SVX_HOR_JUSTIFY_RIGHT:	   eUno = table::CellHoriJustify_RIGHT;	   break;
--                    case SVX_HOR_JUSTIFY_BLOCK:	   eUno = table::CellHoriJustify_BLOCK;	   break;
--                    case SVX_HOR_JUSTIFY_REPEAT:   eUno = table::CellHoriJustify_REPEAT;   break;
--                }
--                rVal <<= eUno;
--            }
--            break;
--        case MID_HORJUST_ADJUST:
--            {
--                //	ParagraphAdjust values, as in SvxAdjustItem
--                //	(same value for ParaAdjust and ParaLastLineAdjust)
--
--                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
--            }
--            break;
--    }
--    return sal_True;
--}
--
--sal_Bool SvxHorJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
--{
--//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
--    nMemberId &= ~CONVERT_TWIPS;
--    switch ( nMemberId )
--    {
--        case MID_HORJUST_HORJUST:
--            {
--                table::CellHoriJustify eUno;
--                if(!(rVal >>= eUno))
--                {
--                    sal_Int32 nValue = 0;
--                    if(!(rVal >>= nValue))
--                        return sal_False;
--                    eUno = (table::CellHoriJustify)nValue;
--                }
--                SvxCellHorJustify eSvx = SVX_HOR_JUSTIFY_STANDARD;
--                switch (eUno)
--                {
--                    case table::CellHoriJustify_STANDARD: eSvx = SVX_HOR_JUSTIFY_STANDARD; break;
--                    case table::CellHoriJustify_LEFT:	  eSvx = SVX_HOR_JUSTIFY_LEFT;	   break;
--                    case table::CellHoriJustify_CENTER:   eSvx = SVX_HOR_JUSTIFY_CENTER;   break;
--                    case table::CellHoriJustify_RIGHT:	  eSvx = SVX_HOR_JUSTIFY_RIGHT;	   break;
--                    case table::CellHoriJustify_BLOCK:	  eSvx = SVX_HOR_JUSTIFY_BLOCK;	   break;
--                    case table::CellHoriJustify_REPEAT:   eSvx = SVX_HOR_JUSTIFY_REPEAT;   break;
--                    default: ; //prevent warning
--                }
--                SetValue( (USHORT)eSvx );
--            }
--            break;
--        case MID_HORJUST_ADJUST:
--            {
--                //	property contains ParagraphAdjust values as sal_Int16
--                sal_Int16 nVal = sal_Int16();
--                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( (USHORT)eSvx );
--            }
--    }
--    return sal_True;
--}
--
--//------------------------------------------------------------------------
--
--XubString SvxHorJustifyItem::GetValueText( USHORT nVal ) const
--{
--    DBG_ASSERT( nVal <= SVX_HOR_JUSTIFY_REPEAT, "enum overflow!" );
--    return SVX_RESSTR(RID_SVXITEMS_HORJUST_STANDARD + nVal);
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxHorJustifyItem::Clone( SfxItemPool* ) const
--{
--    return new SvxHorJustifyItem( *this );
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxHorJustifyItem::Create( SvStream& rStream, USHORT ) const
--{
--    USHORT nVal;
--    rStream >> nVal;
--    return new SvxHorJustifyItem( (SvxCellHorJustify)nVal, Which() );
--}
--//------------------------------------------------------------------------
--
--USHORT SvxHorJustifyItem::GetValueCount() const
--{
--    return SVX_HOR_JUSTIFY_REPEAT + 1;	// letzter Enum-Wert + 1
--}
--
--// class SvxVerJustifyItem -----------------------------------------------
--
--SvxVerJustifyItem::SvxVerJustifyItem( const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)SVX_VER_JUSTIFY_STANDARD )
--{
--}
--
--SvxVerJustifyItem::SvxVerJustifyItem( const SvxCellVerJustify eJustify,
--                                      const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)eJustify )
--{
--}
--
--//------------------------------------------------------------------------
--
--SfxItemPresentation SvxVerJustifyItem::GetPresentation
--(
--    SfxItemPresentation ePres,
--    SfxMapUnit          /*eCoreUnit*/,
--    SfxMapUnit          /*ePresUnit*/,
--    XubString&              rText,
--    const IntlWrapper * )    const
--{
--    switch ( ePres )
--    {
--        case SFX_ITEM_PRESENTATION_NONE:
--            rText.Erase();
--            return SFX_ITEM_PRESENTATION_NONE;
--        case SFX_ITEM_PRESENTATION_NAMELESS:
--        case SFX_ITEM_PRESENTATION_COMPLETE:
--            rText = GetValueText( GetValue() );
--            return SFX_ITEM_PRESENTATION_COMPLETE;
--        default: ; //prevent warning
--    }
--    return SFX_ITEM_PRESENTATION_NONE;
--}
--
--//------------------------------------------------------------------------
--
--sal_Bool SvxVerJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
--{
--    nMemberId &= ~CONVERT_TWIPS;
--    switch ( nMemberId )
--    {
--        case MID_HORJUST_ADJUST:
--            {
--                style::VerticalAlignment eUno = style::VerticalAlignment_TOP;
--                switch ( (SvxCellVerJustify)GetValue() )
--                {
--                    case SVX_VER_JUSTIFY_TOP:	   eUno = style::VerticalAlignment_TOP;	    break;
--                    case SVX_VER_JUSTIFY_CENTER:   eUno = style::VerticalAlignment_MIDDLE;	break;
--                    case SVX_VER_JUSTIFY_BOTTOM:   eUno = style::VerticalAlignment_BOTTOM;	break;
--                    default: ; //prevent warning
--                }
--                rVal <<= eUno;
--                break;
--            }
--        default:
--            {
--                sal_Int32 nUno = table::CellVertJustify2::STANDARD;
--                switch ( (SvxCellVerJustify)GetValue() )
--                {
--                    case SVX_VER_JUSTIFY_STANDARD: nUno = table::CellVertJustify2::STANDARD; break;
--                    case SVX_VER_JUSTIFY_TOP:      nUno = table::CellVertJustify2::TOP;     break;
--                    case SVX_VER_JUSTIFY_CENTER:   nUno = table::CellVertJustify2::CENTER;  break;
--                    case SVX_VER_JUSTIFY_BOTTOM:   nUno = table::CellVertJustify2::BOTTOM;  break;
--                    case SVX_VER_JUSTIFY_BLOCK:    nUno = table::CellVertJustify2::BLOCK;  break;
--                    default: ; //prevent warning
--                }
--                rVal <<= nUno;
--                break;
--            }
--    }
--    return sal_True;
--}
--
--sal_Bool SvxVerJustifyItem::PutValue( const uno::Any& rVal, BYTE nMemberId )
--{
--    nMemberId &= ~CONVERT_TWIPS;
--    switch ( nMemberId )
--    {
--        case MID_HORJUST_ADJUST:
--            {
--                //	property contains ParagraphAdjust values as sal_Int16
--                style::VerticalAlignment nVal = style::VerticalAlignment_TOP;
--                if(!(rVal >>= nVal))
--                    return sal_False;
--
--                SvxCellVerJustify eSvx = SVX_VER_JUSTIFY_STANDARD;
--                switch (nVal)
--                {
--                    case style::VerticalAlignment_TOP:      eSvx = SVX_VER_JUSTIFY_TOP;     break;
--                    case style::VerticalAlignment_MIDDLE:   eSvx = SVX_VER_JUSTIFY_CENTER;  break;
--                    case style::VerticalAlignment_BOTTOM:   eSvx = SVX_VER_JUSTIFY_BOTTOM;  break;
--                    default:;
--                }
--                SetValue( (USHORT)eSvx );
--                break;
--            }
--        default:
--            {
--                sal_Int32 eUno;
--                if(!(rVal >>= eUno))
--                {
--                    eUno = table::CellVertJustify2::STANDARD;
--                }
--
--                SvxCellVerJustify eSvx = SVX_VER_JUSTIFY_STANDARD;
--                switch (eUno)
--                {
--                    case table::CellVertJustify2::STANDARD: eSvx = SVX_VER_JUSTIFY_STANDARD;  break;
--                    case table::CellVertJustify2::TOP:      eSvx = SVX_VER_JUSTIFY_TOP;       break;
--                    case table::CellVertJustify2::CENTER:   eSvx = SVX_VER_JUSTIFY_CENTER;    break;
--                    case table::CellVertJustify2::BOTTOM:   eSvx = SVX_VER_JUSTIFY_BOTTOM;    break;
--                    case table::CellVertJustify2::BLOCK:    eSvx = SVX_VER_JUSTIFY_BLOCK;     break;
--                    default: ; //prevent warning
--                }
--                SetValue( (USHORT)eSvx );
--                break;
--            }
--    }
--
--    return sal_True;
--}
--
--//------------------------------------------------------------------------
--
--XubString SvxVerJustifyItem::GetValueText( USHORT nVal ) const
--{
--    DBG_ASSERT( nVal <= SVX_VER_JUSTIFY_BOTTOM, "enum overflow!" );
--    return SVX_RESSTR(RID_SVXITEMS_VERJUST_STANDARD + nVal);
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxVerJustifyItem::Clone( SfxItemPool* ) const
--{
--    return new SvxVerJustifyItem( *this );
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxVerJustifyItem::Create( SvStream& rStream, USHORT ) const
--{
--    USHORT nVal;
--    rStream >> nVal;
--    return new SvxVerJustifyItem( (SvxCellVerJustify)nVal, Which() );
--}
--
--//------------------------------------------------------------------------
--
--USHORT SvxVerJustifyItem::GetValueCount() const
--{
--    return SVX_VER_JUSTIFY_BOTTOM + 1;	// letzter Enum-Wert + 1
--}
--
--
--// class SvxJustifyMethodItem -----------------------------------------------
--
--SvxJustifyMethodItem::SvxJustifyMethodItem( const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)SVX_JUSTIFY_METHOD_AUTO )
--{
--}
--
--SvxJustifyMethodItem::SvxJustifyMethodItem( const SvxCellJustifyMethod eJustify,
--                                      const USHORT nId ) :
--    SfxEnumItem( nId, (USHORT)eJustify )
--{
--}
--
--//------------------------------------------------------------------------
--
--SfxItemPresentation SvxJustifyMethodItem::GetPresentation
--(
--    SfxItemPresentation ePres,
--    SfxMapUnit          /*eCoreUnit*/,
--    SfxMapUnit          /*ePresUnit*/,
--    XubString&              rText,
--    const IntlWrapper * )    const
--{
--    switch ( ePres )
--    {
--        case SFX_ITEM_PRESENTATION_NONE:
--            rText.Erase();
--            return SFX_ITEM_PRESENTATION_NONE;
--        case SFX_ITEM_PRESENTATION_NAMELESS:
--        case SFX_ITEM_PRESENTATION_COMPLETE:
--            rText = GetValueText( GetValue() );
--            return SFX_ITEM_PRESENTATION_COMPLETE;
--        default: ; //prevent warning
--    }
--    return SFX_ITEM_PRESENTATION_NONE;
--}
--
--//------------------------------------------------------------------------
--
--sal_Bool SvxJustifyMethodItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/ ) const
--{
--    sal_Int32 nUno = table::CellJustifyMethod::AUTO;
--    switch (static_cast<SvxCellJustifyMethod>(GetValue()))
--    {
--        case SVX_JUSTIFY_METHOD_AUTO:       nUno = table::CellJustifyMethod::AUTO;       break;
--        case SVX_JUSTIFY_METHOD_DISTRIBUTE: nUno = table::CellJustifyMethod::DISTRIBUTE; break;
--        default:;
--    }
--    rVal <<= nUno;
--    return true;
--}
--
--sal_Bool SvxJustifyMethodItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/ )
--{
--    sal_Int32 nVal = table::CellJustifyMethod::AUTO;
--    if (!(rVal >>= nVal))
--        return false;
--
--    SvxCellJustifyMethod eSvx = SVX_JUSTIFY_METHOD_AUTO;
--    switch (nVal)
--    {
--        case table::CellJustifyMethod::AUTO:
--            eSvx = SVX_JUSTIFY_METHOD_AUTO;
--        break;
--        case table::CellJustifyMethod::DISTRIBUTE:
--            eSvx = SVX_JUSTIFY_METHOD_DISTRIBUTE;
--        break;
--        default:;
--    }
--    SetValue(static_cast<USHORT>(eSvx));
--    return true;
--}
--
--//------------------------------------------------------------------------
--
--XubString SvxJustifyMethodItem::GetValueText( USHORT nVal ) const
--{
--    DBG_ASSERT( nVal <= SVX_VER_JUSTIFY_BOTTOM, "enum overflow!" );
--    return SVX_RESSTR(RID_SVXITEMS_JUSTMETHOD_AUTO + nVal);
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxJustifyMethodItem::Clone( SfxItemPool* ) const
--{
--    return new SvxJustifyMethodItem( *this );
--}
--
--//------------------------------------------------------------------------
--
--SfxPoolItem* SvxJustifyMethodItem::Create( SvStream& rStream, USHORT ) const
--{
--    USHORT nVal;
--    rStream >> nVal;
--    return new SvxJustifyMethodItem( (SvxCellJustifyMethod)nVal, Which() );
--}
--
--//------------------------------------------------------------------------
--
--USHORT SvxJustifyMethodItem::GetValueCount() const
--{
--    return SVX_JUSTIFY_METHOD_DISTRIBUTE + 1;	// letzter Enum-Wert + 1
--}
--
--SvxJustifyMethodItem& SvxJustifyMethodItem::operator=(const SvxJustifyMethodItem& r)
--{
--    SetValue( r.GetValue() );
--    return *this;
--}
--
- // class SvxOrientationItem ----------------------------------------------
- 
- SvxOrientationItem::SvxOrientationItem( const SvxCellOrientation eOrientation,
diff --git a/patches/dev300/calc-distributed-cell-text-editeng.diff b/patches/dev300/calc-distributed-cell-text-editeng.diff
index 6a60356..b024e42 100644
--- a/patches/dev300/calc-distributed-cell-text-editeng.diff
+++ b/patches/dev300/calc-distributed-cell-text-editeng.diff
@@ -1,13 +1,1296 @@
 diff --git editeng/inc/editeng/editids.hrc editeng/inc/editeng/editids.hrc
-index 0d1acb4..de4f4f4 100644
+index 0d1acb4..386dd0b 100644
 --- editeng/inc/editeng/editids.hrc
 +++ editeng/inc/editeng/editids.hrc
-@@ -129,6 +129,8 @@
+@@ -129,6 +129,10 @@
  
  // this ID didn't exist prior to the svx split
  #define SID_ATTR_CHAR_OVERLINE              			( SID_EDIT_START + 68 )
 +#define SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD               ( SID_EDIT_START + 69 )
-+#define SID_ATTR_ALIGN_VER_JUSTIFY                      ( SID_EDIT_START + 70 )
++#define SID_ATTR_ALIGN_VER_JUSTIFY_METHOD               ( SID_EDIT_START + 70 )
++#define SID_ATTR_ALIGN_HOR_JUSTIFY                      ( SID_EDIT_START + 71 )
++#define SID_ATTR_ALIGN_VER_JUSTIFY                      ( SID_EDIT_START + 72 )
  
  /*
  // planned, but not doable: changing value of SIDs will break code that uses them for WhichRanges
+diff --git editeng/inc/editeng/editrids.hrc editeng/inc/editeng/editrids.hrc
+index 97c9a4b..6e11e06 100644
+--- editeng/inc/editeng/editrids.hrc
++++ editeng/inc/editeng/editrids.hrc
+@@ -420,7 +420,25 @@
+ #define RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION	(RID_EDIT_START + 314)
+ #define RID_SVXSTR_A11Y_IMAGEBULLET_NAME		(RID_EDIT_START + 315)
+ 
+-#if 315 > (RID_EDIT_END-RID_EDIT_START)
++// enum SvxCellHorJustify
++#define RID_SVXITEMS_HORJUST_STANDARD		(RID_EDIT_START + 316)
++#define RID_SVXITEMS_HORJUST_LEFT			(RID_EDIT_START + 317)
++#define RID_SVXITEMS_HORJUST_CENTER			(RID_EDIT_START + 318)
++#define RID_SVXITEMS_HORJUST_RIGHT			(RID_EDIT_START + 319)
++#define RID_SVXITEMS_HORJUST_BLOCK			(RID_EDIT_START + 320)
++#define RID_SVXITEMS_HORJUST_REPEAT			(RID_EDIT_START + 321)
++
++// enum SvxCellVerJustify
++#define RID_SVXITEMS_VERJUST_STANDARD		(RID_EDIT_START + 322)
++#define RID_SVXITEMS_VERJUST_TOP			(RID_EDIT_START + 323)
++#define RID_SVXITEMS_VERJUST_CENTER			(RID_EDIT_START + 324)
++#define RID_SVXITEMS_VERJUST_BOTTOM			(RID_EDIT_START + 325)
++
++// enum SvxCellJustifyMethod
++#define RID_SVXITEMS_JUSTMETHOD_AUTO            (RID_EDIT_START + 326)
++#define RID_SVXITEMS_JUSTMETHOD_DISTRIBUTE      (RID_EDIT_START + 327)
++
++#if 327 > (RID_EDIT_END-RID_EDIT_START)
+ #error Resource-Ueberlauf in #line, #file
+ #endif
+ 
+diff --git editeng/inc/editeng/eeitem.hxx editeng/inc/editeng/eeitem.hxx
+index 695ec8a..64729a5 100644
+--- editeng/inc/editeng/eeitem.hxx
++++ editeng/inc/editeng/eeitem.hxx
+@@ -30,7 +30,7 @@
+ 
+ #define EE_ITEMS_START				3989
+ 
+-// Absatzattribute:
++// Paragraph attributes:
+ #define EE_PARA_START				(EE_ITEMS_START+0)
+ #define EE_PARA_WRITINGDIR          (EE_ITEMS_START+0)
+ #define EE_PARA_XMLATTRIBS	        (EE_ITEMS_START+1)
+@@ -48,51 +48,53 @@
+ #define	EE_PARA_SBL					(EE_ITEMS_START+13)
+ #define EE_PARA_JUST				(EE_ITEMS_START+14)
+ #define EE_PARA_TABS				(EE_ITEMS_START+15)
+-#define EE_PARA_END					(EE_ITEMS_START+15)
++#define EE_PARA_JUST_METHOD         (EE_ITEMS_START+16)
++#define EE_PARA_VER_JUST            (EE_ITEMS_START+17)
++#define EE_PARA_END                 (EE_ITEMS_START+17)
+ 
+-// Zeichenattribute:
+-#define EE_CHAR_START				(EE_ITEMS_START+16)
+-#define EE_CHAR_COLOR				(EE_ITEMS_START+16)
+-#define EE_CHAR_FONTINFO			(EE_ITEMS_START+17)
+-#define EE_CHAR_FONTHEIGHT			(EE_ITEMS_START+18)
+-#define EE_CHAR_FONTWIDTH			(EE_ITEMS_START+19)
+-#define EE_CHAR_WEIGHT				(EE_ITEMS_START+20)
+-#define EE_CHAR_UNDERLINE			(EE_ITEMS_START+21)
+-#define EE_CHAR_STRIKEOUT			(EE_ITEMS_START+22)
+-#define EE_CHAR_ITALIC				(EE_ITEMS_START+23)
+-#define EE_CHAR_OUTLINE				(EE_ITEMS_START+24)
+-#define EE_CHAR_SHADOW				(EE_ITEMS_START+25)
+-#define EE_CHAR_ESCAPEMENT			(EE_ITEMS_START+26)
+-#define EE_CHAR_PAIRKERNING			(EE_ITEMS_START+27)
+-#define EE_CHAR_KERNING				(EE_ITEMS_START+28)
+-#define EE_CHAR_WLM					(EE_ITEMS_START+29)
+-#define EE_CHAR_LANGUAGE			(EE_ITEMS_START+30)
+-#define EE_CHAR_LANGUAGE_CJK		(EE_ITEMS_START+31)
+-#define EE_CHAR_LANGUAGE_CTL		(EE_ITEMS_START+32)
+-#define EE_CHAR_FONTINFO_CJK		(EE_ITEMS_START+33)
+-#define EE_CHAR_FONTINFO_CTL		(EE_ITEMS_START+34)
+-#define EE_CHAR_FONTHEIGHT_CJK		(EE_ITEMS_START+35)
+-#define EE_CHAR_FONTHEIGHT_CTL		(EE_ITEMS_START+36)
+-#define EE_CHAR_WEIGHT_CJK			(EE_ITEMS_START+37)
+-#define EE_CHAR_WEIGHT_CTL			(EE_ITEMS_START+38)
+-#define EE_CHAR_ITALIC_CJK			(EE_ITEMS_START+39)
+-#define EE_CHAR_ITALIC_CTL			(EE_ITEMS_START+40)
+-#define EE_CHAR_EMPHASISMARK		(EE_ITEMS_START+41)
+-#define EE_CHAR_RELIEF				(EE_ITEMS_START+42)
+-#define EE_CHAR_RUBI_DUMMY			(EE_ITEMS_START+43)
+-#define EE_CHAR_XMLATTRIBS			(EE_ITEMS_START+44)
+-#define EE_CHAR_OVERLINE			(EE_ITEMS_START+45)
+-#define EE_CHAR_END					(EE_ITEMS_START+45)
++// Character attributes:
++#define EE_CHAR_START               (EE_ITEMS_START+18)
++#define EE_CHAR_COLOR               (EE_ITEMS_START+18)
++#define EE_CHAR_FONTINFO            (EE_ITEMS_START+19)
++#define EE_CHAR_FONTHEIGHT          (EE_ITEMS_START+20)
++#define EE_CHAR_FONTWIDTH           (EE_ITEMS_START+21)
++#define EE_CHAR_WEIGHT              (EE_ITEMS_START+22)
++#define EE_CHAR_UNDERLINE           (EE_ITEMS_START+23)
++#define EE_CHAR_STRIKEOUT           (EE_ITEMS_START+24)
++#define EE_CHAR_ITALIC              (EE_ITEMS_START+25)
++#define EE_CHAR_OUTLINE             (EE_ITEMS_START+26)
++#define EE_CHAR_SHADOW              (EE_ITEMS_START+27)
++#define EE_CHAR_ESCAPEMENT          (EE_ITEMS_START+28)
++#define EE_CHAR_PAIRKERNING         (EE_ITEMS_START+29)
++#define EE_CHAR_KERNING             (EE_ITEMS_START+30)
++#define EE_CHAR_WLM                 (EE_ITEMS_START+31)
++#define EE_CHAR_LANGUAGE            (EE_ITEMS_START+32)
++#define EE_CHAR_LANGUAGE_CJK        (EE_ITEMS_START+33)
++#define EE_CHAR_LANGUAGE_CTL        (EE_ITEMS_START+34)
++#define EE_CHAR_FONTINFO_CJK        (EE_ITEMS_START+35)
++#define EE_CHAR_FONTINFO_CTL        (EE_ITEMS_START+36)
++#define EE_CHAR_FONTHEIGHT_CJK      (EE_ITEMS_START+37)
++#define EE_CHAR_FONTHEIGHT_CTL      (EE_ITEMS_START+38)
++#define EE_CHAR_WEIGHT_CJK          (EE_ITEMS_START+39)
++#define EE_CHAR_WEIGHT_CTL          (EE_ITEMS_START+40)
++#define EE_CHAR_ITALIC_CJK          (EE_ITEMS_START+41)
++#define EE_CHAR_ITALIC_CTL          (EE_ITEMS_START+42)
++#define EE_CHAR_EMPHASISMARK        (EE_ITEMS_START+43)
++#define EE_CHAR_RELIEF              (EE_ITEMS_START+44)
++#define EE_CHAR_RUBI_DUMMY          (EE_ITEMS_START+45)
++#define EE_CHAR_XMLATTRIBS          (EE_ITEMS_START+46)
++#define EE_CHAR_OVERLINE            (EE_ITEMS_START+47)
++#define EE_CHAR_END                 (EE_ITEMS_START+47)
+ 
+ 
+-#define EE_FEATURE_START			(EE_ITEMS_START+46)
+-#define EE_FEATURE_TAB				(EE_ITEMS_START+46)
+-#define EE_FEATURE_LINEBR			(EE_ITEMS_START+47)
+-#define EE_FEATURE_NOTCONV			(EE_ITEMS_START+48)
+-#define EE_FEATURE_FIELD			(EE_ITEMS_START+49)
+-#define EE_FEATURE_END				(EE_ITEMS_START+49)
++#define EE_FEATURE_START            (EE_ITEMS_START+48)
++#define EE_FEATURE_TAB              (EE_ITEMS_START+48)
++#define EE_FEATURE_LINEBR           (EE_ITEMS_START+49)
++#define EE_FEATURE_NOTCONV          (EE_ITEMS_START+50)
++#define EE_FEATURE_FIELD            (EE_ITEMS_START+51)
++#define EE_FEATURE_END              (EE_ITEMS_START+51)
+ 
+-#define EE_ITEMS_END				(EE_ITEMS_START+49)
++#define EE_ITEMS_END                (EE_ITEMS_START+51)
+ 
+ #define EDITITEMCOUNT ( EE_ITEMS_END - EE_ITEMS_START + 1 )
+ 
+diff --git editeng/inc/editeng/justifyitem.hxx editeng/inc/editeng/justifyitem.hxx
+new file mode 100644
+index 0000000..da59e5c
+--- /dev/null
++++ editeng/inc/editeng/justifyitem.hxx
+@@ -0,0 +1,127 @@
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ * 
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org.  If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef __EDITENG_JUSTIFYITEM_HXX__
++#define __EDITENG_JUSTIFYITEM_HXX__
++
++#include "editeng/editengdllapi.h"
++#include "editeng/svxenum.hxx"
++#include <svl/eitem.hxx>
++#include <sal/types.h>
++
++class EDITENG_DLLPUBLIC SvxHorJustifyItem: public SfxEnumItem
++{
++public:
++    TYPEINFO();
++
++    SvxHorJustifyItem( const USHORT nId );
++
++    SvxHorJustifyItem(
++        const SvxCellHorJustify eJustify /*= SVX_HOR_JUSTIFY_STANDARD*/,
++        const USHORT nId );
++
++    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
++                                    SfxMapUnit eCoreMetric,
++                                    SfxMapUnit ePresMetric,
++                                    String &rText, const IntlWrapper * = 0 ) const;
++
++    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
++    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
++
++    virtual USHORT          GetValueCount() const;
++    virtual String          GetValueText( USHORT nVal ) const;
++    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
++    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
++
++    inline  SvxHorJustifyItem& operator=(const SvxHorJustifyItem& rHorJustify)
++            {
++                SetValue( rHorJustify.GetValue() );
++                return *this;
++            }
++};
++
++//------------------------------------------------------------------------
++
++class EDITENG_DLLPUBLIC SvxVerJustifyItem: public SfxEnumItem
++{
++public:
++    TYPEINFO();
++
++    SvxVerJustifyItem( const USHORT nId  );
++
++    SvxVerJustifyItem(
++        const SvxCellVerJustify eJustify /*= SVX_VER_JUSTIFY_STANDARD*/,
++        const USHORT nId  );
++
++    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
++                                    SfxMapUnit eCoreMetric,
++                                    SfxMapUnit ePresMetric,
++                                    String &rText, const IntlWrapper * = 0 ) const;
++
++    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
++    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
++
++    virtual USHORT          GetValueCount() const;
++    virtual String          GetValueText( USHORT nVal ) const;
++    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
++    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
++
++    inline  SvxVerJustifyItem& operator=(const SvxVerJustifyItem& rVerJustify)
++            {
++                SetValue( rVerJustify.GetValue() );
++                return *this;
++            }
++};
++
++//------------------------------------------------------------------------
++
++class EDITENG_DLLPUBLIC SvxJustifyMethodItem: public SfxEnumItem
++{
++public:
++    SvxJustifyMethodItem( const USHORT nId );
++
++    SvxJustifyMethodItem(
++        const SvxCellJustifyMethod eMethod,
++        const USHORT nId );
++
++    virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
++                                    SfxMapUnit eCoreMetric,
++                                    SfxMapUnit ePresMetric,
++                                    String &rText, const IntlWrapper * = 0 ) const;
++
++    virtual sal_Bool             QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
++    virtual sal_Bool             PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
++
++    virtual USHORT          GetValueCount() const;
++    virtual String          GetValueText( USHORT nVal ) const;
++    virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
++    virtual SfxPoolItem*    Create( SvStream& rStream, USHORT nVer ) const;
++
++    SvxJustifyMethodItem& operator=(const SvxJustifyMethodItem& r);
++};
++
++#endif
+diff --git editeng/inc/editeng/memberids.hrc editeng/inc/editeng/memberids.hrc
+index 0eaff89..e9cb0b5 100644
+--- editeng/inc/editeng/memberids.hrc
++++ editeng/inc/editeng/memberids.hrc
+@@ -191,6 +191,8 @@
+ #define MID_CASEMAP_VARIANT		0
+ #define MID_CASEMAP_TRANS		1
+ 
+-
++// SvxHorJustifyItem
++#define MID_HORJUST_HORJUST		0
++#define MID_HORJUST_ADJUST		1
+ 
+ #endif
+diff --git editeng/inc/editeng/svxenum.hxx editeng/inc/editeng/svxenum.hxx
+index 245929d..ed04754 100644
+--- editeng/inc/editeng/svxenum.hxx
++++ editeng/inc/editeng/svxenum.hxx
+@@ -124,12 +124,19 @@ enum SvxCellHorJustify
+     SVX_HOR_JUSTIFY_REPEAT
+ };
+ 
++enum SvxCellJustifyMethod
++{
++    SVX_JUSTIFY_METHOD_AUTO,
++    SVX_JUSTIFY_METHOD_DISTRIBUTE
++};
++
+ enum SvxCellVerJustify
+ {
+     SVX_VER_JUSTIFY_STANDARD,
+     SVX_VER_JUSTIFY_TOP,
+     SVX_VER_JUSTIFY_CENTER,
+-    SVX_VER_JUSTIFY_BOTTOM
++    SVX_VER_JUSTIFY_BOTTOM,
++    SVX_VER_JUSTIFY_BLOCK
+ };
+ 
+ enum SvxCellOrientation
+diff --git editeng/source/editeng/editdoc.cxx editeng/source/editeng/editdoc.cxx
+index 7b34d93..8a3c366 100644
+--- editeng/source/editeng/editdoc.cxx
++++ editeng/source/editeng/editdoc.cxx
+@@ -178,13 +178,15 @@ SfxItemInfo aItemInfos[EDITITEMCOUNT] = {
+         { 0, SFX_ITEM_POOLABLE },							    // EE_PARA_HYPHENATE
+         { 0, SFX_ITEM_POOLABLE },							    // EE_PARA_BULLETSTATE
+         { 0, SFX_ITEM_POOLABLE },							    // EE_PARA_OUTLLRSPACE
+-        { SID_ATTR_PARA_OUTLLEVEL, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_PARA_BULLET, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_LRSPACE, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_ULSPACE, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_PARA_LINESPACE, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_PARA_ADJUST, SFX_ITEM_POOLABLE },
+-        { SID_ATTR_TABSTOP, SFX_ITEM_POOLABLE },
++        { SID_ATTR_PARA_OUTLLEVEL, SFX_ITEM_POOLABLE },         // EE_PARA_OUTLLEVEL
++        { SID_ATTR_PARA_BULLET, SFX_ITEM_POOLABLE },            // EE_PARA_BULLET
++        { SID_ATTR_LRSPACE, SFX_ITEM_POOLABLE },                // EE_PARA_LRSPACE
++        { SID_ATTR_ULSPACE, SFX_ITEM_POOLABLE },                // EE_PARA_ULSPACE
++        { SID_ATTR_PARA_LINESPACE, SFX_ITEM_POOLABLE },         // EE_PARA_SBL
++        { SID_ATTR_PARA_ADJUST, SFX_ITEM_POOLABLE },            // EE_PARA_JUST
++        { SID_ATTR_TABSTOP, SFX_ITEM_POOLABLE },                // EE_PARA_TABS
++        { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD, SFX_ITEM_POOLABLE }, // EE_PARA_JUST_METHOD
++        { SID_ATTR_ALIGN_VER_JUSTIFY, SFX_ITEM_POOLABLE },      // EE_PARA_VER_JUST
+         { SID_ATTR_CHAR_COLOR, SFX_ITEM_POOLABLE },
+         { SID_ATTR_CHAR_FONT, SFX_ITEM_POOLABLE },
+         { SID_ATTR_CHAR_FONTHEIGHT, SFX_ITEM_POOLABLE },
+diff --git editeng/source/editeng/eerdll.cxx editeng/source/editeng/eerdll.cxx
+index fa1510a..6c335c9 100644
+--- editeng/source/editeng/eerdll.cxx
++++ editeng/source/editeng/eerdll.cxx
+@@ -73,6 +73,7 @@
+ #include <editeng/frmdiritem.hxx>
+ #include <editeng/xmlcnitm.hxx>
+ #include <editeng/forbiddencharacterstable.hxx>
++#include <editeng/justifyitem.hxx>
+ #include <comphelper/processfactory.hxx>
+ 
+ static EditDLL* pDLL=0;
+@@ -107,7 +108,7 @@ SfxPoolItem** GlobalEditData::GetDefItems()
+     {
+         ppDefItems = new SfxPoolItem*[EDITITEMCOUNT];
+ 
+-        // Absatzattribute:
++        // Paragraph attributes:
+         SvxNumRule aTmpNumRule( 0, 0, FALSE );
+ 
+         ppDefItems[0]  = new SvxFrameDirectionItem( FRMDIR_HORI_LEFT_TOP, EE_PARA_WRITINGDIR );
+@@ -120,57 +121,59 @@ SfxPoolItem** GlobalEditData::GetDefItems()
+         ppDefItems[7]  = new SfxBoolItem( EE_PARA_BULLETSTATE, TRUE );
+         ppDefItems[8]  = new SvxLRSpaceItem( EE_PARA_OUTLLRSPACE );
+         ppDefItems[9]  = new SfxInt16Item( EE_PARA_OUTLLEVEL, -1 );
+-        ppDefItems[10]  = new SvxBulletItem( EE_PARA_BULLET );
+-        ppDefItems[11]  = new SvxLRSpaceItem( EE_PARA_LRSPACE );
+-        ppDefItems[12]  = new SvxULSpaceItem( EE_PARA_ULSPACE );
+-        ppDefItems[13]  = new SvxLineSpacingItem( 0, EE_PARA_SBL );
+-        ppDefItems[14]  = new SvxAdjustItem( SVX_ADJUST_LEFT, EE_PARA_JUST );
+-        ppDefItems[15]  = new SvxTabStopItem( 0, 0, SVX_TAB_ADJUST_LEFT, EE_PARA_TABS );
+-
+-        // Zeichenattribute:
+-        ppDefItems[16]  = new SvxColorItem( Color( COL_AUTO ), EE_CHAR_COLOR );
+-        ppDefItems[17]  = new SvxFontItem( EE_CHAR_FONTINFO );
+-        ppDefItems[18] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT );
+-        ppDefItems[19] = new SvxCharScaleWidthItem( 100, EE_CHAR_FONTWIDTH );
+-        ppDefItems[20] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT );
+-        ppDefItems[21] = new SvxUnderlineItem( UNDERLINE_NONE, EE_CHAR_UNDERLINE );
+-        ppDefItems[22] = new SvxCrossedOutItem( STRIKEOUT_NONE, EE_CHAR_STRIKEOUT );
+-        ppDefItems[23] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC );
+-        ppDefItems[24] = new SvxContourItem( FALSE, EE_CHAR_OUTLINE );
+-        ppDefItems[25] = new SvxShadowedItem( FALSE, EE_CHAR_SHADOW );
+-        ppDefItems[26] = new SvxEscapementItem( 0, 100, EE_CHAR_ESCAPEMENT );
+-        ppDefItems[27] = new SvxAutoKernItem( FALSE, EE_CHAR_PAIRKERNING );
+-        ppDefItems[28] = new SvxKerningItem( 0, EE_CHAR_KERNING );
+-        ppDefItems[29] = new SvxWordLineModeItem( FALSE, EE_CHAR_WLM );
+-        ppDefItems[30] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE );
+-        ppDefItems[31] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CJK );
+-        ppDefItems[32] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CTL );
+-        ppDefItems[33] = new SvxFontItem( EE_CHAR_FONTINFO_CJK );
+-        ppDefItems[34] = new SvxFontItem( EE_CHAR_FONTINFO_CTL );
+-        ppDefItems[35] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CJK );
+-        ppDefItems[36] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CTL );
+-        ppDefItems[37] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK );
+-         ppDefItems[38] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL );
+-        ppDefItems[39] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK );
+-        ppDefItems[40] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL );
+-        ppDefItems[41] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK );
+-        ppDefItems[42] = new SvxCharReliefItem( RELIEF_NONE, EE_CHAR_RELIEF );
+-        ppDefItems[43] = new SfxVoidItem( EE_CHAR_RUBI_DUMMY );
++        ppDefItems[10] = new SvxBulletItem( EE_PARA_BULLET );
++        ppDefItems[11] = new SvxLRSpaceItem( EE_PARA_LRSPACE );
++        ppDefItems[12] = new SvxULSpaceItem( EE_PARA_ULSPACE );
++        ppDefItems[13] = new SvxLineSpacingItem( 0, EE_PARA_SBL );
++        ppDefItems[14] = new SvxAdjustItem( SVX_ADJUST_LEFT, EE_PARA_JUST );
++        ppDefItems[15] = new SvxTabStopItem( 0, 0, SVX_TAB_ADJUST_LEFT, EE_PARA_TABS );
++        ppDefItems[16] = new SvxJustifyMethodItem( SVX_JUSTIFY_METHOD_AUTO, EE_PARA_JUST_METHOD );
++        ppDefItems[17] = new SvxVerJustifyItem( SVX_VER_JUSTIFY_STANDARD, EE_PARA_VER_JUST );
++
++        // Character attributes:
++        ppDefItems[18] = new SvxColorItem( Color( COL_AUTO ), EE_CHAR_COLOR );
++        ppDefItems[19] = new SvxFontItem( EE_CHAR_FONTINFO );
++        ppDefItems[20] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT );
++        ppDefItems[21] = new SvxCharScaleWidthItem( 100, EE_CHAR_FONTWIDTH );
++        ppDefItems[22] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT );
++        ppDefItems[23] = new SvxUnderlineItem( UNDERLINE_NONE, EE_CHAR_UNDERLINE );
++        ppDefItems[24] = new SvxCrossedOutItem( STRIKEOUT_NONE, EE_CHAR_STRIKEOUT );
++        ppDefItems[25] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC );
++        ppDefItems[26] = new SvxContourItem( FALSE, EE_CHAR_OUTLINE );
++        ppDefItems[27] = new SvxShadowedItem( FALSE, EE_CHAR_SHADOW );
++        ppDefItems[28] = new SvxEscapementItem( 0, 100, EE_CHAR_ESCAPEMENT );
++        ppDefItems[29] = new SvxAutoKernItem( FALSE, EE_CHAR_PAIRKERNING );
++        ppDefItems[30] = new SvxKerningItem( 0, EE_CHAR_KERNING );
++        ppDefItems[31] = new SvxWordLineModeItem( FALSE, EE_CHAR_WLM );
++        ppDefItems[32] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE );
++        ppDefItems[33] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CJK );
++        ppDefItems[34] = new SvxLanguageItem( LANGUAGE_DONTKNOW, EE_CHAR_LANGUAGE_CTL );
++        ppDefItems[35] = new SvxFontItem( EE_CHAR_FONTINFO_CJK );
++        ppDefItems[36] = new SvxFontItem( EE_CHAR_FONTINFO_CTL );
++        ppDefItems[37] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CJK );
++        ppDefItems[38] = new SvxFontHeightItem( 240, 100, EE_CHAR_FONTHEIGHT_CTL );
++        ppDefItems[39] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK );
++        ppDefItems[40] = new SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL );
++        ppDefItems[41] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK );
++        ppDefItems[42] = new SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL );
++        ppDefItems[43] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK );
++        ppDefItems[44] = new SvxCharReliefItem( RELIEF_NONE, EE_CHAR_RELIEF );
++        ppDefItems[45] = new SfxVoidItem( EE_CHAR_RUBI_DUMMY );
+ #ifndef SVX_LIGHT
+-        ppDefItems[44] = new SvXMLAttrContainerItem( EE_CHAR_XMLATTRIBS );
++        ppDefItems[46] = new SvXMLAttrContainerItem( EE_CHAR_XMLATTRIBS );
+ #else
+         // no need to have alien attributes persistent
+-        ppDefItems[44] = new SfxVoidItem( EE_CHAR_XMLATTRIBS );
++        ppDefItems[46] = new SfxVoidItem( EE_CHAR_XMLATTRIBS );
+ #endif // #ifndef SVX_LIGHT
+-        ppDefItems[45] = new SvxOverlineItem( UNDERLINE_NONE, EE_CHAR_OVERLINE );
++        ppDefItems[47] = new SvxOverlineItem( UNDERLINE_NONE, EE_CHAR_OVERLINE );
+ 
+         // Features
+-        ppDefItems[46] = new SfxVoidItem( EE_FEATURE_TAB );
+-        ppDefItems[47] = new SfxVoidItem( EE_FEATURE_LINEBR );
+-        ppDefItems[48] = new SvxCharSetColorItem( Color( COL_RED ), RTL_TEXTENCODING_DONTKNOW, EE_FEATURE_NOTCONV );
+-        ppDefItems[49] = new SvxFieldItem( SvxFieldData(), EE_FEATURE_FIELD );
++        ppDefItems[48] = new SfxVoidItem( EE_FEATURE_TAB );
++        ppDefItems[49] = new SfxVoidItem( EE_FEATURE_LINEBR );
++        ppDefItems[50] = new SvxCharSetColorItem( Color( COL_RED ), RTL_TEXTENCODING_DONTKNOW, EE_FEATURE_NOTCONV );
++        ppDefItems[51] = new SvxFieldItem( SvxFieldData(), EE_FEATURE_FIELD );
+ 
+-        DBG_ASSERT( EDITITEMCOUNT == 50, "ITEMCOUNT geaendert, DefItems nicht angepasst!" );
++        DBG_ASSERT( EDITITEMCOUNT == 52, "ITEMCOUNT geaendert, DefItems nicht angepasst!" );
+ 
+         // Init DefFonts:
+         GetDefaultFonts( *(SvxFontItem*)ppDefItems[EE_CHAR_FONTINFO - EE_ITEMS_START],
+diff --git editeng/source/editeng/impedit.hxx editeng/source/editeng/impedit.hxx
+index 2be88db..e139fa9 100644
+--- editeng/source/editeng/impedit.hxx
++++ editeng/source/editeng/impedit.hxx
+@@ -664,6 +664,8 @@ private:
+     void				SetBackgroundColor( const Color& rColor ) { maBackgroundColor = rColor; }
+     Color				GetBackgroundColor() const { return maBackgroundColor; }
+ 
++    long                CalcVertLineSpacing(Point& rStartPos) const;
++
+     Color				GetAutoColor() const;
+     void                EnableAutoColor( BOOL b ) { bUseAutoColor = b; }
+     BOOL                IsAutoColorEnabled() const { return bUseAutoColor; }
+@@ -984,6 +986,8 @@ public:
+ 
+     const SvxLRSpaceItem&	GetLRSpaceItem( ContentNode* pNode );
+     SvxAdjust               GetJustification( USHORT nPara ) const;
++    SvxCellJustifyMethod    GetJustifyMethod( USHORT nPara ) const;
++    SvxCellVerJustify       GetVerJustification( USHORT nPara ) const;
+ 
+     void				SetCharStretching( sal_uInt16 nX, sal_uInt16 nY );
+     inline void			GetCharStretching( sal_uInt16& rX, sal_uInt16& rY );
+diff --git editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit2.cxx
+index b57c6fe..45cb490 100644
+--- editeng/source/editeng/impedit2.cxx
++++ editeng/source/editeng/impedit2.cxx
+@@ -58,6 +58,7 @@
+ #include <editeng/scripttypeitem.hxx>
+ #include <editeng/frmdiritem.hxx>
+ #include <editeng/fontitem.hxx>
++#include <editeng/justifyitem.hxx>
+ #include <vcl/cmdevt.h>
+ 
+ #include <com/sun/star/i18n/CharacterIteratorMode.hpp>
+@@ -2136,6 +2137,20 @@ SvxAdjust ImpEditEngine::GetJustification( USHORT nPara ) const
+     return eJustification;
+ }
+ 
++SvxCellJustifyMethod ImpEditEngine::GetJustifyMethod( USHORT nPara ) const
++{
++    const SvxJustifyMethodItem& rItem = static_cast<const SvxJustifyMethodItem&>(
++        GetParaAttrib(nPara, EE_PARA_JUST_METHOD));
++    return static_cast<SvxCellJustifyMethod>(rItem.GetEnumValue());
++}
++
++SvxCellVerJustify ImpEditEngine::GetVerJustification( USHORT nPara ) const
++{
++    const SvxVerJustifyItem& rItem = static_cast<const SvxVerJustifyItem&>(
++        GetParaAttrib(nPara, EE_PARA_VER_JUST));
++    return static_cast<SvxCellVerJustify>(rItem.GetEnumValue());
++}
++
+ 
+ //	----------------------------------------------------------------------
+ //	Textaenderung
+diff --git editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit3.cxx
+index 01be5fb..7490a8c 100644
+--- editeng/source/editeng/impedit3.cxx
++++ editeng/source/editeng/impedit3.cxx
+@@ -61,6 +61,7 @@
+ #include <editeng/scriptspaceitem.hxx>
+ #include <editeng/charscaleitem.hxx>
+ #include <editeng/numitem.hxx>
++#include <editeng/justifyitem.hxx>
+ 
+ #include <svtools/colorcfg.hxx>
+ #include <svl/ctloptions.hxx>
+@@ -1434,9 +1435,10 @@ sal_Bool ImpEditEngine::CreateLines( USHORT nPara, sal_uInt32 nStartPosY )
+             break;
+             case SVX_ADJUST_BLOCK:
+             {
++                bool bDistLastLine = (GetJustifyMethod(nPara) == SVX_JUSTIFY_METHOD_DISTRIBUTE);
+                 long nRemainingSpace = nMaxLineWidth - aTextSize.Width();
+                 pLine->SetStartPosX( (sal_uInt16)nStartX );
+-                if ( !bEOC && ( nRemainingSpace > 0 ) ) // nicht die letzte Zeile...
++                if ( nRemainingSpace > 0 && (!bEOC || bDistLastLine) )
+                     ImpAdjustBlocks( pParaPortion, pLine, nRemainingSpace );
+             }
+             break;
+@@ -2018,22 +2020,42 @@ void ImpEditEngine::ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine,
+ 
+     // Search blanks or Kashidas...
+     SvUShorts aPositions;
+-    USHORT nChar;
+-    for ( nChar = nFirstChar; nChar <= nLastChar; nChar++ )
++    USHORT nLastScript = i18n::ScriptType::LATIN;
++    for ( USHORT nChar = nFirstChar; nChar <= nLastChar; nChar++ )
+     {
++        EditPaM aPaM( pNode, nChar+1 );
++        LanguageType eLang = GetLanguage(aPaM);
++        USHORT nScript = GetScriptType(aPaM);
++        if ( MsLangId::getPrimaryLanguage( eLang) == LANGUAGE_ARABIC_PRIMARY_ONLY )
++            // Arabic script is handled later.
++            continue;
++
+         if ( pNode->GetChar(nChar) == ' ' )
+         {
+-            // Don't use blank if language is arabic
+-            LanguageType eLang = GetLanguage( EditPaM( pNode, nChar ) );
+-            if ( MsLangId::getPrimaryLanguage( eLang) != LANGUAGE_ARABIC_PRIMARY_ONLY )
+-                aPositions.Insert( nChar, aPositions.Count() );
++            // Normal latin script.
++            aPositions.Insert( nChar, aPositions.Count() );
++        }
++        else if (nChar > nFirstChar)
++        {
++            if (nLastScript == i18n::ScriptType::ASIAN)
++            {
++                // Set break position between this and the last character if
++                // the last character is asian script.
++                aPositions.Insert( nChar-1, aPositions.Count() );
++            }
++            else if (nScript == i18n::ScriptType::ASIAN)
++            {
++                // Set break position between a latin script and asian script.
++                aPositions.Insert( nChar-1, aPositions.Count() );
++            }
+         }
++
++        nLastScript = nScript;
+     }
+ 
+     // Kashidas ?
+     ImpFindKashidas( pNode, nFirstChar, nLastChar, aPositions );
+ 
+-
+     if ( !aPositions.Count() )
+         return;
+ 
+@@ -2073,12 +2095,13 @@ void ImpEditEngine::ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine,
+     // Letztes Zeichen wird schon nicht mehr beachtet...
+     for ( USHORT n = 0; n < aPositions.Count(); n++ )
+     {
+-        nChar = aPositions[n];
++        USHORT nChar = aPositions[n];
+         if ( nChar < nLastChar )
+         {
+             USHORT nPortionStart, nPortion;
+-            nPortion = pParaPortion->GetTextPortions().FindPortion( nChar, nPortionStart );
++            nPortion = pParaPortion->GetTextPortions().FindPortion( nChar, nPortionStart, true );
+             TextPortion* pLastPortion = pParaPortion->GetTextPortions()[ nPortion ];
++            USHORT nPortionEnd = nPortionStart + pLastPortion->GetLen();
+ 
+             // Die Breite der Portion:
+             pLastPortion->GetSize().Width() += nMore4Everyone;
+@@ -2087,7 +2110,7 @@ void ImpEditEngine::ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine,
+ 
+             // Correct positions in array
+             // Even for kashidas just change positions, VCL will then draw the kashida automaticly
+-            USHORT nPortionEnd = nPortionStart + pLastPortion->GetLen();
++
+             for ( USHORT _n = nChar; _n < nPortionEnd; _n++ )
+             {
+                 pLine->GetCharPosArray()[_n-nFirstChar] += nMore4Everyone;
+@@ -2890,6 +2913,8 @@ void ImpEditEngine::Paint( OutputDevice* pOutDev, Rectangle aClipRec, Point aSta
+ //	if( GetStatus().DoOnlineSpelling() && pActiveView )
+ //		aCurPos = pActiveView->pImpEditView->GetEditSelections().Max();
+ 
++    long nVertLineSpacing = CalcVertLineSpacing(aStartPos);
++
+     // --------------------------------------------------
+     // Ueber alle Absaetze...
+     // --------------------------------------------------
+@@ -2938,12 +2963,16 @@ void ImpEditEngine::Paint( OutputDevice* pOutDev, Rectangle aClipRec, Point aSta
+                     aTmpPos.X() += pLine->GetStartPosX();
+                     aTmpPos.Y() += pLine->GetMaxAscent();
+                     aStartPos.Y() += pLine->GetHeight();
++                    if (nLine != nLastLine)
++                        aStartPos.Y() += nVertLineSpacing;
+                 }
+                 else
+                 {
+                     aTmpPos.Y() += pLine->GetStartPosX();
+                     aTmpPos.X() -= pLine->GetMaxAscent();
+                     aStartPos.X() -= pLine->GetHeight();
++                    if (nLine != nLastLine)
++                        aStartPos.X() -= nVertLineSpacing;
+                 }
+ 
+                 if ( ( !IsVertical() && ( aStartPos.Y() > aClipRec.Top() ) )
+@@ -4045,6 +4074,54 @@ ParaPortion* ImpEditEngine::GetNextVisPortion( ParaPortion* pCurPortion )
+     return pPortion;
+ }
+ 
++long ImpEditEngine::CalcVertLineSpacing(Point& rStartPos) const
++{
++    long nTotalOccupiedHeight = 0;
++    sal_uInt16 nTotalLineCount = 0;
++    const ParaPortionList& rParaPortions = GetParaPortions();
++    sal_uInt16 nParaCount = rParaPortions.Count();
++
++    for (sal_uInt16 i = 0; i < nParaCount; ++i)
++    {
++        if (GetVerJustification(i) != SVX_VER_JUSTIFY_BLOCK)
++            // All paragraphs must have the block justification set.
++            return 0;
++
++        ParaPortion* pPortion = rParaPortions.GetObject(i);
++        nTotalOccupiedHeight += pPortion->GetFirstLineOffset();
++
++        const SvxLineSpacingItem& rLSItem = (const SvxLineSpacingItem&)pPortion->GetNode()->GetContentAttribs().GetItem(EE_PARA_SBL);
++        sal_uInt16 nSBL = ( rLSItem.GetInterLineSpaceRule() == SVX_INTER_LINE_SPACE_FIX )
++                            ? GetYValue( rLSItem.GetInterLineSpace() ) : 0;
++
++        const SvxULSpaceItem& rULItem = (const SvxULSpaceItem&)pPortion->GetNode()->GetContentAttribs().GetItem(EE_PARA_ULSPACE);
++        long nUL = GetYValue( rULItem.GetLower() );
++
++        EditLineList& rLines = pPortion->GetLines();
++        sal_uInt16 nLineCount = rLines.Count();
++        nTotalLineCount += nLineCount;
++        for (sal_uInt16 j = 0; j < nLineCount; ++j)
++        {
++            EditLine* pLine = rLines.GetObject(j);
++            nTotalOccupiedHeight += pLine->GetHeight();
++            if (j < nLineCount-1)
++                nTotalOccupiedHeight += nSBL;
++            nTotalOccupiedHeight += nUL;
++        }
++    }
++
++    long nTotalSpace = IsVertical() ? aPaperSize.Width() : aPaperSize.Height();
++    nTotalSpace -= nTotalOccupiedHeight;
++    if (nTotalSpace <= 0 || nTotalLineCount <= 1)
++        return 0;
++
++    if (IsVertical())
++        // Shift the text to the right for the asian layout mode.
++        rStartPos.X() += nTotalSpace;
++
++    return nTotalSpace / (nTotalLineCount-1);
++}
++
+ EditPaM ImpEditEngine::InsertParagraph( sal_uInt16 nPara )
+ {
+     EditPaM aPaM;
+diff --git editeng/source/items/frmitems.cxx editeng/source/items/frmitems.cxx
+index a7cc6bd..00a7cfb 100644
+--- editeng/source/items/frmitems.cxx
++++ editeng/source/items/frmitems.cxx
+@@ -32,14 +32,12 @@
+ #include <com/sun/star/uno/Any.hxx>
+ #include <com/sun/star/script/XTypeConverter.hpp>
+ #include <com/sun/star/lang/XMultiServiceFactory.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>
+diff --git editeng/source/items/justifyitem.cxx editeng/source/items/justifyitem.cxx
+new file mode 100644
+index 0000000..01b9fef
+--- /dev/null
++++ editeng/source/items/justifyitem.cxx
+@@ -0,0 +1,485 @@
++/*************************************************************************
++ *
++ * 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.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_editeng.hxx"
++
++// include ---------------------------------------------------------------
++
++#include "editeng/justifyitem.hxx"
++#include "editeng/memberids.hrc"
++#include "editeng/editrids.hrc"
++#include "editeng/eerdll.hxx"
++
++#include <tools/stream.hxx>
++
++#include <com/sun/star/table/CellHoriJustify.hpp>
++#include <com/sun/star/style/ParagraphAdjust.hpp>
++#include <com/sun/star/table/CellJustifyMethod.hpp>
++#include <com/sun/star/table/CellVertJustify2.hpp>
++#include <com/sun/star/style/VerticalAlignment.hpp>
++
++// STATIC DATA -----------------------------------------------------------
++
++TYPEINIT1_FACTORY( SvxHorJustifyItem, SfxEnumItem, new SvxHorJustifyItem(SVX_HOR_JUSTIFY_STANDARD, 0) );
++TYPEINIT1_FACTORY( SvxVerJustifyItem, SfxEnumItem, new SvxVerJustifyItem(SVX_VER_JUSTIFY_STANDARD, 0) );
++
++using namespace ::com::sun::star;
++
++// class SvxHorJustifyItem -----------------------------------------------
++
++
++SvxHorJustifyItem::SvxHorJustifyItem( const USHORT nId ) :
++    SfxEnumItem( nId, (USHORT)SVX_HOR_JUSTIFY_STANDARD )
++{
++}
++
++SvxHorJustifyItem::SvxHorJustifyItem( const SvxCellHorJustify eJustify,
++                                      const USHORT nId ) :
++    SfxEnumItem( nId, (USHORT)eJustify )
++{
++}
++
++//------------------------------------------------------------------------
++
++SfxItemPresentation SvxHorJustifyItem::GetPresentation
++(
++    SfxItemPresentation ePres,
++    SfxMapUnit          /*eCoreUnit*/,
++    SfxMapUnit          /*ePresUnit*/,
++    XubString&              rText, const IntlWrapper *)    const
++{
++    switch ( ePres )
++    {
++        case SFX_ITEM_PRESENTATION_NONE:
++            rText.Erase();
++            return SFX_ITEM_PRESENTATION_NONE;
++        case SFX_ITEM_PRESENTATION_NAMELESS:
++        case SFX_ITEM_PRESENTATION_COMPLETE:
++            rText = GetValueText( GetValue() );
++            return SFX_ITEM_PRESENTATION_COMPLETE;
++        default: ; //prevent warning
++    }
++    return SFX_ITEM_PRESENTATION_NONE;
++}
++
++//------------------------------------------------------------------------
++
++sal_Bool SvxHorJustifyItem::QueryValue( uno::Any& rVal, BYTE nMemberId ) const
++{
++//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
++    nMemberId &= ~CONVERT_TWIPS;
++    switch ( nMemberId )
++    {
++        case MID_HORJUST_HORJUST:
++            {
++                table::CellHoriJustify eUno = table::CellHoriJustify_STANDARD;
++                switch ( (SvxCellHorJustify)GetValue() )
++                {
++                    case SVX_HOR_JUSTIFY_STANDARD: eUno = table::CellHoriJustify_STANDARD; break;
++                    case SVX_HOR_JUSTIFY_LEFT:	   eUno = table::CellHoriJustify_LEFT;	   break;
++                    case SVX_HOR_JUSTIFY_CENTER:   eUno = table::CellHoriJustify_CENTER;   break;
++                    case SVX_HOR_JUSTIFY_RIGHT:	   eUno = table::CellHoriJustify_RIGHT;	   break;
++                    case SVX_HOR_JUSTIFY_BLOCK:	   eUno = table::CellHoriJustify_BLOCK;	   break;
++                    case SVX_HOR_JUSTIFY_REPEAT:   eUno = table::CellHoriJustify_REPEAT;   break;
++                }
++                rVal <<= eUno;
++            }
++            break;
++        case MID_HORJUST_ADJUST:
++            {

... etc. - the rest is truncated


More information about the ooo-build-commit mailing list