[Libreoffice-commits] core.git: 2 commits - include/svx svx/source

Caolán McNamara caolanm at redhat.com
Sat May 18 07:43:24 PDT 2013


 include/svx/EnhancedCustomShape2d.hxx                   |    4 
 include/svx/EnhancedCustomShapeGeometry.hxx             |    2 
 svx/source/customshapes/EnhancedCustomShape2d.cxx       |    4 
 svx/source/customshapes/EnhancedCustomShapeGeometry.cxx |  291 +++++++++++++++-
 svx/source/svdraw/svdopath.cxx                          |    4 
 5 files changed, 293 insertions(+), 12 deletions(-)

New commits:
commit f47ed987388e4df58ba74b9aca574a7d1fba396a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat May 18 15:42:50 2013 +0100

    Revert "Resolves: #i116244# need to reset rotation..."
    
    This reverts commit 20dee85b6390ef3edc5434889523cd9fd0137bae.

diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index da8a767..f416cea 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -1770,10 +1770,6 @@ void SdrPathObj::ImpForceKind()
         {
             aRect = lcl_ImpGetBoundRect(GetPathPoly());
         }
-
-        // #i116244# reset rotation
-        aGeo.nDrehWink = aGeo.nShearWink = 0;
-        aGeo.RecalcSinCos(); aGeo.RecalcTan();
     }
 
     // #i75974# adapt polygon state to object type. This may include a reinterpretation
commit 569dfd22e09e954654f4a383da9d0ac7dad33737
Author: Armin Le Grand <alg at apache.org>
Date:   Wed Aug 1 13:45:21 2012 +0000

    Resolves: #i119755# A new custom shape ellipse ribbon is added and used
    
    Patch by: Jianyuan Li
    Review by: alg
    
    (cherry picked from commit 462656d2f30fade52e38094dcc2392f75b28ef79)
    
    Conflicts:
    	svx/inc/svx/EnhancedCustomShape2d.hxx
    	svx/inc/svx/EnhancedCustomShapeGeometry.hxx
    	svx/source/customshapes/EnhancedCustomShape2d.cxx
    
    Change-Id: Ifd1fdf1b79db8229b52db43b3c30f109a9930988

diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx
index 600e247..2aee4f5 100644
--- a/include/svx/EnhancedCustomShape2d.hxx
+++ b/include/svx/EnhancedCustomShape2d.hxx
@@ -209,9 +209,9 @@ class EnhancedCustomShape2d : public SfxItemSet
         double                      GetEquationValueAsDouble( const sal_Int32 nIndex ) const;
         sal_Int32                   GetAdjustValueAsInteger( const sal_Int32 nIndex, const sal_Int32 nDefault = 0 ) const;
 
-        SVX_DLLPUBLIC static OUString      GetEquation( const sal_uInt16 nFlags, sal_Int16 nPara1, sal_Int16 nPara2, sal_Int16 nPara3 );
+        SVX_DLLPUBLIC static OUString      GetEquation( const sal_uInt16 nFlags, sal_Int32 nPara1, sal_Int32 nPara2, sal_Int32 nPara3 );
 
-        static void                 AppendEnhancedCustomShapeEquationParameter( OUString& rParameter, const sal_Int16 nPara, const bool bIsSpecialValue );
+        static void                 AppendEnhancedCustomShapeEquationParameter( OUString& rParameter, const sal_Int32 nPara, const bool bIsSpecialValue );
 
         static void                 SetEnhancedCustomShapeEquationParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
                                         rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue );
diff --git a/include/svx/EnhancedCustomShapeGeometry.hxx b/include/svx/EnhancedCustomShapeGeometry.hxx
index 4669e68..b574488 100644
--- a/include/svx/EnhancedCustomShapeGeometry.hxx
+++ b/include/svx/EnhancedCustomShapeGeometry.hxx
@@ -31,7 +31,7 @@ struct SvxMSDffVertPair
 struct SvxMSDffCalculationData
 {
     sal_uInt16  nFlags;
-    sal_Int16   nVal[ 3 ];
+    sal_Int32   nVal[ 3 ];
 };
 struct SvxMSDffTextRectangles
 {
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index 210f55b..0675abd 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -77,7 +77,7 @@ void EnhancedCustomShape2d::SetEnhancedCustomShapeParameter( EnhancedCustomShape
     rParameter.Value <<= nNewValue;
 }
 
-OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int16 nP1, sal_Int16 nP2, sal_Int16 nP3 )
+OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int32 nP1, sal_Int32 nP2, sal_Int32 nP3 )
 {
     OUString aEquation;
     bool b1Special = ( nFlags & 0x2000 ) != 0;
@@ -321,7 +321,7 @@ OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int16
     return aEquation;
 }
 
-void EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( OUString& rParameter, const sal_Int16 nPara, const bool bIsSpecialValue )
+void EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( OUString& rParameter, const sal_Int32 nPara, const bool bIsSpecialValue )
 {
     if ( bIsSpecialValue )
     {
diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
index 06d0081..2c3cdd7 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
@@ -4483,7 +4483,292 @@ static const mso_CustomShape msoRibbon =
     (SvxMSDffVertPair*)mso_sptRibbonGluePoints, SAL_N_ELEMENTS( mso_sptRibbonGluePoints ),
     (SvxMSDffHandle*)mso_sptRibbonHandle, SAL_N_ELEMENTS( mso_sptRibbonHandle )
 };
-
+//msosptEllipseRibbon
+//svg path = ar at 9@38 at 8@37,0 at 27@0 at 26@9 at 13@8 at 4@0 at 25@22 at 25@9 at 38@8 at 37@22 at 26@3 at 27l@7 at 40@3,wa at 9@35 at 8@10 at 3,0 at 21@33 at 9@36 at 8@1 at 21@31 at 20@31 at 9@35 at 8@10 at 20@33,,l at 5@40xewr at 9@36 at 8@1 at 20@31 at 0@32nfl at 20@33ear at 9@36 at 8@1 at 21@31 at 22@32nfl at 21@33em at 0@26nfl at 0@32em at 22@26nfl at 22@32e
+//odp path = A ?f9 ?f38 ?f8 ?f37 0 ?f27 ?f0 ?f26 ?f9 ?f13 ?f8 ?f4 ?f0 ?f25 ?f22 ?f25 ?f9 ?f38 ?f8 ?f37 ?f22 ?f26 ?f3 ?f27 L ?f7 ?f40 ?f3 0 W ?f9 ?f35 ?f8 ?f10 ?f3 0 ?f21 ?f33 ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f20 ?f31 ?f9 ?f35 ?f8 ?f10 ?f20 ?f33 0 0 L ?f5 ?f40 Z N W ?f9 ?f36 ?f8 ?f1 ?f20 ?f31 ?f0 ?f32 F L ?f20 ?f33 N A ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f22 ?f32 F L ?f21 ?f33 N M ?f0 ?f26 F L ?f0 ?f32 N M ?f22 ?f26 F L ?f22 ?f32 N
+static const SvxMSDffVertPair mso_sptEllipseRibbonVert[] =
+{
+    { 9 MSO_I , 38 MSO_I },
+    { 8 MSO_I , 37 MSO_I },
+    { 0 , 27 MSO_I },
+    { 0 MSO_I , 26 MSO_I },
+    { 9 MSO_I , 13 MSO_I },
+    { 8 MSO_I , 4 MSO_I },
+    { 0 MSO_I , 25 MSO_I },
+    { 22 MSO_I , 25 MSO_I },
+    { 9 MSO_I , 38 MSO_I },
+    { 8 MSO_I , 37 MSO_I },
+    { 22 MSO_I , 26 MSO_I },
+    { 3 MSO_I , 27 MSO_I },
+    { 7 MSO_I , 40 MSO_I },
+    { 3 MSO_I , 0 },
+    { 9 MSO_I , 35 MSO_I },
+    { 8 MSO_I , 10 MSO_I },
+    { 3 MSO_I , 0 },
+    { 21 MSO_I , 33 MSO_I },
+    { 9 MSO_I , 36 MSO_I },
+    { 8 MSO_I , 1 MSO_I },
+    { 21 MSO_I , 31 MSO_I },
+    { 20 MSO_I , 31 MSO_I },
+    { 9 MSO_I , 35 MSO_I },
+    { 8 MSO_I , 10 MSO_I },
+    { 20 MSO_I , 33 MSO_I },
+    { 0 , 0 },
+    { 5 MSO_I , 40 MSO_I },
+    { 9 MSO_I , 36 MSO_I },
+    { 8 MSO_I , 1 MSO_I },
+    { 20 MSO_I , 31 MSO_I },
+    { 0 MSO_I , 32 MSO_I },
+    { 20 MSO_I , 33 MSO_I },
+    { 9 MSO_I , 36 MSO_I },
+    { 8 MSO_I , 1 MSO_I },
+    { 21 MSO_I , 31 MSO_I },
+    { 22 MSO_I , 32 MSO_I },
+    { 21 MSO_I , 33 MSO_I },
+    { 0 MSO_I , 26 MSO_I },
+    { 0 MSO_I , 32 MSO_I },
+    { 22 MSO_I , 26 MSO_I },
+    { 22 MSO_I , 32 MSO_I }
+};
+
+static const sal_uInt16 mso_sptEllipseRibbonSegm[] =
+{
+    0xa30c /*ar*/,0x0002/*l*/,0xa50c/*wa*/,0x0001/*l*/,
+    0x6001/*x*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/
+};
+
+static const SvxMSDffCalculationData mso_sptEllipseRibbonCalc[] =
+{
+    { 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
+    { 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
+    { 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
+    { 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
+    { 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
+    { 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
+    { 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
+    { 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
+    { 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
+    { 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
+    { 0x2001 , { 0x40a , 30573 , 4096 } }, //prod @10 30573 4096
+    { 0x2001 , { 0x40b , 2 , 1 } }, //prod @11 2 1
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x40c } }, //sum height 0 @12
+    { 0x6000 , { 0x40b , DFF_Prop_adjust3Value , 0 } }, //sum @11 #2 0
+    { 0xe000 , { 0x40b , DFF_Prop_geoBottom , DFF_Prop_adjust2Value } }, //sum @11 height #1
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust2Value } }, //sum height 0 #1
+    { 0x2001 , { 0x410 , 1 , 2 } }, //prod @16 1 2
+    { 0x6000 , { 0x40b , 0x411 , 0 } }, //sum @11 @17 0
+    { 0xe000 , { 0x40e , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @14 #1 height
+    { 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
+    { 0xa000 , { DFF_Prop_geoRight , 0 , 0x414 } }, //sum width 0 @20
+    { 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
+    { 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
+    { 0xe00f , { 0x417 , DFF_Prop_geoRight , 0x40b } }, //ellipse @23 width @11
+    { 0xe000 , { 0x418 , DFF_Prop_geoBottom , 0x40b } }, //sum @24 height @11
+    { 0xe000 , { 0x419 , 0x40b , 0x413 } }, //sum @25 @11 @19
+    { 0xe000 , { DFF_Prop_adjust3Value , 0x40b , 0x413 } }, //sum #2 @11 @19
+    { 0x2001 , { 0x40b , 2391 , 32768 } }, //prod @11 2391 32768
+    { 0xa000 , { 0x406 , 0 , 0x414 } }, //sum @6 0 @20
+    { 0xe00f , { 0x41d , DFF_Prop_geoRight , 0x40b } }, //ellipse @29 width @11
+    { 0xe000 , { DFF_Prop_adjust2Value , 0x41e , 0x40b } }, //sum #1 @30 @11
+    { 0xe000 , { 0x419 , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @25 #1 height
+    { 0xe000 , { DFF_Prop_geoBottom , 0x41e , 0x40e } }, //sum height @30 @14
+    { 0x6000 , { 0x40b , 0x40e , 0 } }, //sum @11 @14 0
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x422 } }, //sum height 0 @34
+    { 0xe000 , { 0x423 , 0x413 , 0x40b } }, //sum @35 @19 @11
+    { 0xe000 , { 0x40a , 0x40f , 0x40b } }, //sum @10 @15 @11
+    { 0xe000 , { 0x423 , 0x40f , 0x40b } }, //sum @35 @15 @11
+    { 0xe000 , { 0x41c , 0x40e , 0x412 } }, //sum @28 @14 @18
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x427 } }, //sum height 0 @39
+    { 0xa000 , { 0x413 , 0 , 0x412 } }, //sum @19 0 @18
+    { 0x2001 , { 0x429 , 2 , 3 } }, //prod @41 2 3
+    { 0xa000 , { DFF_Prop_adjust2Value , 0 , 0x42a } }, //sum #1 0 @42
+    { 0xa000 , { DFF_Prop_adjust3Value , 0 , 0x42a } }, //sum #2 0 @42
+    { 0x2004 , { 0x42c , 20925 , 0 } }, //min @44 20925
+    { 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
+    { 0x2000 , { 0x42e , 0 , 4 } }, //sum @46 0 4
+};
+
+static const SvxMSDffTextRectangles mso_sptEllipseRibbonTextRect[] =
+{//@0, at 1, at 22, at 25
+    { { 0 MSO_I, 1 MSO_I }, { 22 MSO_I, 25 MSO_I } }
+};
+
+static const sal_Int32 mso_sptEllipseRibbonDefault[] =
+{
+    3,5400,5400,18900
+};
+
+static const SvxMSDffHandle mso_sptEllipseRibbonHandle[] =
+{
+//position="#0,bottomRight" xrange="@5, at 47
+//position="center,#1" yrange="@10, at 43
+//position="topLeft,#2" yrange="@27, at 45
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL| MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
+        0x100, 21600, 0, 0, 0x8/*5+3*/, 0x32/*47+3*/, MIN_INT32, 0x7fffffff },
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
+        10800, 0x101, 0, 0, MIN_INT32, 0x7fffffff,0xd/*10+3*/, 0x2e /*43+3*/ },
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
+        0, 0x102, 0, 0, MIN_INT32, 0x7fffffff,0x1e/*27+3*/, 0x30 /*45+3*/ }
+};
+
+static const mso_CustomShape msosptEllipseRibbon =
+{
+    (SvxMSDffVertPair*)mso_sptEllipseRibbonVert, sizeof( mso_sptEllipseRibbonVert ) / sizeof( SvxMSDffVertPair ),
+    (sal_uInt16*)mso_sptEllipseRibbonSegm, sizeof( mso_sptEllipseRibbonSegm ) >> 1,
+    (SvxMSDffCalculationData*)mso_sptEllipseRibbonCalc, sizeof( mso_sptEllipseRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
+    (sal_Int32*)mso_sptEllipseRibbonDefault,
+    (SvxMSDffTextRectangles*)mso_sptEllipseRibbonTextRect, sizeof( mso_sptEllipseRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
+    21600, 21600,
+    MIN_INT32, MIN_INT32,
+    NULL, 0,
+    (SvxMSDffHandle*)mso_sptEllipseRibbonHandle, sizeof( mso_sptEllipseRibbonHandle ) / sizeof( SvxMSDffHandle )
+};
+
+//msosptEllipseRibbon2
+//svg path = wr at 9@34 at 8@35,0 at 24@0 at 23@9,0 at 8@11 at 0@22 at 19@22 at 9@34 at 8@35 at 19@23 at 3@24l at 7@36 at 3@4at at 9@31 at 8@32 at 3@4 at 18@30 at 9@1 at 8@33 at 18@28 at 17@28 at 9@31 at 8@32 at 17@30,0 at 4l@5 at 36xear@9 at 1@8 at 33@17 at 28@0 at 29nfl@17 at 30ewr@9 at 1@8 at 33@18 at 28@19 at 29nfl@18 at 30em@0 at 23nfl@0 at 29em@19 at 23nfl@19 at 29e
+static const SvxMSDffVertPair mso_sptEllipseRibbon2Vert[] =
+{
+    { 9 MSO_I , 34 MSO_I },
+    { 8 MSO_I , 35 MSO_I },
+    { 0 , 24 MSO_I },
+    { 0 MSO_I , 23 MSO_I },
+    { 9 MSO_I , 0 },
+    { 8 MSO_I , 11 MSO_I },
+    { 0 MSO_I , 22 MSO_I },
+    { 19 MSO_I , 22 MSO_I },
+    { 9 MSO_I , 34 MSO_I },
+    { 8 MSO_I , 35 MSO_I },
+    { 19 MSO_I , 23 MSO_I },
+    { 3 MSO_I , 24 MSO_I },
+    { 7 MSO_I , 36 MSO_I },
+    { 3 MSO_I , 4 MSO_I },
+    { 9 MSO_I , 31 MSO_I },
+    { 8 MSO_I , 32 MSO_I },
+    { 3 MSO_I , 4 MSO_I },
+    { 18 MSO_I , 30 MSO_I },
+    { 9 MSO_I , 1 MSO_I },
+    { 8 MSO_I , 33 MSO_I },
+    { 18 MSO_I , 28 MSO_I },
+    { 17 MSO_I , 28 MSO_I },
+    { 9 MSO_I , 31 MSO_I },
+    { 8 MSO_I , 32 MSO_I },
+    { 17 MSO_I , 30 MSO_I },
+    { 0 , 4l MSO_I },
+    { 5 MSO_I , 36 MSO_I },
+    { 9 MSO_I , 1 MSO_I },
+    { 8 MSO_I , 33 MSO_I },
+    { 17 MSO_I , 28 MSO_I },
+    { 0 MSO_I , 29 MSO_I },
+    { 17 MSO_I , 30 MSO_I },
+    { 9 MSO_I , 1 MSO_I },
+    { 8 MSO_I , 33 MSO_I },
+    { 18 MSO_I , 28 MSO_I },
+    { 19 MSO_I , 29 MSO_I },
+    { 18 MSO_I , 30 MSO_I },
+    { 0 MSO_I , 23 MSO_I },
+    { 0 MSO_I , 29 MSO_I },
+    { 19 MSO_I , 23 MSO_I },
+    { 19 MSO_I , 29 MSO_I }
+};
+static const sal_uInt16 mso_sptEllipseRibbon2Segm[] =
+{
+    0xa50c/*wr*/,0x0002/*l*/,0xa30c/*at*/,0x0001/*l*/,
+    0x6001/*x*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
+    0x0001/*l*/, 0x8000/*e*/
+};
+
+static const SvxMSDffCalculationData mso_sptEllipseRibbon2Calc[] =
+{
+    { 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
+    { 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
+    { 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
+    { 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
+    { 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
+    { 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
+    { 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
+    { 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
+    { 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
+    { 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
+    { 0x2001 , { DFF_Prop_adjust3Value , 30573 , 4096 } }, //prod #2 30573 4096
+    { 0x2001 , { 0x40a , 2 , 1 } }, //prod @10 2 1
+    { 0xe000 , { 0x40a , DFF_Prop_geoBottom , DFF_Prop_adjust3Value } }, //sum @10 height #2
+    { 0x6000 , { 0x40a , DFF_Prop_adjust2Value , 0 } }, //sum @10 #1 0
+    { 0x2001 , { DFF_Prop_adjust2Value , 1 , 2 } }, //prod #1 1 2
+    { 0x6000 , { 0x40a , 0x40e , 0 } }, //sum @10 @14 0
+    { 0xa000 , { 0x40c , 0 , DFF_Prop_adjust2Value } }, //sum @12 0 #1
+    { 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
+    { 0xa000 , { DFF_Prop_geoRight , 0 , 0x411 } }, //sum width 0 @17
+    { 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
+    { 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
+    { 0xe00f , { 0x414 , DFF_Prop_geoRight , 0x40a } }, //ellipse @20 width @10
+    { 0xa000 , { 0x40a , 0 , 0x415 } }, //sum @10 0 @21
+    { 0xe000 , { 0x416 , 0x410 , 0x40a } }, //sum @22 @16 @10
+    { 0xe000 , { DFF_Prop_adjust3Value , 0x410 , 0x40a } }, //sum #2 @16 @10
+    { 0x2001 , { 0x40a , 2391 , 32768 } }, //prod @10 2391 32768
+    { 0xa000 , { 0x406 , 0 , 0x411 } }, //sum @6 0 @17
+    { 0xe00f , { 0x41a , DFF_Prop_geoRight , 0x40a } }, //ellipse @26 width @10
+    { 0xe000 , { 0x40a , DFF_Prop_adjust2Value , 0x41b } }, //sum @10 #1 @27
+    { 0x6000 , { 0x416 , DFF_Prop_adjust2Value , 0 } }, //sum @22 #1 0
+    { 0xa000 , { 0x40c , 0 , 0x41b } }, //sum @12 0 @27
+    { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
+    { 0x6000 , { 0x40a , 0x40c , 0 } }, //sum @10 @12 0
+    { 0xe000 , { 0x420 , 0x40a , 0x410 } }, //sum @32 @10 @16
+    { 0xe000 , { 0x41f , 0x40a , 0x40d } }, //sum @31 @10 @13
+    { 0xe000 , { 0x420 , 0x40a , 0x40d } }, //sum @32 @10 @13
+    { 0xe000 , { 0x419 , 0x40c , 0x40f } }, //sum @25 @12 @15
+    { 0xa000 , { 0x410 , 0 , 0x40f } }, //sum @16 0 @15
+    { 0x2001 , { 0x425 , 2 , 3 } }, //prod @37 2 3
+    { 0x6000 , { 0x401 , 0x426 , 0 } }, //sum @1 @38 0
+    { 0x6000 , { DFF_Prop_adjust3Value , 0x426 , 0 } }, //sum #2 @38 0
+    { 0x2005 , { 0x428 , 675 , 0 } }, //max @40 675
+    { 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
+    { 0x2000 , { 0x42a , 0 , 4 } } //sum @42 0 4
+};
+
+static const SvxMSDffTextRectangles mso_sptEllipseRibbon2TextRect[] =
+{//@0, at 22, at 19, at 1
+    { { 0 MSO_I, 22 MSO_I }, { 19 MSO_I, 1 MSO_I } }
+};
+
+static const sal_Int32 mso_sptEllipseRibbon2Default[] =
+{
+    3,5400,16200,2700
+};
+
+static const SvxMSDffHandle mso_sptEllipseRibbon2Handle[] =
+{
+//position="#0,topLeft" xrange="@5, at 43
+//position="center,#1" yrange="@39, at 31
+//position="topLeft,#2" yrange="@41, at 24
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL| MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
+        0x100, 0, 0, 0, 0x8/*5+3*/, 0x2e/*43+3*/, MIN_INT32, 0x7fffffff },
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
+        10800, 0x101, 0, 0, MIN_INT32, 0x7fffffff,0x2a/*39+3*/, 0x22 /*31+3*/ },
+    {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
+        0, 0x102, 0, 0, MIN_INT32, 0x7fffffff,0x2c/*41+3*/, 0x1b /*24+3*/ }
+};
+
+static const mso_CustomShape msosptEllipseRibbon2 =
+{
+    (SvxMSDffVertPair*)mso_sptEllipseRibbon2Vert, sizeof( mso_sptEllipseRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
+    (sal_uInt16*)mso_sptEllipseRibbon2Segm, sizeof( mso_sptEllipseRibbon2Segm ) >> 1,
+    (SvxMSDffCalculationData*)mso_sptEllipseRibbon2Calc, sizeof( mso_sptEllipseRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
+    (sal_Int32*)mso_sptEllipseRibbon2Default,
+    (SvxMSDffTextRectangles*)mso_sptEllipseRibbon2TextRect, sizeof( mso_sptEllipseRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
+    21600, 21600,
+    MIN_INT32, MIN_INT32,
+    NULL, 0,
+    (SvxMSDffHandle*)mso_sptEllipseRibbon2Handle, sizeof( mso_sptEllipseRibbon2Handle ) / sizeof( SvxMSDffHandle )
+};
+// End
 static const SvxMSDffVertPair mso_sptVerticalScrollVert[] = // adjustment1 : 0 - 5400
 {
     { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
@@ -8023,8 +8308,8 @@ const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
         case mso_sptSeal32 :                    pCustomShape = &msoSeal32; break;
         case mso_sptRibbon2 :                   pCustomShape = &msoRibbon2; break;
         case mso_sptRibbon :                    pCustomShape = &msoRibbon; break;
-        case mso_sptEllipseRibbon2 :            pCustomShape = &msoRibbon2; break;  // SJ: TODO
-        case mso_sptEllipseRibbon :             pCustomShape = &msoRibbon; break;   // SJ: TODO
+        case mso_sptEllipseRibbon2 :            pCustomShape = &msosptEllipseRibbon2; break;    // SJ: TODO
+        case mso_sptEllipseRibbon :             pCustomShape = &msosptEllipseRibbon; break; // SJ: TODO
         case mso_sptVerticalScroll :            pCustomShape = &msoVerticalScroll;  break;
         case mso_sptHorizontalScroll :          pCustomShape = &msoHorizontalScroll; break;
         case mso_sptFlowChartProcess :          pCustomShape = &msoFlowChartProcess; break;


More information about the Libreoffice-commits mailing list