incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: r1368033 - in /incubator/ooo/trunk/main/svx: inc/svx/EnhancedCustomShape2d.hxx inc/svx/EnhancedCustomShapeGeometry.hxx source/customshapes/EnhancedCustomShape2d.cxx source/customshapes/EnhancedCustomShapeGeometry.cxx
Date Wed, 01 Aug 2012 14:45:22 GMT
Author: alg
Date: Wed Aug  1 14:45:21 2012
New Revision: 1368033

URL: http://svn.apache.org/viewvc?rev=1368033&view=rev
Log:
#119755# A new custom shape ellipse ribbon is added and used
Patch by: Jianyuan Li
Review by: alg

Modified:
    incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShape2d.hxx
    incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShapeGeometry.hxx
    incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShape2d.cxx
    incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx

Modified: incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShape2d.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShape2d.hxx?rev=1368033&r1=1368032&r2=1368033&view=diff
==============================================================================
--- incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShape2d.hxx (original)
+++ incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShape2d.hxx Wed Aug  1 14:45:21 2012
@@ -199,9 +199,9 @@ class EnhancedCustomShape2d : public Sfx
 		double						GetEquationValueAsDouble( const sal_Int32 nIndex ) const;
 		sal_Int32					GetAdjustValueAsInteger( const sal_Int32 nIndex, const sal_Int32 nDefault
= 0 ) const;
 
-		SVX_DLLPUBLIC static rtl::OUString		GetEquation( const sal_uInt16 nFlags, sal_Int16 nPara1,
sal_Int16 nPara2, sal_Int16 nPara3 );
+		SVX_DLLPUBLIC static rtl::OUString		GetEquation( const sal_uInt16 nFlags, sal_Int32 nPara1,
sal_Int32 nPara2, sal_Int32 nPara3 );
 
-		static void					AppendEnhancedCustomShapeEquationParameter( rtl::OUString& rParameter,
const sal_Int16 nPara, const sal_Bool bIsSpecialValue );
+		static void					AppendEnhancedCustomShapeEquationParameter( rtl::OUString& rParameter,
const sal_Int32 nPara, const sal_Bool bIsSpecialValue );
 
 		static void					SetEnhancedCustomShapeEquationParameter( com::sun::star::drawing::EnhancedCustomShapeParameter&
 										rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue );

Modified: incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShapeGeometry.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShapeGeometry.hxx?rev=1368033&r1=1368032&r2=1368033&view=diff
==============================================================================
--- incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShapeGeometry.hxx (original)
+++ incubator/ooo/trunk/main/svx/inc/svx/EnhancedCustomShapeGeometry.hxx Wed Aug  1 14:45:21
2012
@@ -35,7 +35,7 @@ struct SvxMSDffVertPair
 struct SvxMSDffCalculationData
 {
 	sal_uInt16	nFlags;
-	sal_Int16	nVal[ 3 ];
+	sal_Int32	nVal[ 3 ];
 };
 struct SvxMSDffTextRectangles
 {

Modified: incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShape2d.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShape2d.cxx?rev=1368033&r1=1368032&r2=1368033&view=diff
==============================================================================
--- incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShape2d.cxx (original)
+++ incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShape2d.cxx Wed Aug  1
14:45:21 2012
@@ -89,7 +89,7 @@ void EnhancedCustomShape2d::SetEnhancedC
 	rParameter.Value <<= nNewValue;
 }
 
-rtl::OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int16 nP1,
sal_Int16 nP2, sal_Int16 nP3 )
+rtl::OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int32 nP1,
sal_Int32 nP2, sal_Int32 nP3 )
 {
 	rtl::OUString aEquation;
 	sal_Bool b1Special = ( nFlags & 0x2000 ) != 0;
@@ -335,7 +335,7 @@ rtl::OUString EnhancedCustomShape2d::Get
 	return aEquation;
 }
 
-void EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( rtl::OUString&
rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue )
+void EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( rtl::OUString&
rParameter, const sal_Int32 nPara, const sal_Bool bIsSpecialValue )
 {
 	if ( bIsSpecialValue )
 	{

Modified: incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx?rev=1368033&r1=1368032&r2=1368033&view=diff
==============================================================================
--- incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx (original)
+++ incubator/ooo/trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx Wed Aug
 1 14:45:21 2012
@@ -4507,7 +4507,292 @@ static const mso_CustomShape msoRibbon =
 	(SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof(
SvxMSDffVertPair ),
 	(SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle
)
 };
-
+//msosptEllipseRibbon
+//svg path = ar@9@38@8@37,0@27@0@26@9@13@8@4@0@25@22@25@9@38@8@37@22@26@3@27l@7@40@3,wa@9@35@8@10@3,0@21@33@9@36@8@1@21@31@20@31@9@35@8@10@20@33,,l@5@40xewr@9@36@8@1@20@31@0@32nfl@20@33ear@9@36@8@1@21@31@22@32nfl@21@33em@0@26nfl@0@32em@22@26nfl@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,@1,@22,@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,@47
+//position="center,#1" yrange="@10,@43
+//position="topLeft,#2" yrange="@27,@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*/, 0x80000000, 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, 0x80000000, 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, 0x80000000, 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,
+	0x80000000, 0x80000000,
+	NULL, 0,
+	(SvxMSDffHandle*)mso_sptEllipseRibbonHandle, sizeof( mso_sptEllipseRibbonHandle ) / sizeof(
SvxMSDffHandle )
+};
+
+//msosptEllipseRibbon2
+//svg path = wr@9@34@8@35,0@24@0@23@9,0@8@11@0@22@19@22@9@34@8@35@19@23@3@24l@7@36@3@4at@9@31@8@32@3@4@18@30@9@1@8@33@18@28@17@28@9@31@8@32@17@30,0@4l@5@36xear@9@1@8@33@17@28@0@29nfl@17@30ewr@9@1@8@33@18@28@19@29nfl@18@30em@0@23nfl@0@29em@19@23nfl@19@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,@22,@19,@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,@43
+//position="center,#1" yrange="@39,@31
+//position="topLeft,#2" yrange="@41,@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*/, 0x80000000, 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, 0x80000000, 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, 0x80000000, 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,
+	0x80000000, 0x80000000,
+	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 },
@@ -8047,8 +8332,8 @@ const mso_CustomShape* GetCustomShapeCon
 		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;



Mime
View raw message