oox/CppunitTest_oox_shape.mk                               |    1 
 oox/qa/unit/data/tdf144742_funnel.pptx                     |binary
 oox/qa/unit/data/tdf144742_mathEqual_mathNotEqual.pptx     |binary
 oox/qa/unit/shape.cxx                                      |   79 +++++++++++++
 oox/source/drawingml/customshapegeometry.cxx               |   15 +-
 oox/source/drawingml/customshapes/oox-drawingml-cs-presets |    6 
 6 files changed, 94 insertions(+), 7 deletions(-)

New commits:
commit 312ba0c7657807097ce4577072e533a4fcca329a
Author:     Regina Henschel <[email protected]>
AuthorDate: Fri Jun 13 21:32:39 2025 +0200
Commit:     Regina Henschel <[email protected]>
CommitDate: Sat Jun 14 17:59:09 2025 +0200

    tdf#144743 Allow guide name with starting digit
    
    In OOXML, it is allowed for a guide name to start with a digit. The
    presetShapeDefinitions funnel, mathEqual, and mathNotEqual have such
    guides.
    
    If a formula uses such a guide, LO imported it as a number instead of
    a reference to the guide. The problem occurs with both prstGeom and
    custGeom.
    
    Change-Id: I7cda3be05d98c3101e84da0dcb01686a97baa77f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186478
    Tested-by: Jenkins
    Reviewed-by: Regina Henschel <[email protected]>

diff --git a/oox/CppunitTest_oox_shape.mk b/oox/CppunitTest_oox_shape.mk
index a969d808a28b..f4e7384b4f51 100644
--- a/oox/CppunitTest_oox_shape.mk
+++ b/oox/CppunitTest_oox_shape.mk
@@ -26,6 +26,7 @@ $(eval $(call gb_CppunitTest_use_libraries,oox_shape, \
     docmodel \
     oox \
     sal \
+    sfx \
     subsequenttest \
     svx \
     svxcore \
diff --git a/oox/qa/unit/data/tdf144742_funnel.pptx 
b/oox/qa/unit/data/tdf144742_funnel.pptx
new file mode 100644
index 000000000000..185befc190be
Binary files /dev/null and b/oox/qa/unit/data/tdf144742_funnel.pptx differ
diff --git a/oox/qa/unit/data/tdf144742_mathEqual_mathNotEqual.pptx 
b/oox/qa/unit/data/tdf144742_mathEqual_mathNotEqual.pptx
new file mode 100644
index 000000000000..a0625e9d0d55
Binary files /dev/null and 
b/oox/qa/unit/data/tdf144742_mathEqual_mathNotEqual.pptx differ
diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx
index 5d0a7b943ecb..fc2754a84884 100644
--- a/oox/qa/unit/shape.cxx
+++ b/oox/qa/unit/shape.cxx
@@ -15,6 +15,7 @@
 
 #include <com/sun/star/awt/FontWeight.hpp>
 #include <com/sun/star/awt/Gradient2.hpp>
+#include <com/sun/star/awt/Point.hpp>
 #include <com/sun/star/awt/Size.hpp>
 #include <com/sun/star/awt/XBitmap.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
@@ -40,6 +41,8 @@
 #include <docmodel/uno/UnoGradientTools.hxx>
 #include <basegfx/utils/gradienttools.hxx>
 #include <editeng/unoprnms.hxx>
+#include <sfx2/viewsh.hxx>
+#include <svx/svdview.hxx>
 
 using namespace ::com::sun::star;
 
@@ -960,6 +963,82 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testGlowOnGroup)
     uno::Reference<container::XIndexAccess> xGroup(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xGroup->getCount());
 }
+
+CPPUNIT_TEST_FIXTURE(OoxShapeTest, testDigitGuideName_funnel)
+{
+    // OOXMl allows that a guide name starts with a digit. LO had interpreted 
this a number.
+    loadFromFile(u"tdf144742_funnel.pptx");
+    uno::Reference<drawing::XDrawPagesSupplier> 
xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<drawing::XDrawPage> 
xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+                                                 uno::UNO_QUERY);
+    SfxViewShell* pViewShell = SfxViewShell::Current();
+    SdrView* pSdrView = pViewShell->GetDrawView();
+
+    // Test idea: Convert the shape to a Bézier curve. Test the end coordinate 
of the first half
+    // ellipse. Without fix the curve ended earlier in (9951|2152) instead of 
point (10000|2500).
+
+    // Test prstGeom object. Error was in oox-drawingml-cs-presets.
+    // Mark object and convert it to Bézier curve. Ungroup result of 
conversion gives two shapes.
+    uno::Reference<drawing::XShape> xShapePrst(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
+    SdrObject* pSdrShapePrst(SdrObject::getSdrObjectFromXShape(xShapePrst));
+    pSdrView->MarkObj(pSdrShapePrst, pSdrView->GetSdrPageView());
+    dispatchCommand(mxComponent, u".uno:ChangeBezier"_ustr, {});
+    dispatchCommand(mxComponent, u".uno:FormatUngroup"_ustr, {});
+    pSdrView->UnmarkAll();
+
+    // Examine the geometry. The test compares relative values.
+    uno::Reference<beans::XPropertySet> xPropsPrst(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
+    css::drawing::PolyPolygonBezierCoords aCurveGeometryPrst;
+    xPropsPrst->getPropertyValue(u"Geometry"_ustr) >>= aCurveGeometryPrst;
+    // PolyPolygonBezierCoords has Coordinates and Flags.
+    // [0] is for the outer outline, [1] for the inner ellipse of the funnel.
+    css::awt::Point aPointPrst = aCurveGeometryPrst.Coordinates[0][22];
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2500), aPointPrst.Y);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(10000), aPointPrst.X);
+
+    // Test custGeom object. Error was in customshapegeometry.cxx
+    uno::Reference<drawing::XShape> xShapeCust(xDrawPage->getByIndex(2), 
uno::UNO_QUERY);
+    SdrObject* pSdrShapeCust(SdrObject::getSdrObjectFromXShape(xShapeCust));
+    pSdrView->MarkObj(pSdrShapeCust, pSdrView->GetSdrPageView());
+    dispatchCommand(mxComponent, u".uno:ChangeBezier"_ustr, {});
+    dispatchCommand(mxComponent, u".uno:FormatUngroup"_ustr, {});
+    pSdrView->UnmarkAll();
+
+    uno::Reference<beans::XPropertySet> xPropsCust(xDrawPage->getByIndex(2), 
uno::UNO_QUERY);
+    css::drawing::PolyPolygonBezierCoords aCurveGeometryCust;
+    xPropsCust->getPropertyValue(u"Geometry"_ustr) >>= aCurveGeometryCust;
+    css::awt::Point aPointCust = aCurveGeometryCust.Coordinates[0][22];
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2500), aPointCust.Y);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(10000), aPointCust.X);
+}
+
+CPPUNIT_TEST_FIXTURE(OoxShapeTest, testDigitGuideName_mathEqual)
+{
+    // OOXMl allows that a guide name starts with a digit. LO had interpreted 
this a number.
+    // This test is about the preset types mathEqual and mathNotEqual
+    // Error was, that the handle values were not clamped correctly and thus 
parts of the drawing
+    // were outside the frame rect. The test shapes have handles that need to 
be clamped.
+    loadFromFile(u"tdf144742_mathEqual_mathNotEqual.pptx");
+    uno::Reference<drawing::XDrawPagesSupplier> 
xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<drawing::XDrawPage> 
xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+                                                 uno::UNO_QUERY);
+
+    // Verify that drawing height is clamped to frame height, here 10cm = 
10000 of 1/100mm.
+    // The values of the bounding rectangle vary slightly depending on the 
device.
+    // Thus test with tolerance.
+    {
+        uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), 
uno::UNO_QUERY);
+        SdrObject* pSdrShape(SdrObject::getSdrObjectFromXShape(xShape));
+        double fBoundRectHeight = pSdrShape->GetCurrentBoundRect().GetHeight();
+        CPPUNIT_ASSERT_DOUBLES_EQUAL(10000.0, fBoundRectHeight, 5);
+    }
+    {
+        uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(1), 
uno::UNO_QUERY);
+        SdrObject* pSdrShape(SdrObject::getSdrObjectFromXShape(xShape));
+        double fBoundRectHeight = pSdrShape->GetCurrentBoundRect().GetHeight();
+        CPPUNIT_ASSERT_DOUBLES_EQUAL(10000.0, fBoundRectHeight, 5);
+    }
+}
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/oox/source/drawingml/customshapegeometry.cxx 
b/oox/source/drawingml/customshapegeometry.cxx
index b029957959d8..a784906b017f 100644
--- a/oox/source/drawingml/customshapegeometry.cxx
+++ b/oox/source/drawingml/customshapegeometry.cxx
@@ -388,13 +388,20 @@ static EnhancedCustomShapeParameter GetAdjCoordinate( 
CustomShapeProperties& rCu
         }
         else
         {
+            // Check if rValue is a number
             sal_Unicode n = rValue[ 0 ];
-            if ( ( n == '+' ) || ( n == '-' ) )
+            bool bHasSign =  ( n == '+' ) || ( n == '-' );
+            // "+" or "-" is formally allowed as guide name and works in app 
'SoftMaker Office NX'.
+            bool bIsNumber = !(bHasSign && (rValue.getLength() == 1));
+            for (sal_Int32 i = bHasSign ? 1 : 0; i < rValue.getLength(); ++i)
             {
-                if ( rValue.getLength() > 1 )
-                    n = rValue[ 1 ];
+                if (!isdigit(rValue[i]))
+                {
+                    bIsNumber = false;
+                    break;
+                }
             }
-            if ( ( n >= '0' ) && ( n <= '9' ) )
+            if (bIsNumber)
             {   // seems to be a ST_Coordinate
                 aRet.Value <<= rValue.toInt32();
                 aRet.Type = EnhancedCustomShapeParameterType::NORMAL;
diff --git a/oox/source/drawingml/customshapes/oox-drawingml-cs-presets 
b/oox/source/drawingml/customshapes/oox-drawingml-cs-presets
index 5852456998df..8c6fedab2490 100644
--- a/oox/source/drawingml/customshapes/oox-drawingml-cs-presets
+++ b/oox/source/drawingml/customshapes/oox-drawingml-cs-presets
@@ -1651,7 +1651,7 @@ ViewBox
 AdjustmentValues
 ([]com.sun.star.drawing.EnhancedCustomShapeAdjustmentValue) {}
 Equations
-([]string) { "min(logwidth,logheight)", "?0 *1/20", "logwidth/2", "?2 +0-?1 ", 
"logheight/4", "?4 +0-?1 ", "?2 *cos(pi*(480000)/10800000)", "?4 
*sin(pi*(480000)/10800000)", "(10800000*atan2(?7 ,?6 ))/pi", "?8 *2/1", 
"10800000+0-?8 ", "10800000+2-0", "10800000+0-2", "?2 *1/4", "?4 *1/4", "?4 
*cos(pi*(?10 )/10800000)", "?2 *sin(pi*(?10 )/10800000)", "sqrt(?15 *?15 +?16 
*?16 +0*0)", "?2 *?4 /?17 ", "?18 *cos(pi*(?10 )/10800000)", "?18 *sin(pi*(?10 
)/10800000)", "logwidth/2", "?21 +?19 -0", "?4 +?20 -0", "?14 *cos(pi*(?8 
)/10800000)", "?13 *sin(pi*(?8 )/10800000)", "sqrt(?24 *?24 +?25 *?25 +0*0)", 
"?13 *?14 /?26 ", "?27 *cos(pi*(?8 )/10800000)", "?27 *sin(pi*(?8 )/10800000)", 
"?21 +?28 -0", "logheight+0-?14 ", "?31 +?29 -0", "?2 +0-?3 ", "10800000*2/1", 
"logwidth", "logheight", "(?10 )/60000.0", "(?11 )/60000.0", "(?8 )/60000.0", 
"(?12 )/60000.0", "(10800000)/60000.0", "(-21600000)/60000.0" }
+([]string) { "min(logwidth,logheight)", "?0 *1/20", "logwidth/2", "?2 +0-?1 ", 
"logheight/4", "?4 +0-?1 ", "?2 *cos(pi*(480000)/10800000)", "?4 
*sin(pi*(480000)/10800000)", "(10800000*atan2(?7 ,?6 ))/pi", "?8 *2/1", 
"10800000+0-?8 ", "10800000+?9-0", "10800000+0-?9", "?2 *1/4", "?4 *1/4", "?4 
*cos(pi*(?10 )/10800000)", "?2 *sin(pi*(?10 )/10800000)", "sqrt(?15 *?15 +?16 
*?16 +0*0)", "?2 *?4 /?17 ", "?18 *cos(pi*(?10 )/10800000)", "?18 *sin(pi*(?10 
)/10800000)", "logwidth/2", "?21 +?19 -0", "?4 +?20 -0", "?14 *cos(pi*(?8 
)/10800000)", "?13 *sin(pi*(?8 )/10800000)", "sqrt(?24 *?24 +?25 *?25 +0*0)", 
"?13 *?14 /?26 ", "?27 *cos(pi*(?8 )/10800000)", "?27 *sin(pi*(?8 )/10800000)", 
"?21 +?28 -0", "logheight+0-?14 ", "?31 +?29 -0", "?2 +0-?3 ", "10800000*2/1", 
"logwidth", "logheight", "(?10 )/60000.0", "(?11 )/60000.0", "(?8 )/60000.0", 
"(?12 )/60000.0", "(10800000)/60000.0", "(-21600000)/60000.0" }
 Handles
 ([][]com.sun.star.beans.PropertyValue) {}
 MirroredX
@@ -2093,7 +2093,7 @@ ViewBox
 AdjustmentValues
 ([]com.sun.star.drawing.EnhancedCustomShapeAdjustmentValue) { { Value = (any) 
{ (long) 23520 }, State = (com.sun.star.beans.PropertyState) DIRECT_VALUE, Name 
= "adj1" }, { Value = (any) { (long) 11760 }, State = 
(com.sun.star.beans.PropertyState) DIRECT_VALUE, Name = "adj2" } }
 Equations
-([]string) { "if(0-$0 ,0,if(36745-$0 ,$0 ,36745))", "?0 *2/1", "100000+0-2", 
"if(0-$1 ,0,if(?2 -$1 ,$1 ,?2 ))", "logheight*?0 /100000", "logheight*?3 
/200000", "logwidth*73490/200000", "logheight/2", "?7 +0-?5 ", "?7 +?5 -0", "?8 
+0-?4 ", "?9 +?4 -0", "logwidth/2", "?12 +0-?6 ", "?12 +?6 -0", "(?10 +?8 )/2", 
"(?9 +?11 )/2", "logwidth" }
+([]string) { "if(0-$0 ,0,if(36745-$0 ,$0 ,36745))", "?0 *2/1", "100000+0-?1", 
"if(0-$1 ,0,if(?2 -$1 ,$1 ,?2 ))", "logheight*?0 /100000", "logheight*?3 
/200000", "logwidth*73490/200000", "logheight/2", "?7 +0-?5 ", "?7 +?5 -0", "?8 
+0-?4 ", "?9 +?4 -0", "logwidth/2", "?12 +0-?6 ", "?12 +?6 -0", "(?10 +?8 )/2", 
"(?9 +?11 )/2", "logwidth" }
 Handles
 ([][]com.sun.star.beans.PropertyValue) { { { Name = "Position", Handle = 
(long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameterPair) { First = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 }, Second = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 10 
}, Type = (short) 1 } } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMaximum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 
36745 }, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMinimum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RefY", Handle = (long) 0, Value = (any) { (long) 0 }, 
State = (com.sun.star.beans.PropertySta
 te) DIRECT_VALUE } }, { { Name = "Position", Handle = (long) 0, Value = (any) 
{ (com.sun.star.drawing.EnhancedCustomShapeParameterPair) { First = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 17 
}, Type = (short) 1 }, Second = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 8 
}, Type = (short) 1 } } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMaximum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 2 
}, Type = (short) 1 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMinimum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RefY", Handle = (long) 0, Value = (any) { (long) 1 }, 
State = (com.sun.star.beans.PropertyState) DIRECT_VALUE } } }
 MirroredX
@@ -2144,7 +2144,7 @@ ViewBox
 AdjustmentValues
 ([]com.sun.star.drawing.EnhancedCustomShapeAdjustmentValue) { { Value = (any) 
{ (long) 23520 }, State = (com.sun.star.beans.PropertyState) DIRECT_VALUE, Name 
= "adj1" }, { Value = (any) { (long) 6600000 }, State = 
(com.sun.star.beans.PropertyState) DIRECT_VALUE, Name = "adj2" }, { Value = 
(any) { (long) 11760 }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE, Name = "adj3" } }
 Equations
-([]string) { "if(0-$0 ,0,if(50000-$0 ,$0 ,50000))", "if(4200000-$1 
,4200000,if(6600000-$1 ,$1 ,6600000))", "?0 *2/1", "100000+0-2", "if(0-$2 
,0,if(?3 -$2 ,$2 ,?3 ))", "logheight*?0 /100000", "logheight*?4 /200000", 
"logwidth*73490/200000", "logwidth/2", "?8 +0-?7 ", "?8 +?7 -0", "logheight/2", 
"?11 +0-?6 ", "?11 +?6 -0", "?12 +0-?5 ", "?13 +?5 -0", "?1 +0-5400000", 
"logheight/2", "?17 *tan(pi*(?16 )/10800000)", "sqrt(?18 *?18 +?17 *?17 +0*0)", 
"?19 *?5 /?17 ", "?20 *1/2", "?8 +?18 -?21 ", "?18 *?14 /?17 ", "?22 +0-?23 ", 
"?18 *?12 /?17 ", "?22 +0-?25 ", "?18 *?13 /?17 ", "?22 +0-?27 ", "?18 *?15 
/?17 ", "?22 +0-?29 ", "?18 *2/1", "?22 +0-?31 ", "?22 +?20 -0", "?24 +?20 -0", 
"?26 +?20 -0", "?28 +?20 -0", "?30 +?20 -0", "?32 +?20 -0", "?5 *?17 /?19 ", 
"?22 +?39 -0", "?33 +0-?39 ", "if(?16 ,?40 ,?33 )", "if(?16 ,?22 ,?41 )", "?5 
*?18 /?19 ", "0+0-?44 ", "if(?16 ,?44 ,0)", "if(?16 ,0,?45 )", "logwidth+0-?42 
", "logwidth+0-?43 ", "logheight+0-?46 ", "logheight+0-?47 ", "(?42 +?43 )/2", "
 (?49 +?48 )/2", "(?46 +?47 )/2", "(?14 +?12 )/2", "(?13 +?15 )/2", "(?51 +?50 
)/2", "logwidth" }
+([]string) { "if(0-$0 ,0,if(50000-$0 ,$0 ,50000))", "if(4200000-$1 
,4200000,if(6600000-$1 ,$1 ,6600000))", "?0 *2/1", "100000+0-?2", "if(0-$2 
,0,if(?3 -$2 ,$2 ,?3 ))", "logheight*?0 /100000", "logheight*?4 /200000", 
"logwidth*73490/200000", "logwidth/2", "?8 +0-?7 ", "?8 +?7 -0", "logheight/2", 
"?11 +0-?6 ", "?11 +?6 -0", "?12 +0-?5 ", "?13 +?5 -0", "?1 +0-5400000", 
"logheight/2", "?17 *tan(pi*(?16 )/10800000)", "sqrt(?18 *?18 +?17 *?17 +0*0)", 
"?19 *?5 /?17 ", "?20 *1/2", "?8 +?18 -?21 ", "?18 *?14 /?17 ", "?22 +0-?23 ", 
"?18 *?12 /?17 ", "?22 +0-?25 ", "?18 *?13 /?17 ", "?22 +0-?27 ", "?18 *?15 
/?17 ", "?22 +0-?29 ", "?18 *2/1", "?22 +0-?31 ", "?22 +?20 -0", "?24 +?20 -0", 
"?26 +?20 -0", "?28 +?20 -0", "?30 +?20 -0", "?32 +?20 -0", "?5 *?17 /?19 ", 
"?22 +?39 -0", "?33 +0-?39 ", "if(?16 ,?40 ,?33 )", "if(?16 ,?22 ,?41 )", "?5 
*?18 /?19 ", "0+0-?44 ", "if(?16 ,?44 ,0)", "if(?16 ,0,?45 )", "logwidth+0-?42 
", "logwidth+0-?43 ", "logheight+0-?46 ", "logheight+0-?47 ", "(?42 +?43 )/2", 
 "(?49 +?48 )/2", "(?46 +?47 )/2", "(?14 +?12 )/2", "(?13 +?15 )/2", "(?51 +?50 
)/2", "logwidth" }
 Handles
 ([][]com.sun.star.beans.PropertyValue) { { { Name = "Position", Handle = 
(long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameterPair) { First = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 }, Second = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 14 
}, Type = (short) 1 } } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMaximum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 
50000 }, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMinimum", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RefY", Handle = (long) 0, Value = (any) { (long) 0 }, 
State = (com.sun.star.beans.PropertySta
 te) DIRECT_VALUE } }, { { Name = "Position", Handle = (long) 0, Value = (any) 
{ (com.sun.star.drawing.EnhancedCustomShapeParameterPair) { First = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 43 
}, Type = (short) 1 }, Second = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 } } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RefAngle", Handle = (long) 0, Value = (any) { (long) 
1 }, State = (com.sun.star.beans.PropertyState) DIRECT_VALUE } }, { { Name = 
"Position", Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameterPair) { First = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 58 
}, Type = (short) 1 }, Second = 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 12 
}, Type = (short) 1 } } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RangeYMaximum", Handle = (long) 0
 , Value = (any) { (com.sun.star.drawing.EnhancedCustomShapeParameter) { Value 
= (any) { (long) 3 }, Type = (short) 1 } }, State = 
(com.sun.star.beans.PropertyState) DIRECT_VALUE }, { Name = "RangeYMinimum", 
Handle = (long) 0, Value = (any) { 
(com.sun.star.drawing.EnhancedCustomShapeParameter) { Value = (any) { (long) 0 
}, Type = (short) 0 } }, State = (com.sun.star.beans.PropertyState) 
DIRECT_VALUE }, { Name = "RefY", Handle = (long) 0, Value = (any) { (long) 2 }, 
State = (com.sun.star.beans.PropertyState) DIRECT_VALUE } } }
 MirroredX

Reply via email to